Commit 11bc2c26 authored by Carsten  Rose's avatar Carsten Rose
Browse files

Configuration will be read from T3 and config.qfq.ini

HelperFormElement.php, SessionCookie.php, Html2Pdf.php, Store.php, Constants.php: migrate to camel case on configuration variables.
Config.php: readConfig() reads now config.qfq.ini and T3 LocalConfiguration.php.
parent 082cf6ae
# cat=config/config; type=string; label=URL QFQ Documentation:Default is 'https://docs.typo3.org/typo3cms/drafts/github/T3DocumentationStarter/Public-Info-053/Manual.html'. Might be changed to a local repo. Every QFQ installation contains a local copy: <site path>/typo3conf/ext/qfq/Documentation/html/Manual.html (corresponds always to the QFQ version).
documentation = https://docs.typo3.org/typo3cms/drafts/github/T3DocumentationStarter/Public-Info-053/Manual.html
# cat=config/config; type=string; label=Fill store 'SYSTEM' by SQL:Default is empty. SQL query fired during QFQ load. The result have to be exactly one row. That row will be merged to store 'SYSTEM'. Retrieve values via '{{column:Y}}'. Example 'SELECT id AS _periodId FROM Period WHERE start<=NOW() ORDER BY start DESC LIMIT 1'
fillStoreSystemBySql1 =
# cat=config/config; type=string; label=Error message for SQL1:Default is empty. Error message in case the SQL does not return exact one row. Important: if a message is given, QFQ will stop and return the message. Without a message: QFQ run's as there would be no 'fillStoreSystemStoreBySql1'.
fillStoreSystemBySqlErrorMsg1 =
# cat=config/config; type=string; label=Fill store 'SYSTEM' by SQL:Default is empty. SQL query fired during QFQ load. The result have to be exactly one row. That row will be merged to store 'SYSTEM'. Retrieve values via '{{column:Y}}'. Example 'SELECT id AS _periodId FROM Period WHERE start<=NOW() ORDER BY start DESC LIMIT 1'
fillStoreSystemBySql2 =
# cat=config/config; type=string; label=Error message for SQL2:Default is empty. Error message in case the SQL does not return exact one row. Important: if a message is given, QFQ will stop and return the message. Without a message: QFQ run's as there would be no 'fillStoreSystemStoreBySql2'.
fillStoreSystemBySqlErrorMsg2 =
# cat=config/config; type=string; label=Fill store 'SYSTEM' by SQL:Default is empty. SQL query fired during QFQ load. The result have to be exactly one row. That row will be merged to store 'SYSTEM'. Retrieve values via '{{column:Y}}'. Example 'SELECT id AS _periodId FROM Period WHERE start<=NOW() ORDER BY start DESC LIMIT 1'
fillStoreSystemBySql3 =
# cat=config/config; type=string; label=Error message for SQL3:Default is empty. Error message in case the SQL does not return exact one row. Important: if a message is given, QFQ will stop and return the message. Without a message: QFQ run's as there would be no 'fillStoreSystemStoreBySql3'.
fillStoreSystemBySqlErrorMsg3 =
# cat=config/config; type=string; label=Thumbnail directory 'secure':Default is 'fileadmin/protected/qfqThumbnail'. Important: secure the directory (recursive) against direct access. Will be used by a special columnname '_thumbnail'.
thumbnailDirSecure = fileadmin/protected/qfqThumbnail
......@@ -41,21 +20,42 @@ cmdWkhtmltopdf = /opt/wkhtmltox/bin/wkhtmltopdf
baseUrl = https://your.base.url/including/sub/dir
# cat=config/email; type=string; label=Options for SendEMail:Default is empty. General options. Check: http://caspian.dotconf.net/menu/Software/SendEmail. E.g.: 'sendEMail=-o tls=yes'
sendEMail =
sendEMailOptions =
# cat=config/date; type=string; label=Date format:Default is 'yyyy-mm-dd'. Possible options: 'yyyy-mm-dd', 'dd.mm.yyyy'
dateFormat = yyyy-mm-dd
# cat=dynamic/config; type=string; label=Fill store 'SYSTEM' by SQL 1:Default is empty. SQL query fired during QFQ load. The result have to be exactly one row. That row will be merged to store 'SYSTEM'. Retrieve values via '{{column:Y}}'. Example 'SELECT id AS _periodId FROM Period WHERE start<=NOW() ORDER BY start DESC LIMIT 1'
fillStoreSystemBySql1 =
# cat=dynamic/config; type=string; label=Error message for SQL 1:Default is empty. Error message in case the SQL does not return exact one row. Important: if a message is given, QFQ will stop and return the message. Without a message: QFQ run's as there would be no 'fillStoreSystemStoreBySql1'.
fillStoreSystemBySqlErrorMsg1 =
# cat=dynamic/config; type=string; label=Fill store 'SYSTEM' by SQL 2:Default is empty. SQL query fired during QFQ load. The result have to be exactly one row. That row will be merged to store 'SYSTEM'. Retrieve values via '{{column:Y}}'. Example 'SELECT id AS _periodId FROM Period WHERE start<=NOW() ORDER BY start DESC LIMIT 1'
fillStoreSystemBySql2 =
# cat=dynamic/config; type=string; label=Error message for SQL 2:Default is empty. Error message in case the SQL does not return exact one row. Important: if a message is given, QFQ will stop and return the message. Without a message: QFQ run's as there would be no 'fillStoreSystemStoreBySql2'.
fillStoreSystemBySqlErrorMsg2 =
# cat=dynamic/config; type=string; label=Fill store 'SYSTEM' by SQL 3:Default is empty. SQL query fired during QFQ load. The result have to be exactly one row. That row will be merged to store 'SYSTEM'. Retrieve values via '{{column:Y}}'. Example 'SELECT id AS _periodId FROM Period WHERE start<=NOW() ORDER BY start DESC LIMIT 1'
fillStoreSystemBySql3 =
# cat=dynamic/config; type=string; label=Error message for SQL 3:Default is empty. Error message in case the SQL does not return exact one row. Important: if a message is given, QFQ will stop and return the message. Without a message: QFQ run's as there would be no 'fillStoreSystemStoreBySql3'.
fillStoreSystemBySqlErrorMsg3 =
# cat=debug/sql; type=string; label=SQL log mode:Default is 'modify'. A logfile of QFQ fired SQL statements will be written. Possible modes are 'all' - every statement will be logged (this might a lot). 'modify' - log only statements who change data. 'error' - log only DB errors. 'none' - log never.
sqlLogMode = modify
# cat=debug/sql; type=string; label=SQL log file:Default is '../../sql.log'. A logfile of fired SQL statements. Possible modes are 'all' - every statement will be logged (this might a lot) or 'modify' - log only statements who change data.
sqlLogFile = ../../sql.log
sqlLog = ../../sql.log
# cat=debug/mail; type=string; label=Mail log file:Default is '../../mail.log'. A logfile of sent mail. Possible modes are 'all' - every statement will be logged (this might a lot) or 'modify' - log only statements who change data.
mailLogMail = ../../mail.log
mailLog = ../../mail.log
# cat=debug/info; type=string; label=Show debug info:Default is 'auto'. Possible values: [yes|no|auto][,download]. For 'auto': If a BE User is logged in, a debug information will be shown on the FE.
showDebugInfo = auto
......@@ -73,12 +73,12 @@ indexData = 1
# cat=database/db; type=string; label=Database index for QFQ system:Default is '1'. Retrieve the current setting via {{_dbNameQfq:Y}}
indexQfq = 1
# cat=database/db1; type=string; label=Global SQL command:Default is 'set names utf8'. Optional. Might set specific settings.
# cat=database/db1; type=string; label=Init database:Default is 'set names utf8'. Optional. Might set specific settings.
init = set names utf8
# cat=security/security; type=string; label=Escape type default:Default is 'm'. All variables `{{...}}` get this escape class by default if none is specified.
# cat=security/security; type=string; label=Escape type default:Default is 'm'. QFQ Variables `{{...}}` without an 'escape type' get this as default.
escapeTypeDefault = m
# cat=security/security; type=string; label=List of honeypot input elements:Default is 'email,username,password'. If empty: no check. All named strings will rendered as hidden INPUT elements. If a form submit contains values for those inputs, the POST is treated as an attack.
......@@ -91,152 +91,157 @@ securityAttackDelay = 5
securityShowMessage = true
# cat=security/security; type=string; label='GET'-Parameter max length:Default is '50'. GET vars longer than 'x' character triggers an `attack-detected`.
securityGetMaxLength = true
securityGetMaxLength = 50
# cat=form/config; type=string; label=Dirty record lock timeout (seconds):Default is '900'. Time in seconds to lock a record, starting from the first modification. If lock expires, it is acquired again on the next modification.
# cat=form-config/config; type=string; label=Dirty record lock timeout (seconds):Default is '900'. Time in seconds to lock a record, starting from the first modification. If lock expires, it is acquired again on the next modification.
recordLockTimeoutSeconds = 900
# cat=form/config; type=string; label=Enter as submit:Default is '1'. '0'=off, '1'=Pressing 'enter' on an input, means 'save form and close' (exception: 'textarea' and 'editor' elements).
# cat=form-config/config; type=string; label=Enter as submit:Default is '1'. '0'=off, '1'=Pressing 'enter' on an input, means 'save form and close' (exception: 'textarea' and 'editor' elements).
enterAsSubmit = 1
# cat=form/config; type=string; label=Edit form page alias:Default is 'form'. T3 Pagealias to edit a form.
# cat=form-config/config; type=string; label=Edit form page alias:Default is 'form'. T3 Pagealias to edit a form.
editFormPage = form
# cat=form/config; type=string; label=Form data pattern error message:Default is 'pattern error'. Customizable error message used in validator.js. 'pattern' violation.
# cat=form-config/config; type=string; label=Form data pattern error message:Default is 'pattern error'. Customizable error message used in validator.js. 'pattern' violation.
formDataPatternError = pattern error
# cat=form/config; type=string; label=Form data required error message:Default is 'required error'. Customizable error message used in validator.js. 'required' violation.
# cat=form-config/config; type=string; label=Form data required error message:Default is 'required error'. Customizable error message used in validator.js. 'required' violation.
formDataRequiredError = required error
# cat=form/config; type=string; label=Form data match error message:Default is 'match error'. Customizable error message used in validator.js. 'match' violation.
# cat=form-config/config; type=string; label=Form data match error message:Default is 'match error'. Customizable error message used in validator.js. 'match' violation. Typically used to ensure that two given emails or passwords are identically.
formDataMatchError = match error
# cat=form/config; type=string; label=Form data error message:Default is 'error'. Customizable error message used in validator.js. generic violation.
# cat=form-config/config; type=string; label=Form data error message:Default is 'error'. Customizable error message used in validator.js. generic violation.
formDataError = error
# cat=form/layout; type=string; label=CSS class QFQ container:Default is empty. Empty, if the page content is already wrapped in a Bootstrap container. Else 'container'.
# cat=form-layout/layout; type=string; label=CSS class QFQ container:Default is empty. Empty, if the page content is already wrapped in a Bootstrap container. Else 'container'.
cssClassQfqContainer =
# cat=form/layout; type=string; label=CSS class QFQ form:Default is empty. If given wrap around QFQ-Form. E.g. 'qfq-color-base'.
# cat=form-layout/layout; type=string; label=CSS class QFQ form:Default is empty. If given wrap around QFQ-Form. E.g. 'qfq-color-base'.
cssClassQfqForm =
# cat=form/layout; type=string; label=CSS class of pills on the HTML form:Default is 'qfq-color-grey-1'. Wrap around title bar for pills: CSS Class, typically a background color.
# cat=form-layout/layout; type=string; label=CSS class of pills on the HTML form:Default is 'qfq-color-grey-1'. Wrap around title bar for pills: CSS Class, typically a background color.
cssClassQfqFormPill =
# cat=form/layout; type=string; label=CSS class of the body of the HTML form:Default is 'qfq-color-grey-2'. Wrap around FormElements: CSS Class, typically a background color.
# cat=form-layout/layout; type=string; label=CSS class of the body of the HTML form:Default is 'qfq-color-grey-2'. Wrap around FormElements: CSS Class, typically a background color.
cssClassQfqFormBody =
# cat=form/layout; type=string; label=Number of Bootstrap 'col-md-??' to wrap the 'whole form':Default is '12'. Bootstrap 12 column represents 100%.
# cat=form-layout/layout; type=string; label=Number of Bootstrap 'col-md-??' to wrap the 'whole form':Default is '12'. Bootstrap 12 column represents 100%.
formBsColumns = 12
# cat=form/layout; type=string; label=Number of Bootstrap 'col-md-??' to wrap the 'label' column:Default is '3'.
# cat=form-layout/layout; type=string; label=Number of Bootstrap 'col-md-??' to wrap the 'label' column:Default is '3'.
formBsLabelColumns = 3
# cat=form/layout; type=string; label=Number of Bootstrap 'col-md-??' to wrap the 'input' column:Default is '6'.
# cat=form-layout/layout; type=string; label=Number of Bootstrap 'col-md-??' to wrap the 'input' column:Default is '6'.
formBsInputColumns = 6
# cat=form/layout; type=string; label=Number of Bootstrap 'col-md-??' to wrap the 'note' column:Default is '3'.
# cat=form-layout/layout; type=string; label=Number of Bootstrap 'col-md-??' to wrap the 'note' column:Default is '3'.
formBsNoteColumns = 3
# cat=form/layout; type=string; label=ExtraButtonInfo symbol 'inline':Default is '<span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>'. The image appears inside of the formElement. If an `<img src="...">` tag is given, the PathFilename is relative to the Typo3 installation.
# cat=form-layout/layout; type=string; label=ExtraButtonInfo symbol 'inline':Default is '<span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>'. The image appears inside of the formElement. If an `<img src="...">` tag is given, the PathFilename is relative to the Typo3 installation.
extraButtonInfoInline = <span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>
# cat=form/layout; type=string; label=ExtraButtonInfo symbol 'below':Default is '<span class="glyphicon glyphicon-info-sign text-info" aria-hidden="true"></span>'. The Image appears below the formElement. If an `<img src="...">` tag is given, the PathFilename is relative to the Typo3 installation.
# cat=form-layout/layout; type=string; label=ExtraButtonInfo symbol 'below':Default is '<span class="glyphicon glyphicon-info-sign text-info" aria-hidden="true"></span>'. The Image appears below the formElement. If an `<img src="...">` tag is given, the PathFilename is relative to the Typo3 installation.
extraButtonInfoBelow = <span class="glyphicon glyphicon-info-sign text-info" aria-hidden="true"></span>
# cat=form/layout; type=string; label=ExtraButtonInfo position:Default is 'auto'. 'auto' - the image appears inline in formElement types `text`, `date`, `time` or `datetime` and below for all other. 'below' - the image appears always below the formelement.
# cat=form-layout/layout; type=string; label=ExtraButtonInfo position:Default is 'auto'. 'auto' - the image appears inline in formElement types `text`, `date`, `time` or `datetime` and below for all other. 'below' - the image appears always below the formelement.
extraButtonInfoPosition = auto
# cat=form/layout; type=string; label=ExtraButtonInfoClass:Default is empty. Applies only to FormElements with final 'extraButtonInfoPosition=below'. Typically used to right align the icon. E.g. 'pull-right'
# cat=form-layout/layout; type=string; label=ExtraButtonInfoClass:Default is empty. Applies only to FormElements with final 'extraButtonInfoPosition=below'. Typically used to right align the icon. E.g. 'pull-right'
extraButtonInfoClass =
# cat=formlanguage/layout; type=string; label=Language A id:Default is empty. ID (Typo3 parameter 'L') for language 'A'
# cat=form-language/config; type=string; label=Language A id:Default is empty. ID (Typo3 parameter 'L') for language 'A'
formLanguageAId =
# cat=formlanguage/layout; type=string; label=Language A label:Default is empty. Label shown in *Form editor*, on the 'basic' tab.
# cat=form-language/config; type=string; label=Language A label:Default is empty. Label shown in *Form editor*, on the 'basic' tab.
formLanguageALabel =
# cat=formlanguage/layout; type=string; label=Language B id:Default is empty. ID (Typo3 parameter 'L') for language 'A'
# cat=form-language/config; type=string; label=Language B id:Default is empty. ID (Typo3 parameter 'L') for language 'A'
formLanguageBId =
# cat=formlanguage/layout; type=string; label=Language B label:Default is empty. Label shown in *Form editor*, on the 'basic' tab.
# cat=form-language/config; type=string; label=Language B label:Default is empty. Label shown in *Form editor*, on the 'basic' tab.
formLanguageBLabel =
# cat=formlanguage/layout; type=string; label=Language C id:Default is empty. ID (Typo3 parameter 'L') for language 'A'
# cat=form-language/config; type=string; label=Language C id:Default is empty. ID (Typo3 parameter 'L') for language 'A'
formLanguageCId =
# cat=formlanguage/layout; type=string; label=Language C label:Default is empty. Label shown in *Form editor*, on the 'basic' tab.
# cat=form-language/config; type=string; label=Language C label:Default is empty. Label shown in *Form editor*, on the 'basic' tab.
formLanguageCLabel =
# cat=formlanguage/layout; type=string; label=Language D id:Default is empty. ID (Typo3 parameter 'L') for language 'A'
# cat=form-language/config; type=string; label=Language D id:Default is empty. ID (Typo3 parameter 'L') for language 'A'
formLanguageDId =
# cat=formlanguage/layout; type=string; label=Language D label:Default is empty. Label shown in *Form editor*, on the 'basic' tab.
# cat=form-language/config; type=string; label=Language D label:Default is empty. Label shown in *Form editor*, on the 'basic' tab.
formLanguageDLabel =
# cat=formbutton/layout; type=string; label=Save button 'text':Default empty - Text for the save button (top of the form).
# cat=form-button/layout; type=string; label=Save button 'text':Default empty - Text for the save button (top of the form).
saveButtonText =
# cat=formbutton/layout; type=string; label=Save button 'tooltip':Default 'Save'
# cat=form-button/layout; type=string; label=Save button 'tooltip':Default 'Save'
saveButtonTooltip = Save
# cat=formbutton/layout; type=string; label=Save button 'CSS Class':Default 'btn btn-default navbar-btn'
# cat=form-button/layout; type=string; label=Save button 'CSS Class':Default 'btn btn-default navbar-btn'
saveButtonClass = btn btn-default navbar-btn
# cat=form/layout; type=string; label=Save button 'CSS class on change':Default 'alert-info btn-info'. If the data in a form has been changed, the save button gets the given class.
# cat=form-button/layout; type=string; label=Save button 'CSS class on change':Default 'alert-info btn-info'. If the data in a form has been changed, the save button gets the given class.
saveButtonClassOnChange = alert-info btn-info
# cat=formbutton/layout; type=string; label=Save button 'glyph icon':Default 'glyphicon-ok'. Glyph icon shown on the save button.
# cat=form-button/layout; type=string; label=Save button 'glyph icon':Default 'glyphicon-ok'. Glyph icon shown on the save button.
saveButtonGlyphIcon = glyphicon-ok
# cat=formbutton/layout; type=string; label=Close button 'text':Default empty - Text for the close button (top of the form).
# cat=form-button/layout; type=string; label=Close button 'text':Default empty - Text for the close button (top of the form).
closeButtonText =
# cat=formbutton/layout; type=string; label=Close button 'tooltip':Default 'Close'
# cat=form-button/layout; type=string; label=Close button 'tooltip':Default 'Close'
closeButtonTooltip = Close
# cat=formbutton/layout; type=string; label=Close button 'CSS Class':Default 'btn btn-default navbar-btn'
# cat=form-button/layout; type=string; label=Close button 'CSS Class':Default 'btn btn-default navbar-btn'
closeButtonClass = btn btn-default navbar-btn
# cat=formbutton/layout; type=string; label=close button 'glyph icon':Default 'glyphicon-remove'. Glyph icon shown on the close button.
# cat=form-button/layout; type=string; label=close button 'glyph icon':Default 'glyphicon-remove'. Glyph icon shown on the close button.
closeButtonGlyphIcon = glyphicon-remove
# cat=formbutton/layout; type=string; label=Delete button 'text':Default empty - Text for the delete button (top of the form).
# cat=form-button/layout; type=string; label=Delete button 'text':Default empty - Text for the delete button (top of the form).
deleteButtonText =
# cat=formbutton/layout; type=string; label=Delete button 'tooltip':Default 'Delete'
# cat=form-button/layout; type=string; label=Delete button 'tooltip':Default 'Delete'
deleteButtonTooltip = Delete
# cat=formbutton/layout; type=string; label=Delete button 'CSS Class':Default 'btn btn-default navbar-btn'
# cat=form-button/layout; type=string; label=Delete button 'CSS Class':Default 'btn btn-default navbar-btn'
deleteButtonClass = btn btn-default navbar-btn
# cat=formbutton/layout; type=string; label=Delete button 'glyph icon':Default 'glyphicon-trash'. Glyph icon shown on the delete button.
# cat=form-button/layout; type=string; label=Delete button 'glyph icon':Default 'glyphicon-trash'. Glyph icon shown on the delete button.
deleteButtonGlyphIcon = glyphicon-trash
# cat=formbutton/layout; type=string; label=New button 'text':Default empty - Text for the new button (top of the form).
# cat=form-button/layout; type=string; label=New button 'text':Default empty - Text for the new button (top of the form).
newButtonText =
# cat=formbutton/layout; type=string; label=New button 'tooltip':Default 'New'
# cat=form-button/layout; type=string; label=New button 'tooltip':Default 'New'
newButtonTooltip = New
# cat=formbutton/layout; type=string; label=New button 'CSS Class':Default 'btn btn-default navbar-btn'
# cat=form-button/layout; type=string; label=New button 'CSS Class':Default 'btn btn-default navbar-btn'
newButtonClass = btn btn-default navbar-btn
# cat=formbutton/layout; type=string; label=New button 'glyph icon':Default 'glyphicon-plus'. Glyph icon shown on the new button.
# cat=form-button/layout; type=string; label=New button 'glyph icon':Default 'glyphicon-plus'. Glyph icon shown on the new button.
newButtonGlyphIcon = glyphicon-plus
......
......@@ -140,7 +140,7 @@ class AutoCron {
// If the URL does not start with 'http...': prefix with the site config.
if (substr($job[AUTOCRON_CONTENT], 0, 4) != 'http') {
// We need to prefix
$baseUrl = $this->store->getVar(SYSTEM_BASE_URL_PRINT, STORE_SYSTEM);
$baseUrl = $this->store->getVar(SYSTEM_BASE_URL, STORE_SYSTEM);
$job[AUTOCRON_CONTENT] = $baseUrl . $job[AUTOCRON_CONTENT];
}
......
......@@ -7,7 +7,8 @@
*/
const EXT_KEY = 'qfq';
const CONFIG_INI = "config.qfq.ini"; // QFQ configuration file: db access
const CONFIG_QFQ = "config.qfq.ini"; // QFQ configuration file: db access
const CONFIG_T3 = 'LocalConfiguration.php'; // T3 config file
const GFX_INFO = 'typo3conf/ext/qfq/Resources/Public/icons/note.gif';
const API_DIR = 'typo3conf/ext/qfq/qfq/api';
......@@ -384,24 +385,27 @@ const SYSTEM_DB_1_SERVER = 'DB_1_SERVER';
const SYSTEM_DB_1_PASSWORD = 'DB_1_PASSWORD';
const SYSTEM_DB_1_NAME = 'DB_1_NAME';
const SYSTEM_DB_INIT = 'DB_INIT';
const SYSTEM_DB_INIT = 'init';
const SYSTEM_DB_INDEX_DATA = "DB_INDEX_DATA";
const SYSTEM_DB_INDEX_QFQ = "DB_INDEX_QFQ";
const SYSTEM_DB_INDEX_DATA = "indexData";
const SYSTEM_DB_INDEX_QFQ = "indexQfq";
const SYSTEM_DB_INDEX_DATA_DEPRECATED = "DB_INDEX_DATA";
const SYSTEM_DB_INDEX_QFQ_DEPRECATED = "DB_INDEX_QFQ";
// Computed dynamically
const SYSTEM_DB_NAME_DATA = '_dbNameData';
const SYSTEM_DB_NAME_QFQ = '_dbNameQfq';
const SYSTEM_SQL_LOG = 'SQL_LOG'; // Logging to file
const SYSTEM_SQL_LOG = 'sqlLog'; // Logging to file
const SYSTEM_SQL_LOG_FILE = '../../sql.log';
const SYSTEM_SQL_LOG_MODE = 'SQL_LOG_MODE'; // Mode, which statements to log.
const SYSTEM_DATE_FORMAT = 'DATE_FORMAT';
const SYSTEM_REDIRECT_ALL_MAIL_TO = 'REDIRECT_ALL_MAIL_TO';
const SYSTEM_MAIL_LOG = 'MAIL_LOG';
const SYSTEM_SQL_LOG_MODE = 'sqlLogMode'; // Mode, which statements to log.
const SYSTEM_DATE_FORMAT = 'dateFormat';
const SYSTEM_REDIRECT_ALL_MAIL_TO = 'redirectAllMailTo';
const SYSTEM_MAIL_LOG = 'mailLog';
const SYSTEM_MAIL_LOG_FILE = '../../mail.log';
const SYSTEM_SHOW_DEBUG_INFO = 'SHOW_DEBUG_INFO';
const SYSTEM_SHOW_DEBUG_INFO = 'showDebugInfo';
const SYSTEM_SHOW_DEBUG_INFO_YES = 'yes';
const SYSTEM_SHOW_DEBUG_INFO_NO = 'no';
const SYSTEM_SHOW_DEBUG_INFO_AUTO = 'auto'; // Remains on value 'auto' as long as there is no BE User logged in. In other words: 'auto'='no'. #5031
......@@ -409,32 +413,29 @@ const SYSTEM_SHOW_DEBUG_INFO_DOWNLOAD = 'download';
const SYSTEM_CSS_LINK_CLASS_INTERNAL = 'CSS_LINK_CLASS_INTERNAL';
const SYSTEM_CSS_LINK_CLASS_EXTERNAL = 'CSS_LINK_CLASS_EXTERNAL';
const SYSTEM_CSS_CLASS_QFQ_CONTAINER = 'CSS_CLASS_QFQ_CONTAINER';
const SYSTEM_CSS_CLASS_QFQ_FORM = 'CSS_CLASS_QFQ_FORM';
const SYSTEM_CSS_CLASS_QFQ_FORM_PILL = 'CSS_CLASS_QFQ_FORM_PILL';
const SYSTEM_CSS_CLASS_QFQ_FORM_BODY = 'CSS_CLASS_QFQ_FORM_BODY';
const SYSTEM_CSS_CLASS_QFQ_CONTAINER = 'cssClassQfqContainer';
const SYSTEM_CSS_CLASS_QFQ_FORM = 'cssClassQfqForm';
const SYSTEM_CSS_CLASS_QFQ_FORM_PILL = 'cssClassQfqFormPill';
const SYSTEM_CSS_CLASS_QFQ_FORM_BODY = 'cssClassQfqFormBody';
// Textmessages used for Form validation.
const SYSTEM_FORM_DATA_PATTERN_ERROR = 'FORM_DATA_PATTERN_ERROR';
const SYSTEM_FORM_DATA_REQUIRED_ERROR = 'FORM_DATA_REQUIRED_ERROR';
const SYSTEM_FORM_DATA_MATCH_ERROR = 'FORM_DATA_MATCH_ERROR';
const SYSTEM_FORM_DATA_ERROR = 'FORM_DATA_ERROR';
const SYSTEM_FORM_BS_COLUMNS = 'FORM_BS_COLUMNS';
const SYSTEM_FORM_DATA_PATTERN_ERROR = 'formDataPatternError';
const SYSTEM_FORM_DATA_REQUIRED_ERROR = 'formDataRequiredError';
const SYSTEM_FORM_DATA_MATCH_ERROR = 'formDataMatchError';
const SYSTEM_FORM_DATA_ERROR = 'formDataError';
const SYSTEM_FORM_BS_LABEL_COLUMNS = 'FORM_BS_LABEL_COLUMNS';
const SYSTEM_FORM_BS_INPUT_COLUMNS = 'FORM_BS_INPUT_COLUMNS';
const SYSTEM_FORM_BS_NOTE_COLUMNS = 'FORM_BS_NOTE_COLUMNS';
const SYSTEM_FORM_BS_COLUMNS = 'formBsColumns';
const SYSTEM_FORM_BUTTON_ON_CHANGE_CLASS = 'FORM_BUTTON_ON_CHANGE_CLASS';
const SYSTEM_FORM_BS_LABEL_COLUMNS = 'formBsLabelColumns';
const SYSTEM_FORM_BS_INPUT_COLUMNS = 'formBsInputColumns';
const SYSTEM_FORM_BS_NOTE_COLUMNS = 'formBsNoteColumns';
const SYSTEM_BASE_URL_PRINT = 'BASE_URL_PRINT';
const SYSTEM_WKHTMLTOPDF = 'WKHTMLTOPDF';
const SYSTEM_BASE_URL = 'baseUrl';
const SYSTEM_SEND_E_MAIL = 'sendEmail';
const SYSTEM_SEND_E_MAIL_OPTIONS = 'SEND_E_MAIL_OPTIONS';
const SYSTEM_SEND_E_MAIL_OPTIONS = 'sendEMailOptions';
const SYSTEM_EDIT_FORM_PAGE = 'EDIT_FORM_PAGE';
const SYSTEM_EDIT_FORM_PAGE = 'editFormPage';
// computed automatically during runtime
const SYSTEM_PATH_EXT = 'EXT_PATH';
......@@ -443,74 +444,76 @@ const SYSTEM_SITE_PATH = 'SITE_PATH';
const SYSTEM_LDAP_1_RDN = 'LDAP_1_RDN'; // Credentials to access LDAP
const SYSTEM_LDAP_1_PASSWORD = 'LDAP_1_PASSWORD'; // Credentials to access LDAP
const SYSTEM_ESCAPE_TYPE_DEFAULT = 'ESCAPE_TYPE_DEFAULT';
const SYSTEM_SECURITY_VARS_HONEYPOT = 'SECURITY_VARS_HONEYPOT'; // Fake variables
const SYSTEM_SECURITY_ATTACK_DELAY = 'SECURITY_ATTACK_DELAY'; // Detected attack causes x seconds delay
const SYSTEM_ESCAPE_TYPE_DEFAULT = 'escapeTypeDefault';
const SYSTEM_SECURITY_VARS_HONEYPOT = 'securityVarsHoneypot'; // Fake variables
const SYSTEM_SECURITY_ATTACK_DELAY = 'securityAttackDelay'; // Detected attack causes x seconds delay
const SYSTEM_SECURITY_ATTACK_DELAY_DEFAULT = 5; // Detected attack causes x seconds delay
const SYSTEM_SECURITY_SHOW_MESSAGE = 'SECURITY_SHOW_MESSAGE'; // Detected attack shows an error message
const SYSTEM_SECURITY_GET_MAX_LENGTH = 'SECURITY_GET_MAX_LENGTH'; // Trim every character (before conversion) to SECURITY_GET_MAX_LENGTH chars;
const SYSTEM_SECURITY_SHOW_MESSAGE = 'securityShowMessage'; // Detected attack shows an error message
const SYSTEM_SECURITY_GET_MAX_LENGTH = 'securityGetMaxLength'; // Trim every character (before conversion) to SECURITY_GET_MAX_LENGTH chars;
const SYSTEM_SECURITY_GET_MAX_LENGTH_DEFAULT = 50; // Default max length for get variables
const GET_EXTRA_LENGTH_TOKEN = '_';
const SYSTEM_GFX_EXTRA_BUTTON_INFO_INLINE = 'GFX_EXTRA_BUTTON_INFO_INLINE';
const SYSTEM_GFX_EXTRA_BUTTON_INFO_BELOW = 'GFX_EXTRA_BUTTON_INFO_BELOW';
const SYSTEM_EXTRA_BUTTON_INFO_POSITION = 'EXTRA_BUTTON_INFO_POSITION';
const SYSTEM_EXTRA_BUTTON_INFO_INLINE = 'extraButtonInfoInline';
const SYSTEM_EXTRA_BUTTON_INFO_BELOW = 'extraButtonInfoBelow';
const SYSTEM_EXTRA_BUTTON_INFO_POSITION = 'extraButtonInfoPosition';
const SYSTEM_EXTRA_BUTTON_INFO_POSITION_AUTO = 'auto';
const SYSTEM_EXTRA_BUTTON_INFO_POSITION_BELOW = 'below';
const SYSTEM_EXTRA_BUTTON_INFO_CLASS = 'EXTRA_BUTTON_INFO_CLASS';
const SYSTEM_SAVE_BUTTON_TEXT = 'SAVE_BUTTON_TEXT';
const SYSTEM_SAVE_BUTTON_TOOLTIP = 'SAVE_BUTTON_TOOLTIP';
const SYSTEM_SAVE_BUTTON_CLASS = 'SAVE_BUTTON_CLASS';
const SYSTEM_SAVE_BUTTON_GLYPH_ICON = 'SAVE_BUTTON_GLYPH_ICON';
const SYSTEM_CLOSE_BUTTON_TEXT = 'CLOSE_BUTTON_TEXT';
const SYSTEM_CLOSE_BUTTON_TOOLTIP = 'CLOSE_BUTTON_TOOLTIP';
const SYSTEM_CLOSE_BUTTON_CLASS = 'CLOSE_BUTTON_CLASS';
const SYSTEM_CLOSE_BUTTON_GLYPH_ICON = 'CLOSE_BUTTON_GLYPH_ICON';
const SYSTEM_DELETE_BUTTON_TEXT = 'DELETE_BUTTON_TEXT';
const SYSTEM_DELETE_BUTTON_TOOLTIP = 'DELETE_BUTTON_TOOLTIP';
const SYSTEM_DELETE_BUTTON_CLASS = 'DELETE_BUTTON_CLASS';
const SYSTEM_DELETE_BUTTON_GLYPH_ICON = 'DELETE_BUTTON_GLYPH_ICON';
const SYSTEM_NEW_BUTTON_TEXT = 'NEW_BUTTON_TEXT';
const SYSTEM_NEW_BUTTON_TOOLTIP = 'NEW_BUTTON_TOOLTIP';
const SYSTEM_NEW_BUTTON_CLASS = 'NEW_BUTTON_CLASS';
const SYSTEM_NEW_BUTTON_GLYPH_ICON = 'NEW_BUTTON_GLYPH_ICON';
const SYSTEM_DB_UPDATE = 'DB_UPDATE';
const SYSTEM_EXTRA_BUTTON_INFO_CLASS = 'extraButtonInfoClass';
const SYSTEM_SAVE_BUTTON_TEXT = 'saveButtonText';
const SYSTEM_SAVE_BUTTON_TOOLTIP = 'saveButtonTooltip';
const SYSTEM_SAVE_BUTTON_CLASS = 'saveButtonClass';
const SYSTEM_SAVE_BUTTON_GLYPH_ICON = 'saveButtonGlyphIcon';
const SYSTEM_SAVE_BUTTON_CLASS_ON_CHANGE = 'saveButtonClassOnChange';
const SYSTEM_CLOSE_BUTTON_TEXT = 'closeButtonText';
const SYSTEM_CLOSE_BUTTON_TOOLTIP = 'closeButtonTooltip';
const SYSTEM_CLOSE_BUTTON_CLASS = 'closeButtonClass';
const SYSTEM_CLOSE_BUTTON_GLYPH_ICON = 'closeButtonGlyphIcon';
const SYSTEM_DELETE_BUTTON_TEXT = 'deleteButtonText';
const SYSTEM_DELETE_BUTTON_TOOLTIP = 'deleteButtonTooltip';
const SYSTEM_DELETE_BUTTON_CLASS = 'deleteButtonClass';
const SYSTEM_DELETE_BUTTON_GLYPH_ICON = 'deleteButtonGlyphIcon';
const SYSTEM_NEW_BUTTON_TEXT = 'newButtonText';
const SYSTEM_NEW_BUTTON_TOOLTIP = 'newButtonTooltip';
const SYSTEM_NEW_BUTTON_CLASS = 'newButtonClass';
const SYSTEM_NEW_BUTTON_GLYPH_ICON = 'newButtonGlyphIcon';
const SYSTEM_DB_UPDATE = 'update';
const SYSTEM_DB_UPDATE_ALWAYS = 'always';
const SYSTEM_DB_UPDATE_NEVER = 'never';
const SYSTEM_DB_UPDATE_AUTO = 'auto';
const SYSTEM_RECORD_LOCK_TIMEOUT_SECONDS = 'RECORD_LOCK_TIMEOUT_SECONDS';
const SYSTEM_RECORD_LOCK_TIMEOUT_SECONDS = 'recordLockTimeoutSeconds';
const SYSTEM_RECORD_LOCK_TIMEOUT_SECONDS_DEFAULT = 900; // 15 mins
// Deprecated, replaced by SYSTEM_FILL_STORE_SYSTEM_BY_SQ
const SYSTEM_VAR_ADD_BY_SQL = 'VAR_ADD_BY_SQL'; // since 1.12.17
//const SYSTEM_VAR_ADD_BY_SQL_DEFAULT = 'SELECT id AS periodId FROM Period WHERE start<=NOW() ORDER BY start DESC LIMIT 1';
const SYSTEM_FILL_STORE_SYSTEM_BY_SQL = 'FILL_STORE_SYSTEM_BY_SQL';
const SYSTEM_FILL_STORE_SYSTEM_ERROR_MSG = 'FILL_STORE_SYSTEM_ERROR_MSG';
const SYSTEM_FILL_STORE_SYSTEM_BY_SQL = 'fillStoreSystemBySql';
const SYSTEM_FILL_STORE_SYSTEM_ERROR_MSG = 'fillStoreSystemBySqlErrorMsg';
const SYSTEM_FORM_LANGUAGE = 'FORM_LANGUAGE';
const SYSTEM_FORM_LANGUAGE = 'formLanguage';
const SYSTEM_FORM_LANGUAGE_A_ID = 'FORM_LANGUAGE_A_ID';
const SYSTEM_FORM_LANGUAGE_A_LABEL = 'FORM_LANGUAGE_A_LABEL';
const SYSTEM_FORM_LANGUAGE_A_ID = 'formLanguageAId';
const SYSTEM_FORM_LANGUAGE_A_LABEL = 'formLanguageALabel';
const SYSTEM_FORM_LANGUAGE_B_ID = 'FORM_LANGUAGE_B_ID';
const SYSTEM_FORM_LANGUAGE_B_LABEL = 'FORM_LANGUAGE_B_LABEL';
const SYSTEM_FORM_LANGUAGE_B_ID = 'formLanguageBId';
const SYSTEM_FORM_LANGUAGE_B_LABEL = 'formLanguageBLabel';
const SYSTEM_FORM_LANGUAGE_C_ID = 'FORM_LANGUAGE_C_ID';
const SYSTEM_FORM_LANGUAGE_C_LABEL = 'FORM_LANGUAGE_C_LABEL';
const SYSTEM_FORM_LANGUAGE_C_ID = 'formLanguageCId';
const SYSTEM_FORM_LANGUAGE_C_LABEL = 'formLanguageCLabel';
const SYSTEM_FORM_LANGUAGE_D_ID = 'FORM_LANGUAGE_D_ID';
const SYSTEM_FORM_LANGUAGE_D_LABEL = 'FORM_LANGUAGE_D_LABEL';
const SYSTEM_FORM_LANGUAGE_D_ID = 'formLanguageDId';
const SYSTEM_FORM_LANGUAGE_D_LABEL = 'formLanguageDLabel';
const SYSTEM_ENTER_AS_SUBMIT = 'enterAsSubmit';
const SYSTEM_CMD_WKHTMLTOPDF = 'cmdWkhtmltopdf';
// Thumbnail
const SYSTEM_CMD_INKSCAPE = 'cmdInkscape';
const SYSTEM_CMD_CONVERT = 'cmdConvert';
......@@ -519,7 +522,7 @@ const SYSTEM_THUMBNAIL_DIR_SECURE_DEFAULT = 'fileadmin/protected/qfqThumbnail';
const SYSTEM_THUMBNAIL_DIR_PUBLIC = 'thumbnailDirPublic';
const SYSTEM_THUMBNAIL_DIR_PUBLIC_DEFAULT = 'typo3temp/qfqThumbnail';
const DOCUMENTATION_QFQ = 'DOCUMENTATION_QFQ';
const DOCUMENTATION_QFQ = 'documentation';
const DOCUMENTATION_QFQ_URL = 'https://docs.typo3.org/typo3cms/drafts/github/T3DocumentationStarter/Public-Info-053/Manual.html';
......@@ -772,7 +775,7 @@ const F_DIRTY_MODE = 'dirtyMode';
const F_SUBMIT_BUTTON_TEXT = 'submitButtonText';
const F_BUTTON_ON_CHANGE_CLASS = 'buttonOnChangeClass';
const F_ESCAPE_TYPE_DEFAULT = 'escapeTypeDefault';
const F_ESCAPE_TYPE_DEFAULT = SYSTEM_ESCAPE_TYPE_DEFAULT;
const F_CLASS = 'class';
const F_CLASS_PILL = 'classPill';
......@@ -826,25 +829,25 @@ const F_MODE_GLOBAL = 'formModeGlobal';
const F_SAVE_BUTTON_ACTIVE = 'saveButtonActive';
const F_SAVE_BUTTON_TEXT = 'saveButtonText';
const F_SAVE_BUTTON_TOOLTIP = 'saveButtonTooltip';
const F_SAVE_BUTTON_CLASS = 'saveButtonClass';
const F_SAVE_BUTTON_GLYPH_ICON = 'saveButtonGlyphIcon';
const F_SAVE_BUTTON_TEXT = SYSTEM_SAVE_BUTTON_TEXT;
const F_SAVE_BUTTON_TOOLTIP = SYSTEM_SAVE_BUTTON_TOOLTIP;
const F_SAVE_BUTTON_CLASS = SYSTEM_SAVE_BUTTON_CLASS;
const F_SAVE_BUTTON_GLYPH_ICON = SYSTEM_SAVE_BUTTON_GLYPH_ICON;
const F_CLOSE_BUTTON_TEXT = 'closeButtonText';
const F_CLOSE_BUTTON_TOOLTIP = 'closeButtonTooltip';
const F_CLOSE_BUTTON_CLASS = 'closeButtonClass';
const F_CLOSE_BUTTON_GLYPH_ICON = 'closeButtonGlyphIcon';
const F_CLOSE_BUTTON_TEXT = SYSTEM_CLOSE_BUTTON_TEXT;
const F_CLOSE_BUTTON_TOOLTIP = SYSTEM_CLOSE_BUTTON_TOOLTIP;
const F_CLOSE_BUTTON_CLASS = SYSTEM_CLOSE_BUTTON_CLASS;
const F_CLOSE_BUTTON_GLYPH_ICON = SYSTEM_CLOSE_BUTTON_GLYPH_ICON;
const F_DELETE_BUTTON_TEXT = 'deleteButtonText';
const F_DELETE_BUTTON_TOOLTIP = 'deleteButtonTooltip';
const F_DELETE_BUTTON_CLASS = 'deleteButtonClass';
const F_DELETE_BUTTON_GLYPH_ICON = 'deleteButtonGlyphIcon';
const F_DELETE_BUTTON_TEXT = SYSTEM_DELETE_BUTTON_TEXT;
const F_DELETE_BUTTON_TOOLTIP = SYSTEM_DELETE_BUTTON_TOOLTIP;
const F_DELETE_BUTTON_CLASS = SYSTEM_DELETE_BUTTON_CLASS;
const F_DELETE_BUTTON_GLYPH_ICON = SYSTEM_DELETE_BUTTON_GLYPH_ICON;
const F_NEW_BUTTON_TEXT = 'newButtonText';
const F_NEW_BUTTON_TOOLTIP = 'newButtonTooltip';
const F_NEW_BUTTON_CLASS = 'newButtonClass';
const F_NEW_BUTTON_GLYPH_ICON = 'newButtonGlyphIcon';
const F_NEW_BUTTON_TEXT = SYSTEM_NEW_BUTTON_TEXT;
const F_NEW_BUTTON_TOOLTIP = SYSTEM_NEW_BUTTON_TOOLTIP;
const F_NEW_BUTTON_CLASS = SYSTEM_NEW_BUTTON_CLASS;
const F_NEW_BUTTON_GLYPH_ICON = SYSTEM_NEW_BUTTON_GLYPH_ICON;
const F_ENTER_AS_SUBMIT = SYSTEM_ENTER_AS_SUBMIT;
......@@ -976,7 +979,7 @@ const FE_CHARACTER_COUNT_WRAP = 'characterCountWrap';
const FE_INPUT_EXTRA_BUTTON_LOCK = 'extraButtonLock';
const FE_INPUT_EXTRA_BUTTON_PASSWORD = 'extraButtonPassword';
const FE_INPUT_EXTRA_BUTTON_INFO = 'extraButtonInfo';
const FE_INPUT_EXTRA_BUTTON_INFO_CLASS = 'extraButtonInfoClass';
const FE_INPUT_EXTRA_BUTTON_INFO_CLASS = SYSTEM_EXTRA_BUTTON_INFO_CLASS;
const FE_INPUT_AUTOCOMPLETE = 'autocomplete';
const FE_TMP_EXTRA_BUTTON_HTML = '_extraButtonHtml'; // will be filled on the fly during building extrabutton
const FE_CHECKBOX_CHECKED = 'checked';
......
......@@ -249,7 +249,7 @@ class QuickFormQuery {
}
foreach (['A', 'B', 'C', 'D'] as $key) {
$languageIdx = SYSTEM_FORM_LANGUAGE . "_$key" . "_ID";
$languageIdx = SYSTEM_FORM_LANGUAGE . "$key" . "Id";
if ($this->store->getVar($languageIdx, STORE_SYSTEM) == $typo3PageLanguage) {
$this->store->setVar(SYSTEM_PARAMETER_LANGUAGE_FIELD_NAME, 'parameterLanguage' . $key, STORE_SYSTEM);
break;
......
......@@ -306,8 +306,8 @@ class HelperFormElement {
$store = Store::getInstance();
$infoSymbolInside = $store->getVar(SYSTEM_GFX_EXTRA_BUTTON_INFO_INLINE, STORE_SYSTEM);
$infoSymbolOutside = $store->getVar(SYSTEM_GFX_EXTRA_BUTTON_INFO_BELOW, STORE_SYSTEM);
$infoSymbolInside = $store->getVar(SYSTEM_EXTRA_BUTTON_INFO_INLINE, STORE_SYSTEM);
$infoSymbolOutside = $store->getVar(SYSTEM_EXTRA_BUTTON_INFO_BELOW, STORE_SYSTEM);
if (SYSTEM_EXTRA_BUTTON_INFO_POSITION_BELOW == $store->getVar(SYSTEM_EXTRA_BUTTON_INFO_POSITION, STORE_SYSTEM)) {
$showInline = false;
......
......@@ -34,7 +34,7 @@ class SessionCookie {
$this->cleanTempFiles = !Support::findInSet(SYSTEM_SHOW_DEBUG_INFO_DOWNLOAD, $config[SYSTEM_SHOW_DEBUG_INFO]);
$urlParts = parse_url($config[SYSTEM_BASE_URL_PRINT]);
$urlParts = parse_url($config[SYSTEM_BASE_URL]);
$domain = $urlParts['host'];