Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
typo3
qfq
Commits
2fc5d67b
Commit
2fc5d67b
authored
Nov 02, 2017
by
Carsten Rose
Browse files
Reformat Code
parent
892c7458
Changes
64
Expand all
Hide whitespace changes
Inline
Side-by-side
doc/UI.md
View file @
2fc5d67b
...
...
@@ -30,6 +30,7 @@ Save Button
1.
Client: Ignore server reponse 'redirect'. Client stays on current page.
Close Button
------------
*
User presses the Close button
...
...
extension/Classes/Controller/QfqController.php
View file @
2fc5d67b
...
...
@@ -46,6 +46,7 @@ class QfqController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController {
error_reporting
(
$origErrorReporting
);
$this
->
view
->
assign
(
'qfqOutput'
,
$html
);
return
$this
->
view
->
render
();
}
...
...
extension/Documentation/Index.rst
View file @
2fc5d67b
...
...
@@ -15,38 +15,38 @@ QFQ Extension
.. only:: html
:Classification:
qfq
qfq
:Version:
|release|
:Version:
|release|
:Language:
en
en
:Description:
The extension offers support to:
:Description:
The extension offers support to:
* Create HTML Forms by clicking them together,
* Create reports based an SQL queries. The SQL can be nested and offers support for any kind of tags.
* Create HTML Forms by clicking them together,
* Create reports based an SQL queries. The SQL can be nested and offers support for any kind of tags.
:Keywords:
Quick Form Query, Form, Report, SQL, Query, Generator, Framework, Secure, Mobile Ready, Responsive.
:Keywords:
Quick Form Query, Form, Report, SQL, Query, Generator, Framework, Secure, Mobile Ready, Responsive.
:Copyright:
2017
:Copyright:
2017
:Author:
Carsten Rose, Rafael Ostertag
:Author:
Carsten Rose, Rafael Ostertag
:Email:
carsten.rose@math.uzh.ch, rafael.ostertag@math.uzh.ch
:Email:
carsten.rose@math.uzh.ch, rafael.ostertag@math.uzh.ch
:License:
This document is published under the Open Publication License
available from http://www.opencontent.org/openpub/
:License:
This document is published under the Open Publication License
available from http://www.opencontent.org/openpub/
:Rendered:
|today|
|today|
The content of this document is related to TYPO3,
a GNU/GPL CMS/Framework available from `www.typo3.org <https://typo3.org/>`__.
...
...
extension/Documentation/Links.rst
View file @
2fc5d67b
...
...
@@ -12,13 +12,13 @@ Links
-----
:TER:
https://typo3.org/extensions/repository/view/<extension key>
https://typo3.org/extensions/repository/view/<extension key>
:Bug Tracker:
https://forge.typo3.org/projects/extension-<extension key>/issues
https://forge.typo3.org/projects/extension-<extension key>/issues
:Git Repository:
https://github.com/<username>/<extension key>
https://github.com/<username>/<extension key>
:Contact:
`@<username> <https://twitter.com/your-username>`__
`@<username> <https://twitter.com/your-username>`__
extension/Documentation/README.rst
View file @
2fc5d67b
=========================================
TYPO3 Documentation Starter "Public Info"
=========================================
...
...
extension/Resources/Public/Json/fabric.buttons.json
View file @
2fc5d67b
{
"modes"
:
[
{
"name"
:
"draw"
,
"selector"
:
"drawing-mode"
,
"requiresDrawing"
:
true
,
"requiresSelection"
:
false
,
"isToggle"
:
true
,
"toggle"
:
"isDrawingMode"
,
"hasToggleElement"
:
false
,
"toggleElement"
:
""
,
"icon"
:
"glyphicon-pencil"
},
{
"name"
:
"highlight"
,
"selector"
:
"highlight-mode"
,
"requiresDrawing"
:
true
,
"requiresSelection"
:
false
,
"isToggle"
:
true
,
"toggle"
:
"isHighlightMode"
,
"hasToggleElement"
:
false
,
"toggleElement"
:
""
,
"icon"
:
"glyphicon-pencil"
},
{
"name"
:
"write"
,
"selector"
:
"add-text"
,
"requiresDrawing"
:
false
,
"requiresSelection"
:
false
,
"isToggle"
:
true
,
"toggle"
:
"drawTextBoxMode"
,
"hasToggleElement"
:
true
,
"toggleElement"
:
"textContainer"
,
"icon"
:
"glyphicon-text-height"
},
{
"name"
:
"emoji"
,
"selector"
:
"add-emoji"
,
"requiresDrawing"
:
false
,
"requiresSelection"
:
true
,
"isToggle"
:
true
,
"toggle"
:
"emojiMode"
,
"hasToggleElement"
:
true
,
"toggleElement"
:
"emojiContainer"
,
"icon"
:
"glyphicon-ice-lolly-tasted"
},
{
"name"
:
"rectangle"
,
"selector"
:
"add-rect"
,
"requiresDrawing"
:
false
,
"requiresSelection"
:
false
,
"isToggle"
:
true
,
"toggle"
:
"drawRectangleMode"
,
"hasToggleElement"
:
false
,
"toggleElement"
:
""
,
"icon"
:
"glyphicon-stop"
},
{
"name"
:
"move"
,
"selector"
:
"move-mode"
,
"requiresDrawing"
:
false
,
"requiresSelection"
:
false
,
"isToggle"
:
true
,
"toggle"
:
"isHighlightMode"
,
"hasToggleElement"
:
false
,
"toggleElement"
:
""
,
"icon"
:
"glyphicon-move"
},
{
"name"
:
"delete"
,
"selector"
:
"clear-canvas"
,
"requiresDrawing"
:
false
,
"requiresSelection"
:
false
,
"isToggle"
:
false
,
"toggle"
:
""
,
"hasToggleElement"
:
false
,
"toggleElement"
:
""
,
"icon"
:
"glyphicon-trash"
}
],
"currentMode"
:
"draw"
,
"modes"
:
[
{
"name"
:
"draw"
,
"selector"
:
"drawing-mode"
,
"requiresDrawing"
:
true
,
"requiresSelection"
:
false
,
"isToggle"
:
true
,
"toggle"
:
"isDrawingMode"
,
"hasToggleElement"
:
false
,
"toggleElement"
:
""
,
"icon"
:
"glyphicon-pencil"
},
{
"name"
:
"highlight"
,
"selector"
:
"highlight-mode"
,
"requiresDrawing"
:
true
,
"requiresSelection"
:
false
,
"isToggle"
:
true
,
"toggle"
:
"isHighlightMode"
,
"hasToggleElement"
:
false
,
"toggleElement"
:
""
,
"icon"
:
"glyphicon-pencil"
},
{
"name"
:
"write"
,
"selector"
:
"add-text"
,
"requiresDrawing"
:
false
,
"requiresSelection"
:
false
,
"isToggle"
:
true
,
"toggle"
:
"drawTextBoxMode"
,
"hasToggleElement"
:
true
,
"toggleElement"
:
"textContainer"
,
"icon"
:
"glyphicon-text-height"
},
{
"name"
:
"emoji"
,
"selector"
:
"add-emoji"
,
"requiresDrawing"
:
false
,
"requiresSelection"
:
true
,
"isToggle"
:
true
,
"toggle"
:
"emojiMode"
,
"hasToggleElement"
:
true
,
"toggleElement"
:
"emojiContainer"
,
"icon"
:
"glyphicon-ice-lolly-tasted"
},
{
"name"
:
"rectangle"
,
"selector"
:
"add-rect"
,
"requiresDrawing"
:
false
,
"requiresSelection"
:
false
,
"isToggle"
:
true
,
"toggle"
:
"drawRectangleMode"
,
"hasToggleElement"
:
false
,
"toggleElement"
:
""
,
"icon"
:
"glyphicon-stop"
},
{
"name"
:
"move"
,
"selector"
:
"move-mode"
,
"requiresDrawing"
:
false
,
"requiresSelection"
:
false
,
"isToggle"
:
true
,
"toggle"
:
"isHighlightMode"
,
"hasToggleElement"
:
false
,
"toggleElement"
:
""
,
"icon"
:
"glyphicon-move"
},
{
"name"
:
"delete"
,
"selector"
:
"clear-canvas"
,
"requiresDrawing"
:
false
,
"requiresSelection"
:
false
,
"isToggle"
:
false
,
"toggle"
:
""
,
"hasToggleElement"
:
false
,
"toggleElement"
:
""
,
"icon"
:
"glyphicon-trash"
}
],
"currentMode"
:
"draw"
,
"colors"
:
[
{
"name"
:
"blue"
,
...
...
extension/qfq/qfq/AbstractBuildForm.php
View file @
2fc5d67b
This diff is collapsed.
Click to expand it.
extension/qfq/qfq/BuildFormBootstrap.php
View file @
2fc5d67b
...
...
@@ -162,9 +162,9 @@ class BuildFormBootstrap extends AbstractBuildForm {
$formId
=
$this
->
store
->
getVar
(
COLUMN_ID
,
STORE_RECORD
.
STORE_ZERO
);
$queryStringArray
=
[
'id'
=>
$this
->
store
->
getVar
(
SYSTEM_EDIT_FORM_PAGE
,
STORE_SYSTEM
),
'id'
=>
$this
->
store
->
getVar
(
SYSTEM_EDIT_FORM_PAGE
,
STORE_SYSTEM
),
'form'
=>
'copyForm'
,
'r'
=>
0
,
'r'
=>
0
,
'idSrc'
=>
$formId
,
];
$queryString
=
Support
::
arrayToQueryString
(
$queryStringArray
);
...
...
@@ -210,7 +210,7 @@ class BuildFormBootstrap extends AbstractBuildForm {
$queryStringArray
=
[
'id'
=>
$this
->
store
->
getVar
(
SYSTEM_EDIT_FORM_PAGE
,
STORE_SYSTEM
),
'form'
=>
$form
,
'r'
=>
0
,
'r'
=>
0
,
];
$queryString
=
Support
::
arrayToQueryString
(
$queryStringArray
);
$sip
=
$this
->
store
->
getSipInstance
();
...
...
@@ -579,7 +579,7 @@ EOF;
}
/**
* @param array
$formElement Complete FormElement, especially some FE_WRAP
* @param array $formElement Complete FormElement, especially some FE_WRAP
* @param string $htmlElement Content to wrap.
* @param $htmlFormElementName
*
...
...
@@ -636,11 +636,11 @@ EOF;
* - if $formElement[$wrapName] is given: wrap with that one. Else: wrap with $wrapArray
* - if $htmlId is give, inject it in $wrap.
*
* @param array
$formElement Complete FormElement, especially some FE_WRAP
* @param array $formElement Complete FormElement, especially some FE_WRAP
* @param string $htmlElement Content to wrap.
* @param string $wrapName
FE_WRAP_ROW, FE_WRAP_LABEL, FE_WRAP_INPUT, FE_WRAP_NOTE
* @param int
$bsColumns
* @param array
$wrapArray
Systemwide Defaults: [ 'open wrap', 'close wrap' ]
* @param string $wrapName FE_WRAP_ROW, FE_WRAP_LABEL, FE_WRAP_INPUT, FE_WRAP_NOTE
* @param int $bsColumns
* @param array $wrapArray Systemwide Defaults: [ 'open wrap', 'close wrap' ]
* @param string $htmlId
* @param string $class
*
...
...
extension/qfq/qfq/Delete.php
View file @
2fc5d67b
...
...
@@ -38,7 +38,7 @@ class Delete {
* to a file: delete such a file if their are no other records in the same table which also have a reference to
* that file.
*
* @param string
$tableName
* @param string $tableName
* @param integer $recordId
*
* @throws CodeException
...
...
extension/qfq/qfq/Evaluate.php
View file @
2fc5d67b
...
...
@@ -40,9 +40,9 @@ class Evaluate {
/**
* @param \qfq\Store $store
* @param Database
$db
* @param string
$startDelimiter
* @param string
$endDelimiter
* @param Database $db
* @param string $startDelimiter
* @param string $endDelimiter
*/
public
function
__construct
(
Store
$store
,
Database
$db
,
$startDelimiter
=
'{{'
,
$endDelimiter
=
'}}'
)
{
$this
->
store
=
$store
;
...
...
extension/qfq/qfq/File.php
View file @
2fc5d67b
...
...
@@ -34,10 +34,10 @@ class File {
$this
->
store
=
Store
::
getInstance
(
''
,
$phpUnit
);
$this
->
uploadErrMsg
=
[
UPLOAD_ERR_INI_SIZE
=>
"The uploaded file exceeds the upload_max_filesize directive in php.ini"
,
UPLOAD_ERR_INI_SIZE
=>
"The uploaded file exceeds the upload_max_filesize directive in php.ini"
,
UPLOAD_ERR_FORM_SIZE
=>
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form"
,
UPLOAD_ERR_PARTIAL
=>
"The uploaded file was only partially uploaded"
,
UPLOAD_ERR_NO_FILE
=>
"No file was uploaded"
,
UPLOAD_ERR_PARTIAL
=>
"The uploaded file was only partially uploaded"
,
UPLOAD_ERR_NO_FILE
=>
"No file was uploaded"
,
UPLOAD_ERR_NO_TMP_DIR
=>
"Missing a temporary folder"
,
UPLOAD_ERR_CANT_WRITE
=>
"Failed to write file to disk"
,
UPLOAD_ERR_EXTENSION
=>
"File upload stopped by extension"
,
...
...
@@ -73,7 +73,7 @@ class File {
/**
* @param string $sipUpload
* @param array
$statusUpload
* @param array $statusUpload
*
* @throws CodeException
* @throws UserFormException
...
...
extension/qfq/qfq/QuickFormQuery.php
View file @
2fc5d67b
...
...
@@ -118,7 +118,7 @@ class QuickFormQuery {
* instantiated automatically. Store might throw an exception, in case the URL-passed SIP is invalid.
*
* @param array $t3data
* @param bool
$phpUnit
* @param bool $phpUnit
*
* @throws CodeException
* @throws UserFormException
...
...
@@ -513,7 +513,7 @@ class QuickFormQuery {
/**
* Iterate over all Clipboard source records and fire for each all FE.type=paste records.
*
* @param int
$formId
* @param int $formId
* @param FormAction $formAction
*
* @throws CodeException
...
...
@@ -562,7 +562,7 @@ class QuickFormQuery {
* used parameters. Do this by building a new SIP with the new recordId.
*
* @param array $formSpec
* @param int
$recordId
* @param int $recordId
*
* @return array
* @throws CodeException
...
...
@@ -597,7 +597,7 @@ class QuickFormQuery {
* Loaded 'native' FormElements are in $this->feSpecNative
*
* @param string $mode FORM_LOAD|FORM_SAVE|FORM_UPDATE
* @param int
$recordId
* @param int $recordId
* @param string $foundInStore
*
* @return bool|string if found the formName, else 'false'.
...
...
@@ -708,9 +708,9 @@ class QuickFormQuery {
* This code is dirty: the nearly same function exists in class 'Database' - the difference is only
* 'explodeTemplateGroupElements()'.
*
* @param string $sql
SQL_FORM_ELEMENT_SPECIFIC_CONTAINER | SQL_FORM_ELEMENT_ALL_CONTAINER
* @param array
$param
Parameter which matches the prepared statement in $sql
* @param array
$formSpec Main FormSpec to copy generic parameter to FormElements
* @param string $sql SQL_FORM_ELEMENT_SPECIFIC_CONTAINER | SQL_FORM_ELEMENT_ALL_CONTAINER
* @param array $param Parameter which matches the prepared statement in $sql
* @param array $formSpec Main FormSpec to copy generic parameter to FormElements
*
* @return array|int
* @throws \qfq\CodeException
...
...
@@ -846,7 +846,7 @@ class QuickFormQuery {
* E.g.: the form title is not important during a delete.
*
* @param string $mode
* @param array
$form
* @param array $form
*
* @return array
*/
...
...
@@ -1170,7 +1170,7 @@ class QuickFormQuery {
* Based on the given SIP, create a new uniqe SIP by copying the relevant old params and taking the new recordId..
*
* @param array $sipArray
* @param int
$recordId
* @param int $recordId
*/
private
function
newRecordCreateSip
(
array
$sipArray
,
$recordId
)
{
...
...
extension/qfq/qfq/Save.php
View file @
2fc5d67b
...
...
@@ -233,8 +233,8 @@ class Save {
/**
* @param string $tableName
* @param array
$values
* @param int
$recordId
* @param array $values
* @param int $recordId
*
* @return bool|int false if $values is empty, else affectedrows
* @throws CodeException
...
...
@@ -318,10 +318,10 @@ class Save {
*
* Check also: doc/CODING.md
*
* @param array
$formElement FormElement 'upload'
* @param string $sipUpload
SIP
* @param Sip
$sip
* @param string $modeUpload
UPLOAD_MODE_UNCHANGED | UPLOAD_MODE_NEW | UPLOAD_MODE_DELETEOLD |
* @param array $formElement FormElement 'upload'
* @param string $sipUpload SIP
* @param Sip $sip
* @param string $modeUpload UPLOAD_MODE_UNCHANGED | UPLOAD_MODE_NEW | UPLOAD_MODE_DELETEOLD |
* UPLOAD_MODE_DELETEOLD_NEW
*
* @return false|string New pathFilename or false on error
...
...
@@ -435,7 +435,7 @@ class Save {
* Create/update or delete the slave record.
*
* @param array $fe
* @param bool
$flagNewUpload
* @param bool $flagNewUpload
*
* @return int
* @throws CodeException
...
...
extension/qfq/qfq/database/Database.php
View file @
2fc5d67b
...
...
@@ -149,10 +149,10 @@ class Database {
*
* @param $sql
* @param string $mode
* @param array
$parameterArray
* @param array $parameterArray
* @param string $specificMessage
* @param array
$keys
* @param array
$stat DB_NUM_ROWS | DB_INSERT_ID | DB_AFFECTED_ROWS
* @param array $keys
* @param array $stat DB_NUM_ROWS | DB_INSERT_ID | DB_AFFECTED_ROWS
*
* @return array|int
* SELECT | SHOW | DESCRIBE | EXPLAIN: see $mode
...
...
@@ -262,11 +262,11 @@ class Database {
* Returns the number of selected rows (SELECT, SHOW, ..) or the affected rows (UPDATE, INSERT). $stat contains
* appropriate num_rows, insert_id or rows_affected.
*
* @param string $sql
SQL statement with prepared statement variable.
* @param array
$parameterArray parameter array for prepared statement execution.
* @param string $queryType
returns QUERY_TYPE_SELECT | QUERY_TYPE_UPDATE | QUERY_TYPE_INSERT, depending on
* @param string $sql SQL statement with prepared statement variable.
* @param array $parameterArray parameter array for prepared statement execution.
* @param string $queryType returns QUERY_TYPE_SELECT | QUERY_TYPE_UPDATE | QUERY_TYPE_INSERT, depending on
* the query.
* @param array
$stat
DB_NUM_ROWS | DB_INSERT_ID | DB_AFFECTED_ROWS
* @param array $stat DB_NUM_ROWS | DB_INSERT_ID | DB_AFFECTED_ROWS
*
* @return int|mixed
* @throws \qfq\CodeException
...
...
@@ -507,7 +507,7 @@ class Database {
* default: Return 2-dimensional assoc array
*
* @param string $mode
* @param array
$keys
* @param array $keys
*
* @return array|bool|mixed|string false in case of an error.
* Empty string is returned if the query didn't yield any rows.
...
...
@@ -644,8 +644,8 @@ class Database {
* Wrapper for sql(), to simplyfy access.
*
* @param $sql
* @param array
$keys
* @param array
$stat
* @param array $keys
* @param array $stat
*
* @return array|bool
* @throws \qfq\CodeException
...
...
@@ -693,9 +693,9 @@ class Database {
/**
* Depending on $sql reads FormElements to a specific container or all. Preprocess all FormElements.
*
* @param string $sql
SQL_FORM_ELEMENT_SPECIFIC_CONTAINER | SQL_FORM_ELEMENT_ALL_CONTAINER
* @param array
$param
Parameter which matches the prepared statement in $sql
* @param array
$formSpec Main FormSpec to copy generic parameter to FormElements
* @param string $sql SQL_FORM_ELEMENT_SPECIFIC_CONTAINER | SQL_FORM_ELEMENT_ALL_CONTAINER
* @param array $param Parameter which matches the prepared statement in $sql
* @param array $formSpec Main FormSpec to copy generic parameter to FormElements
*
* @return array|int
* @throws \qfq\CodeException
...
...
extension/qfq/qfq/form/Dirty.php
View file @
2fc5d67b
...
...
@@ -108,8 +108,8 @@ class Dirty {
/**
* Tries to get a 'DirtyRecord'. Returns an array (becomes JSON) about success or failure.
*
* @param int
$recordId
* @param array
$tableVars
* @param int $recordId
* @param array $tableVars
* @param string $recordHashMd5
*
* @return array
...
...
@@ -150,7 +150,7 @@ class Dirty {
* Load (if exist) a DirtyRecord (lock).
*
* @param string $tableName
* @param int
$recordId
* @param int $recordId
*
* @return array DirtyRecord or empty array.
* @throws CodeException
...
...
@@ -172,7 +172,7 @@ class Dirty {
/**
*
* @param array
$recordDirty
* @param array $recordDirty
* @param string $currentFormDirtyMode
*
* @return array
...
...
@@ -214,9 +214,9 @@ class Dirty {
/**
* Write a 'Dirty'-Record.
*
* @param string $s
SIP given by URL GET
* @param int
$recordId extracted from SIP
* @param array
$tableVars columns: F_TABLE_NAME, F_DIRTY_MODE, F_RECORD_LOCK_TIMEOUT_SECONDS
* @param string $s SIP given by URL GET
* @param int $recordId extracted from SIP
* @param array $tableVars columns: F_TABLE_NAME, F_DIRTY_MODE, F_RECORD_LOCK_TIMEOUT_SECONDS
* @param string $feUser
* @param string $recordHashMd5
*
...
...
@@ -238,8 +238,8 @@ class Dirty {
[
$s
,
$tableName
,
$recordId
,
$expire
,
$recordHashMd5
,
$feUser
,
$this
->
client
[
CLIENT_COOKIE_QFQ
],
$formDirtyMode
,
$this
->
client
[
CLIENT_REMOTE_ADDRESS
],
date
(
'YmdHis'
)]);
return
[
API_STATUS
=>
API_ANSWER_STATUS_SUCCESS
,
API_MESSAGE
=>
''
,
API_LOCK_TIMEOUT
=>
$tableVars
[
F_RECORD_LOCK_TIMEOUT_SECONDS
]];
return
[
API_STATUS
=>
API_ANSWER_STATUS_SUCCESS
,
API_MESSAGE
=>
''
,
API_LOCK_TIMEOUT
=>
$tableVars
[
F_RECORD_LOCK_TIMEOUT_SECONDS
]];
}
...
...
@@ -247,7 +247,7 @@ class Dirty {
* Get MD5 from tableName/recordId and compare with $recordHashMd5.
*
* @param string $tableName
* @param int
$recordId
* @param int $recordId
* @param string $recordHashMd5 - timestamp e.g. '2017-07-27 14:06:56'
*
* @return bool true if $recordHashMd5 is different from current record md5 hash.
...
...
@@ -271,8 +271,8 @@ class Dirty {
* Check if a lock exist for the current table, recordId and session.
*
* @param string $tableName
* @param int
$recordId
* @param array
$recordDirty - return dirty record if one exist.
* @param int $recordId
* @param array $recordDirty - return dirty record if one exist.
* @param string $msg - return preformatted message in case of conflict
*
* @return int LOCK_NOT_FOUND | LOCK_FOUND_OWNER | LOCK_FOUND_CONFLICT,
...
...
@@ -312,10 +312,10 @@ class Dirty {
* In case of not owner, throws an exception and the save should break.
*
* @param string $formMode FORM_DELETE, FORM_SAVE
* @param int
$lockTimeout
* @param int $lockTimeout
* @param string $dirtyMode DIRTY_MODE_EXCLUSIVE, DIRTY_MODE_ADVISORY, DIRTY_MODE_NONE
* @param string $tableName
* @param int
$recordId
* @param int $recordId
*
* @return array
* @throws \qfq\CodeException
...
...
extension/qfq/qfq/form/FormAction.php
View file @
2fc5d67b
...
...
@@ -58,8 +58,8 @@ class FormAction {
/**
* @param integer $recordId
* @param array
$feSpecAction
* @param string
$feTypeList
* @param array $feSpecAction
* @param string $feTypeList
* On FormLoad: FE_TYPE_BEFORE_LOAD, FE_TYPE_AFTER_LOAD
* Before Save: FE_TYPE_BEFORE_SAVE, FE_TYPE_BEFORE_INSERT, FE_TYPE_BEFORE_UPDATE, FE_TYPE_BEFORE_DELETE
* After Save: FE_TYPE_AFTER_SAVE, FE_TYPE_AFTER_INSERT, FE_TYPE_AFTER_UPDATE, FE_TYPE_AFTER_DELETE
...
...
@@ -293,7 +293,7 @@ class FormAction {
* `sqlInsert`
*
* @param array $fe