Commit 7bf3ef71 authored by Carsten  Rose's avatar Carsten Rose
Browse files

Manual.rst: replace config.qfq.ini on most places with 'configuration'

parent 80e7f9ac
......@@ -87,15 +87,10 @@ The program is not included in QFQ and has to be manually installed.
* Best is to install the QT version from the named website above.
* In case of trouble with wkhtmltopdf, also install 'libxrender1'.
In `config-qfq-ini`_ specify the:
In `configuration`_ specify the:
* installed `wkhtmltopdf` binary:
* `WKHTMLTOPDF = /.../wkhtmltopdf`
* the site base URL:
* `BASE_URL_PRINT = http://example.com/`
* installed `wkhtmltopdf` binary: `cmdWkhtmltopdf`.
* the site base URL: `baseUrl`.
**Important**: To access FE_GROUP protected pages or content, it's necessary to disable the `[FE][lockIP]` check! `wkhtml`
......@@ -175,12 +170,11 @@ Setup
* If the Extensionmanager stops after importing: check your memory limit in php.ini.
* Enable the online local-documentation_.
* Copy/rename the file *<Documentroot>/typo3conf/ext/<ext_dir>/config.example.qfq.ini* to
*<Documentroot>/typo3conf/config.qfq.ini* and configure the necessary values: `config.qfq.ini`_
The configuration file is outside the extension directory to not loose it during updates.
* Copy/rename the file *<site path>/typo3conf/ext/qfq/config.example.qfq.ini* to *config.qfq.in*.
Configure the necessary settings `configuration`_
The configuration file is outside the of extension directory, to not loose it during updates.
* When the QFQ Extension is called the first time on the Typo3 Frontend, the file *<ext_dir>/qfq/sql/formEditor.sql* will
played and fills the database with the *Form editor* records. This also happens automatically after each software update of QFQ.
played and fills the database with the *Form editor* records. This also happens automatically after each update of QFQ.
* Configure Typoscript to include Bootstrap, jQuery, QFQ javascript and CSS files.
.. _setup-css-js:
......@@ -228,7 +222,7 @@ FormEditor
Setup a *report* to manage all *forms*:
* Create a Typo3 page.
* Set the 'URL Alias' to `form` (default) or the individual defined value in parameter EDIT_FORM_PAGE (config.qfq.ini).
* Set the 'URL Alias' to `form` (default) or the individual defined value in parameter `editFormPage` (configuration_).
* Insert a content record of type *qfq*.
* In the bodytext insert the following code:
......@@ -237,8 +231,8 @@ Setup a *report* to manage all *forms*:
# If there is a form given by SIP: show
form={{form:SE}}
# In case DB_INDEX_QFQ is different from DB_INDEX_DATA, set DB_INDEX_QFQ.
dbIndex = {{DB_INDEX_QFQ:Y}}
# In case indexQfq is different from indexData, set indexQfq.
dbIndex = {{indexQfq:Y}}
10 {
# List of Forms: Do not show this list of forms if there is a form given by SIP.
......@@ -272,6 +266,173 @@ Install Check List
* Setup a log rotation rule for `sqlLog`.
* Check that `sqlLogMode` is set to `modify` on productive sites.
.. _configuration:
Configuration
-------------
.. _extension-manager-qfq-configuration:
Extension Manager: QFQ Configuration
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| Keyword | Default / Example | Description |
+===============================+=======================================================+============================================================================+
| Config |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| documentation | http://docs.typo3.org... | Link to the online documentation of QFQ. Every QFQ installation also |
| | | contains a local copy: typo3conf/ext/qfq/Documentation/html/Manual.html |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| thumbnailDirSecure | fileadmin/protected/qfqThumbnail | Important: secure directory 'protected' (recursive) against direct access. |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| thumbnailDirPublic | typo3temp/qfqThumbnail | Both thumbnail directories will be created if not existing. |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| cmdInkscape | inkscape | If inkscape is not available, specify an empty string. |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| cmdConvert | convert | GraphicsMagics 'convert' is recommended. |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| cmdWkhtmltopdf | /usr/bin/wkhtmltopdf | PathFilename of wkhtmltopdf. |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| baseUrl | http://example.com | URL where wkhtmltopdf will fetch the HTML (no parameter, those comes later)|
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| sendEMailOptions | -o tls=yes | General options. Check: http://caspian.dotconf.net/menu/Software/SendEmail |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| dateFormat | yyyy-mm-dd | Possible options: yyyy-mm-dd, dd.mm.yyyy |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| Dynamic |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| fillStoreSystemBySql1|2|3 | SELECT s.id AS ... | Specific values read from the database to fill the system store during QFQ |
| | | load. See `fillStoreSystemBySql`_ for a usecase. |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| fillStoreSystemBySqlErrorMsg2 | No current period found | Only define an error message, if QFQ should stop running |
| | | in case of an SQL error or not exact one record. |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| Debug |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| sqlLogMode | modify | *all*: every statement will be logged - this might a lot. |
| | | *modify*: log only statements who change data. *error*: log only DB errors.|
| | | *none*: no SQL log at all. |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| sqlLog | typo3conf/sql.log | Filename to log SQL commands: relative to <site path> or absolute. |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| mailLog | typo3conf/mail.log | Filename to log `sendEmail` commands: relative to <site path> or absolute. |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| showDebugInfo | auto | FE - Possible values: yes|no|auto|download. For 'auto': If a BE User is |
| | | logged in, a debug information will be shown on the FE. |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| redirectAllMailTo | john@doe.com | If set, redirect all QFQ generated mails (Form, Report) to the specified. |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| Database |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| dbInit | dbInit=set names utf8 | Global init for using the database. |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| update | auto | 'auto': apply DB Updates only if there is a newer version. |
| | | 'always': apply DB Updates always, especially play formEditor.sql every |
| | | time QFQ is called - *not* recommended! |
| | | 'never': never apply DB Updates. |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| indexData | 1 | Optional. Default: 1. Retrieve the current setting via {{_dbNameData:Y}} |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| indexQfq | 1 | Optional. Default: 1. Retrieve the current setting via {{_dbNameQfq:Y}} |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| Security |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| escapeTypeDefault | m | All variables `{{...}}` get this escape class by default. |
| | | See `variable-escape`_. |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| securityVarsHoneypot | email,username,password | If empty: no check. All named variables will rendered as INPUT elements |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| securityAttackDelay | 5 | If an attack is detected, sleep 'x' seconds and exit PHP process |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| securityShowMessage | true | If an attack is detected, show a message |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| securityGetMaxLength | 50 | GET vars longer than 'x' chars triggers an `attack-recognized`. |
| | | `ExceptionMaxLength`_ |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| Form-Config |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| recordLockTimeoutSeconds | 900 | Timeout for record locking. After this time, a record will be replaced |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| enterAsSubmit | enterAsSubmit = 1 | 0: off, 1: Pressing *enter* in a form means *save* and *close* |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| editFormPage | form | T3 Pagealias to edit a form. |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| formDataPatternError | please check pattern error | Customizable error message used in validator.js. 'pattern' violation |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| formDataRequiredError | missing value | Customizable error message used in validator.js. 'required' fields |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| formDataMatchError | type error | Customizable error message used in validator.js. 'match' retype mismatch |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| formDataError | generic error | Customizable error message used in validator.js. 'no specific' given |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| Form-Layout |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| cssClassQfqContainer | container | QFQ with own Bootstrap: 'container'. |
| | | QFQ already nested in Bootstrap of mainpage: <empty> |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| cssClassQfqForm | qfq-color-base | Wrap around QFQ 'Form'. |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| cssClassQfqFormPill | qfq-color-grey-1 | Wrap around title bar for pills: CSS Class, typically a background color. |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| cssClassQfqFormBody | qfq-color-grey-2 | Wrap around FormElements: CSS Class, typically a background color. |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| formBsColumns | 12 | The whole form will be wrapped in 'col-md-??'. Default is 12 for 100% |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| formBsLabelColumns | 3 | Default number of BS columns for the 'label'-column |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| formBsInputColumns | 6 | Default number of BS columns for the 'input'-column |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| formBsNoteColumns | 3 | Default number of BS columns for the 'note'-column |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| extraButtonInfoInline | <img src="info.png"> | Image for `extraButtonInfo`_ (inline) |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| extraButtonInfoBelow | <img src="info.png"> | Image for `extraButtonInfo`_ (below) |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| extraButtonInfoPosition | below | 'auto' (default) or 'below'. See `extraButtonInfo`_ |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| extraButtonInfoClass | pull-right | '' (default) or 'pull-right'. See `extraButtonInfo`_ |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| Form-Language |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| formLanguage[ABCD]Id | - E.g.: 1 | In Typo3 configured pageLanguage id. The number after the 'L' parameter. |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| formLanguage[ABCD]Label | - E.G.: english | Label shown in *Form editor*, on the 'basic' tab. |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| saveButtonText | - | Text on the form save button. Typically none. |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| saveButtonTooltip | Save | Tooltip on the form save button. |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| saveButtonClass | btn btn-default navbar-btn | Bootstrap CSS class for save button on top of the form |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| saveButtonClassOnChange | alert-info btn-info | Bootstrap CSS class for save button showing 'data changed' |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| saveButtonGlyphIcon | glyphicon-ok | Icon for the form save button |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| closeButtonText | - | Text on the form close button. Typically none. |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| closeButtonTooltip | close | Tooltip on the form close button. |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| closeButtonClass | btn btn-default navbar-btn | Bootstrap CSS class for close button on top of the form |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| closeButtonGlyphIcon | glyphicon-remove | Icon for the form close button |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| deleteButtonText | - | Text on the form delete button. Typically none. |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| deleteButtonTooltip | delete | Tooltip on the form delete button. |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| deleteButtonClass | btn btn-default navbar-btn | Bootstrap CSS class for delete button on top of the form |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| deleteButtonGlyphIcon | glyphicon-trash | Icon for the form delete button |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| newButtonText | - | Text on the form new button. Typically none. |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| newButtonTooltip | new | Tooltip on the form new button. |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| newButtonClass | btn btn-default navbar-btn | Bootstrap CSS class for new button on top of the form |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| newButtonGlyphIcon | glyphicon-plus | Icon for the form new button |
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
.. _config-qfq-ini:
......@@ -279,133 +440,18 @@ Install Check List
config.qfq.ini
--------------
+-----------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| Keyword | Example | Description |
+=============================+=======================================================+============================================================================+
| DB_INIT | DB_INIT=set names utf8 | Global init for using the database. |
+-----------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| DB_UPDATE | DB_UPDATE = auto | 'auto': apply DB Updates only if there is a newer version. |
| | | 'always': apply DB Updates always, especially play formEditor.sql every |
| | | time QFQ is called - *not* recommended! |
| | | 'never': never apply DB Updates. |
+-----------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
+===============================+=======================================================+============================================================================+
| DB_<n>_USER | DB_1_USER=qfqUser | Credentials configured in MySQL |
| DB_<n>_PASSWORD | DB_1_PASSWORD=1234567890 | Credentials configured in MySQL |
| DB_<n>_SERVER | DB_1_SERVER=localhost | Hostname of MySQL Server |
| DB_<n>_NAME | DB_1_NAME=qfq_db | Database name |
+-----------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| DB_INDEX_DATA | DB_INDEX_DATA = 1 | Optional. Default: 1. Retrieve the current setting via {{_dbNameData:Y}} |
| DB_INDEX_QFQ | DB_INDEX_QFQ = 1 | Optional. Default: 1. Retrieve the current setting via {{_dbNameQfq:Y}} |
+-----------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| SQL_LOG_MODE | SQL_LOG_MODE=modify | *all*: every statement will be logged - this might a lot. |
| | | *modify*: log only statements who change data. *error*: log only DB errors.|
| | | *none*: no SQL log at all. |
+-----------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| SQL_LOG | SQL_LOG=typo3conf/sql.log | Filename to log SQL commands: relative to <site path> or absolute. |
+-----------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| MAIL_LOG | SQL_LOG=typo3conf/mail.log | Filename to log `sendEmail` commands: relative to <site path> or absolute. |
+-----------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| SEND_E_MAIL_OPTIONS | SEND_E_MAIL_OPTIONS="-o tls=yes" | General options. Check: http://caspian.dotconf.net/menu/Software/SendEmail |
+-----------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| SHOW_DEBUG_INFO | SHOW_DEBUG_INFO=auto | FE - Possible values: yes|no|auto|download. For 'auto': If a BE User is |
| | | logged in, a debug information will be shown on the FE. |
+-----------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| REDIRECT_ALL_MAIL_TO | REDIRECT_ALL_MAIL_TO=john@doe.com | If set, redirect all QFQ generated mails (Form, Report) to the specified. |
+-----------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| CSS_CLASS_QFQ_CONTAINER | CSS_CLASS_QFQ_CONTAINER=container | QFQ with own Bootstrap: 'container'. |
| | | QFQ already nested in Bootstrap of mainpage: <empty> |
+-----------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| CSS_CLASS_QFQ_FORM | CSS_CLASS_QFQ_FORM=qfq-color-base | Wrap around QFQ 'Form'. |
| CSS_CLASS_QFQ_FORM_PILL | CSS_CLASS_QFQ_FORM_PILL=qfq-color-grey-1 | Wrap around title bar for pills: CSS Class, typically a background color. |
| CSS_CLASS_QFQ_FORM_BODY | CSS_CLASS_QFQ_FORM_BODY=qfq-color-grey-2 | Wrap around FormElements: CSS Class, typically a background color. |
+-----------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| DATE_FORMAT | DATE_FORMAT= yyyy-mm-dd | Possible options: yyyy-mm-dd, dd.mm.yyyy |
+-----------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| FORM_DATA_PATTERN_ERROR | FORM_DATA_PATTERN_ERROR=please check pa. | Customizable error message used in validator.js. 'pattern' violation |
| FORM_DATA_REQUIRED_ERROR | FORM_DATA_REQUIRED_ERROR=missing value | Customizable error message used in validator.js. 'required' fields |
| FORM_DATA_MATCH_ERROR | FORM_DATA_MATCH_ERROR=type error | Customizable error message used in validator.js. 'match' retype mismatch |
| FORM_DATA_ERROR | FORM_DATA_ERROR=generic error | Customizable error message used in validator.js. 'no specific' given |
+-----------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| FORM_BS_COLUMNS | FORM_BS_COLUMNS=12 | The whole form will be wrapped in 'col-md-??'. Default is 12 for 100% |
| FORM_BS_LABEL_COLUMNS | FORM_BS_LABEL_COLUMNS = 3 | Default number of BS columns for the 'label'-column |
| FORM_BS_INPUT_COLUMNS | FORM_BS_INPUT_COLUMNS = 6 | Default number of BS columns for the 'input'-column |
| FORM_BS_NOTE_COLUMNS | FORM_BS_NOTE_COLUMNS = 3 | Default number of BS columns for the 'note'-column |
+-----------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| FORM_BUTTON_ON_CHANGE_CLASS | FORM_BUTTON_ON_CHANGE_CLASS=alert-info btn-info | Color for save button after modification |
+-----------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| BASE_URL_PRINT | BASE_URL_PRINT=http://example.com | URL where wkhtmltopdf will fetch the HTML (no parameter, those comes later)|
+-----------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| WKHTMLTOPDF | WKHTMLTOPDF=/usr/bin/wkhtmltopdf | Binary where to find wkhtmltopdf. |
+-----------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| EDIT_FORM_PAGE | EDIT_FORM_PAGE = form | T3 Pagealias to edit a form. |
+-----------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| LDAP_1_RDN | LDAP_1_RDN='ou=Admin,ou=example,dc=com' | Credentials for non-anonymous LDAP access. At the moment only one set of |
| LDAP_1_PASSWORD | LDAP_1_PASSWORD=mySecurePassword | |
+-----------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| ESCAPE_TYPE_DEFAULT | ESCAPE_TYPE_DEFAULT=m | All variables `{{...}}` get this escape class by default. |
| | | See `variable-escape`_. |
+-----------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| SECURITY_VARS_HONEYPOT | SECURITY_VARS_HONEYPOT = email,username,password | If empty: no check. All named variables will rendered as INPUT elements |
| SECURITY_ATTACK_DELAY | SECURITY_ATTACK_DELAY = 5 | If an attack is detected, sleep 'x' seconds and exit PHP process |
| SECURITY_SHOW_MESSAGE | SECURITY_SHOW_MESSAGE = true | If an attack is detected, show a message |
| SECURITY_GET_MAX_LENGTH | SECURITY_GET_MAX_LENGTH = 50 | GET vars longer than 'x' chars triggers an `attack-recognized`. |
| | | `ExceptionMaxLength`_ |
+-----------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| GFX_EXTRA_BUTTON_INFO_INLINE| <img src="info.png"> | Image for `extraButtonInfo`_ (inline) |
| GFX_EXTRA_BUTTON_INFO_BELOW | <img src="info.png"> | Image for `extraButtonInfo`_ (below) |
| EXTRA_BUTTON_INFO_POSITION | SYSTEM_EXTRA_BUTTON_INFO_POSITION=below | 'auto' (default) or 'below'. See `extraButtonInfo`_ |
| EXTRA_BUTTON_INFO_CLASS | SYSTEM_EXTRA_BUTTON_INFO_CLASS=pull-right | '' (default) or 'pull-right'. See `extraButtonInfo`_ |
+-----------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| SAVE_BUTTON_TEXT | SAVE_BUTTON_TEXT = | Default text on the form save button. Typically none. |
| SAVE_BUTTON_TOOLTIP | SAVE_BUTTON_TOOLTIP = save | Default tooltip on the form save button. |
| SAVE_BUTTON_CLASS | SAVE_BUTTON_CLASS = btn btn-default navbar-btn | Default Bootstrap CSS class for buttons on top of the form |
| SAVE_BUTTON_GLYPH_ICON | SAVE_BUTTON_GLYPH_ICON = glyphicon-ok | Default Icon for the form save button |
+-----------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| CLOSE_BUTTON_TEXT | CLOSE_BUTTON_TEXT = | Default text on the form close button. Typically none. |
| CLOSE_BUTTON_TOOLTIP | CLOSE_BUTTON_TOOLTIP = close | Default tooltip on the form close button. |
| CLOSE_BUTTON_CLASS | CLOSE_BUTTON_CLASS = btn btn-default navbar-btn | Default Bootstrap CSS class for buttons on top of the form |
| CLOSE_BUTTON_GLYPH_ICON | CLOSE_BUTTON_GLYPH_ICON = glyphicon-remove | Default Icon for the form close button |
+-----------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| DELETE_BUTTON_TEXT | DELETE_BUTTON_TEXT = | Default text on the form delete button. Typically none. |
| DELETE_BUTTON_TOOLTIP | DELETE_BUTTON_TOOLTIP = delete | Default tooltip on the form delete button. |
| DELETE_BUTTON_CLASS | DELETE_BUTTON_CLASS = btn btn-default navbar-btn | Default Bootstrap CSS class for buttons on top of the form |
| DELETE_BUTTON_GLYPH_ICON | DELETE_BUTTON_GLYPH_ICON = glyphicon-trash | Default Icon for the form delete button |
+-----------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| NEW_BUTTON_TEXT | NEW_BUTTON_TEXT = | Default text on the form new button. Typically none. |
| NEW_BUTTON_TOOLTIP | NEW_BUTTON_TOOLTIP = new | Default tooltip on the form new button. |
| NEW_BUTTON_CLASS | NEW_BUTTON_CLASS = btn btn-default navbar-btn | Default Bootstrap CSS class for buttons on top of the form |
| NEW_BUTTON_GLYPH_ICON | NEW_BUTTON_GLYPH_ICON = glyphicon-plus | Default Icon for the form new button |
+-----------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| DIRTY_RECORD_TIMEOUT_SECONDS| DIRTY_RECORD_TIMEOUT_SECONDS = 900 | Timeout for record locking. After this time, a record will be replaced |
+-----------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| DOCUMENTATION_QFQ | DOCUMENTATION_QFQ=http://docs.typo3.org... | Link to the online documentation of QFQ. Every QFQ installation also |
| | | contains a local copy: typo3conf/ext/qfq/Documentation/html/Manual.html |
+-----------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| FILL_STORE_SYSTEM_BY_SQL_1 | FILL_STORE_SYSTEM_BY_SQL = SELECT s.id AS ... | Specific values read from the database to fill the system store during QFQ |
| FILL_STORE_SYSTEM_BY_SQL_2 | | load. See `fillStoreSystemBySql`_ for a usecase. |
| FILL_STORE_SYSTEM_BY_SQL_3 | | |
+-----------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| FILL_STORE_SYSTEM_BY_SQL_ERROR_MSG_1 | FILL_STORE_SYSTEM_BY_SQL_ERROR_MSG_1=No | Only define an error message, if QFQ should stop running |
| FILL_STORE_SYSTEM_BY_SQL_ERROR_MSG_2 | current period found | in case of an SQL error or not exact one record. |
| FILL_STORE_SYSTEM_BY_SQL_ERROR_MSG_3 | | |
+-----------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| FORM_LANGUAGE_A_ID | FORM_LANGUAGE_A__ID = 1 | In Typo3 configured pageLanguage id. The number after the 'L' parameter. |
| FORM_LANGUAGE_B_ID | | |
| FORM_LANGUAGE_C_ID | | |
| FORM_LANGUAGE_D_ID | | |
+-----------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| FORM_LANGUAGE_A_LABEL | FORM_LANGUAGE_A_LABEL = english | Label shown in *Form editor*, on the 'basic' tab. |
| FORM_LANGUAGE_B_LABEL | | |
| FORM_LANGUAGE_C_LABEL | | |
| FORM_LANGUAGE_D_LABEL | | |
+-----------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| enterAsSubmit | enterAsSubmit = 1 | 0: off, 1: Pressing *enter* in a form means *save* and *close* |
+-----------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
| thumbnailDirSecure | thumbnailDirSecure = fileadmin/protected/qfqThumbnail | Important: secure directory 'protected' (recursive) against direct access. |
| thumbnailDirPublic | thumbnailDirPublic = typo3temp/qfqThumbnail | Both thumbnail directories will be created if not existing. |
| cmdInkscape | cmdInkscape = inkscape | If inkscape is not available, specify an empty string. |
| cmdConvert | cmdConvert = convert | GraphicsMagics 'convert' is recommended. |
+-----------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
+-------------------------------+-------------------------------------------------------+----------------------------------------------------------------------------+
Example: *typo3conf/config.qfq.ini*
......@@ -414,19 +460,7 @@ Example: *typo3conf/config.qfq.ini*
; QFQ configuration
;
; Save this file as: <Documentroot>/typo3conf/config.qfq.ini
; Configure own URL, where `wkhtmltopdf` fetches pages and produces PDFs
BASE_URL_PRINT = http://url.my/
; WKHTMLTOPDF = /opt/wkhtmltox/bin/wkhtmltopdf
; DB_INIT = set names utf8
; auto | always | never
; DB_UPDATE = auto
; DB_INDEX_DATA = 1
; DB_INDEX_QFQ = 1
; Save this file as: <site path>/typo3conf/config.qfq.ini
DB_1_USER = <DBUSER>
DB_1_SERVER = <DBSERVER>
......@@ -438,116 +472,12 @@ Example: *typo3conf/config.qfq.ini*
; DB_2_PASSWORD = <DBPW>
; DB_2_NAME = <DB>
; <site path>/typo3conf/sql.log
; SQL_LOG = typo3conf/sql.log
; all|modify|error|none
; SQL_LOG_MODE = modify
; MAIL_LOG = typo3conf/mail.log
; SEND_E_MAIL_OPTIONS = "-o ... " - check http://caspian.dotconf.net/menu/Software/SendEmail
; [auto|yes|no][,download]. 'auto': if BE User is logged in the value will be replaced by 'yes', else 'no'. Additional choose 'download'.
; SHOW_DEBUG_INFO = auto
; REDIRECT_ALL_MAIL_TO = john.doe@example.com
; QFQ with own Bootstrap: 'container'. QFQ already nested in Bootstrap of mainpage: <empty>
; CSS_CLASS_QFQ_CONTAINER =
; Default background color, specified via CSS class
; CSS_CLASS_QFQ_FORM =
; CSS_CLASS_QFQ_FORM_PILL = qfq-color-grey-1
; CSS_CLASS_QFQ_FORM_BODY = qfq-color-grey-2
; yyyy-mm-dd, dd.mm.yyyy
; DATE_FORMAT = yyyy-mm-dd
; Access via {{TECHNICAL_CONTACT:Y}}
; TECHNICAL_CONTACT = john@doe.com
; validator.js: data-pattern-error="", data-required-error="", data-match-error="", data-error=""
; FORM_DATA_PATTERN_ERROR =
; FORM_DATA_REQUIRED_ERROR =
; FORM_DATA_MATCH_ERROR =
; FORM_DATA_ERROR =
; Default width of whole form
; FORM_BS_COLUMNS = 12
; Default size for Bootstrap Form Elements
; FORM_BS_LABEL_COLUMNS = 3
; FORM_BS_INPUT_COLUMNS = 6
; FORM_BS_NOTE_COLUMNS = 3
; EDIT_FORM_PAGE = form
; LDAP_1_RDN =
; LDAP_1_PASSWORD =
; ESCAPE_TYPE_DEFAULT=m
; SECURITY_VARS_HONEYPOT=email,username,password
; SECURITY_ATTACK_DELAY=5
; SECURITY_SHOW_MESSAGE=true
; SECURITY_GET_MAX_LENGTH=50
; GFX_EXTRA_BUTTON_INFO_INLINE = <img src="file.png">
; GFX_EXTRA_BUTTON_INFO_BELOW = <img src="file.png">
; EXTRA_BUTTON_INFO_POSITION = auto | below
; EXTRA_BUTTON_INFO_POSITION_CLASS = pull-right
; SAVE_BUTTON_TEXT =
; SAVE_BUTTON_TOOLTIP = save
; SAVE_BUTTON_CLASS = btn btn-default navbar-btn
; SAVE_BUTTON_GLYPH_ICON = glyphicon-ok
; CLOSE_BUTTON_TEXT =
; CLOSE_BUTTON_TOOLTIP = close
; CLOSE_BUTTON_CLASS = btn btn-default navbar-btn
; CLOSE_BUTTON_GLYPH_ICON = glyphicon-remove
; DELETE_BUTTON_TEXT =
; DELETE_BUTTON_TOOLTIP = delete
; DELETE_BUTTON_CLASS = btn btn-default navbar-btn
; DELETE_BUTTON_GLYPH_ICON = glyphicon-trash
; NEW_BUTTON_TEXT =
; NEW_BUTTON_TOOLTIP = new
; NEW_BUTTON_CLASS = btn btn-default navbar-btn
; NEW_BUTTON_GLYPH_ICON = glyphicon-plus
; RECORD_LOCK_TIMEOUT_SECONDS = 900
; Local Documentation (doc fits to installed version): typo3conf/ext/qfq/Documentation/html/Manual.html
; DOCUMENTATION_QFQ = https://docs.typo3.org/typo3cms/drafts/github/T3DocumentationStarter/Public-Info-053/Manual.html
; FILL_STORE_SYSTEM_BY_SQL_1 = "SELECT id AS _periodId FROM Period WHERE start<=NOW() ORDER BY start DESC LIMIT 1"
; Important: only define an error message, if QFQ should stop running in case of an SQL error or not exact 1 record.
; FILL_STORE_SYSTEM_BY_SQL_ERROR_MSG_1 = No current period found
; FORM_LANGUAGE_A_ID = E.g. FORM_LANGUAGE_A_ID = 1
; FORM_LANGUAGE_A_LABEL = E.g. FORM_LANGUAGE_A_ID = English
; FORM_LANGUAGE_B_ID = E.g. FORM_LANGUAGE_B_ID = 2
; FORM_LANGUAGE_B_LABEL = E.g. FORM_LANGUAGE_B_ID = French
; FORM_LANGUAGE_C_ID = E.g. FORM_LANGUAGE_C_ID = 3
; FORM_LANGUAGE_C_LABEL = E.g. FORM_LANGUAGE_C_ID = Spain
; FORM_LANGUAGE_D_ID = E.g. FORM_LANGUAGE_D_ID = 4
; FORM_LANGUAGE_D_LABEL = E.g. FORM_LANGUAGE_D_ID = Chinese
; Pressing the 'enter' key is equal to save and close
; enterAsSubmit = 1
; Attention: be sure that '<site path>/fileadmin/protected' is really locked down by a webserver directive.
; See https://docs.typo3.org/typo3cms/drafts/github/T3DocumentationStarter/Public-Info-053/Manual.html#secure-direct-fileaccess
;
; thumbnailDirSecure = fileadmin/protected/qfqThumbnail
; thumbnailDirPublic = typo3temp/qfqThumbnail
; cmdInkscape = inkscape
; cmdConvert = convert
After parsing the configuration, the following variables will be set automatically in STORE_SYSTEM:
......@@ -581,8 +511,8 @@ E.g. to setup a contact address and reuse the information inside your installati
Fill STORE_SYSTEM by SQL
^^^^^^^^^^^^^^^^^^^^^^^^
A specified SELECT statement in `config.qfq.ini`_ in variable `FILL_STORE_SYSTEM_BY_SQL_1` (or `FILL_STORE_SYSTEM_BY_SQL_2`,
or `FILL_STORE_SYSTEM_BY_SQL_3`) will be fired. The query should have 0 (nothing happens) or 1 row. All columns will be
A specified SELECT statement in `configuration`_ in variable `fillStoreSystemBySql1` (or `2`,
or `3`) will be fired. The query should have 0 (nothing happens) or 1 row. All columns will be
**added** to the existing STORE_SYSTEM. Existing variables will be overwritten. Be careful not to overwrite system values.
This option is useful to make generic custom values, saved in the database, accessible to all QFQ Report and Forms.
......@@ -591,8 +521,8 @@ Access such variables via `{{<varname>:Y}}`.
In case QFQ should stop working if a given query does not select exact one record (e.g. a missing period), define an
error message: ::
FILL_STORE_SYSTEM_BY_SQL_1 = "SELECT name FROM Person WHERE name='Doe'"
FILL_STORE_SYSTEM_BY_SQL_ERROR_MSG_1 = Too many or to few "Doe's" in our database
fillStoreSystemBySql1: SELECT name FROM Person WHERE name='Doe'
fillStoreSystemBySqlErrorMsg1: Too many or to few "Doe's" in our database
.. _`periodId`:
......@@ -604,18 +534,17 @@ This is
* a usecase, implemented via `fillStoreSystemBySql`_,
* a way to access `Period.id` with respect to the current period (the period itself is custom defined).
After a full QFQ installation, three things are prepared:
After a full QFQ installation:
* a table `Period` (extend / change it to your needs, fill them with your periods),
* one sample record in table `Period`,
* in `config.qfq.ini`_ the default definition of `FILL_STORE_SYSTEM_BY_SQL_1` will set the variable `periodId` during QFQ load.
Websites, delivering semester data, schoolyears schedules, or any other type or periods, often need an index to the
*current* period.
In `config.qfq.ini`: ::
In configuration_: ::
FILL_STORE_SYSTEM_BY_SQL_1 = 'SELECT id AS periodId FROM Period WHERE start<=NOW() ORDER BY start DESC LIMIT 1'
fillStoreSystemBySql1: SELECT id AS periodId FROM Period WHERE start<=NOW() ORDER BY start DESC LIMIT 1
a variable 'periodId' will automatically computed and filled in STORE SYSTEM. Access it via `{{periodId:Y0}}`.
To get the name and current period: ::
......@@ -646,7 +575,7 @@ To get access to the Typo3 installation, 'dbuser' should also have acces to the
Exception for SECURITY_GET_MAX_LENGTH
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If it is necessary to use a GET variable which exceeds SECURITY_GET_MAX_LENGTH limit, name the variable with '_<num>' at
If it is necessary to use a GET variable which exceeds `securityGetMaxLength` limit, name the variable with '_<num>' at
the end. E.g. `my_long_variable_130`. Such a variable has an allowed length of 130 chars. Access the variable as
usual with the variable name: `{{my_long_variable_130:C:...}}`.
......@@ -765,11 +694,11 @@ QFQ Keywords (Bodytext)
| <level>.altsql | If <level>.sql is empty, these query will be fired. No sub queries. |
| | Shown after `althead` |
+-------------------+---------------------------------------------------------------------------------+
| debugShowBodyText | If='1' and config.qfq.ini:*SHOW_DEBUG_INFO = yes*, shows a tooltip with bodytext|
| debugShowBodyText | If='1' and configuration_:*showDebugInfo: yes*, shows a tooltip with bodytext |
+-------------------+---------------------------------------------------------------------------------+
| sqlLog | Overwrites config.qfq.ini: `SQL_LOG`_ . Only affects `Report`, not `Form`. |
| sqlLog | Overwrites configuration_: `SQL_LOG`_ . Only affects `Report`, not `Form`. |
+-------------------+---------------------------------------------------------------------------------+
| sqlLogMode | Overwrites config.qfq.ini: `SQL_LOG_MODE`_ . Only affects `Report`, not `Form`. |
| sqlLogMode | Overwrites configuration_: `SQL_LOG_MODE`_ . Only affects `Report`, not `Form`. |
+-------------------+---------------------------------------------------------------------------------+
.. _`qfq-database`:
......@@ -833,26 +762,26 @@ A `Multi Database` setup is given, if 'QFQ system' is different from 'QFQ data'.
Data: Data1, Data2, ..., Data n
'''''''''''''''''''''''''''''''
Every database needs to be configured via `config.qfq.ini`_ with it's own `index`.
Every database needs to be configured via `configuration`_ with it's own `index`.
`QFQ data` might switch between different 'data'-databases. In `config.qfq.ini` one main `QFQ data` index will be specified
in `DB_INDEX_QFQ`. If specific forms or reports should use a different database than that, `dbIndex` might change
`DB_INDEX_DATA` temporarily.
`QFQ data` might switch between different 'data'-databases. In configuration_ one main `QFQ data` index will be specified
in `indexQfq`. If specific forms or reports should use a different database than that, `dbIndex` might change
`indexData` temporarily.
`dbIndex`: A `Report` (field `dbIndex`) as well as a `Form` (field `parameter`.`dbIndex`) can operate on a specific database.
A `Form` will:
* load the own definition from `DB_INDEX_QFQ` (table `Form` and `FormElement`),
* loads and save data from/in `DB_INDEX_DATA` (config.qfq.in) / `dbIndex` (form.parameter.dbIndex),
* load the own definition from `indexQfq` (table `Form` and `FormElement`),
* loads and save data from/in `indexData` (config.qfq.in) / `dbIndex` (form.parameter.dbIndex),
* retrieve extra information via `dbIndexExtra` - this is useful to offer information from a database and save them in a
different one.
The simplest setup, QFQ system & data in the same database, needs no DB_INDEX_QFQ / DB_INDEX_DATA definition in
`config.qfq.ini` or one or both of them set to '1'
The simplest setup, QFQ system & data in the same database, needs no `indexQfq / indexData` definition in
configuration_ or one or both of them set to '1'
To separate QFQ system and data, DB_INDEX_QFQ and DB_INDEX_DATA will have different indexes.
To separate QFQ system and data, indexQfq and indexData will have different indexes.
A Multi Database setup might be useful for:
......@@ -884,7 +813,7 @@ Note:
| C | appC3.edu | 'wAppC3' | <dbHostAppC3>, <dbnameC3>_t3 | <dbHostC3>, <dbnameSysC3>_db | <dbHostData>_db, <dbNameData>_db |
+---+----------------+--------------+-------------------------------+------------------------------+----------------------------------+
In `config.qfq.ini`_ mutliple database credentials can be prepared. Mandatory is at least one credential setup like
In config-qfq-ini_ mutliple database credentials can be prepared. Mandatory is at least one credential setup like
`DB_1_USER`, `DB_1_SERVER`, `DB_1_PASSWORD`, `DB_1_NAME`. The number '1' indicates the `dbIndex`. Increment the number
to specify further database credential setups.
......@@ -905,14 +834,14 @@ Debug
SQL Logging
-----------
File: `config.qfq.ini`_
configuration_
.. _SQL_LOG: