Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
typo3
qfq
Commits
27b58ce2
Commit
27b58ce2
authored
Jan 30, 2019
by
bbaer
Browse files
Merge remote-tracking branch 'origin/master'
parents
3e6a1e3a
3e5f7825
Pipeline
#1431
passed with stage
in 2 minutes and 17 seconds
Changes
46
Pipelines
1
Expand all
Hide whitespace changes
Inline
Side-by-side
.gitlab-ci.yml
View file @
27b58ce2
...
...
@@ -5,7 +5,7 @@ snapshot:
except
:
-
tags
script
:
-
make VERSION=$VERSION snapshot
-
make VERSION=$VERSION
phpunit_
snapshot
-
chmod a+r qfq_$VERSION_*.zip
-
scp qfq_$VERSION_*.zip w16:qfq/snapshots/
...
...
@@ -13,6 +13,7 @@ release:
only
:
-
tags
script
:
-
make VERSION=$VERSION release
-
make VERSION=$VERSION
phpunit_
release
-
chmod a+r qfq_$VERSION_*.zip
-
scp qfq_$VERSION_*.zip w16:qfq/releases/
CHANGELOG.md
View file @
27b58ce2
...
...
@@ -36,6 +36,35 @@ Features
Bug Fixes
^^^^^^^^^
Version 19.01.2
---------------
Date: 17.01.2019
Notes
^^^^^
*
Align FormElement labels left/center/right.
*
Cleanup FormEditor.
*
All SQL commands allowed now.
Features
^^^^^^^^
*
#7620 / Label align left/center/right. Defined by config/form/formelement.
*
#7647 / Preparation for Selenium Tests - Implement new token 'A' to add any custom attribute to '... AS _link'
*
Cleanup FormEditor: FormElement as second pill. Hide MultiForm as long as it not active. Rename Various to Layout.
*
Manual.rst: Add some tips. Add note how to extend TinyMCE valid_elements.
*
Delete composer in Resources dir, run phpunit tests in gitlab pipeline.
*
Database.php: allow all SQL commands.
Bug Fixes
^^^^^^^^^
*
#7671 / On FormElements, 'fillStoreVar' is now detected and fired at first.
*
Fix for checkbox-inline / radio-inline.
*
Check for non unique FormElements now allows multiple empty FormElements.
Version 19.01.1
---------------
...
...
Makefile
View file @
27b58ce2
...
...
@@ -6,7 +6,7 @@ RELEASE_DATE = $(shell date '+%Y%m%d%H%M')
GIT_REVISION_SHORT
=
$(
shell
git rev-parse
--short
HEAD
||
true
)
GIT_REVISION_LONG
=
$(
shell
git rev-parse HEAD
||
true
)
EXTENSION_CONTENT
=
Classes Configuration Documentation Source Resources ext_emconf.php ext_localconf.php ext_tables.php ext_icon.png ext_conf_template.txt config.qfq.example.php RELEASE.txt
EXTENSION_CONTENT
=
Classes Configuration Documentation Source Resources ext_emconf.php ext_localconf.php ext_tables.php ext_icon.png ext_conf_template.txt config.qfq.example.php RELEASE.txt
vendor
DISTDIR
=
dist
...
...
@@ -22,7 +22,7 @@ maintainer-clean:
archive
:
clean qfq.zip
qfq.zip
:
cd
extension/
Resources/Private/vendor/phpoffice
;
rm
-rf
phpspreadsheet/
{
C
*
,bin,c
*
,d
*
,m
*
,p
*
,sa
*
,.g
*
,.p
*
,.s
*
,.t
*
}
cd
extension/
vendor
;
rm
-rf
phpoffice/
phpspreadsheet/
{
C
*
,bin,c
*
,d
*
,m
*
,p
*
,sa
*
,.g
*
,.p
*
,.s
*
,.t
*
}
doctrine myclabs phar-io phpdocumentor phpspec phpunit sebastian theseer webmozart
cd
extension
;
zip
-r
../
$@
$(EXTENSION_CONTENT)
clean
:
...
...
@@ -75,15 +75,16 @@ plantuml:
bootstrap
:
.npmpackages .plantuml_install .virtual_env
npm update
grunt default
cd
extension
;
composer update
composer update
# take care that phpOffice is located under 'qfq/Resources/Private/vendor/phpoffice'
cd
extension/Resources/Private
;
composer update
# cd extension/Resources/Private; composer update
cd
extension
;
composer update
basic
:
.npmpackages .virtual_env
npm update
grunt default
cd
extension/Resources/Private
;
composer update
;
cd
vendor/phpoffice/phpspreadsheet
;
rm
-rf
.github bin docs samples .g
*
.s
*
.t
*
C
*
c
*
m
*
p
*
# IMPORTANT: install composer with no-dev flag for deployment!
cd
extension;
composer
install
--no-dev
--optimize-autoloader;
cd
vendor/phpoffice/phpspreadsheet;
rm
-rf
.github
bin
docs
samples
.g*
.s*
.t*
C*
c*
m*
p*
.plantuml_install
:
.support_plantuml
wget
--no-check-certificate
-O
support/plantuml/plantuml.jar
'https://downloads.sourceforge.net/project/plantuml/plantuml.jar'
...
...
@@ -116,3 +117,22 @@ copyReleaseNotes:
cp
extension/Documentation/Release.rst extension/RELEASE.txt
cp
extension/Documentation/Release.rst CHANGELOG.md
phpunit
:
# update composer with dev to install phpunit package
cd
extension
;
composer update
# create test config files and get test database password from environment variable
cp
-v
extension/Tests/phpunit_config.qfq.php
extension/config.qfq.php;
sed
-i
"s/#PHPUNIT_PASSWORD#/$(PHPUNIT_MYSQL_PASSWORD)/"
extension/config.qfq.php
cp
-v
extension/Tests/phpunit_LocalConfiguration.php
extension/LocalConfiguration.php
# mock typo3 directory structure
mkdir
-p
typo3conf/ext/qfq
mv
-v
extension/*
typo3conf/ext/qfq/
# run phpunit
cd
typo3conf/ext/qfq/;
pwd;
vendor/bin/phpunit
--configuration
phpunit.xml
phpunit_snapshot
:
snapshot phpunit
phpunit_release
:
release phpunit
doc/CODING.md
View file @
27b58ce2
...
...
@@ -60,7 +60,7 @@ LOAD
*
The PHP code api/save.php, api/load.php is called directly, without any TYPO3 Framework. Therefore the Typo3 information
'pageId', 'feUser
*', 'beUser*
', 'ttContentUid', ... is not available.
*
*Form load*
: an additional hidden Formelement '_sipForTypo3Vars' will be created with a subset of the current
STORE_TYPO3 values. The workaround with the SIP is useful
l
, cause the same form can be shown on different places (QFQ records) -
STORE_TYPO3 values. The workaround with the SIP is useful, cause the same form can be shown on different places (QFQ records) -
this is not very likely, but might happen. The 'on the fly rendered' SIP helps to deliver the status.
AbstractBuildForm.php: process() > prepareT3VarsForSave() > Store.php: copyT3VarsToSip();
*
*Form save*
: FillStoreForm.php: process() > Store: fillTypo3StoreFromSip()
...
...
doc/NewVersion.md
View file @
27b58ce2
...
...
@@ -35,6 +35,8 @@ Neue Versionsnummer
3) In folgenden Files anpassen:
**Achtung**
: die Release Minor darf KEINE fuehrenden Nullen enthalten!!!
**Auto**
: ./setVersion.sh
<MAJOR>
.
<MINOR>
.
<MICRO>
Manuell:
...
...
@@ -51,12 +53,12 @@ Neue Versionsnummer
*
Update the version number in this document (topic 6)
*
Commit & Push new version changes to master branch:
New version 19.
0
1.
1
New version 19.1.
2
6)
**New Tag**
:
git tag v19.
0
1.
1
git push -u origin v19.
0
1.
1
git tag v19.1.
2
git push -u origin v19.1.
2
7) Tickets:
*
Schliessen und der QFQ Version zuweisen.
...
...
doc/T3_DOC.md
View file @
27b58ce2
...
...
@@ -10,4 +10,12 @@
*
Open: https://docs.typo3.org/~mbless/github.com/T3DocumentationStarter/Public-Info-053.git.make/request_rebuild.php
*
For a few seconds a file 'REBUILD_REQUESTED' appears.
*
After the file disappeared, the documentation should be updated.
\ No newline at end of file
*
After the file disappeared, the documentation should be updated.
# Log errors
Check:
*
https://docs.typo3.org/typo3cms/drafts/github/T3DocumentationStarter/Public-Info-053/stable/_buildinfo/
*
https://docs.typo3.org/typo3cms/drafts/github/T3DocumentationStarter/Public-Info-053/latest/_buildinfo//PDFPROJECT.log.txt
Rebuild:
https://docs.typo3.org/~mbless/github.com/T3DocumentationStarter/Public-Info-039.git.make/request_rebuild.php
extension/Documentation/Manual.rst
View file @
27b58ce2
This diff is collapsed.
Click to expand it.
extension/Documentation/Release.rst
View file @
27b58ce2
...
...
@@ -22,8 +22,8 @@
Release
=======
Version 19.x
x
.x
--------------
-
Version 19.x.x
--------------
Date: <date>
...
...
@@ -36,9 +36,38 @@ Features
Bug Fixes
^^^^^^^^^
Version 19.1.2
--------------
Date: 17.01.2019
Version 19.01.1
---------------
Notes
^^^^^
* Align FormElement labels left/center/right.
* Cleanup FormEditor.
* All SQL commands now are allowed.
Features
^^^^^^^^
* #7620 / Label align left/center/right. Defined by config/form/formelement.
* #7647 / Preparation for Selenium Tests - Implement new token 'A' to add any custom attribute to '... AS _link'
* Cleanup FormEditor: FormElement as second pill. Hide MultiForm as long as it not active. Rename Various to Layout.
* Manual.rst: Add some tips. Add note how to extend TinyMCE valid_elements.
* Delete composer in Resources dir, run phpunit tests in gitlab pipeline.
* Database.php: allow all SQL commands.
Bug Fixes
^^^^^^^^^
* #7671 / On FormElements, 'fillStoreVar' is now detected and fired at first.
* Fix for checkbox-inline / radio-inline.
* Check for non unique FormElements: multiple empty FE.name (e.g. for FE.type=subrecord) are allowed now.
Version 19.1.1
--------------
Date: 04.01.2019
...
...
@@ -51,8 +80,8 @@ Bug Fixes
* #7594 / FE.type=extra: don't name it 'type' or 'id' or 'L' - more detailed error message and an explanation in Manual.rst.
* Config.php: error message about to high session timeout now reports the PHP settings.
Version 19.
0
1.0
--------------
-
Version 19.1.0
--------------
Date: 03.01.2019
...
...
@@ -116,7 +145,7 @@ Notes
^^^^^
* Existing installations: update QFQ extension config form-layout.formBsColumns/formBsLabelColumns/formBsInputColumns,formBsNoteColumns.
old: 12, new: 'col-md-12 col-lg10' resp. smaller values for individual columns.
old:
'
12
'
, new: 'col-md-12 col-lg10' resp. smaller values for individual columns.
* New config values:
* Config/flagProduction: yes/now - differentiate between development und production system. Will be used for
...
...
@@ -142,7 +171,7 @@ Features
* #7228 / Show error if form element with same name and class already exists.
* #7494 / Exception 'General Error': disable/enable per config.
* Adapt class paths in composer.json to the newly refactored folder names.
* Add col-lg-10 to notes section.
* Add
'
col-lg-10
'
to notes section.
* Added Alert Manager to have better control over the Alerts.
* Config.php: make 'reading dbname' Typo3 version dependent.
* Delete two old composer.json and call new composer in Makefile.
...
...
extension/Documentation/Settings.cfg
View file @
27b58ce2
...
...
@@ -3,7 +3,7 @@
project = QFQ - Quick Form Query
version = 19.01
release = 19.01.
1
release = 19.01.
2
t3author = Carsten Rose
copyright = since 2017 by the author
...
...
@@ -22,7 +22,7 @@ description = Documentation for the Typo3 Extension 'QFQ'
[notify]
about_new_build
s
= carsten.rose@math.uzh.ch
about_new_build = carsten.rose@math.uzh.ch
[html_theme_options]
...
...
extension/Documentation/_make/conf.py
View file @
27b58ce2
...
...
@@ -59,7 +59,7 @@ copyright = u'2017, Carsten Rose'
# The short X.Y version.
version
=
'19.01'
# The full version, including alpha/beta/rc tags.
release
=
'19.01.
1
'
release
=
'19.01.
2
'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
...
...
extension/RELEASE.txt
View file @
27b58ce2
...
...
@@ -36,6 +36,35 @@ Features
Bug Fixes
^^^^^^^^^
Version 19.01.2
---------------
Date: 17.01.2019
Notes
^^^^^
* Align FormElement labels left/center/right.
* Cleanup FormEditor.
* All SQL commands allowed now.
Features
^^^^^^^^
* #7620 / Label align left/center/right. Defined by config/form/formelement.
* #7647 / Preparation for Selenium Tests - Implement new token 'A' to add any custom attribute to '... AS _link'
* Cleanup FormEditor: FormElement as second pill. Hide MultiForm as long as it not active. Rename Various to Layout.
* Manual.rst: Add some tips. Add note how to extend TinyMCE valid_elements.
* Delete composer in Resources dir, run phpunit tests in gitlab pipeline.
* Database.php: allow all SQL commands.
Bug Fixes
^^^^^^^^^
* #7671 / On FormElements, 'fillStoreVar' is now detected and fired at first.
* Fix for checkbox-inline / radio-inline.
* Check for non unique FormElements now allows multiple empty FormElements.
Version 19.01.1
---------------
...
...
extension/Resources/Private/composer.json
deleted
100644 → 0
View file @
3e6a1e3a
{
"require"
:
{
"phpoffice/phpspreadsheet"
:
"^1.3"
}
}
extension/Resources/Private/composer.lock
deleted
100644 → 0
View file @
3e6a1e3a
{
"_readme": [
"This file locks the dependencies of your project to a known state",
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
"hash": "b9122b56a300f20bcdecad06f20a42f5",
"content-hash": "cef6f65f63451da68119df4277175b18",
"packages": [
{
"name": "markbaker/complex",
"version": "1.4.7",
"source": {
"type": "git",
"url": "https://github.com/MarkBaker/PHPComplex.git",
"reference": "1ea674a8308baf547cbcbd30c5fcd6d301b7c000"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/MarkBaker/PHPComplex/zipball/1ea674a8308baf547cbcbd30c5fcd6d301b7c000",
"reference": "1ea674a8308baf547cbcbd30c5fcd6d301b7c000",
"shasum": ""
},
"require": {
"php": "^5.6.0|^7.0.0"
},
"require-dev": {
"dealerdirect/phpcodesniffer-composer-installer": "^0.4.3",
"phpcompatibility/php-compatibility": "^8.0",
"phpdocumentor/phpdocumentor": "2.*",
"phploc/phploc": "2.*",
"phpmd/phpmd": "2.*",
"phpunit/phpunit": "^4.8.35|^5.4.0",
"sebastian/phpcpd": "2.*",
"squizlabs/php_codesniffer": "^3.3.0"
},
"type": "library",
"autoload": {
"psr-4": {
"Complex\\": "classes/src/"
},
"files": [
"classes/src/functions/abs.php",
"classes/src/functions/acos.php",
"classes/src/functions/acosh.php",
"classes/src/functions/acot.php",
"classes/src/functions/acoth.php",
"classes/src/functions/acsc.php",
"classes/src/functions/acsch.php",
"classes/src/functions/argument.php",
"classes/src/functions/asec.php",
"classes/src/functions/asech.php",
"classes/src/functions/asin.php",
"classes/src/functions/asinh.php",
"classes/src/functions/atan.php",
"classes/src/functions/atanh.php",
"classes/src/functions/conjugate.php",
"classes/src/functions/cos.php",
"classes/src/functions/cosh.php",
"classes/src/functions/cot.php",
"classes/src/functions/coth.php",
"classes/src/functions/csc.php",
"classes/src/functions/csch.php",
"classes/src/functions/exp.php",
"classes/src/functions/inverse.php",
"classes/src/functions/ln.php",
"classes/src/functions/log2.php",
"classes/src/functions/log10.php",
"classes/src/functions/negative.php",
"classes/src/functions/pow.php",
"classes/src/functions/rho.php",
"classes/src/functions/sec.php",
"classes/src/functions/sech.php",
"classes/src/functions/sin.php",
"classes/src/functions/sinh.php",
"classes/src/functions/sqrt.php",
"classes/src/functions/tan.php",
"classes/src/functions/tanh.php",
"classes/src/functions/theta.php",
"classes/src/operations/add.php",
"classes/src/operations/subtract.php",
"classes/src/operations/multiply.php",
"classes/src/operations/divideby.php",
"classes/src/operations/divideinto.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Mark Baker",
"email": "mark@lange.demon.co.uk"
}
],
"description": "PHP Class for working with complex numbers",
"homepage": "https://github.com/MarkBaker/PHPComplex",
"keywords": [
"complex",
"mathematics"
],
"time": "2018-10-13 23:28:42"
},
{
"name": "phpoffice/phpspreadsheet",
"version": "1.5.2",
"source": {
"type": "git",
"url": "https://github.com/PHPOffice/PhpSpreadsheet.git",
"reference": "cd60531c44f580fbdfbd55dfb935af791f09be5d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/cd60531c44f580fbdfbd55dfb935af791f09be5d",
"reference": "cd60531c44f580fbdfbd55dfb935af791f09be5d",
"shasum": ""
},
"require": {
"ext-ctype": "*",
"ext-dom": "*",
"ext-gd": "*",
"ext-iconv": "*",
"ext-libxml": "*",
"ext-mbstring": "*",
"ext-simplexml": "*",
"ext-xml": "*",
"ext-xmlreader": "*",
"ext-xmlwriter": "*",
"ext-zip": "*",
"ext-zlib": "*",
"markbaker/complex": "^1.4.1",
"php": "^5.6|^7.0",
"psr/simple-cache": "^1.0"
},
"require-dev": {
"dompdf/dompdf": "^0.8.0",
"friendsofphp/php-cs-fixer": "@stable",
"jpgraph/jpgraph": "^4.0",
"mpdf/mpdf": "^7.0.0",
"phpcompatibility/php-compatibility": "^8.0",
"phpunit/phpunit": "^5.7",
"squizlabs/php_codesniffer": "^3.3",
"tecnickcom/tcpdf": "^6.2"
},
"suggest": {
"dompdf/dompdf": "Option for rendering PDF with PDF Writer",
"jpgraph/jpgraph": "Option for rendering charts, or including charts with PDF or HTML Writers",
"mpdf/mpdf": "Option for rendering PDF with PDF Writer",
"tecnickcom/tcpdf": "Option for rendering PDF with PDF Writer"
},
"type": "library",
"autoload": {
"psr-4": {
"PhpOffice\\PhpSpreadsheet\\": "src/PhpSpreadsheet"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"LGPL-2.1-or-later"
],
"authors": [
{
"name": "Erik Tilt"
},
{
"name": "Adrien Crivelli"
},
{
"name": "Maarten Balliauw",
"homepage": "https://blog.maartenballiauw.be"
},
{
"name": "Mark Baker",
"homepage": "https://markbakeruk.net"
},
{
"name": "Franck Lefevre",
"homepage": "https://rootslabs.net"
}
],
"description": "PHPSpreadsheet - Read, Create and Write Spreadsheet documents in PHP - Spreadsheet engine",
"homepage": "https://github.com/PHPOffice/PhpSpreadsheet",
"keywords": [
"OpenXML",
"excel",
"gnumeric",
"ods",
"php",
"spreadsheet",
"xls",
"xlsx"
],
"time": "2018-11-25 17:40:15"
},
{
"name": "psr/simple-cache",
"version": "1.0.1",
"source": {
"type": "git",
"url": "https://github.com/php-fig/simple-cache.git",
"reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
"reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Psr\\SimpleCache\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
}
],
"description": "Common interfaces for simple caching",
"keywords": [
"cache",
"caching",
"psr",
"psr-16",
"simple-cache"
],
"time": "2017-10-23 01:57:42"
}
],
"packages-dev": [],
"aliases": [],
"minimum-stability": "stable",
"stability-flags": [],
"prefer-stable": false,
"prefer-lowest": false,
"platform": [],
"platform-dev": []
}
extension/Source/core/AbstractBuildForm.php
View file @
27b58ce2
...
...
@@ -1055,7 +1055,7 @@ abstract class AbstractBuildForm {
/**
* Set corresponding JSON attributes readonly/required/disabled, based on $formElement[FE_MODE].
*
* @param
array
$feMode
* @param
string
$feMode
*
* @return array
* @throws UserFormException
...
...
@@ -1064,7 +1064,7 @@ abstract class AbstractBuildForm {
$this
->
getFeMode
(
$feMode
,
$dummy
,
$disabled
,
$required
);
return
[
API_FORM_UPDATE_DISABLED
=>
$disabled
===
'yes'
,
API_FORM_UPDATE_REQUIRED
=>
$required
===
'yes'
];
return
[
API_FORM_UPDATE_DISABLED
=>
(
$disabled
===
'yes'
)
,
API_FORM_UPDATE_REQUIRED
=>
(
$required
===
'yes'
)
];
}
/**
...
...
@@ -1240,7 +1240,7 @@ abstract class AbstractBuildForm {
$attribute
.
=
Support
::
doAttribute
(
'id'
,
$formElement
[
FE_HTML_ID
]);
$attribute
.
=
Support
::
doAttribute
(
'name'
,
$htmlFormElementName
);
$attribute
.
=
Support
::
doAttribute
(
'class'
,
$class
);
$attribute
.
=
Support
::
doAttribute
(
ATTRIBUTE_DATA_REFERENCE
,
$formElement
[
FE_DATA_REFERENCE
]);
if
(
isset
(
$formElement
[
FE_RETYPE_SOURCE_NAME
]))
{
$htmlFormElementNamePrimary
=
str_replace
(
RETYPE_FE_NAME_EXTENSION
,
''
,
$htmlFormElementName
);
...
...
@@ -1297,16 +1297,27 @@ abstract class AbstractBuildForm {
$attribute
.
=
$this
->
getAttributeList
(
$formElement
,
[
FE_INPUT_AUTOCOMPLETE
,
'autofocus'
,
'placeholder'
]);
$formElement
[
FE_CHECK_PATTERN
]
=
Sanitize
::
getInputCheckPattern
(
$formElement
[
FE_CHECK_TYPE
],
$formElement
[
FE_CHECK_PATTERN
],
$formElement
[
FE_DECIMAL_FORMAT
],
$sanitizeMessage
);
$attribute
.
=
(
$formElement
[
FE_CHECK_PATTERN
]
===
''
)
?
''
:
'pattern="'
.
$formElement
[
FE_CHECK_PATTERN
]
.
'" '
;
if
(
empty
(
$formElement
[
F_FE_DATA_PATTERN_ERROR
]))
{
$formElement
[
F_FE_DATA_PATTERN_ERROR
]
=
empty
(
$sanitizeMessage
)
?
F_FE_DATA_PATTERN_ERROR_DEFAULT
:
$sanitizeMessage
;
$formElement
[
FE_CHECK_PATTERN
]
=
Sanitize
::
getInputCheckPattern
(
$formElement
[
FE_CHECK_TYPE
],
$formElement
[
FE_CHECK_PATTERN
]
,
$formElement
[
FE_DECIMAL_FORMAT
],
$sanitizeMessage
);
if
(
$formElement
[
FE_CHECK_PATTERN
]
!==
''
)
{
$attribute
.
=
Support
::
doAttribute
(
'pattern'
,
$formElement
[
FE_CHECK_PATTERN
],
true
,
ESCAPE_WITH_BACKSLASH
);
// Use system specific message only,if no custom one is set.
if
(
$formElement
[
F_FE_DATA_PATTERN_ERROR
]
==
$formElement
[
F_FE_DATA_PATTERN_ERROR_SYSTEM
])
{
$formElement
[
F_FE_DATA_PATTERN_ERROR
]
=
$sanitizeMessage
;
}
$attribute
.
=
Support
::
doAttribute
(
F_FE_DATA_PATTERN_ERROR
,
$formElement
[
F_FE_DATA_PATTERN_ERROR
],
true
,
ESCAPE_WITH_BACKSLASH
);
}
if
(
$formElement
[
FE_MODE
]
==
FE_MODE_REQUIRED
)
{
$attribute
.
=
Support
::
doAttribute
(
F_FE_DATA_REQUIRED_ERROR
,
$formElement
[
F_FE_DATA_REQUIRED_ERROR
]);
}
if
(
empty
(
$formElement
[
F_FE_DATA_MATCH_ERROR
]))
{
$formElement
[
F_FE_DATA_REQUIRED_ERROR
]
=
F_FE_DATA_REQUIRED_ERROR_DEFAULT
;
}
$attribute
.
=
$this
->
getAttributeList
(
$formElement
,
[
F_FE_DATA_PATTERN_ERROR
,
F_FE_DATA_REQUIRED_ERROR
,
F_FE_DATA_MATCH_ERROR
,
F_FE_DATA_ERROR
,
FE_MIN
,
FE_MAX
,
FE_STEP
]);
$attribute
.
=
$this
->
getAttributeList
(
$formElement
,
[
F_FE_DATA_MATCH_ERROR
,
F_FE_DATA_ERROR
,
FE_MIN
,
FE_MAX
,
FE_STEP
]);
$attribute
.
=
Support
::
doAttribute
(
'data-load'
,
(
$formElement
[
FE_DYNAMIC_UPDATE
]
===
'yes'
)
?
'data-load'
:
''
);
$attribute
.
=
Support
::
doAttribute
(
'title'
,
$formElement
[
FE_TOOLTIP
]);
...
...
@@ -1739,7 +1750,7 @@ abstract class AbstractBuildForm {
*
* @param array $formElement
* @param string $htmlFormElementName
* @param $attribute