Page content record > bodytext const STORE_VAR = "V"; // Generic Vars const STORE_ZERO = "0"; // value: 0, might helpfull if variable is empty but used in an SQL statement, which might produce a SQL error otherwise if substituted with an empty string const STORE_EMPTY = "E"; // value: '', might helpfull if variable is not defined and should result in an empty string instead of {{...}} (cause not replaced) const STORE_SYSTEM = "Y"; // various system values like db connection credentials const STORE_EXTRA = 'X'; // Persistent Store: contains arrays! Not Usefull for user. Used by system. const STORE_ADDITIONAL_FORM_ELEMENTS = 'A'; // Internal Store to collect FormElements. Typically for 'hidden' elements of radio and checkbox. Helps render those elements at the end of the whole form rendering. const STORE_LDAP = 'L'; const STORE_USE_DEFAULT = "FSRVD"; // // Store: Definitions / Members // // URL variables const CLIENT_FORM = 'form'; const CLIENT_SIP = 's'; const CLIENT_RECORD_ID = 'r'; const CLIENT_KEY_SEM_ID = 'keySemId'; const CLIENT_KEY_SEM_ID_USER = 'keySemIdUser'; const CLIENT_PAGE_ID = 'id'; const CLIENT_PAGE_TYPE = 'type'; const CLIENT_PAGE_LANGUAGE = 'L'; const CLIENT_UPLOAD_FE_NAME = 'name'; const CLIENT_SIP_FOR_FORM = '_sipForForm'; const CLIENT_FE_NAME = '_feName'; const CLIENT_TYPO3VARS = '_sipForTypo3Vars'; // ALL $_SERVER variables: http://php.net/manual/en/reserved.variables.server.php // The following exist and might be the most used ones. const CLIENT_SCRIPT_URL = 'SCRIPT_URL'; const CLIENT_SCRIPT_URI = 'SCRIPT_URI'; const CLIENT_HTTP_HOST = 'HTTP_HOST'; const CLIENT_HTTP_USER_AGENT = 'HTTP_USER_AGENT'; const CLIENT_SERVER_NAME = 'SERVER_NAME'; const CLIENT_SERVER_ADDRESS = 'SERVER_ADDR'; const CLIENT_SERVER_PORT = 'SERVER_PORT'; const CLIENT_REMOTE_ADDRESS = 'REMOTE_ADDR'; const CLIENT_REQUEST_SCHEME = 'REQUEST_SCHEME'; const CLIENT_SCRIPT_FILENAME = 'SCRIPT_FILENAME'; const CLIENT_QUERY_STRING = 'QUERY_STRING'; const CLIENT_REQUEST_URI = 'REQUEST_URI'; const CLIENT_SCRIPT_NAME = 'SCRIPT_NAME'; const CLIENT_PHP_SELF = 'PHP_SELF'; // _COOKIE const CLIENT_COOKIE_QFQ = 'cookieQfq'; // T3 Bodytext Keywords const TYPO3_FORM = CLIENT_FORM; const TYPO3_RECORD_ID = CLIENT_RECORD_ID; const TYPO3_BE_USER_LOGGED_IN = 'beUser'; // 'yes' | 'no' const TYPO3_FE_USER = 'feUser'; const TYPO3_FE_USER_UID = 'feUserUid'; const TYPO3_FE_USER_GROUP = 'feUserGroup'; const TYPO3_TT_CONTENT_UID = 'ttcontentUid'; const TYPO3_PAGE_ID = 'pageId'; const TYPO3_PAGE_ALIAS = 'pageAlias'; const TYPO3_PAGE_TITLE = 'pageTitle'; const TYPO3_PAGE_TYPE = 'pageType'; const TYPO3_PAGE_LANGUAGE = 'pageLanguage'; const TYPO3_DEBUG_SHOW_BODY_TEXT = 'debugShowBodyText'; const TYPO3_SQL_LOG = 'sqlLog'; const TYPO3_SQL_LOG_MODE = 'sqlLogMode'; // System const SYSTEM_DB_USER = 'DB_USER'; const SYSTEM_DB_SERVER = 'DB_SERVER'; const SYSTEM_DB_PASSWORD = 'DB_PASSWORD'; const SYSTEM_DB_NAME = 'DB_NAME'; const SYSTEM_DB_NAME_TEST = 'DB_NAME_TEST'; const SYSTEM_DB_INIT = 'DB_INIT'; const SYSTEM_SQL_LOG = 'SQL_LOG'; // 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_SHOW_DEBUG_INFO = 'SHOW_DEBUG_INFO'; const SYSTEM_SHOW_DEBUG_INFO_YES = 'yes'; const SYSTEM_SHOW_DEBUG_INFO_NO = 'no'; const SYSTEM_SHOW_DEBUG_INFO_AUTO = 'auto'; 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'; // 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_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_BUTTON_ON_CHANGE_CLASS = 'FORM_BUTTON_ON_CHANGE_CLASS'; const SYSTEM_BASE_URL_PRINT = 'BASE_URL_PRINT'; const SYSTEM_WKHTMLTOPDF = 'WKHTMLTOPDF'; const SYSTEM_EDIT_FORM_PAGE = 'EDIT_FORM_PAGE'; // computed automatically during runtime const SYSTEM_PATH_EXT = 'EXT_PATH'; 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_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_GET_MAX_LENGTH_DEFAULT = 50; // Default max length for get variables const SYSTEM_SECURITY_ABSOLUTE_GET_MAX_LENGTH = 255; // 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_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_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_DEFAULT = 900; // 15 mins const SYSTEM_VAR_ADD_BY_SQL = 'VAR_ADD_BY_SQL'; const SYSTEM_VAR_ADD_BY_SQL_DEFAULT = 'SELECT id AS periodId FROM Period WHERE start<=NOW() ORDER BY start DESC LIMIT 1'; const DOCUMENTATION_QFQ = 'DOCUMENTATION_QFQ'; const DOCUMENTATION_QFQ_URL = 'https://docs.typo3.org/typo3cms/drafts/github/T3DocumentationStarter/Public-Info-053/Manual.html'; // Not stored in config.qfq.ini, but used in STORE_SYSTEM // Information for: Log / Debug / Exception const SYSTEM_SQL_RAW = 'sqlRaw'; // Type: SANITIZE_ALL / String. SQL Query (before substitute). Useful for error reporting. const SYSTEM_SQL_FINAL = 'sqlFinal'; // Type: SANITIZE_ALL / String. SQL Query (after substitute). Useful for error reporting. const SYSTEM_SQL_COUNT = 'sqlCount'; // Type: SANITIZE_DIGIT / Int.Number of rows in SQL ResultSet. Useful for error reporting. const SYSTEM_SQL_PARAM_ARRAY = 'sqlParamArray'; // Type: SANITIZE_ALL / Parameter of prepared SQL Statement. Useful for error reporting. const SYSTEM_FORM = CLIENT_FORM; // ' / ' const SYSTEM_FORM_ELEMENT = 'formElement'; // ' / ' const SYSTEM_FORM_ELEMENT_COLUMN = 'formElementColumn'; // '' const SYSTEM_FORM_ELEMENT_MESSAGE = 'formElementMessage'; // '' const SYSTEM_REPORT_COLUMN_INDEX = 'reportColumnIndex'; // Keyname of SQL-column processed at the moment. const SYSTEM_REPORT_COLUMN_NAME = 'reportColumnName'; // Keyname of SQL-column processed at the moment. const SYSTEM_REPORT_COLUMN_VALUE = 'reportColumnValue'; // Keyname of SQL-column processed at the moment. const SYSTEM_REPORT_FULL_LEVEL = 'reportFullLevel'; // Keyname of SQL-column processed at the moment. const SYSTEM_DOWNLOAD_POPUP = 'hasDownloadPopup'; // Marker which is set to 'true' if there is at least one Download Link rendered const DOWNLOAD_POPUP_REQUEST = 'true'; const DOWNLOAD_POPUP_REPLACE_TEXT = '#downloadPopupReplaceText#'; const DOWNLOAD_POPUP_REPLACE_TITLE = '#downloadPopupReplaceTitle#'; const CSS_REQUIRED = 'required-field'; // die folgenden Elemente sind vermutlich nicht noetig, wenn Store Klassen gloable Vars benutzt. //const SYSTEM_FORM_DEF = 'formDefinition'; // Type: SANITIZE_ALNUMX / AssocArray. Final form to process. Useful for error reporting. //const SYSTEM_FORM_ELEMENT_DEF = 'formElementDefinition'; // Type: SANITIZE_ALL / AssocArray. Formelement which are processed at the moment. Useful for error reporting. //const SYSTEM_FORM_ELEMENT_FIELD = 'formElementField'; // Type: SANITIZE_ALNUMX / String. Fieldname of processed Formelement. Useful for error reporting. const MODE_HTML = 'html'; const MODE_JSON = 'json'; const MSG_HEADER = 'header'; const MSG_CONTENT = 'content'; const MSG_ERROR_CODE = 'errorCode'; const SIP_TOKEN_LENGTH = 13; // length of string returned by `uniqid()` const SIP_SIP = CLIENT_SIP; // s const SIP_RECORD_ID = CLIENT_RECORD_ID; // r const SIP_TARGET_URL = '_targetUrl'; // URL where to jump after delete() const SIP_MODE_ANSWER = '_modeAnswer'; // Mode how delete() will answer to client: MODE_HTML, MODE_JSON const SIP_FORM = CLIENT_FORM; const SIP_TABLE = 'table'; // delete a record from 'table' const SIP_URLPARAM = 'urlparam'; const SIP_MAKE_URLPARAM_UNIQ = '_makeUrlParamUniq'; // SIPs for 'new records' needs to be uniq per TAB! Therefore add a uniq parameter const SIP_DOWNLOAD_PARAMETER = '_b64_download'; // Parametername, filled in SIP, to hold all download element parameter. const SIP_PREFIX_BASE64 = '_b64'; const SIP_EXCLUDE_ID = 'id'; const SIP_EXCLUDE_TYPE = 'type'; const SIP_EXCLUDE_L = 'L'; const SIP_EXCLUDE_XDEBUG_SESSION_START = 'XDEBUG_SESSION_START'; // FURTHER: all extracted params from 'urlparam const ACTION_KEYWORD_SLAVE_ID = 'slaveId'; const VAR_RANDOM = 'random'; const VAR_FILE_DESTINATION = 'fileDestination'; const VAR_SLAVE_ID = ACTION_KEYWORD_SLAVE_ID; const VAR_FILENAME = 'filename'; // Original filename of an uploaded file. // PHP class DB can operate in these modes const MODE_DB_REGULAR = 'regular'; const MODE_DB_NO_LOG = 'noLog'; // PHP class Typeahead const TYPEAHEAD_API_QUERY = 'query'; // Name of parameter in API call of typeahead.php?query=...&s=... - See also FE_TYPE_AHEAD_SQL const TYPEAHEAD_API_PREFETCH = 'prefetch'; // Name of parameter in API call of typeahead.php?prefetch=...&s=... - See also FE_TYPE_AHEAD_SQL const TYPEAHEAD_API_SIP = 'sip'; // Name of parameter in API call of typeahead.php?query=...&s=... const TYPEAHEAD_DEFAULT_LIMIT = 20; const TYPEAHEAD_SQL_KEY_NAME = 'id'; const DEFAULT_LDAP_TIME_LIMIT = 3; const SINGLE_TICK = "'"; const DOUBLE_TICK = '"'; // TOKEN evaluate const TOKEN_ESCAPE_CONFIG = 'c'; const TOKEN_ESCAPE_SINGLE_TICK = 's'; const TOKEN_ESCAPE_DOUBLE_TICK = 'd'; const TOKEN_ESCAPE_LDAP_FILTER = 'l'; const TOKEN_ESCAPE_LDAP_DN = 'L'; const TOKEN_ESCAPE_MYSQL = 'm'; const TOKEN_ESCAPE_NONE = '-'; // Workaround for PHP < 5.6.0 if (!function_exists('ldap_escape')) { define('LDAP_ESCAPE_FILTER', 0x01); define('LDAP_ESCAPE_DN', 0x02); } const TOKEN_FOUND_IN_STORE_QUERY = 'query'; const RANDOM_LENGTH = 32; // Report, BodyText const TOKEN_SQL = 'sql'; const TOKEN_HEAD = 'head'; const TOKEN_ALT_HEAD = 'althead'; const TOKEN_TAIL = 'tail'; const TOKEN_RBEG = 'rbeg'; const TOKEN_REND = 'rend'; const TOKEN_RENR = 'renr'; const TOKEN_RSEP = 'rsep'; const TOKEN_FBEG = 'fbeg'; const TOKEN_FEND = 'fend'; const TOKEN_FSEP = 'fsep'; const TOKEN_RBGD = 'rbgd'; const TOKEN_DEBUG = 'debug'; const TOKEN_FORM = CLIENT_FORM; const TOKEN_RECORD_ID = CLIENT_RECORD_ID; const TOKEN_DEBUG_BODYTEXT = TYPO3_DEBUG_SHOW_BODY_TEXT; const TOKEN_VALID_LIST = 'sql|head|althead|tail|rbeg|rend|renr|rsep|fbeg|fend|fsep|rbgd|debug|form|r|debugShowBodyText|sqlLog|sqlLogMode'; // FORM - copy from table 'form' of processed form //const DEF_FORM_NAME = CLIENT_FORM; // FORMELEMENT - copy of all formElements of processed form //const DEF_FORM_ELEMENT_ID = 'id'; // SQL logging Modes const SQL_LOG_MODE_ALL = 'all'; const SQL_LOG_MODE_MODIFY = 'modify'; const SQL_LOG_MODE_NONE = 'none'; const SQL_LOG_MODE_ERROR = 'error'; const MODE_LDAP_PREFETCH = 'ldapPrefetch'; const MODE_LDAP_SINGLE = 'ldapSingle'; const MODE_LDAP_MULTI = 'ldapMulti'; // api/save.php, api/delete.php, api/load.php const API_DELETE_PHP = 'delete.php'; const API_DOWNLOAD_PHP = 'download.php'; const API_STATUS = 'status'; const API_MESSAGE = 'message'; const API_REDIRECT = 'redirect'; const API_REDIRECT_URL = 'redirect-url'; const API_LOCK_ACTION = 'action'; const API_LOCK_TIMEOUT = 'lock_timeout'; const API_FIELD_NAME = 'field-name'; const API_FIELD_MESSAGE = 'field-message'; const API_FORM_UPDATE = 'form-update'; const API_FORM_UPDATE_FORM_ELEMENT = 'form-element'; const API_FORM_UPDATE_VALUE = 'value'; const API_FORM_UPDATE_HIDDEN = 'hidden'; const API_FORM_UPDATE_DISABLED = 'disabled'; const API_FORM_UPDATE_REQUIRED = 'required'; const API_ELEMENT_UPDATE = 'element-update'; const API_ELEMENT_ATTRIBUTE = 'attr'; const API_ELEMENT_CONTENT = 'content'; const API_SUBMIT_REASON = 'submit_reason'; const API_SUBMIT_REASON_SAVE = 'save'; const API_SUBMIT_REASON_SAVE_CLOSE = 'save,close'; const API_LOCK_ACTION_LOCK = 'lock'; const API_LOCK_ACTION_EXTEND = 'extend'; const API_LOCK_ACTION_RELEASE = 'release'; const API_ANSWER_STATUS_SUCCESS = 'success'; const API_ANSWER_STATUS_CONFLICT = 'conflict'; const API_ANSWER_STATUS_CONFLICT_ALLOW_FORCE = 'conflict_allow_force'; const API_ANSWER_STATUS_ERROR = 'error'; const API_ANSWER_REDIRECT_CLIENT = 'client'; const API_ANSWER_REDIRECT_NO = 'no'; const API_ANSWER_REDIRECT_URL = 'url'; const API_ANSWER_REDIRECT_URL_SKIP_HISTORY = 'url-skip-history'; const API_TYPEAHEAD_KEY = 'key'; const API_TYPEAHEAD_VALUE = 'value'; const DATA_HIDDEN = 'data-hidden'; const DATA_DISABLED = 'data-disabled'; const DATA_REQUIRED = 'data-required'; const CLASS_TYPEAHEAD = 'qfq-typeahead'; const DATA_TYPEAHEAD_SIP = 'data-typeahead-sip'; // Used for typeAhead const CLASS_NOTE = 'qfq-note'; const DATA_ENABLE_SAVE_BUTTON = 'data-enable-save-button'; //const CLASS_TYPEAHEAD = 'qfq-type-ahead'; //const DATA_TYPEAHEAD_SIP = 'data-sip'; // Used for typeAhead const DATA_TYPEAHEAD_LIMIT = 'data-typeahead-limit'; const DATA_TYPEAHEAD_MINLENGTH = 'data-typeahead-minlength'; const DATA_TYPEAHEAD_PEDANTIC = 'data-typeahead-pedantic'; const CLASS_CHARACTER_COUNT = 'qfq-character-count'; const DATA_CHARACTER_COUNT_ID = 'data-character-count-id'; const CLASS_FORM_ELEMENT_EDIT = 'qfq-form-element-edit'; // BuildForm const SYMBOL_NEW = 'new'; const SYMBOL_EDIT = 'edit'; const SYMBOL_DELETE = 'delete'; //CHECKBOX const ALIGN_HORIZONTAL = 'horizontal'; const ALIGN_VERTICAL = 'vertical'; // Subrecord const SUBRECORD_COLUMN_WIDTH = 20; const FORM_ELEMENTS_NATIVE = 'native'; const FORM_ELEMENTS_SUBRECORD = 'subrecord'; const FORM_ELEMENTS_NATIVE_SUBRECORD = 'native_subrecord'; //const FORM_ELEMENTS_DYNAMIC_UPDATE = 'native_dynamic_update'; const SUBRECORD_NEW = SYMBOL_NEW; const SUBRECORD_EDIT = SYMBOL_EDIT; const SUBRECORD_DELETE = SYMBOL_DELETE; const SUBRECORD_PARAMETER_FORM = CLIENT_FORM; const SUBRECORD_PARAMETER_PAGE = 'page'; const SUBRECORD_PARAMETER_DETAIL = 'detail'; const GLYPH_ICON = 'glyphicon'; const GLYPH_ICON_EDIT = 'glyphicon-pencil'; const GLYPH_ICON_NEW = 'glyphicon-plus'; const GLYPH_ICON_DELETE = 'glyphicon-trash'; const GLYPH_ICON_HELP = 'glyphicon-question-sign'; const GLYPH_ICON_INFO = 'glyphicon-info-sign'; const GLYPH_ICON_SHOW = 'glyphicon-search'; const GLYPH_ICON_TOOL = 'glyphicon-wrench'; const GLYPH_ICON_CHECK = 'glyphicon-ok'; const GLYPH_ICON_CLOSE = 'glyphicon-remove'; const GLYPH_ICON_TASKS = 'glyphicon-tasks'; const GLYPH_ICON_DUPLICATE = 'glyphicon-duplicate'; const GLYPH_ICON_VIEW = 'glyphicon-eye-open'; const GLYPH_ICON_FILE = 'glyphicon-file'; // FORM columns: real const F_ID = 'id'; const F_NAME = 'name'; const F_TITLE = 'title'; const F_TABLE_NAME = 'tableName'; const F_REQUIRED_PARAMETER = 'requiredParameter'; const F_EXTRA_DELETE_FORM = 'extraDeleteForm'; const F_FINAL_DELETE_FORM = 'finalDeleteForm'; 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_CLASS = 'class'; const F_CLASS_PILL = 'classPill'; const F_CLASS_BODY = 'classBody'; const F_SHOW_BUTTON = 'showButton'; const F_FORWARD_MODE = 'forwardMode'; const F_FORWARD_PAGE = 'forwardPage'; const F_FORWARD_MODE_CLIENT = API_ANSWER_REDIRECT_CLIENT; const F_FORWARD_MODE_NO = API_ANSWER_REDIRECT_NO; const F_FORWARD_MODE_URL = API_ANSWER_REDIRECT_URL; const F_FORWARD_MODE_URL_SKIP_HISTORY = API_ANSWER_REDIRECT_URL_SKIP_HISTORY; const F_FORWARD_MODE_URL_SIP = 'url-sip'; // client', 'no', 'url', 'url-skip-history' const F_RECORD_LOCK_TIMEOUT_SECONDS = 'recordLockTimeoutSeconds'; const F_FE_DATA_PATTERN_ERROR = 'data-pattern-error'; const F_FE_DATA_REQUIRED_ERROR = 'data-required-error'; const F_FE_DATA_MATCH_ERROR = 'data-match-error'; const F_FE_DATA_ERROR = 'data-error'; const F_PARAMETER = 'parameter'; // valid for F_ and FE_ // Form columns: via parameter field const F_LDAP_SERVER = 'ldapServer'; const F_LDAP_BASE_DN = 'ldapBaseDn'; const F_LDAP_SEARCH = 'ldapSearch'; const F_LDAP_ATTRIBUTES = 'ldapAttributes'; const F_LDAP_TIME_LIMIT = 'ldapTimeLimit'; const F_LDAP_USE_BIND_CREDENTIALS = 'ldapUseBindCredentials'; const F_TYPEAHEAD_LIMIT = 'typeAheadLimit'; const F_TYPEAHEAD_MINLENGTH = 'typeAheadMinLength'; const F_TYPEAHEAD_PEDANTIC = 'typeAheadPedantic'; const F_TYPEAHEAD_LDAP_VALUE_PRINTF = 'typeAheadLdapValuePrintf'; const F_TYPEAHEAD_LDAP_ID_PRINTF = 'typeAheadLdapIdPrintf'; const F_TYPEAHEAD_LDAP_SEARCH = 'typeAheadLdapSearch'; const F_TYPEAHEAD_LDAP_SEARCH_PREFETCH = 'typeAheadLdapSearchPrefetch'; const F_TYPEAHEAD_LDAP_SEARCH_PER_TOKEN = 'typeAheadLdapSearchPerToken'; const F_MODE = 'mode'; const F_MODE_READONLY = 'readonly'; 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_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_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_NEW_BUTTON_TEXT = 'newButtonText'; const F_NEW_BUTTON_TOOLTIP = 'newButtonTooltip'; const F_NEW_BUTTON_CLASS = 'newButtonClass'; const F_NEW_BUTTON_GLYPH_ICON = 'newButtonGlyphIcon'; // FORM_ELEMENT_STATI const FE_MODE_SHOW = 'show'; const FE_MODE_READONLY = 'readonly'; const FE_MODE_REQUIRED = 'required'; const FE_MODE_HIDDEN = 'hidden'; const FE_CLASS_NATIVE = 'native'; const FE_CLASS_ACTION = 'action'; const FE_CLASS_CONTAINER = 'container'; const FE_SUBRECORD_ROW_CLASS = '_rowClass'; const FE_SUBRECORD_ROW_TITLE = '_rowTitle'; // FormElement columns: real const FE_ID = 'id'; const FE_ID_CONTAINER = 'feIdContainer'; const FE_FORM_ID = 'formId'; const FE_NAME = 'name'; const FE_TYPE = 'type'; const FE_MODE = 'mode'; const FE_MODE_SQL = 'modeSql'; const FE_DYNAMIC_UPDATE = 'dynamicUpdate'; const FE_VALUE = 'value'; const FE_CLASS = 'class'; const FE_LABEL = 'label'; const FE_NOTE = 'note'; const FE_BS_LABEL_COLUMNS = F_BS_LABEL_COLUMNS; const FE_BS_INPUT_COLUMNS = F_BS_INPUT_COLUMNS; const FE_BS_NOTE_COLUMNS = F_BS_NOTE_COLUMNS; const FE_WRAP_ROW_LABEL_INPUT_NOTE = 'rowLabelInputNote'; const FE_MAX_LENGTH = 'maxLength'; const FE_PARAMETER = 'parameter'; const FE_ENCODE = 'encode'; const FE_CHECK_TYPE = 'checkType'; const FE_CHECK_PATTERN = 'checkPattern'; const FE_TOOLTIP = 'tooltip'; const FE_SIZE = 'size'; const FE_SUBRECORD_OPTION = 'subrecordOption'; const FE_SQL1 = 'sql1'; const FE_PLACEHOLDER = 'placeholder'; // FormElement columns: via parameter field const FE_DATE_FORMAT = 'dateFormat'; // value: FORMAT_DATE_INTERNATIONAL | FORMAT_DATE_GERMAN const FE_SHOW_SECONDS = 'showSeconds'; // value: 0|1 const FE_SHOW_ZERO = 'showZero'; // 0|1 - Used for 'date/datime/time': in case of fe.value='0' shows corresponding '00-00-0000'|'00:00:00' const FE_HIDE_ZERO = 'hideZero'; // 0|1 - In case of fe.value=0|'0', an empty string is shown. const FE_FILE_DESTINATION = 'fileDestination'; // Target pathFilename for an uploaded file. const FE_FILE_REPLACE_MODE = 'fileReplace'; // Target pathFilename for an uploaded file. const FE_FILE_REPLACE_MODE_ALWAYS = 'always'; // Target pathFilename for an uploaded file. const FE_FILE_MIME_TYPE_ACCEPT = 'accept'; // Target pathFilename for an uploaded file. const FE_FILE_MAX_FILE_SIZE = 'maxFileSize'; // Target pathFilename for an uploaded file. const FE_FILE_CAPTURE = 'capture'; // On a smartphone opens the camera const FE_SQL_VALIDATE = 'sqlValidate'; // Action: Query to validate form load const FE_EXPECT_RECORDS = 'expectRecords'; // Action: expected number of rows of FE_SQL_VALIDATE const FE_MESSAGE_FAIL = 'messageFail'; // Action: Message to display, if FE_SQL_VALIDATE fails. const FE_REQUIRED_LIST = 'requiredList'; // Optional list of FormElements which have to be non empty to make this 'action'-FormElement active. const FE_SLAVE_ID = 'slaveId'; // Action; Value or Query to compute id of slave record. const FE_SQL_AFTER = 'sqlAfter'; // Action: Always fired const FE_SQL_BEFORE = 'sqlBefore'; // Action: Always fired const FE_SQL_UPDATE = 'sqlUpdate'; // Action: Update Statement for slave record const FE_SQL_INSERT = 'sqlInsert'; // Action: Insert Statement to create slave record. const FE_SQL_DELETE = 'sqlDelete'; // Action: Delete Statement to delete unused slave record. const FE_SQL_HONOR_FORM_ELEMENTS = 'sqlHonorFormElements'; // Action: Honor given list of FormElements for sqlInsert|Update|Delete const FE_EDITOR_PREFIX = 'editor-'; // TinyMCE configuration settings. const FE_SENDMAIL_TO = 'sendMailTo'; // Receiver email adresses. Separate multiple by comma. const FE_SENDMAIL_CC = 'sendMailCc'; // CC Receiver email adresses. Separate multiple by comma. const FE_SENDMAIL_BCC = 'sendMailBcc'; // BCC Receiver email adresses. Separate multiple by comma. const FE_SENDMAIL_FROM = 'sendMailFrom'; // Sender email address. const FE_SENDMAIL_SUBJECT = 'sendMailSubject'; // Email subject const FE_SENDMAIL_REPLY_TO = 'sendMailReplyTo'; // Reply to email address const FE_SENDMAIL_FLAG_AUTO_SUBMIT = 'sendMailFlagAutoSubmit'; // on|off - if 'on', suppresses OoO answers from receivers. const FE_SENDMAIL_GR_ID = 'sendMailGrId'; // gr_id: used to classify mail log entries ind table mailLog const FE_SENDMAIL_X_ID = 'sendMailXId'; // x_id: used to classify mail log entries ind table mailLog const FE_AUTOFOCUS = 'autofocus'; // value: |0|1 , ==1, this element becomes the focus during form load. const FE_RETYPE = 'retype'; // value: |0|1 , ==1, this element becomes the focus during form load. const FE_RETYPE_LABEL = 'retypeLabel'; // value: label text for retype FormElement const FE_RETYPE_NOTE = 'retypeNote'; // value: note text for retype FormElement const FE_RETYPE_SOURCE_NAME = '_retypeSourceName'; // QFQ internal reference to name of source FormElement. const FE_WRAP_ROW = 'wrapRow'; const FE_WRAP_LABEL = 'wrapLabel'; const FE_WRAP_INPUT = 'wrapInput'; const FE_WRAP_NOTE = 'wrapNote'; const FE_HTML_BEFORE = 'htmlBefore'; const FE_HTML_AFTER = 'htmlAfter'; const FE_TEMPLATE_GROUP_ADD_CLASS = 'tgAddClass'; const FE_TEMPLATE_GROUP_ADD_TEXT = 'tgAddText'; const FE_TEMPLATE_GROUP_REMOVE_CLASS = 'tgRemoveClass'; const FE_TEMPLATE_GROUP_REMOVE_TEXT = 'tgRemoveText'; const FE_TEMPLATE_GROUP_CLASS = 'tgClass'; const FE_TEMPLATE_GROUP_DEFAULT_MAX_LENGTH = 5; const FE_TEMPLATE_GROUP_NAME_PATTERN = '%d'; const FE_TEMPLATE_GROUP_NAME_PATTERN_0 = '%D'; const FE_TEMPLATE_GROUP_CURRENT_IDX = 'tgCurentIndex'; const FE_BUTTON_CLASS = 'buttonClass'; const FE_LDAP_SERVER = F_LDAP_SERVER; const FE_LDAP_BASE_DN = F_LDAP_BASE_DN; const FE_LDAP_SEARCH = F_LDAP_SEARCH; const FE_LDAP_ATTRIBUTES = F_LDAP_ATTRIBUTES; const FE_LDAP_TIME_LIMIT = F_LDAP_TIME_LIMIT; const FE_LDAP_USE_BIND_CREDENTIALS = F_LDAP_USE_BIND_CREDENTIALS; const FE_TYPEAHEAD_LIMIT = F_TYPEAHEAD_LIMIT; const FE_TYPEAHEAD_MINLENGTH = F_TYPEAHEAD_MINLENGTH; const FE_TYPEAHEAD_PEDANTIC = F_TYPEAHEAD_PEDANTIC; const FE_TYPEAHEAD_SQL = 'typeAheadSql'; const FE_TYPEAHEAD_LDAP_VALUE_PRINTF = F_TYPEAHEAD_LDAP_VALUE_PRINTF; const FE_TYPEAHEAD_LDAP_ID_PRINTF = F_TYPEAHEAD_LDAP_ID_PRINTF; const FE_TYPEAHEAD_LDAP = 'typeAheadLdap'; const FE_TYPEAHEAD_LDAP_SEARCH = F_TYPEAHEAD_LDAP_SEARCH; const FE_TYPEAHEAD_LDAP_SEARCH_PREFETCH = F_TYPEAHEAD_LDAP_SEARCH_PREFETCH; const FE_TYPEAHEAD_LDAP_SEARCH_PER_TOKEN = F_TYPEAHEAD_LDAP_SEARCH_PER_TOKEN; const FE_FILL_STORE_LDAP = 'fillStoreLdap'; 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_TMP_EXTRA_BUTTON_HTML = '_extraButtonHtml'; // will be filled on the fly during building extrabutton const FE_CHECKBOX_CHECKED = 'checked'; const FE_CHECKBOX_UNCHECKED = 'unchecked'; const FE_RECORD_DESTINATION_TABLE = 'recordDestinationTable'; const FE_RECORD_SOURCE_TABLE = 'recordSourceTable'; const FE_TRANSLATE_ID_COLUMN = 'translateIdColumn'; const FE_FLAG_ROW_OPEN_TAG = '_flagRowOpenTag'; // will be automatically computed during Formload: true | false const FE_FLAG_ROW_CLOSE_TAG = '_flagRowCloseTag'; // will be automatically computed during Formload: true | false const RETYPE_FE_NAME_EXTENSION = 'RETYPE'; const TYPEAHEAD_PLACEHOLDER = '?'; const FE_HTML_ID = 'htmlId'; // Will be dynamically computed during runtime. // Values const FE_ENCODE_SPECIALCHAR = 'specialchar'; const FE_ENCODE_NONE = 'none'; const FE_FILE_CAPTURE_CAMERA = 'camera'; // FormElement Types const FE_TYPE_CHECKBOX = 'checkbox'; const FE_TYPE_DATE = 'date'; const FE_TYPE_TIME = 'time'; const FE_TYPE_DATETIME = 'datetime'; const FE_TYPE_TEXT = 'text'; const FE_TYPE_EDITOR = 'editor'; const FE_TYPE_PASSWORD = 'password'; const FE_TYPE_RADIO = 'radio'; const FE_TYPE_SELECT = 'select'; const FE_TYPE_UPLOAD = 'upload'; const FE_TYPE_EXTRA = 'extra'; const FE_TYPE_SUBRECORD = 'subrecord'; const FE_TYPE_NOTE = 'note'; const FE_TYPE_BEFORE_LOAD = 'beforeLoad'; const FE_TYPE_BEFORE_SAVE = 'beforeSave'; const FE_TYPE_BEFORE_INSERT = 'beforeInsert'; const FE_TYPE_BEFORE_UPDATE = 'beforeUpdate'; const FE_TYPE_BEFORE_DELETE = 'beforeDelete'; const FE_TYPE_AFTER_LOAD = 'afterLoad'; const FE_TYPE_AFTER_SAVE = 'afterSave'; const FE_TYPE_AFTER_INSERT = 'afterInsert'; const FE_TYPE_AFTER_UPDATE = 'afterUpdate'; const FE_TYPE_AFTER_DELETE = 'afterDelete'; const FE_TYPE_SENDMAIL = 'sendMail'; const FE_TYPE_PASTE = 'paste'; const FE_TYPE_TEMPLATE_GROUP = 'templateGroup'; // SUPPORT const PARAM_T3_ALL = 't3 all'; const PARAM_T3_NO_ID = "t3 no id"; const ESCAPE_WITH_BACKSLASH = 'backslash'; const ESCAPE_WITH_HTML_QUOTE = 'htmlquote'; // AbstractBuildForm const FLAG_ALL = 'flagAll'; const FLAG_DYNAMIC_UPDATE = 'flagDynamicUpdate'; const HTML_DELIMITER_NAME = '-'; const HTML_DELIMITER_ID = HTML_DELIMITER_NAME; const HTML_ID_EXTENSION_LABEL = '-l'; const HTML_ID_EXTENSION_INPUT = '-i'; const HTML_ID_EXTENSION_NOTE = '-n'; const HTML_ID_EXTENSION_TOOLTIP = '-t'; const HTML_ID_EXTENSION_ROW = '-r'; const HTML_ID_EXTENSION_CHARACTER_COUNT = '-cc'; const QUERY_TYPE_SELECT = 'type: select,show,describe,explain'; const QUERY_TYPE_INSERT = 'type: insert'; const QUERY_TYPE_UPDATE = 'type: update,replace,delete'; const QUERY_TYPE_CONTROL = 'type: set'; //Regexp //const REGEXP_DATE_INT = '^\d{4}-\d{2}-\d{2}$'; //const REGEXP_DATE_GER = '^\d{1,2}\.\d{1,2}\.\d{2}(\d{2})?$'; //const REGEXP_TIME = '^\d{1,2}:\d{1,2}(:\d{1,2})?$'; // Date/ DateTime formats const FORMAT_DATE_INTERNATIONAL = 'yyyy-mm-dd'; const FORMAT_DATE_GERMAN = 'dd.mm.yyyy'; // Upload const UPLOAD_MODE_UNCHANGED = 'unchanged'; const UPLOAD_MODE_NEW = 'new'; const UPLOAD_MODE_DELETEOLD = 'deleteOld'; const UPLOAD_MODE_DELETEOLD_NEW = 'deleteOld+new'; const UPLOAD_DEFAULT_MAX_SIZE = 10485760; /* 10MB */ const UPLOAD_DEFAULT_MIME_TYPE = 'application/pdf'; // $_FILES const FILES_NAME = 'name'; const FILES_TMP_NAME = 'tmp_name'; const FILES_ERROR = 'error'; const FILES_SIZE = 'size'; const FILES_FLAG_DELETE = 'flagDelete'; const UPLOAD_CACHED = '.cached'; const FILE_ACTION = 'action'; const FILE_ACTION_UPLOAD = 'upload'; const FILE_ACTION_DELETE = 'delete'; // DATABASE const DB_NUM_ROWS = 'numRows'; const DB_AFFECTED_ROWS = 'affectedRows'; const DB_INSERT_ID = 'insertId'; const COLUMN_ID = 'id'; const COLUMN_FIELD = 'Field'; const COLUMN_CREATED = 'created'; const COLUMN_MODIFIED = 'modified'; const INDEX_PHP = 'index.php'; // QuickFormQuery.php const T3DATA_BODYTEXT = 'bodytext'; const T3DATA_UID = 'uid'; // Special Column to check for uploads const COLUMN_PATH_FILE_NAME = 'pathFileName'; // Used to in SIP Store to handle 'delete' after upload const EXISTING_PATH_FILE_NAME = '_existingPathFileName'; //SENDMAIL const SENDMAIL_IDX_RECEIVER = 0; const SENDMAIL_IDX_SENDER = 1; const SENDMAIL_IDX_SUBJECT = 2; const SENDMAIL_IDX_BODY = 3; const SENDMAIL_IDX_REPLY_TO = 4; const SENDMAIL_IDX_FLAG_AUTO_SUBMIT = 5; const SENDMAIL_IDX_GR_ID = 6; const SENDMAIL_IDX_X_ID = 7; const SENDMAIL_IDX_RECEIVER_CC = 8; const SENDMAIL_IDX_RECEIVER_BCC = 9; const SENDMAIL_IDX_SRC = 10; //Report: Column Token const COLUMN_PPAGE = "Page"; const COLUMN_PPAGEC = "Pagec"; const COLUMN_PPAGED = "Paged"; const COLUMN_PPAGEE = "Pagee"; const COLUMN_PPAGEH = "Pageh"; const COLUMN_PPAGEI = "Pagei"; const COLUMN_PPAGEN = "Pagen"; const COLUMN_PPAGES = "Pages"; const COLUMN_PPDF = "Pdf"; const COLUMN_ZZIP = "Zip"; const COLUMN_FFILE = "File"; const COLUMN_PAGE = "page"; const COLUMN_PAGEC = "pagec"; const COLUMN_PAGED = "paged"; const COLUMN_PAGEE = "pagee"; const COLUMN_PAGEH = "pageh"; const COLUMN_PAGEI = "pagei"; const COLUMN_PAGEN = "pagen"; const COLUMN_PAGES = "pages"; const COLUMN_PDF = "pdf"; const COLUMN_FILE = "file"; const COLUMN_ZIP = "zip"; const COLUMN_NL2BR = "nl2br"; const COLUMN_HTMLENTITIES = "htmlentities"; const COLUMN_STRIPTAGS = "striptags"; const COLUMN_WRAP_TOKEN = '+'; const FORM_NAME_FORM = 'form'; const FORM_NAME_FORM_ELEMENT = 'formElement'; // DOWNLOAD const DOWNLOAD_MODE = 'mode'; const DOWNLOAD_MODE_FILE = 'file'; const DOWNLOAD_MODE_PDF = 'pdf'; const DOWNLOAD_MODE_EXCEL = 'excel'; const DOWNLOAD_MODE_ZIP = 'zip'; const DOWNLOAD_EXPORT_FILENAME = '_exportFilename'; const DOWNLOAD_FILE_PREFIX = 'qfq.temp'; // temporary filename on server of single export file const DOWNLOAD_OUTPUT_PDF = 'output'; const DOWNLOAD_SIP_ENCODE_PARAMETER = '_sip'; // HTML2PDF const HTML2PDF_PAGEID = 'id'; const HTML2PDF_PARAM_GET = 'paramGet'; const HTML2PDF_URL_PRINT = 'urlPrint'; const SESSION_COOKIE_PREFEIX = 'qfq.cookie.'; // temporary 'cookie file' to forward `fe_user` and `qfq` session. // Class: LINK const PARAM_DELIMITER = '|'; const TOKEN_URL = 'u'; const TOKEN_MAIL = 'm'; const TOKEN_PAGE = 'p'; const TOKEN_DOWNLOAD = 'd'; const TOKEN_TEXT = 't'; const TOKEN_ALT_TEXT = 'a'; const TOKEN_TOOL_TIP = 'o'; const TOKEN_PICTURE = 'P'; const TOKEN_BULLET = 'B'; const TOKEN_CHECK = 'C'; const TOKEN_DELETE = 'D'; const TOKEN_EDIT = 'E'; const TOKEN_HELP = 'H'; const TOKEN_INFO = 'I'; const TOKEN_NEW = 'N'; const TOKEN_SHOW = 'S'; const TOKEN_GLYPH = 'G'; const TOKEN_RENDER = 'r'; const TOKEN_TARGET = 'g'; const TOKEN_CLASS = 'c'; const TOKEN_QUESTION = 'q'; const TOKEN_ENCRYPTION = 'e'; const TOKEN_SIP = 's'; const TOKEN_URL_PARAM = 'U'; const TOKEN_RIGHT = 'R'; const TOKEN_FILE = 'f'; const TOKEN_DOWNLOAD_MODE = 'M'; const TOKEN_ACTION_DELETE = 'x'; const TOKEN_ACTION_DELETE_AJAX = 'a'; const TOKEN_ACTION_DELETE_REPORT = 'r'; const TOKEN_ACTION_DELETE_CLOSE = 'c'; const TOKEN_CLASS_NONE = 'n'; const TOKEN_CLASS_INTERNAL = 'i'; const TOKEN_CLASS_EXTERNAL = 'e'; const WKHTML_OPTION_VIEWPORT = '--viewport-size'; const WKHTML_OPTION_VIEWPORT_VALUE = '1280x1024'; // FormAction.php: const ACTION_ELEMENT_NO_CHANGE = 0; const ACTION_ELEMENT_MODIFIED = 1; const ACTION_ELEMENT_DELETED = -1; // Dirty.php const DIRTY_MODE_EXCLUSIVE = 'exclusive'; const DIRTY_MODE_ADVISORY = 'advisory'; const DIRTY_MODE_NONE = 'none'; const DIRTY_QFQ_USER_SESSION_COOKIE = 'qfqUserSessionCookie'; const DIRTY_FE_USER = 'feUser'; const DIRTY_EXPIRE = 'expire'; const DIRTY_TABLE_NAME = 'tableName'; const DIRTY_RECORD_ID = 'recordId'; const DIRTY_RECORD_HASH_MD5 = 'recordHashMd5'; const DIRTY_RECORD_HASH_MD5_SPAN = 'recordHashMd5Span'; const DIRTY_REMOTE_ADDRESS = 'remoteAddress'; const DIRTY_API_ACTION = 'action'; // Name of parameter in API call of dirty.php?action=...&s=... const DIRTY_API_ACTION_LOCK = 'lock'; const DIRTY_API_ACTION_RELEASE = 'release'; const DIRTY_API_ACTION_EXTEND = 'extend'; const LOCK_NOT_FOUND = 0; const LOCK_FOUND_OWNER = 1; const LOCK_FOUND_CONFLICT = 2;