From 029c15847eb5e83bf1d0d02d225e28f6eb165128 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20L=C3=BCder?= Date: Tue, 18 Jul 2023 17:52:24 +0200 Subject: [PATCH] Typo3v12 Doc fixes and General ErrorCheck (#81) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Added maxDepth to PrintToScreenDebugger example * Added pages to General Options index * Added custom.css * Remove Includes.rst.txt * Rename headlines * Set License file header * Replace ; with ; * Added ViewHelpers DocBlock * Added ErrorCheck/Url * Added ErrorCheck/Equals * Fixed ErrorCheck/Url * Added ErrorCheck/ContainsOne * Added ErrorCheck/EqualsField * Added ErrorCheck/NotEqualsField * Update doctree * Remove not needed type fall back --- .documentation/_static/custom.css | 3 + .../Controller/AdministrationController.php | 8 + Classes/Controller/FormController.php | 17 +- Classes/Debugger/AbstractDebugger.php | 8 + Classes/Debugger/PrintToScreenDebugger.php | 21 +- Classes/Debugger/VarDumpDebugger.php | 8 + .../FormhandlerExtensionConfig.php | 8 + Classes/Definitions/Severity.php | 8 + .../Config/Debugger/AbstractDebuggerModel.php | 8 + .../Debugger/PrintToScreenDebuggerModel.php | 15 +- .../Config/Debugger/VarDumpDebuggerModel.php | 8 + Classes/Domain/Model/Config/FieldSetModel.php | 8 + .../Config/Finisher/AbstractFinisherModel.php | 8 + .../Config/Finisher/MailFinisherModel.php | 8 + .../Config/Finisher/RedirectFinisherModel.php | 10 +- Classes/Domain/Model/Config/FormModel.php | 10 +- .../Interceptor/AbstractInterceptorModel.php | 20 +- .../Config/Logger/AbstractLoggerModel.php | 8 + .../Config/Logger/DatabaseLoggerModel.php | 8 + Classes/Domain/Model/Config/MailModel.php | 8 + .../AbstractPreProcessorModel.php | 14 +- .../SetSelectOptionsPreProcessorModel.php | 8 + .../Domain/Model/Config/SelectOptionModel.php | 8 + Classes/Domain/Model/Config/StepModel.php | 10 + .../Validator/AbstractValidatorModel.php | 8 + .../Validator/DefaultValidatorModel.php | 8 + .../ErrorCheck/AbstractErrorCheckModel.php | 24 +++ .../Validator/ErrorCheck/ContainsOneModel.php | 19 +- .../Validator/ErrorCheck/EmailModel.php | 8 + .../Validator/ErrorCheck/EqualsFieldModel.php | 88 +++++++++ .../Validator/ErrorCheck/EqualsModel.php | 87 +++++++++ .../Validator/ErrorCheck/MaxLengthModel.php | 8 + .../ErrorCheck/NotEqualsFieldModel.php | 88 +++++++++ .../Validator/ErrorCheck/RequiredModel.php | 8 + .../Config/Validator/ErrorCheck/UrlModel.php | 65 +++++++ .../Config/Validator/Field/FieldModel.php | 8 + .../Domain/Model/Json/JsonResponseModel.php | 8 + Classes/Domain/Model/Log.php | 8 + Classes/Domain/Repository/LogRepository.php | 8 + Classes/Finisher/AbstractFinisher.php | 8 + Classes/Finisher/MailFinisher.php | 8 + Classes/Finisher/RedirectFinisher.php | 8 + Classes/Interceptor/AbstractInterceptor.php | 8 + Classes/Logger/AbstractLogger.php | 8 + Classes/Logger/DatabaseLogger.php | 8 + Classes/PreProcessor/AbstractPreProcessor.php | 8 + .../SetSelectOptionsPreProcessor.php | 8 + Classes/Session/AbstractSession.php | 8 + Classes/Session/Typo3Session.php | 8 + Classes/TcaFormElement/PredefinedForm.php | 20 +- Classes/Utility/Utility.php | 8 + Classes/Validator/AbstractValidator.php | 8 + Classes/Validator/DefaultValidator.php | 8 + .../ErrorCheck/AbstractErrorCheck.php | 8 + Classes/Validator/ErrorCheck/ContainsOne.php | 19 +- Classes/Validator/ErrorCheck/Email.php | 8 + Classes/Validator/ErrorCheck/Equals.php | 31 +++ Classes/Validator/ErrorCheck/EqualsField.php | 40 ++++ Classes/Validator/ErrorCheck/MaxLength.php | 8 + .../Validator/ErrorCheck/NotEqualsField.php | 40 ++++ Classes/Validator/ErrorCheck/Required.php | 8 + Classes/Validator/ErrorCheck/Url.php | 27 +++ .../FieldNameFromPathViewHelper.php | 57 +++++- Configuration/TCA/Overrides/tt_content.php | 2 + Documentation/.buildinfo | 2 +- .../Debuggers/PrintToScreenDebugger.doctree | Bin 21949 -> 21975 bytes .../.doctrees/ErrorChecks/General.doctree | Bin 6203 -> 9293 bytes .../ErrorChecks/General/Equals.doctree | Bin 0 -> 6985 bytes .../ErrorChecks/General/EqualsField.doctree | Bin 0 -> 7120 bytes .../General/NotEqualsField.doctree | Bin 0 -> 7177 bytes .../.doctrees/ErrorChecks/General/Url.doctree | Bin 0 -> 4195 bytes .../ErrorChecks/Strings/ContainsOne.doctree | Bin 7154 -> 7154 bytes .../Finishers/RedirectFinisher.doctree | Bin 16709 -> 16707 bytes .../.doctrees/GeneralOptions/Index.doctree | Bin 3481 -> 5610 bytes .../GeneralOptions/PredefinedForm.doctree | Bin 29747 -> 29590 bytes .../.doctrees/GeneralOptions/Settings.doctree | Bin 20435 -> 19833 bytes .../.doctrees/GeneralOptions/Step.doctree | Bin 7737 -> 7879 bytes Documentation/.doctrees/Index.doctree | Bin 7684 -> 7712 bytes .../Interceptors/InitInterceptors.doctree | Bin 4752 -> 4444 bytes .../Interceptors/SaveInterceptors.doctree | Bin 4828 -> 4520 bytes .../.doctrees/PreProcessors/Index.doctree | Bin 7465 -> 7166 bytes .../FieldNameFromPathViewHelper.doctree | Bin 0 -> 4438 bytes .../.doctrees/ViewHelpers/Index.doctree | Bin 0 -> 4227 bytes Documentation/.doctrees/environment.pickle | Bin 339168 -> 383576 bytes Documentation/Debuggers/Index.html | 4 +- .../Debuggers/PrintToScreenDebugger.html | 11 +- Documentation/Debuggers/VarDumpDebugger.html | 4 +- Documentation/ErrorChecks/General.html | 16 +- Documentation/ErrorChecks/General/Email.html | 12 +- Documentation/ErrorChecks/General/Equals.html | 182 ++++++++++++++++++ .../ErrorChecks/General/EqualsField.html | 182 ++++++++++++++++++ .../ErrorChecks/General/NotEqualsField.html | 182 ++++++++++++++++++ .../ErrorChecks/General/Required.html | 16 +- Documentation/ErrorChecks/General/Url.html | 157 +++++++++++++++ Documentation/ErrorChecks/Index.html | 4 +- Documentation/ErrorChecks/Strings.html | 8 +- .../ErrorChecks/Strings/ContainsOne.html | 10 +- .../ErrorChecks/Strings/MaxLength.html | 4 +- Documentation/Finishers/Index.html | 4 +- Documentation/Finishers/MailFinisher.html | 4 +- Documentation/Finishers/RedirectFinisher.html | 6 +- Documentation/GeneralOptions/Index.html | 13 +- .../GeneralOptions/PredefinedForm.html | 8 +- Documentation/GeneralOptions/Settings.html | 4 +- Documentation/GeneralOptions/Step.html | 5 +- Documentation/Index.html | 6 +- Documentation/Installation/Index.html | 4 +- Documentation/Interceptors/Index.html | 16 +- .../Interceptors/InitInterceptors.html | 20 +- .../Interceptors/SaveInterceptors.html | 20 +- Documentation/Loggers/DatabaseLogger.html | 8 +- Documentation/Loggers/Index.html | 8 +- Documentation/Migration/Index.html | 4 +- Documentation/PreProcessors/Index.html | 14 +- .../SetSelectOptionsPreProcessor.html | 10 +- .../Validators/DefaultValidator.html | 6 +- Documentation/Validators/Index.html | 4 +- .../FieldNameFromPathViewHelper.html | 136 +++++++++++++ Documentation/ViewHelpers/Index.html | 129 +++++++++++++ .../Debuggers/PrintToScreenDebugger.rst.txt | 7 +- .../_sources/ErrorChecks/General.rst.txt | 16 ++ .../ErrorChecks/General/Equals.rst.txt | 52 +++++ .../ErrorChecks/General/EqualsField.rst.txt | 52 +++++ .../General/NotEqualsField.rst.txt | 52 +++++ .../_sources/ErrorChecks/General/Url.rst.txt | 31 +++ .../ErrorChecks/Strings/ContainsOne.rst.txt | 6 +- .../Finishers/RedirectFinisher.rst.txt | 2 +- .../_sources/GeneralOptions/Index.rst.txt | 7 +- .../GeneralOptions/PredefinedForm.rst.txt | 2 +- .../_sources/GeneralOptions/Settings.rst.txt | 2 - .../_sources/GeneralOptions/Step.rst.txt | 2 + Documentation/_sources/Index.rst.txt | 1 + .../Interceptors/InitInterceptors.rst.txt | 6 +- .../Interceptors/SaveInterceptors.rst.txt | 6 +- .../_sources/PreProcessors/Index.rst.txt | 6 +- .../FieldNameFromPathViewHelper.rst.txt | 26 +++ .../_sources/ViewHelpers/Index.rst.txt | 15 ++ Documentation/_static/custom.css | 3 + Documentation/genindex.html | 4 +- Documentation/objects.inv | Bin 1068 -> 1248 bytes Documentation/search.html | 4 +- Documentation/searchindex.js | 2 +- 142 files changed, 2417 insertions(+), 165 deletions(-) create mode 100644 .documentation/_static/custom.css create mode 100644 Classes/Domain/Model/Config/Validator/ErrorCheck/EqualsFieldModel.php create mode 100644 Classes/Domain/Model/Config/Validator/ErrorCheck/EqualsModel.php create mode 100644 Classes/Domain/Model/Config/Validator/ErrorCheck/NotEqualsFieldModel.php create mode 100644 Classes/Domain/Model/Config/Validator/ErrorCheck/UrlModel.php create mode 100644 Classes/Validator/ErrorCheck/Equals.php create mode 100644 Classes/Validator/ErrorCheck/EqualsField.php create mode 100644 Classes/Validator/ErrorCheck/NotEqualsField.php create mode 100644 Classes/Validator/ErrorCheck/Url.php create mode 100644 Documentation/.doctrees/ErrorChecks/General/Equals.doctree create mode 100644 Documentation/.doctrees/ErrorChecks/General/EqualsField.doctree create mode 100644 Documentation/.doctrees/ErrorChecks/General/NotEqualsField.doctree create mode 100644 Documentation/.doctrees/ErrorChecks/General/Url.doctree create mode 100644 Documentation/.doctrees/ViewHelpers/FieldNameFromPathViewHelper.doctree create mode 100644 Documentation/.doctrees/ViewHelpers/Index.doctree create mode 100644 Documentation/ErrorChecks/General/Equals.html create mode 100644 Documentation/ErrorChecks/General/EqualsField.html create mode 100644 Documentation/ErrorChecks/General/NotEqualsField.html create mode 100644 Documentation/ErrorChecks/General/Url.html create mode 100644 Documentation/ViewHelpers/FieldNameFromPathViewHelper.html create mode 100644 Documentation/ViewHelpers/Index.html create mode 100644 Documentation/_sources/ErrorChecks/General/Equals.rst.txt create mode 100644 Documentation/_sources/ErrorChecks/General/EqualsField.rst.txt create mode 100644 Documentation/_sources/ErrorChecks/General/NotEqualsField.rst.txt create mode 100644 Documentation/_sources/ErrorChecks/General/Url.rst.txt create mode 100644 Documentation/_sources/ViewHelpers/FieldNameFromPathViewHelper.rst.txt create mode 100644 Documentation/_sources/ViewHelpers/Index.rst.txt create mode 100644 Documentation/_static/custom.css diff --git a/.documentation/_static/custom.css b/.documentation/_static/custom.css new file mode 100644 index 00000000..bf5fc667 --- /dev/null +++ b/.documentation/_static/custom.css @@ -0,0 +1,3 @@ +.wy-nav-content { + max-width: 1200px !important; +} diff --git a/Classes/Controller/AdministrationController.php b/Classes/Controller/AdministrationController.php index dbf57700..9710f14e 100644 --- a/Classes/Controller/AdministrationController.php +++ b/Classes/Controller/AdministrationController.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Controller; use Psr\Http\Message\ResponseInterface; diff --git a/Classes/Controller/FormController.php b/Classes/Controller/FormController.php index 794eed4f..8e1c8e03 100644 --- a/Classes/Controller/FormController.php +++ b/Classes/Controller/FormController.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Controller; use Psr\Http\Message\ResponseInterface; @@ -112,9 +120,14 @@ *General Options *=============== * + *:ref:`Settings` + * All forms are build via TypoScript as predefined forms. * - *All forms are build via TypoScript as predefined forms. + *:ref:`Predefined-Form` + * Predefine form settings and make them selectable in plugin record. * + *:ref:`Step` + * Multistep forms settings * *.. toctree:: * :maxdepth: 2 @@ -127,8 +140,6 @@ *Documentation:End */ /** Documentation:Start:GeneralOptions/Settings.rst. - * - *.. include:: /Includes.rst.txt * *.. _settings: * diff --git a/Classes/Debugger/AbstractDebugger.php b/Classes/Debugger/AbstractDebugger.php index d0aa1503..0ccb9c58 100644 --- a/Classes/Debugger/AbstractDebugger.php +++ b/Classes/Debugger/AbstractDebugger.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Debugger; use TYPO3\CMS\Core\SingletonInterface; diff --git a/Classes/Debugger/PrintToScreenDebugger.php b/Classes/Debugger/PrintToScreenDebugger.php index 33aa0b92..ed7b545b 100644 --- a/Classes/Debugger/PrintToScreenDebugger.php +++ b/Classes/Debugger/PrintToScreenDebugger.php @@ -2,24 +2,19 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Debugger; use TYPO3\CMS\Extbase\Utility\DebuggerUtility; use Typoheads\Formhandler\Domain\Model\Config\Debugger\PrintToScreenDebuggerModel; -/** - * This script is part of the TYPO3 project - inspiring people to share! - * - * TYPO3 is free software; you can redistribute it and/or modify it under - * the terms of the GNU General Public License version 2 as published by - * the Free Software Foundation. - * - * This script is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHAN- - * TABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General - * Public License for more details. - */ - /** * A simple debugger printing the messages on the screen. */ diff --git a/Classes/Debugger/VarDumpDebugger.php b/Classes/Debugger/VarDumpDebugger.php index 98627808..8ee85b54 100644 --- a/Classes/Debugger/VarDumpDebugger.php +++ b/Classes/Debugger/VarDumpDebugger.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Debugger; use TYPO3\CMS\Extbase\Utility\DebuggerUtility; diff --git a/Classes/Definitions/FormhandlerExtensionConfig.php b/Classes/Definitions/FormhandlerExtensionConfig.php index 4dbb8cc8..2d6c0e75 100644 --- a/Classes/Definitions/FormhandlerExtensionConfig.php +++ b/Classes/Definitions/FormhandlerExtensionConfig.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Definitions; class FormhandlerExtensionConfig { diff --git a/Classes/Definitions/Severity.php b/Classes/Definitions/Severity.php index 68575d70..bbfa2b4c 100644 --- a/Classes/Definitions/Severity.php +++ b/Classes/Definitions/Severity.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Definitions; class Severity { diff --git a/Classes/Domain/Model/Config/Debugger/AbstractDebuggerModel.php b/Classes/Domain/Model/Config/Debugger/AbstractDebuggerModel.php index bcb527f6..d1b9e599 100644 --- a/Classes/Domain/Model/Config/Debugger/AbstractDebuggerModel.php +++ b/Classes/Domain/Model/Config/Debugger/AbstractDebuggerModel.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Domain\Model\Config\Debugger; use Typoheads\Formhandler\Debugger\AbstractDebugger; diff --git a/Classes/Domain/Model/Config/Debugger/PrintToScreenDebuggerModel.php b/Classes/Domain/Model/Config/Debugger/PrintToScreenDebuggerModel.php index 101741a7..f35af5b4 100644 --- a/Classes/Domain/Model/Config/Debugger/PrintToScreenDebuggerModel.php +++ b/Classes/Domain/Model/Config/Debugger/PrintToScreenDebuggerModel.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Domain\Model\Config\Debugger; use Typoheads\Formhandler\Debugger\PrintToScreenDebugger; @@ -37,6 +45,7 @@ * model = PrintToScreenDebuggerModel * config { * active = true + * maxDepth = 10 * severityWrap { * 1 = | * 2 = | @@ -102,7 +111,7 @@ * * - *Data Type* * - String * * - *Default* - * -
|
+ * -
|
* *.. list-table:: * :align: left @@ -120,7 +129,7 @@ * * - *Data Type* * - String * * - *Default* - * -

|

+ * -

|

* *.. list-table:: * :align: left @@ -138,7 +147,7 @@ * * - *Data Type* * - String * * - *Default* - * -
|
+ * -
|
* *.. list-table:: * :align: left diff --git a/Classes/Domain/Model/Config/Debugger/VarDumpDebuggerModel.php b/Classes/Domain/Model/Config/Debugger/VarDumpDebuggerModel.php index 0cb5bbf5..84572a32 100644 --- a/Classes/Domain/Model/Config/Debugger/VarDumpDebuggerModel.php +++ b/Classes/Domain/Model/Config/Debugger/VarDumpDebuggerModel.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Domain\Model\Config\Debugger; use Typoheads\Formhandler\Debugger\VarDumpDebugger; diff --git a/Classes/Domain/Model/Config/FieldSetModel.php b/Classes/Domain/Model/Config/FieldSetModel.php index 06a048ad..f9108267 100644 --- a/Classes/Domain/Model/Config/FieldSetModel.php +++ b/Classes/Domain/Model/Config/FieldSetModel.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Domain\Model\Config; use Typoheads\Formhandler\Definitions\FormhandlerExtensionConfig; diff --git a/Classes/Domain/Model/Config/Finisher/AbstractFinisherModel.php b/Classes/Domain/Model/Config/Finisher/AbstractFinisherModel.php index 5b63f0a8..58e4b4ed 100644 --- a/Classes/Domain/Model/Config/Finisher/AbstractFinisherModel.php +++ b/Classes/Domain/Model/Config/Finisher/AbstractFinisherModel.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Domain\Model\Config\Finisher; use TYPO3\CMS\Core\Http\Response; diff --git a/Classes/Domain/Model/Config/Finisher/MailFinisherModel.php b/Classes/Domain/Model/Config/Finisher/MailFinisherModel.php index 7bf92be7..706b64b5 100644 --- a/Classes/Domain/Model/Config/Finisher/MailFinisherModel.php +++ b/Classes/Domain/Model/Config/Finisher/MailFinisherModel.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Domain\Model\Config\Finisher; use Typoheads\Formhandler\Finisher\MailFinisher; diff --git a/Classes/Domain/Model/Config/Finisher/RedirectFinisherModel.php b/Classes/Domain/Model/Config/Finisher/RedirectFinisherModel.php index c4469cff..b3171bd3 100644 --- a/Classes/Domain/Model/Config/Finisher/RedirectFinisherModel.php +++ b/Classes/Domain/Model/Config/Finisher/RedirectFinisherModel.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Domain\Model\Config\Finisher; use Typoheads\Formhandler\Finisher\RedirectFinisher; @@ -74,7 +82,7 @@ * :stub-columns: 0 * * * - **correctRedirectUrl** - * - Replaces "&;" with "&" in URL + * - Replaces "&" with "&" in URL * * - * - * * - *Mandatory* diff --git a/Classes/Domain/Model/Config/FormModel.php b/Classes/Domain/Model/Config/FormModel.php index 59702683..516c4b22 100644 --- a/Classes/Domain/Model/Config/FormModel.php +++ b/Classes/Domain/Model/Config/FormModel.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Domain\Model\Config; use TYPO3\CMS\Core\Site\Entity\Site; @@ -26,7 +34,7 @@ *Predefined Form *=============== * - * Predefine form settings and make them selectable in plugin record. + *Predefine form settings and make them selectable in plugin record. * *.. list-table:: * :align: left diff --git a/Classes/Domain/Model/Config/Interceptor/AbstractInterceptorModel.php b/Classes/Domain/Model/Config/Interceptor/AbstractInterceptorModel.php index 9c057c24..b6232fd0 100644 --- a/Classes/Domain/Model/Config/Interceptor/AbstractInterceptorModel.php +++ b/Classes/Domain/Model/Config/Interceptor/AbstractInterceptorModel.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Domain\Model\Config\Interceptor; use Typoheads\Formhandler\Interceptor\AbstractInterceptor; @@ -45,9 +53,9 @@ * *.. _initinterceptors: * - *================ - *InitInterceptors - *================ + *================= + *Init Interceptors + *================= * *The init interceptors are called before every time the form is displayed. * @@ -71,9 +79,9 @@ * *.. _saveinterceptors: * - *================ - *SaveInterceptors - *================ + *================= + *Save Interceptors + *================= * *The save interceptors are called after all steps are validated and before the loggers and finishers are called. * diff --git a/Classes/Domain/Model/Config/Logger/AbstractLoggerModel.php b/Classes/Domain/Model/Config/Logger/AbstractLoggerModel.php index 607248ef..341d9891 100644 --- a/Classes/Domain/Model/Config/Logger/AbstractLoggerModel.php +++ b/Classes/Domain/Model/Config/Logger/AbstractLoggerModel.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Domain\Model\Config\Logger; use Typoheads\Formhandler\Logger\AbstractLogger; diff --git a/Classes/Domain/Model/Config/Logger/DatabaseLoggerModel.php b/Classes/Domain/Model/Config/Logger/DatabaseLoggerModel.php index 683b88fb..4af72508 100644 --- a/Classes/Domain/Model/Config/Logger/DatabaseLoggerModel.php +++ b/Classes/Domain/Model/Config/Logger/DatabaseLoggerModel.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Domain\Model\Config\Logger; use Typoheads\Formhandler\Logger\DatabaseLogger; diff --git a/Classes/Domain/Model/Config/MailModel.php b/Classes/Domain/Model/Config/MailModel.php index 155c965f..53c3ae97 100644 --- a/Classes/Domain/Model/Config/MailModel.php +++ b/Classes/Domain/Model/Config/MailModel.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Domain\Model\Config; class MailModel { diff --git a/Classes/Domain/Model/Config/PreProcessor/AbstractPreProcessorModel.php b/Classes/Domain/Model/Config/PreProcessor/AbstractPreProcessorModel.php index c249dad1..35350729 100644 --- a/Classes/Domain/Model/Config/PreProcessor/AbstractPreProcessorModel.php +++ b/Classes/Domain/Model/Config/PreProcessor/AbstractPreProcessorModel.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Domain\Model\Config\PreProcessor; use Typoheads\Formhandler\PreProcessor\AbstractPreProcessor; @@ -10,9 +18,9 @@ * *.. _preprocessors: * - *============= - *PreProcessors - *============= + *============== + *Pre Processors + *============== * *You can enter as many :ref:`PreProcessors` as you like. Each entry requires a model name of the :ref:`PreProcessor `. Optionally you can enter specific configuration for the :ref:`PreProcessor ` in the config section. The :ref:`PreProcessors` are only called the first time the form is shown. * diff --git a/Classes/Domain/Model/Config/PreProcessor/SetSelectOptionsPreProcessorModel.php b/Classes/Domain/Model/Config/PreProcessor/SetSelectOptionsPreProcessorModel.php index d98b7c31..95e4ceb3 100644 --- a/Classes/Domain/Model/Config/PreProcessor/SetSelectOptionsPreProcessorModel.php +++ b/Classes/Domain/Model/Config/PreProcessor/SetSelectOptionsPreProcessorModel.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Domain\Model\Config\PreProcessor; use Typoheads\Formhandler\PreProcessor\SetSelectOptionsPreProcessor; diff --git a/Classes/Domain/Model/Config/SelectOptionModel.php b/Classes/Domain/Model/Config/SelectOptionModel.php index d91e65a3..e69e69f6 100644 --- a/Classes/Domain/Model/Config/SelectOptionModel.php +++ b/Classes/Domain/Model/Config/SelectOptionModel.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Domain\Model\Config; class SelectOptionModel { diff --git a/Classes/Domain/Model/Config/StepModel.php b/Classes/Domain/Model/Config/StepModel.php index 649a051b..ca28770f 100644 --- a/Classes/Domain/Model/Config/StepModel.php +++ b/Classes/Domain/Model/Config/StepModel.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Domain\Model\Config; use TYPO3\CMS\Core\Utility\GeneralUtility; @@ -16,6 +24,8 @@ *Step *==== * + *Multistep forms settings + * *.. list-table:: * :align: left * :width: 100% diff --git a/Classes/Domain/Model/Config/Validator/AbstractValidatorModel.php b/Classes/Domain/Model/Config/Validator/AbstractValidatorModel.php index dcc0e93c..ce9575f5 100644 --- a/Classes/Domain/Model/Config/Validator/AbstractValidatorModel.php +++ b/Classes/Domain/Model/Config/Validator/AbstractValidatorModel.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Domain\Model\Config\Validator; use Typoheads\Formhandler\Domain\Model\Config\FormModel; diff --git a/Classes/Domain/Model/Config/Validator/DefaultValidatorModel.php b/Classes/Domain/Model/Config/Validator/DefaultValidatorModel.php index ecdca7d3..8ddc8f05 100644 --- a/Classes/Domain/Model/Config/Validator/DefaultValidatorModel.php +++ b/Classes/Domain/Model/Config/Validator/DefaultValidatorModel.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Domain\Model\Config\Validator; use TYPO3\CMS\Core\Utility\GeneralUtility; diff --git a/Classes/Domain/Model/Config/Validator/ErrorCheck/AbstractErrorCheckModel.php b/Classes/Domain/Model/Config/Validator/ErrorCheck/AbstractErrorCheckModel.php index 7f90c2db..02207ded 100644 --- a/Classes/Domain/Model/Config/Validator/ErrorCheck/AbstractErrorCheckModel.php +++ b/Classes/Domain/Model/Config/Validator/ErrorCheck/AbstractErrorCheckModel.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Domain\Model\Config\Validator\ErrorCheck; use Typoheads\Formhandler\Validator\ErrorCheck\AbstractErrorCheck; @@ -71,15 +79,31 @@ *:ref:`Email` * Checks if a field contains a valid email and if a MX record exists for the domain of an email address. * + *:ref:`Equals` + * Checks if a field equals the configured value. + * + *:ref:`EqualsField` + * Checks if a field value equals another field value. + * + *:ref:`NotEqualsField` + * Checks if a field value does not equals another field value. + * *:ref:`Required` * Checks if a field is filled in * + *:ref:`Url` + * Checks if a field contains a valid url. + * *.. toctree:: * :maxdepth: 2 * :hidden: * * General/Email + * General/Equals + * General/EqualsField + * General/NotEqualsField * General/Required + * General/Url * *Documentation:End */ diff --git a/Classes/Domain/Model/Config/Validator/ErrorCheck/ContainsOneModel.php b/Classes/Domain/Model/Config/Validator/ErrorCheck/ContainsOneModel.php index d4106783..66156e2d 100644 --- a/Classes/Domain/Model/Config/Validator/ErrorCheck/ContainsOneModel.php +++ b/Classes/Domain/Model/Config/Validator/ErrorCheck/ContainsOneModel.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Domain\Model\Config\Validator\ErrorCheck; use Typoheads\Formhandler\Validator\ErrorCheck\ContainsOne; @@ -28,7 +36,7 @@ * privacy_policy.errorChecks { * containsOne { * model = ContainsOneModel - * words = Yes,Ja + * values = Yes,Ja * } * } * } @@ -45,8 +53,8 @@ * :header-rows: 0 * :stub-columns: 0 * - * * - **words** - * - Comma separated list of words of which one must be in the value of a given field + * * - **values** + * - Comma separated list of values of which one must be the value of a given field * * - * - * * - *Mandatory* @@ -63,14 +71,15 @@ *Documentation:End */ class ContainsOneModel extends AbstractErrorCheckModel { - public readonly string $words; + /** @var string[] */ + public readonly array $values; /** * @param array $settings */ public function __construct(array $settings) { $this->name = 'ContainsOne'; - $this->words = strval($settings['words'] ?? ''); + $this->values = explode(',', trim(strval($settings['values'] ?? ''))); } public function class(): string { diff --git a/Classes/Domain/Model/Config/Validator/ErrorCheck/EmailModel.php b/Classes/Domain/Model/Config/Validator/ErrorCheck/EmailModel.php index 7f9c7f6f..d77c31c3 100644 --- a/Classes/Domain/Model/Config/Validator/ErrorCheck/EmailModel.php +++ b/Classes/Domain/Model/Config/Validator/ErrorCheck/EmailModel.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Domain\Model\Config\Validator\ErrorCheck; use Typoheads\Formhandler\Validator\ErrorCheck\Email; diff --git a/Classes/Domain/Model/Config/Validator/ErrorCheck/EqualsFieldModel.php b/Classes/Domain/Model/Config/Validator/ErrorCheck/EqualsFieldModel.php new file mode 100644 index 00000000..f765f484 --- /dev/null +++ b/Classes/Domain/Model/Config/Validator/ErrorCheck/EqualsFieldModel.php @@ -0,0 +1,88 @@ + $settings + */ + public function __construct(array $settings) { + $this->name = 'EqualsField'; + $this->field = explode('.', trim(strval($settings['field'] ?? ''))); + } + + public function class(): string { + return EqualsField::class; + } +} diff --git a/Classes/Domain/Model/Config/Validator/ErrorCheck/EqualsModel.php b/Classes/Domain/Model/Config/Validator/ErrorCheck/EqualsModel.php new file mode 100644 index 00000000..2bfd96b1 --- /dev/null +++ b/Classes/Domain/Model/Config/Validator/ErrorCheck/EqualsModel.php @@ -0,0 +1,87 @@ + $settings + */ + public function __construct(array $settings) { + $this->name = 'Equals'; + $this->value = strval($settings['value'] ?? ''); + } + + public function class(): string { + return Equals::class; + } +} diff --git a/Classes/Domain/Model/Config/Validator/ErrorCheck/MaxLengthModel.php b/Classes/Domain/Model/Config/Validator/ErrorCheck/MaxLengthModel.php index 3c00c593..c77ab0b6 100644 --- a/Classes/Domain/Model/Config/Validator/ErrorCheck/MaxLengthModel.php +++ b/Classes/Domain/Model/Config/Validator/ErrorCheck/MaxLengthModel.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Domain\Model\Config\Validator\ErrorCheck; use Typoheads\Formhandler\Validator\ErrorCheck\MaxLength; diff --git a/Classes/Domain/Model/Config/Validator/ErrorCheck/NotEqualsFieldModel.php b/Classes/Domain/Model/Config/Validator/ErrorCheck/NotEqualsFieldModel.php new file mode 100644 index 00000000..f14d560a --- /dev/null +++ b/Classes/Domain/Model/Config/Validator/ErrorCheck/NotEqualsFieldModel.php @@ -0,0 +1,88 @@ + $settings + */ + public function __construct(array $settings) { + $this->name = 'NotEqualsField'; + $this->field = explode('.', trim(strval($settings['field'] ?? ''))); + } + + public function class(): string { + return NotEqualsField::class; + } +} diff --git a/Classes/Domain/Model/Config/Validator/ErrorCheck/RequiredModel.php b/Classes/Domain/Model/Config/Validator/ErrorCheck/RequiredModel.php index b6fb3c5f..359fef98 100644 --- a/Classes/Domain/Model/Config/Validator/ErrorCheck/RequiredModel.php +++ b/Classes/Domain/Model/Config/Validator/ErrorCheck/RequiredModel.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Domain\Model\Config\Validator\ErrorCheck; use Typoheads\Formhandler\Validator\ErrorCheck\Required; diff --git a/Classes/Domain/Model/Config/Validator/ErrorCheck/UrlModel.php b/Classes/Domain/Model/Config/Validator/ErrorCheck/UrlModel.php new file mode 100644 index 00000000..4d043c74 --- /dev/null +++ b/Classes/Domain/Model/Config/Validator/ErrorCheck/UrlModel.php @@ -0,0 +1,65 @@ + $settings + */ + public function __construct(array $settings) { + $this->name = 'Url'; + if (isset($settings['FIXME'])) { + } + } + + public function class(): string { + return Url::class; + } +} diff --git a/Classes/Domain/Model/Config/Validator/Field/FieldModel.php b/Classes/Domain/Model/Config/Validator/Field/FieldModel.php index 00d84fad..e0d44171 100644 --- a/Classes/Domain/Model/Config/Validator/Field/FieldModel.php +++ b/Classes/Domain/Model/Config/Validator/Field/FieldModel.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Domain\Model\Config\Validator\Field; use TYPO3\CMS\Core\Utility\GeneralUtility; diff --git a/Classes/Domain/Model/Json/JsonResponseModel.php b/Classes/Domain/Model/Json/JsonResponseModel.php index b870fa13..015d9167 100644 --- a/Classes/Domain/Model/Json/JsonResponseModel.php +++ b/Classes/Domain/Model/Json/JsonResponseModel.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Domain\Model\Json; use Typoheads\Formhandler\Domain\Model\Config\FieldSetModel; diff --git a/Classes/Domain/Model/Log.php b/Classes/Domain/Model/Log.php index e5e3e164..a92714cc 100644 --- a/Classes/Domain/Model/Log.php +++ b/Classes/Domain/Model/Log.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Domain\Model; class Log extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity { diff --git a/Classes/Domain/Repository/LogRepository.php b/Classes/Domain/Repository/LogRepository.php index edda6278..744831fd 100644 --- a/Classes/Domain/Repository/LogRepository.php +++ b/Classes/Domain/Repository/LogRepository.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Domain\Repository; use TYPO3\CMS\Extbase\Persistence\Repository; diff --git a/Classes/Finisher/AbstractFinisher.php b/Classes/Finisher/AbstractFinisher.php index 1016ad75..42e533d0 100644 --- a/Classes/Finisher/AbstractFinisher.php +++ b/Classes/Finisher/AbstractFinisher.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Finisher; use TYPO3\CMS\Core\SingletonInterface; diff --git a/Classes/Finisher/MailFinisher.php b/Classes/Finisher/MailFinisher.php index 08c1ca24..727ceae6 100644 --- a/Classes/Finisher/MailFinisher.php +++ b/Classes/Finisher/MailFinisher.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Finisher; use Typoheads\Formhandler\Domain\Model\Config\Finisher\AbstractFinisherModel; diff --git a/Classes/Finisher/RedirectFinisher.php b/Classes/Finisher/RedirectFinisher.php index d186fd7c..f412b0f2 100644 --- a/Classes/Finisher/RedirectFinisher.php +++ b/Classes/Finisher/RedirectFinisher.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Finisher; use TYPO3\CMS\Core\Http\RedirectResponse; diff --git a/Classes/Interceptor/AbstractInterceptor.php b/Classes/Interceptor/AbstractInterceptor.php index a9c737c8..434981fc 100644 --- a/Classes/Interceptor/AbstractInterceptor.php +++ b/Classes/Interceptor/AbstractInterceptor.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Interceptor; use TYPO3\CMS\Core\SingletonInterface; diff --git a/Classes/Logger/AbstractLogger.php b/Classes/Logger/AbstractLogger.php index ef50f198..ed8939a3 100644 --- a/Classes/Logger/AbstractLogger.php +++ b/Classes/Logger/AbstractLogger.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Logger; use TYPO3\CMS\Core\SingletonInterface; diff --git a/Classes/Logger/DatabaseLogger.php b/Classes/Logger/DatabaseLogger.php index d1d9d652..9e8caab1 100644 --- a/Classes/Logger/DatabaseLogger.php +++ b/Classes/Logger/DatabaseLogger.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Logger; use Typoheads\Formhandler\Domain\Model\Config\FormModel; diff --git a/Classes/PreProcessor/AbstractPreProcessor.php b/Classes/PreProcessor/AbstractPreProcessor.php index 795c1987..ef38ad28 100644 --- a/Classes/PreProcessor/AbstractPreProcessor.php +++ b/Classes/PreProcessor/AbstractPreProcessor.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\PreProcessor; use TYPO3\CMS\Core\SingletonInterface; diff --git a/Classes/PreProcessor/SetSelectOptionsPreProcessor.php b/Classes/PreProcessor/SetSelectOptionsPreProcessor.php index 4218cad1..fe0cf890 100644 --- a/Classes/PreProcessor/SetSelectOptionsPreProcessor.php +++ b/Classes/PreProcessor/SetSelectOptionsPreProcessor.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\PreProcessor; use Typoheads\Formhandler\Domain\Model\Config\FormModel; diff --git a/Classes/Session/AbstractSession.php b/Classes/Session/AbstractSession.php index a05dde15..c8319afd 100644 --- a/Classes/Session/AbstractSession.php +++ b/Classes/Session/AbstractSession.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Session; use TYPO3\CMS\Core\SingletonInterface; diff --git a/Classes/Session/Typo3Session.php b/Classes/Session/Typo3Session.php index f7c4b267..9c211ce2 100644 --- a/Classes/Session/Typo3Session.php +++ b/Classes/Session/Typo3Session.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Session; use TYPO3\CMS\Core\Cache\Frontend\FrontendInterface; diff --git a/Classes/TcaFormElement/PredefinedForm.php b/Classes/TcaFormElement/PredefinedForm.php index 3c682418..8ee61070 100644 --- a/Classes/TcaFormElement/PredefinedForm.php +++ b/Classes/TcaFormElement/PredefinedForm.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\TcaFormElement; use TYPO3\CMS\Core\SingletonInterface; @@ -9,18 +17,6 @@ use TYPO3\CMS\Extbase\Utility\LocalizationUtility; use Typoheads\Formhandler\Definitions\FormhandlerExtensionConfig; -/** - * This script is part of the TYPO3 project - inspiring people to share! - * - * TYPO3 is free software; you can redistribute it and/or modify it under - * the terms of the GNU General Public License version 2 as published by - * the Free Software Foundation. - * - * This script is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHAN- - * TABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General - * Public License for more details. - */ class PredefinedForm implements SingletonInterface { public function __construct( private readonly BackendConfigurationManager $backendConfigurationManager diff --git a/Classes/Utility/Utility.php b/Classes/Utility/Utility.php index c60343d9..5437be41 100644 --- a/Classes/Utility/Utility.php +++ b/Classes/Utility/Utility.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Utility; use Egulias\EmailValidator\EmailValidator; diff --git a/Classes/Validator/AbstractValidator.php b/Classes/Validator/AbstractValidator.php index 482e9a51..39e9158f 100644 --- a/Classes/Validator/AbstractValidator.php +++ b/Classes/Validator/AbstractValidator.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Validator; use TYPO3\CMS\Core\SingletonInterface; diff --git a/Classes/Validator/DefaultValidator.php b/Classes/Validator/DefaultValidator.php index 5fe41273..959d401b 100644 --- a/Classes/Validator/DefaultValidator.php +++ b/Classes/Validator/DefaultValidator.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Validator; use TYPO3\CMS\Core\Utility\GeneralUtility; diff --git a/Classes/Validator/ErrorCheck/AbstractErrorCheck.php b/Classes/Validator/ErrorCheck/AbstractErrorCheck.php index f8175bd2..55b6fcf2 100644 --- a/Classes/Validator/ErrorCheck/AbstractErrorCheck.php +++ b/Classes/Validator/ErrorCheck/AbstractErrorCheck.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Validator\ErrorCheck; use Typoheads\Formhandler\Domain\Model\Config\FormModel; diff --git a/Classes/Validator/ErrorCheck/ContainsOne.php b/Classes/Validator/ErrorCheck/ContainsOne.php index 57a64750..0a73ab5d 100644 --- a/Classes/Validator/ErrorCheck/ContainsOne.php +++ b/Classes/Validator/ErrorCheck/ContainsOne.php @@ -2,13 +2,30 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Validator\ErrorCheck; use Typoheads\Formhandler\Domain\Model\Config\FormModel; use Typoheads\Formhandler\Domain\Model\Config\Validator\ErrorCheck\AbstractErrorCheckModel; +use Typoheads\Formhandler\Domain\Model\Config\Validator\ErrorCheck\ContainsOneModel; class ContainsOne extends AbstractErrorCheck { public function isValid(FormModel &$formConfig, AbstractErrorCheckModel &$containsOneErrorCheckConfig, mixed $value): bool { - return true; + if (!$containsOneErrorCheckConfig instanceof ContainsOneModel) { + return false; + } + + if (in_array($value, $containsOneErrorCheckConfig->values)) { + return true; + } + + return false; } } diff --git a/Classes/Validator/ErrorCheck/Email.php b/Classes/Validator/ErrorCheck/Email.php index b83e233b..26fa5af7 100644 --- a/Classes/Validator/ErrorCheck/Email.php +++ b/Classes/Validator/ErrorCheck/Email.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Validator\ErrorCheck; use Typoheads\Formhandler\Domain\Model\Config\FormModel; diff --git a/Classes/Validator/ErrorCheck/Equals.php b/Classes/Validator/ErrorCheck/Equals.php new file mode 100644 index 00000000..8f29a07c --- /dev/null +++ b/Classes/Validator/ErrorCheck/Equals.php @@ -0,0 +1,31 @@ +value) { + return true; + } + + return false; + } +} diff --git a/Classes/Validator/ErrorCheck/EqualsField.php b/Classes/Validator/ErrorCheck/EqualsField.php new file mode 100644 index 00000000..ae06d121 --- /dev/null +++ b/Classes/Validator/ErrorCheck/EqualsField.php @@ -0,0 +1,40 @@ +formValues; + foreach ($equalsFieldErrorCheckConfig->field as $fieldPathKey) { + if (!is_array($fieldValue) || !isset($fieldValue[$fieldPathKey])) { + return false; + } + + $fieldValue = $fieldValue[$fieldPathKey]; + } + + if ($value == $fieldValue) { + return true; + } + + return false; + } +} diff --git a/Classes/Validator/ErrorCheck/MaxLength.php b/Classes/Validator/ErrorCheck/MaxLength.php index 3c840b15..33d5ea46 100644 --- a/Classes/Validator/ErrorCheck/MaxLength.php +++ b/Classes/Validator/ErrorCheck/MaxLength.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Validator\ErrorCheck; use Typoheads\Formhandler\Domain\Model\Config\FormModel; diff --git a/Classes/Validator/ErrorCheck/NotEqualsField.php b/Classes/Validator/ErrorCheck/NotEqualsField.php new file mode 100644 index 00000000..aebeaa50 --- /dev/null +++ b/Classes/Validator/ErrorCheck/NotEqualsField.php @@ -0,0 +1,40 @@ +formValues; + foreach ($notEqualsFieldErrorCheckConfig->field as $fieldPathKey) { + if (!is_array($fieldValue) || !isset($fieldValue[$fieldPathKey])) { + return false; + } + + $fieldValue = $fieldValue[$fieldPathKey]; + } + + if ($value != $fieldValue) { + return true; + } + + return false; + } +} diff --git a/Classes/Validator/ErrorCheck/Required.php b/Classes/Validator/ErrorCheck/Required.php index 7c723a0b..41561307 100644 --- a/Classes/Validator/ErrorCheck/Required.php +++ b/Classes/Validator/ErrorCheck/Required.php @@ -2,6 +2,14 @@ declare(strict_types=1); +/* + * This file is part of TYPO3 CMS-based extension "Formhandler" by JAKOTA. + * + * It is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License, either version 2 + * of the License, or any later version. + */ + namespace Typoheads\Formhandler\Validator\ErrorCheck; use Typoheads\Formhandler\Domain\Model\Config\FormModel; diff --git a/Classes/Validator/ErrorCheck/Url.php b/Classes/Validator/ErrorCheck/Url.php new file mode 100644 index 00000000..ca6b2974 --- /dev/null +++ b/Classes/Validator/ErrorCheck/Url.php @@ -0,0 +1,27 @@ +assign('fieldNamePath', '1.group.field'); + * + *And in the template: * - * Converts the field name path 1.group.field to field name [1][group][field]. + *.. code-block:: typoscript * - * $view->assign('fieldNamePath', '1.group.field'); + * {fieldNamePath -> formhandler:fieldNameFromPath()} * - * And in the template:: + *Which returns: * - * {fieldNamePath -> formhandler:fieldNameFromPath()} + *.. code-block:: text * - * Which outputs:: + * [1][group][field] * - * [1][group][field] + *Documentation:End */ final class FieldNameFromPathViewHelper extends AbstractViewHelper { use CompileWithContentArgumentAndRenderStatic; diff --git a/Configuration/TCA/Overrides/tt_content.php b/Configuration/TCA/Overrides/tt_content.php index db5afaed..3ad5db6e 100644 --- a/Configuration/TCA/Overrides/tt_content.php +++ b/Configuration/TCA/Overrides/tt_content.php @@ -1,5 +1,7 @@ P+c^LRn5{J2TzpT5FZyrRXIK z+@}^1)?RwZUhGf46+{FPzI1`0w|Wc&B`}hRzMX|VMD!4U&cpBbUH;#9&UrEe?`J?7 zW|Q-?(l-wG@dtma?{`J&djcU{KGDFm;7j5Y8p=Xxc?wOqax)v^)Si zE~UqKB}FrI@s8r@rV<_BM|?WLxfut6?&F*d|^q$)~xk7lzEId zQsm>W$O_)emH^O|YerM{MR1B(wgFf(rPPwNt`?@`Hp3y&k=v_dZ4{ie>HNhe7&p4=8;CyDxg5y!O!i|iDcG0h~KIa*BFHdCeB z8!uFPR*46`DnhB?i!sOFLuCNAi4J;?rF#%ujTa$cmq> zK?sPBLIc164i!0}8|RC%4%_8!f1f|77`xr^W0%#$c)Lpi5xX34x!qo$M=7=iB68X9 z$1eA~f*!9=u_abecdu^XL5D4;_P^WWU0V|i()3@o1v84Pb^H?H0j~WqBPFT82Z=oi zeo`8PXqkjvd!}JnKv@Cs5sH4&qIkGG!bS;oxKv@r~?j0+V`aH66ZN`J3O8`|YA zSN9oD(0|V7R*deR`1$iQwPI8;=Ks48KPXOig>J5+o2{bVeniKv6Gr2Mi1!W&*bTx* z8YWf8fQ=I_Xk)&s31gs60zDcU%owg+0mOm2=WK#9nl;zCcbQER^~Xt!*58(}rcn}d NgA8y-)HV)o_z7haU(o;n delta 973 zcmbV~OH5Ni6ozxIohyiySAu~G-cs9&w!CU6-0}#DQ69>|2m}NKioMm+@~DVN1RrrD zB*4Ka5=|O+vOpN4ZUE7^vkRh;l?&OqFd_?#=)%)WeI+i8nbr5tKWF|kXO<>mb`mrL z?8eNr=8Fi!_#omHjz=y;D4XlYl*}4c;Ny|+Au>&o6qBM?HX-b;=F3shz_JzTbRv#K zn=x5?i`j_sLd4%`CjoMBC^`Uko)KdNmP>n&ROdi!FUuo(6DAQYaVsEWa(n~QIt>;?ZF2yf5`#jFzTxwxoeg-)T z$2Q(`a4!Z-DMD}#pPDM5k!#J}0#m5sH?{s$+Ffw-qkCQg^N?7L3l=L@SlXeD&syje zy(Hcw(Tv;Ddzg>tahODWlD@*)Nm){r*BN?;lCNa{h}PWHa>mu^JL`4I2Aj!?)$XkQUsFf?A5^H6>oi1%}ays2!muwF;D*c|^*&14Znc6X&k`2axI!l91 zz%7m(xWbDaR|PgmQAR^i_@@F5upz=374<~{V8etT)S$z~A{r$fMi(C!M@ZF1P~$jU pybhyyegAVnUU`82_!#dfd7%++lVddkPnKCwDP4sLURTx^^&PZ>S|0!a diff --git a/Documentation/.doctrees/ErrorChecks/General.doctree b/Documentation/.doctrees/ErrorChecks/General.doctree index d523564e251be4f83e212717e25c7f7d9e940fa1..4a77cddd5987ee848bece1f148cfbd344f2481a4 100644 GIT binary patch delta 2081 zcmbVNOKTHR6xJJ)Hj}2rw05+$X6)07ZKI`HUr3eOVkJnWB5I{+JN0HdO>oi?Tu8K_ zxESzpN8JcMP+aJy6cG^-S0dJpKf#5IA_X@>6~uF9?j+NgpmlRI_dM?T&i9>r^D6qW z&wJ5(Yk$Lx_pSfb-d&nJzH7MWtR7d>!@>b7k4~he#JCif#uKtSCdrmZnxe8ano5o* z&ghyvCY_6`y4)t1v}DNKM3XI-%nR`AHG=NrSe4LH;S zKM%HhnQH0gtSRLySFAuL>3IiF&J;BQHiH%@Guw|+0ZAhRf14j+b~-Qv_h5(c^bwie5Np{pe`y9H=oo6NkGS+aYSSJ|O}W@BF6mfGPD`NY z^0Zw8MNY%*$*bb%>&SZ?5a-F8HARi`rP(fphinqK!Y4QjT;Vh51ce*R0d_Hwn}M%m zJTE6QS_d#4Mcz|P
WQTzW73BxnuYIz!Aq3(z=;~=+mN5n4OF~ZiJz4TA+P#%Ii zkL0W=YLpHDMG1JhT(zFqwK%NM7$*Q`GPbYO1U4Z#G!o z_5w%C+y048n5t?IfLQWgv_fn1JUGV#TEAcpjMBE-KNz&nwHY+v2E{_ld=|9+wEI!UNK`vq`2RHLoukX zP|(tw$QH^Pt7C>(C=w`Tp`cjP2k@0cxE#hMhRYFL1_)~ls;hUyH-B2&q1!IPo(4O~ zcEUafuagNfJ5|1qkUM1dd1&4Pd-kBRGCTn}SJO0%|ERUJNuh+jtNczL6ZU4!i&ekC z3$wPRL{fgjr}gH0Fy=#52U#RH#a8lzuy*kzS?^(n*yLU3;Zf|97~W6`JHwYw>Ds7l W(t2Z+nn=oKKY_mnWsxwlcIR)^4Wxho delta 266 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 SpGx1hOSv#l8>G0T+xZU!aoykm literal 0 HcmV?d00001 diff --git a/Documentation/.doctrees/ErrorChecks/General/EqualsField.doctree b/Documentation/.doctrees/ErrorChecks/General/EqualsField.doctree new file mode 100644 index 0000000000000000000000000000000000000000..589bcb16db51d248870f7bfe04d5b019e7c8f3b3 GIT binary patch literal 7120 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 Do5v9k literal 0 HcmV?d00001 diff --git a/Documentation/.doctrees/ErrorChecks/General/NotEqualsField.doctree b/Documentation/.doctrees/ErrorChecks/General/NotEqualsField.doctree new file mode 100644 index 0000000000000000000000000000000000000000..08098e61250290c9e34b58849515a9d526162048 GIT binary patch literal 7177 zcmeHM?Qa}M8MhPP*>`?P;v}V|b-N@qOhc8@K}D$q2qE!DAn_j{B)*jYqwsrXU(a^pvk2dabn(qI&&)jU zZ}+hAi!WZBF#q%!83`}g=`hy~LYK=_&$ywJ40)i^kJ4*DO83&Mx)rl+878sAQ#}C; zM|i#)^B{eI%>}|&o-aH31x>}`KCh08hCbivSauL9{$9d-+4H#X-blstgH*SfQnA-f z6rQH1PJ6DzwR+m|nUnzHdm~`O?Awf+MAf3poXwc`G8}yI+*B`&zLF+-TCqNzNkv;v z`Ch=&^;5bTG0?A4aaymMTrUqNS%Lca#?frT9ccG>O-%*lZ|I`MkEJ7e?96&LV%4xi`o`SOD_5ig5tK);fqi_7Ab^`@b;1tGA0 z%py@I=)4*h_nmK%lG3j;<56$TwX51NmHsg4Eiu#4q1039A=Rc@vo`+ahODPg3BN}?S#IJxN~Upi7^l~(q ztgvSxVdQa138t)JB9%!gU7lqXON9m}%Q!f|tiHF!gX~a|U7qQkmCgTcd`TAOd=>ov zbxa}gCz>Z&)~|8X$B^W2MkRUmkZ7M|qI3zV<6lRpV~jJ;h`P#@XP57>z+}_iG7Qb| zVI-LJWX(MWO(f#nxLf6s%D@M0+8?*n8O#v2HJHMm~Q zU29a4qrgg?pPhuYQk`p{29qE?{Kd4!rjHIWiFhYAvso){7_YOuteWs{` zBP*Ho)b+KsS55KxK5oq$$*k{0xr5qj7==mT)`EIo zPEDZu4jmQqddquUsb%R)$M@Tq5Ku9NB9|rvb6(*1iHi|{pAQO#Y{%sh)qAHfOJI@d z$T##<-w(SextqdsT?{ZD>-qd>4nQ>?B*QL`xtp#}pdP1wU50_bi&JgPL8@0F<-tG6 ze6qgt4cNp#j<5-RCKtiVHd<{|=A$yFTmDYBl!B!$79D-1=c{6g<|5ZqUi9{d#vF{g z{Ue}x|Nm9oemcvcS^p1Kcn?el4)HmuU*J0^sFhto?e4B^#wL5|;M6J5Hz)O%j>N*) z1^wa@5b8u1q!wd{aWlX*_+1t*DV24m+Fmkm8vK+Ke8L(fRA6oN5^Qs>GcQxAQN z;xIPdL}Q*n-Nl$nT-(sCzM0OTg-@|S^}(e=i;u-@_Kc0YH?eHz%Ov)(num&P8Yj`N zOvR^qu@{C4Z8)!iA*Xp7?!Z9o9W-x4lH3A1D=)I)12i*}xa`FY!hLQa_O_>lU5vBv zR(>F#Z-MQYM`5gNpKo!W?6obJUoIQ^9N+OECB;-C3#5i_xV)S6@!Y~Tivvgr7%^u< zKw2tBuSx8{z8Ab8N|X&vhb|>H-AYt%ARK6zZgZjXS%j%_2@^d>{shYj`Y=S_ z8+t0eclI^C5b>yTcw%ObAYBI9$u0ErLa9jJSX~8JcA{M+!k`nz{nb=oBuqm9Fl~jh z-iNQzc!NhPudcmGli0ZD9Jrn!)%913>*1!1Om>sU9gnM?c>@l=D%8-&V=YVx;6Ok?Czd_1IggCv4nZ&-Cd7I3T$ANuVPw03-4>nK)hD8b$2#E*qydefXc#LJ< zNE7MJ6gGpLv2>vQ>p8OG}OvVgX)PxD|a zMcU9aSvZ0J!W6y0_23-J&Svr^S)Kz?FfE0lJQ1@Ni5XSxEDs94#;V38aiV zZXp{m`WL+Mv_UY{JtUAnA0v=Mq8R)ECyo#V75YXH#Q1E4X%RbUXh6ayBQl literal 0 HcmV?d00001 diff --git a/Documentation/.doctrees/ErrorChecks/General/Url.doctree b/Documentation/.doctrees/ErrorChecks/General/Url.doctree new file mode 100644 index 0000000000000000000000000000000000000000..9de79fcce7f5dc9bee514747ff71e6e1e8bd470f GIT binary patch literal 4195 zcmd^CTW?&q5tc0PYImhwT@oj0V%4X1>q`r-9H0dXrG9eK3k0h`kQRLr4!GxVmy~!e zA$jB#3Ipy#01Mz-n78zQ^cVDp1pOiX=G=C*&aKZCu)^VRIOKes`DXa4^VQ#W*UCS) zV{#$W`IyCVn#J6B*Nd~LNO)@fm;TW|{7e7P^)-88vO-7PyESM;LaJEv)SqHi;SS~uQHy#IJq1BNWo2T9ln6+9?3XA>7{)UVVY`M)yF=HUacPC{@_0@}u zd@-1?=v?z@rGpO{d$$48zHpnC%}CLUfxD?>%Kh;T*UcGDYQ5NS{jhZnqi*BTgTo}X zht=rt6Rk7-Oz`O39R7i)Tr+j}7p=zHSYJ#;-)$NmS(&9RI-(=GkoM5ShU-%MS5r|)jpNS1|_e9(|DJD$p0ur%*>c!jmy@TI-_`QGX3-MF& z2cdAi(<~RuTR*7W2;?+i!Blb;2T_(xzWeMmJ3UY2_u|If|$gt_a_6Ln;AMr_l|H8)&e z;IlK$h=8tKPqB1X;EF&b_A<{*q-Acs8woiR3O^fyfQVTrV~*>%8(fRKUX&$yR;2M# z$W>`9*1#iKWHn#T<9hD9Qd0!(-S1!yuo~z`%ZkgkWg4j>25qUD+!8jAd2R)9)n>%< zl3PyP&6&z3aJDOC9D`|JyJ5Yw766B|NG4qK*dMO}31S|TrRox^1|aOkt^~uZhT#A( z#H%dhc506wzW|BkTzj@kJd*~#$_|K%w?y?&91w+n=y^j~6(ciZuI95Qu%E-u#xjB7 ztb7VD(uf>ccR%6t91I&Sq~YW;ENLC-;>5Ob?|!Qa3IP-jps;+l=0pvNwzMzq5iIL& z6cw5ZL|B)D6Sv(+$`W$odWKsoQ$&>8Yir$9gGxE#$92I$1unCxmg3Qg>(9#40bcSL zfS|asU^5K1s%=8pKF4rS4?!vz4RH-26*!v3b{)FIOYiolS!UDB@})^YHKbC6APDD3 zjfB7(8AMthBDkr58<_l{l5oXKN%%rq5jJHOJJt*8x(nwu&oga9#V@#`m>dYE+F{4- z@wo(6mf6BIN*&jU`J|X(yU`1#Q(y%R%~=9T-)dwsIfWP=$uuu)h|A7mXnEH!?DX+( z9~+79+t(+mRYn&FXqMi-KC!aW z?UDlqC<)-BN@^N5Gz7R~aM2B9se4QFDARF>ltyr18_N3=*R84!!6D-ioHmtnFS>5T z3Y&!sk-I_d%rGvJJZz&5sFnhWfYT{cWN@dH0NT{h-7iGB;YFN)v8?u4;4Y@#?Eq1uRrn@u)|du|)f7{ouTnQ2(7g)N7@LtoegL`^!lUa}VB zzPG?b?GW*~M=6D{NoR;cB@=1=^W6t-l=FO%@Z`)kNhS2|_Up)CW@EqxBv|^ql3-k9I^TaldU6hAjKM zKvEk3^;S8qh9O!ZR+oo^NT9WgaPd{L0p$`xtUfPtFgkna-F)FcMLyuUfXu@4${+%0S3FKe z=F%X08tI~()z2I8yXrBB*WCS&i(JVFX%Q)1S{3y7KRJ_~1D}MPy>fgNj z8VkO8_0O?ypB86#*4Nhlm)Avbb{i{JJDcS;MqDx1sq5OhyGfCOeEieN@Bd82rF!0i z@9LLh7wy5>`*esmUR=!Wx6Iq%MJS$q0QCl?x?^lntH)2=qd#I}P07}PR>BoX6QINg zEsMkr8X`D*3d7&mGgB+`5%i9J0D?FCKl=?mj26 literal 0 HcmV?d00001 diff --git a/Documentation/.doctrees/ErrorChecks/Strings/ContainsOne.doctree b/Documentation/.doctrees/ErrorChecks/Strings/ContainsOne.doctree index 481c1a47bd69af831b8091bb9cd4de4cabda3eb3..2479b3fd4b366770bf2ab15edf04832522e92814 100644 GIT binary patch delta 174 zcmexl{>gm9eeAZvYK*au*XixFo-}B-ptC{&ZNnur3F@0tfe&t ztR`KvaZ2qJjSSX|)et>BY!Fj6v#)0Kn;g#}Aq~->ke{Ydo{^cHp^%@Ks*qb+T%wSa VI{7V!%;XIm?1WWre#^ls3;?d8JX-(& delta 177 zcmexl{>gm9e7A2OXrYPiO7MCdGrzwC{G;oMB VW#&zO%ORrz)k%!{&2Kqag#qWZKGXmJ diff --git a/Documentation/.doctrees/Finishers/RedirectFinisher.doctree b/Documentation/.doctrees/Finishers/RedirectFinisher.doctree index 1765614153d9737d7016dc7f658ffa1ba1d472ea..21a35991bb847f11ac77837f8d6aaa31f056d37d 100644 GIT binary patch delta 60 zcmX@w#CW)gk)?rks>Mc@ObG#npwxn##N^as1tqn_+yd*#brO<78gRi!4RgT4n^#H9 G)&KxyDHQtv delta 62 zcmX@y#CWuck)?rks?|o8ObJ27pwxn##N^as1tqn_+=8?FCf7GtDK-snfvunF-w%b@tuzE1T zWb`t_fv7Pgo=uE*ypeeJ5Afi@S7KsJjE{@o%yyS;0RtR5otf{O-}m_a`gMNym&4LM zY3_a9E9tlIMl6LUR9&^yDLtN6vlgT5;C(j3TCs#fI6MlQ2&pY|imMjNcs$94E)z|3 zjgKJ9QuWE~c$C)pPZgrf0SH>iEO`(sdmub<1*tZWo&tz?9soTN@BoK`R6?qrR&}(} z)J`g$@azHOB}lDU#v^pmx2vs{1O*@oWUUk&mN!erldJ5$ki3oc}QFVsLNElAmw1F52a9mOaE6N*bHK|(c zp)lW8Or6b&ca~yKB8!pAY_VY?_9fhc_u=M?5y&BUA(v3-UTJ3s&#KpB>B%La4bf#r zysZ$7(Z9Z@z5>*JXzPsU;hiF4gd^r5Mh|V0_7wQ(tjDbz@Xt9CAUAEEE}KXMM5(sk zDKj%3buZ)zILl5QvZANtjB*Rf7DoI!jgpp+@$O*i!$IUc)?Y0q!o{@O8^UYr*^A?;v~ab3EMB%&o(wl z%vkOn?^Oxa)sWk>A}@johiPt@2PUT7Dh0Lpu5%_mZnc}Hz;0}N5vm{N0NOm3{hQ;> zep@0vUdd9q^yXJckGpl_y*N-Jzx~BAVIgBYI+#maFrknklFYiIbH>cFkg7b-%GLAP zRZp`$FZ!P&trLzpi4T56oh0`ax2G*;8>j+GCb+dA)9;W-L!xrHwJLtA8gz((T( zZ-~D0U-x5;o()XLwDS;2>*Gs5Ec8u4t<^etbbB~%gLo&n;bgEw(vI_;7JMveN!Y#q z6Flvgv`2i~8U7SFEpBn6mVg^A4oi+ibR~oMq|Wj`IpHuX><@EzI~PPFJ|JA_K-CXP mdjgN>nd)o4yL7JlO86%nv-V&X_0B*xKcMG}u$s+ynx delta 205 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 literal 29747 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 diff --git a/Documentation/.doctrees/GeneralOptions/Settings.doctree b/Documentation/.doctrees/GeneralOptions/Settings.doctree index 6cd8b7a89ce1a6b09cda87a950056724ca759b59..2912b33a3bfd9bc6efeb0241bd1ef3d32dbea15b 100644 GIT binary patch delta 671 zcmX|@(j_<6?=Xrhy4u|u87QY^Vjj_qFH^$bW z#J+z9r&YXzK|EIyV5UGpV31UYomAZdvPCmH%3-1FnNLt7TsuNwrvnAS9P*nTB4K<5 zG}1(t3yoqa>jRiawyDiVFHM82Nz&pLaSCLw!%OYv$IK`FAL*T<(&ARwIf-71+MKjp zpC^`f4+E`KWpklbgltLh^RmBINHrGGrQCkrCh=1mb$J_Tr&L~ocSu>hP1}6iv&Jt- zY)s?M{8e;{ulXSbJ)*5}J6KT0kJMS{6!-T{f%i%@>$Ib@MO?eX=>8cXOnZyY^02IB z|LO*hNW7ZHWycVrqOLfq;F@@L&se`yvBZE_TNQ_HkXPC)^$PC=_q5{R=;| B=c51s delta 1183 zcmbu6T})GF7{_@I=RFh{11w=6h;Pf*R+qLQbFK|4I5ERgAuchQ6Sal2yk&=;dU{&F zM_Kf0%_e(}+5A9LS+Z=27u$QS+l|8u++vn2yYMSqZ5NAXF^iHIeEWgH-FV@}$;tos zfBx_LKhJr57Jk17BtuSLADki&K%V;VZ?NG#xCvGKM`;#_ol%y?oVy)!@?~h?gXAp* z8u3K+_t3-ruV_H}869iJh~3R+YkmRPj-S{1VLQKC`v;J)@XqBu{JB0&b_jK)q!eT; z9>O3F+rJ}2fs~Wy9k)D;WDgA)dQ?-#lk{NBWYigpk7%h;)k#NV zhB{)#(ke|vOct!_k0(-QpJC`mkbWrMah2uZdiK?aIFPuAR<+m*U$9-E_8P-*|Hn7|5PKvd$ z8v@=DkU3d9PIjysAex$1H7g`%W%F=CwX(|leY^U0_E}k3i^WwdBxRN2DlOJ7P8hqD zPg7RT9O4nDu+^dRRCMfi{-&FC&A2tBOVyRw>Ga8T%vOm9YTA$tbhg@-gcT6U90D(^uvAONV0iOWxel0E diff --git a/Documentation/.doctrees/GeneralOptions/Step.doctree b/Documentation/.doctrees/GeneralOptions/Step.doctree index a27b8fbc599ad579fec45228894ecaa3933f1e8b..8640ae283fe61267b39281fecea9e27107de7b3a 100644 GIT binary patch delta 1991 zcmb7F-)kII6z-j!X?C-l#GP#7cC(wE&DvzMHt9xM5W5u>Daf`VsqGrkg41@>ySMv$ zW&@$5rbi9F9|3Xe9&`ea>uM`f<6q~d+s^k z{mwbxxpOP~%~5$#`S8o@@?G+}uckNj3k|(SEwDzfSPNE)Dy{H|X2~oXW}&9dRvTqQ zGYY0ztXwcG+HuCBnOz)~EC)oRN8x>v4j!RHG)dz*FV*NUO;8VfM=twLgP%-Xfj-c2G@Re7KRMA#KteS{*uu`;%RG;*5$5nn6-`QcS zJS@F)SUV2QLS1=^+=oxP2PFEyPVFbe{IM;yKD7M6E&KR=_a2oR%=C;%^kG{*{pkF= zo6kK?Z0f%g6GU77^ozQwYp3RGg|yS~pT!xAK&~S$N6DT&f;tOB-J5i4`Z(2CAGbu2 zI#bc{k?aHBwEXlYiW?ioh{HUV7nZ4z=uRp&f1ZiLFuRkuimEO7T(x9aIf;vA3e6`V z)9w3|qrVX9FSMyYR(2TM!aTM`nBw5#zah2@rQHKN z{(R@4|FW>McY$?k@_V9$C~WplTL}|rx$2g1X{Qn%@aM@jc-uciZomV-Cf{}tBM=FU zdT-$dVO9|)4wI@6j6hOaBXCjG;AUX-u@!#qOy&^!U4xClFrtOK#@udj`)6)9mUuT} z*bVlULuh;6d?W(AbL)4PghV+zg-3&KG) z4vVtv(%p~NZeg{>=a+U6-%L-6OmHYSco>7nMX;CWz=OH$PW>;|B8y#T=w%6xcMOu# zZZgy2W|z+hGME%rJDJ>0$wY#$s&zc%Z>tbK`y7^nnei{M4}uZ9#C@FC+n3i%#q+vZ zZCLJe%@&YO%#&hYgGYTr=w}`|jH=%wPRrLQ%$~27^8HT$R5NJEqLzfdLyzT;YLp7&sBDqph{qs5Tqt3KmUb Q62(fvdGS~t{)#>GH^b0(mjD0& delta 1819 zcmbVNO-xf+6z0CyM}4KQlt*z?+P+HVS0Q!cYJdr&5oL@&B*q}9@Pv}f#qwk87)(%E z%#1NG(VXYT#EpsKM2#^n{M)FRi4!v_TPL$n7ntbAg^9W_cgH@!L!BH5`CFh zaR8|=Y^soc?`x&s^_LetvPdsZ1-j zP-6=wYqF(geDG8Lz9wzJ02(lmF(B(s%M{LR&2gsvq3hES^L>(k0x$frCtNgQqwEO0 z^F*YHbl1?;Y&@@P1|o-?t{q&cYqyGakTX!??I3>w^G2l0JYEnkcxxA3L=Fa-#vlg# zud6_`sC0wCdp!cJTCM*a|DGP72%b9wN3<%8bzZA?E`Z~woeMa~FCc^$z*1>B^K0hQ z;N_R~JR{g15B8js>%U00TjNaYoRVuZ1uBaT;)YQ@1T(sq&wn9zn=HXIt-@zN1yO_w z1SI_SAtPj7@Y&)T63q?fL|B0lA|itD-G^^bjsxP&4#;{5{&R=PhTLpI`nr7Sm6*6C zE4^7-U{o%Y?9_YlW3I{Bc_`ImzDroHT`EgJyKazSOly$qa8h5PW;`*-lZ4R}9{n#Q zOsf0i{e8m;b706~WAILIXneq7&oAb_0r4y)EgTG%~Pc z^pcKH7oZ7Tb=XNf+a83I3KL z(!uq)_Qm^C7V8x2)v;J5S4kV;x4`e@Hu%b3lfG+nWo?AaUTgdAm0W$B_bim0RENw& zJT*2FPvYMLMuP3Z7Q*0Ea75ZH^S7;V0QLPW^VUgtYG-H- u*$97x8Uk%{w&{*}XF{#YAbv=~UAG@50jzAW=Wn7b{@YT!LZEKa*x!Ug4D^=gaeqe4sCuc%*x1m zgOP!ucyd0c%w$ecDUoYHUWRlAPlikebB1h&PKKPf;be2sfYc*EiP$Mw$AFaAe;~*@ z4rKXdodA-ZSto&HN7gAY`!taBX2?1N=9~qRu~SMjw6hifSx^IwGNiL!0J)_}i5c>> zQ#3LZW2a;&0}a2l`HkpyCPt0TOC%mMt1>Y$Fl7A)sw?i{%uCEoEvYO>EuK<4B?~0c QS)8E=Wd7g0Mkaz00H>Nu{{R30 delta 234 zcmZ2r(_+Kgz&iD(>_%209wr0R&5}GF?2~s0yKZI@VPa&x#>l`>JUO3JX0ocNl*knz zFGD(mCqpKKIYTx>CqvHLU~;f%K*k}UMC_ETBS6aQKM-Uc1+x6IjseNetm8nkBkKg1 zeG*7|Gi03tb4~-v*eRtM+F1*LEU1Bo8PZwLfZWog#0>e`DH<7yu~RaXfreiI3Qk@q zqPE#ktdEINZSw(%$IPk>ObiTJe}OW^J)C)oxv3?U1*yeTYNup@Bsz;T6oJgYn@`9@ GFaiKyL`OXU diff --git a/Documentation/.doctrees/Interceptors/InitInterceptors.doctree b/Documentation/.doctrees/Interceptors/InitInterceptors.doctree index 4246ef53b1f17d7290fe05f345c4b3ddd6fd88ab..d234d38d70422f7e1b370eb26dcc98c9aea79367 100644 GIT binary patch delta 248 zcmbQBdPj-1fpu!2;6~PVMm9muyv!1X$rBl6q0G&j8N1kgdIU3p;<}l6C8*a(78K%g#i!5F;3$QwTeD zij80`!9VabtSs#W!A8W{C@3P>-MQz%xn~}Xvk|qbp4Vcx>Y*|kS+z~JYBO+i;IOhw z1%}fCTX<+4wwUk)Z!qe2%89mwaUL``rUhV^>h4;ah138xY-e$7f8JmTBR5}W4BZYfg&N=ZQ;ofcNj_gsl&!#8rE(l4sT8~)c{{!y)O nlB-47grZ+^$gfLSR}$qKEm!1E3moR5qG^Lj1sVxFBf9Vb3#P)2 diff --git a/Documentation/.doctrees/Interceptors/SaveInterceptors.doctree b/Documentation/.doctrees/Interceptors/SaveInterceptors.doctree index a1b0a4f0addf75a0b72dc9792d9ea7c0637d87db..181d32b4f90b50761de9050a132045a209f15dcb 100644 GIT binary patch delta 233 zcmcbkx!122Qf0KO$#3!#66rY?TpgZ}YpciWwBLhS6WCcNGmUbX(vOKfQoAlY)n9l Lvsx!F60!mSDUMI; delta 501 zcmZ3Xd`FeFfpzLdp^dEVjOqfxiDjvtc_pbu$*Bb;`9;N3GT39MWN`MdgrruKOqo2T z2drZAR>o^=sTs08%$X^MQ&KZTfNI2Ifs(~Q?U~5h6Eh@mh)cyzDb0|}P{~lpV9rnk zVxY0ku`wAq9E6|;E8_YB$M9?rbP z+|-iFg4E(EwNo;_cN9+!;{V5yWx&Y5;LTV(IY2;sa-D!~eUGtAX+chAa$-rULS`HiIZ&wwJq3yA&}Jq6a@x?8gd|%CMEU=l@ulB6{qDF<;Lfx z78fU`1AQ7hC94%=h&`*sitc@~qYw3Rz1g%Ly9DWz7c)_OKP_mjWYk WN``U|OHO89>J)D#uw|3;1g!wNTd{ut diff --git a/Documentation/.doctrees/PreProcessors/Index.doctree b/Documentation/.doctrees/PreProcessors/Index.doctree index 659a822e2baee96ec3dcdb2d106bc6b89ef94b58..e8b16469101c9875922516937affe6a30f89c4b5 100644 GIT binary patch delta 257 zcmZ2!_0OEOfpzL<>5Z)AjI4YCMX3st8yKabtcT2^o3}8^3p)4k6%?iF78KLCg`!1A4?o2N@MGEQC~B|iDDwD{!hQo553W!zb7nHU&~Cl~T4GAm?NO_BH^A6JZyC>Fr zM#)eKbmp-tIe{Tk6fjd1EZ`9Aka`(YS|?PPF!vW2FNy{vU=a-Pz=E6L{6%BG7At2*2)*Kkd8h+Si7mN!yk;Zqp_6Y{MrTl-Jg zZ{Lnd`|Z1o=!%YvwgQHIA_D>c2*!9xi>NJ?-%ls}_NV;BEDGw#lfP>DALd`2 AR{#J2 diff --git a/Documentation/.doctrees/ViewHelpers/FieldNameFromPathViewHelper.doctree b/Documentation/.doctrees/ViewHelpers/FieldNameFromPathViewHelper.doctree new file mode 100644 index 0000000000000000000000000000000000000000..babc601b9c82e36763f6107d36577ab25e8c0857 GIT binary patch literal 4438 zcmb_gTW=gm6}IEd*fX{#wl@iZtl8dViEV+$$$|hm5VQoMMcy?Rt(J#inwsvKsj_>z zo2qKZ7K#)eR*Iz(FI&8Uv{HT$zkrwhC48r^V<$V=0G3ATI(6!tI$xcupSAwJw>p#m z*(*8~GCt|EFpQIsYiAe2B*?}*Htut`^;h@QZQ71vPjr&0fIB+_jzGvLR6KSE*z6I% zk&*6~0@{YD5pRx*mi795&mT%2g)tlRp-RRnGvZkCCxS;QSG!KkA2{1(#wa<+4DLaC z=VYj%!_Eg0(;7s4w@5<%wGd`$vly`8NbzC8gAW-xdvl6Pm)Uv4MkK(AuDu+|n7h48 zww*FqW}KL_9lwSGt9FIJk9Nkf*(p{#pTdR@a~t%|BQkIw0w2M^-@w3Tv#+#q*+6vc zyyk(CNnE2VTB1$XZ(_4$q>1>%mc2PeXbu`qUH*ih5Zu$5KXdtG3Qv4jyesC!t$p#% zel}oY1yGB%11GNHcOAbQ_ID9PR3qQEV@yifgWp@!1+C6z*qsA!6|;V~cfVq@d91;k zKi0~`Ek3Gm@%~@Vq3>-!@L=UwusDp6gX+yHd^fkARDYGCdCUdTXriknQux(4(jxqPsP8A@z!# z8i>DrJs>U{%4ZiLxY1mM*EwrbtW%Y^=XjO9rYC(y$?bJ4W$t?q3g;$spY5Wqa8!qY zhi-4yev_Z1NalV+^#`YZUQysUFT|3z-*_bpY7-dN!H^9aTPh2x{99KXahoD+*7kx- zQEl?eO0;j6DoS3x_U(e^#>f~^X;>uHqw)DMy|^%@!?Zx$3D@top6kw*Ac<%h=dK-mhwc*WC189(C3JfhOw6)dWk zExXE3B(O5fWV&K%*;dF0*$C=-Pne2<6*v@UV^BIqAq|pI?z!#BIL(ZY$4)|UIorw1 zaQnyGNaN1FeSXvDN+rrK6A5sps|Lo|D@kU~OKIg&oL#@Lb3ugom+cion+sG&-#))_ z;iO$512j+)z$eP{`f`=S0e6T*ehICceM|8mQK2956wU!P5}vVd+d&c!VI$y>p^t(v zlqXKKZI5Lp@f(u8L><<0n2l4v_Bx=N6C@l?#VjI$S8@uVjWxY}LrOKz!o)}Y0oMuw zCDGiUJej));_FyyS@`D_Ka`pcA`U~!Th3R}Aa2_w7^C6;EN`&jG9?>Y"buhSQl zpvn;so|mMBc<)8@xb+hLxk@1gw~0sa!bpy#aUZX2*j~!hCg91KC87)%?oN?mZwO;j zy}PpmvhJs+MkH}RQKKDauMuZ{0dV?N9i+0$)9vrv{Q>aosbO$IJW(3)cPjCSR7U=K z#8qE%Gt6}$=68e{M^M%=Y=967jc|Jlb{!5m_UqWJGnQXe{xiFxPh-PQ{JOY1w8RPd z{gNItMA@G+1hocGZ{_P^>7)B$CA8~-Kvx*x;fr7c$~lBMeUzo>Bxq2```a=JoWXmN zK*mG(K$R8NC{G|OUf`2sG$2sMicq9x{m8**#seNAeot`)!7*~2*=qr~j(k35GV(Fh zprN6`;kjKc`))XEG%Rx3nVsYDu|pGV7m8fMDG9E~IFtwu;}?TWK2ogWQgAJUNe6Bd z(xCAa+3p;bGJj5nv|+tyQwU*>p^Sgv#1hkXo;FL`3$dc{-UlKwdX_3yn|{h9k6;sKKe zA`7@`cmQd|ywlUC8qrfxn{rl8QljaQ9{eIpBN?Eoc@k}>#QnYERrAqg*SnQ>eFXo@ zQ|YaG4Eg!%#C-YeA5#Q<`Rt#4S9f8DKb)PJd6P!WJN!OQOdHk27tFTGIyh@DlP4j5 zf3^SU*Hny($sPHz9CF)eCl2q?C0-itm|d$gb%igXe)vAvt46w*R~wYe^;M1& literal 0 HcmV?d00001 diff --git a/Documentation/.doctrees/ViewHelpers/Index.doctree b/Documentation/.doctrees/ViewHelpers/Index.doctree new file mode 100644 index 0000000000000000000000000000000000000000..97c3275bddbb1ec236116a60e44178827d9d22e3 GIT binary patch literal 4227 zcmb_fTW=f36_zdWDvG+qPSZMS7`b(16ryY(4~2^YMFSX4)iOz21Skw;Gu$0=#@btU zW+keCdwED<0p~5#=b}LWKz~Jm|1^< zLp3Y~G&Rend~sYfXlFPac;}K|2p*<9Q%{U&of_>ur~!HSV?dtjj<_Cbj&KDFq_F z8!?NDuXd29i^Z7vXBnRqJou1-q0QPACa0EWQ+vROE^UM|=H}!!HB$!7wGr#o@v5g{ z)ttZZ-Qy_M$HnUSQz-qcQ2O}8IN-BkrnJe&qC+jkeJzu?vXf|trhV5THXB;%kk_`T zXGIN4S?>K{+xR`7Sxc?#ercTH#X$T-yernl!AQI_%EwIXz)WKA)QCIyy@}sj`2FD2 z&#=#xS@Hrq{+d}niRHOqh8A6K*m#V2IXt75x=rdg7Bt{9V%)TDYhQby=$Io z7T)>Y>%DVG8}43OR~pc4;s24n6S(bK-%=CjfK)@f3wx^qjRvu4HzOuvBR-=R zR{AnUoUYr;XcPbWEDfbEwYhTJ7c7g-D|fC8RJ!NvZoM^uW39u^t5|i=`n5Q4km^9! zXE)*SX^r`p4ujnVzUqE(!2&;Y5Rz<~u~gJ{>Et^EQ~`-c->u9A4F3Fj7_55xWz9H$ zyvdR?m>U-4*M|KsY7&2blf<7b=Lp~q_HX-edXmRM&HP0s6KhDKiLWzWPi5ua>v9pU zctI`X*i5>_J)-yOxVDuFJ|QiNi~r>Y}VI)U+w|U!^TK@rHk{+LE?Q zQyg6Yt0-fJt$Oz#|6|^T?+&SFqv}W$)x?N>KF{Li)?mK1T*!Dm$^Qs9tk;t~eIN0S zLgd*LCDZ$D<(fUP0j@cNFhJYT?cM5!_fFC>sG3Q}GEcBL2mwww4sY|dq3tBs%TgLnilP0LofQ${Kh!UTE)s4s!=s-$uaF8yWYLEbtKB00*wIIb%dkKZz%JBg`QKF9o*c%!nrS zS*{arL89BX@7oIUDD^7T!K#iR0k|w?p%u98C@^iTtnU}3RPj7Wyjf)Nw1YrN6!+>U z9Yhdc=TgZ6pW9v_6&r{4A*GhBc{GUo)Wc&G@XyL5wNkNPQ37Xfb{gJvfM*rB_P40=mwovJ6t#~`a= zdZ|Sc50h+qZ0N4#bP9meL!$@xXt<*d`q7Ucy$^f#vx&bV-clCgAI!xgQkli;8PA52 z>xsJqF@G#{6ymauW@CgUB;TtJRzqd#1G)z2osC@ zo{AWv?28;htzf7(+`3qLVdAr*SkS&N&`kJnd=YH0vNIu0pXDj8u;YrW0%a1o0(uf( z#uH#*o)z|NooAJ^7_L!oU-7IK_s1y6*8}W5c9ZR(>q#Mb^x39!ESGm}; zbH_f$i?79loVMyNba!o`zjS!Fuqh}uQs;by@^wnVhxraJkH$$@p~A7=Ss_;3oh6B# z`K|8I-jaM|+)UdPe|J?@xr1&1dBjKG1F)b|_LDG#xnWoolGX<${VQ1POY>XA1e#Pt z7i_D5g5ts|oz%%_sQT(sA+YAuMWrhTMDeF$u&ze1NA&m^OrBXp4GMn`4i-JQIv7Yb zKs_5&ArlPCF+>bre0FPXP2DgYz69TM@U1pA^$vy_Wf8lDxyua^8y}9Ieq<|2G5jOB o&F5(J0x$kh$fM254i34SWebK#nc4{+-9J)%nGJ30l8=Y~1u;ct7ytkO literal 0 HcmV?d00001 diff --git a/Documentation/.doctrees/environment.pickle b/Documentation/.doctrees/environment.pickle index af4a8da24f345ffbcee343f0465483490d066afd..715c9551b46cb351d930c4a842df15db89b42fc9 100644 GIT binary patch literal 383576 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 X)sMm1sSXW7_n}_*BeSu!o{s+yBAtF8 literal 339168 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 — Formhandler 9.0.0 (Alpha) documentation + + + + + + + + + + + + + + + +

+ + + + \ No newline at end of file diff --git a/Documentation/ErrorChecks/General/EqualsField.html b/Documentation/ErrorChecks/General/EqualsField.html new file mode 100644 index 00000000..9f0d3f1d --- /dev/null +++ b/Documentation/ErrorChecks/General/EqualsField.html @@ -0,0 +1,182 @@ + + + + + + + EqualsField — Formhandler 9.0.0 (Alpha) documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

EqualsField

+

Checks if a field value equals another field value.

+
Example Code:
+
+validators {
+  DefaultValidator {
+    model = DefaultValidatorModel
+    config {
+      fields {
+        password_repeat.errorChecks {
+          equalsField {
+            model = EqualsFieldModel
+            field = 1.password
+          }
+        }
+      }
+    }
+  }
+}
+
+
+

Properties

+ ++++ + + + + + + + + + + + + + + + + + +

field

Path name of the field that must be equal to the value of a given field

Mandatory

False

Data Type

String

Default

Empty String

+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/Documentation/ErrorChecks/General/NotEqualsField.html b/Documentation/ErrorChecks/General/NotEqualsField.html new file mode 100644 index 00000000..5677bd86 --- /dev/null +++ b/Documentation/ErrorChecks/General/NotEqualsField.html @@ -0,0 +1,182 @@ + + + + + + + NotEqualsField — Formhandler 9.0.0 (Alpha) documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

NotEqualsField

+

Checks if a field value does not equals another field value.

+
Example Code:
+
+validators {
+  DefaultValidator {
+    model = DefaultValidatorModel
+    config {
+      fields {
+        password.errorChecks {
+          notEqualsField {
+            model = NotEqualsFieldModel
+            field = 1.username
+          }
+        }
+      }
+    }
+  }
+}
+
+
+

Properties

+ ++++ + + + + + + + + + + + + + + + + + +

field

Path name of the field that must not be equal to the value of a given field

Mandatory

False

Data Type

String

Default

Empty String

+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/Documentation/ErrorChecks/General/Required.html b/Documentation/ErrorChecks/General/Required.html index 56d94e70..6fad7c1f 100644 --- a/Documentation/ErrorChecks/General/Required.html +++ b/Documentation/ErrorChecks/General/Required.html @@ -7,6 +7,7 @@ Required — Formhandler 9.0.0 (Alpha) documentation + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Url

+

Checks if a field contains a valid url.

+
Example Code:
+
+validators {
+  DefaultValidator {
+    model = DefaultValidatorModel
+    config {
+      fields {
+        homepage.errorChecks {
+          url {
+            model = UrlModel
+          }
+        }
+      }
+    }
+  }
+}
+
+
+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/Documentation/ErrorChecks/Index.html b/Documentation/ErrorChecks/Index.html index bba745dd..5a82165e 100644 --- a/Documentation/ErrorChecks/Index.html +++ b/Documentation/ErrorChecks/Index.html @@ -7,6 +7,7 @@ Error Checks — Formhandler 9.0.0 (Alpha) documentation + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

FieldNameFromPathViewHelper

+

Converts the field name path 1.group.field to field name [1][group][field].

+
Example Code:
+
+$view->assign('fieldNamePath', '1.group.field');
+
+
+

And in the template:

+
{fieldNamePath -> formhandler:fieldNameFromPath()}
+
+
+

Which returns:

+
[1][group][field]
+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/Documentation/ViewHelpers/Index.html b/Documentation/ViewHelpers/Index.html new file mode 100644 index 00000000..50e28813 --- /dev/null +++ b/Documentation/ViewHelpers/Index.html @@ -0,0 +1,129 @@ + + + + + + + View Helpers — Formhandler 9.0.0 (Alpha) documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

View Helpers

+
+
FieldNameFromPathViewHelper

Converts the field name path 1.group.field to field name [1][group][field].

+
+
+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/Documentation/_sources/Debuggers/PrintToScreenDebugger.rst.txt b/Documentation/_sources/Debuggers/PrintToScreenDebugger.rst.txt index 901da644..55d7b484 100644 --- a/Documentation/_sources/Debuggers/PrintToScreenDebugger.rst.txt +++ b/Documentation/_sources/Debuggers/PrintToScreenDebugger.rst.txt @@ -27,6 +27,7 @@ Will print out the debug messages to screen. model = PrintToScreenDebuggerModel config { active = true + maxDepth = 10 severityWrap { 1 = | 2 = | @@ -92,7 +93,7 @@ Will print out the debug messages to screen. * - *Data Type* - String * - *Default* - -
|
+ -
|
.. list-table:: :align: left @@ -110,7 +111,7 @@ Will print out the debug messages to screen. * - *Data Type* - String * - *Default* - -

|

+ -

|

.. list-table:: :align: left @@ -128,7 +129,7 @@ Will print out the debug messages to screen. * - *Data Type* - String * - *Default* - -
|
+ -
|
.. list-table:: :align: left diff --git a/Documentation/_sources/ErrorChecks/General.rst.txt b/Documentation/_sources/ErrorChecks/General.rst.txt index 6deb4724..df24d1cb 100644 --- a/Documentation/_sources/ErrorChecks/General.rst.txt +++ b/Documentation/_sources/ErrorChecks/General.rst.txt @@ -29,12 +29,28 @@ These checks perform basic validation routines like checking if a field is fille :ref:`Email` Checks if a field contains a valid email and if a MX record exists for the domain of an email address. +:ref:`Equals` + Checks if a field equals the configured value. + +:ref:`EqualsField` + Checks if a field value equals another field value. + +:ref:`NotEqualsField` + Checks if a field value does not equals another field value. + :ref:`Required` Checks if a field is filled in +:ref:`Url` + Checks if a field contains a valid url. + .. toctree:: :maxdepth: 2 :hidden: General/Email + General/Equals + General/EqualsField + General/NotEqualsField General/Required + General/Url diff --git a/Documentation/_sources/ErrorChecks/General/Equals.rst.txt b/Documentation/_sources/ErrorChecks/General/Equals.rst.txt new file mode 100644 index 00000000..4f70b90a --- /dev/null +++ b/Documentation/_sources/ErrorChecks/General/Equals.rst.txt @@ -0,0 +1,52 @@ + +.. _equals: + +====== +Equals +====== + +Checks if a field equals the configured value. + +.. code-block:: typoscript + + Example Code: + + validators { + DefaultValidator { + model = DefaultValidatorModel + config { + fields { + privacy_policy.errorChecks { + equals { + model = EqualsModel + value = Yes + } + } + } + } + } + } + +**Properties** + +.. list-table:: + :align: left + :width: 100% + :widths: 20 80 + :header-rows: 0 + :stub-columns: 0 + + * - **value** + - Value that must be equal to the value of a given field + * - + - + * - *Mandatory* + - False + * - *Data Type* + - String + * - *Default* + - Empty String + +.. toctree:: + :maxdepth: 2 + :hidden: diff --git a/Documentation/_sources/ErrorChecks/General/EqualsField.rst.txt b/Documentation/_sources/ErrorChecks/General/EqualsField.rst.txt new file mode 100644 index 00000000..5d491eec --- /dev/null +++ b/Documentation/_sources/ErrorChecks/General/EqualsField.rst.txt @@ -0,0 +1,52 @@ + +.. _equalsfield: + +=========== +EqualsField +=========== + +Checks if a field value equals another field value. + +.. code-block:: typoscript + + Example Code: + + validators { + DefaultValidator { + model = DefaultValidatorModel + config { + fields { + password_repeat.errorChecks { + equalsField { + model = EqualsFieldModel + field = 1.password + } + } + } + } + } + } + +**Properties** + +.. list-table:: + :align: left + :width: 100% + :widths: 20 80 + :header-rows: 0 + :stub-columns: 0 + + * - **field** + - Path name of the field that must be equal to the value of a given field + * - + - + * - *Mandatory* + - False + * - *Data Type* + - String + * - *Default* + - Empty String + +.. toctree:: + :maxdepth: 2 + :hidden: diff --git a/Documentation/_sources/ErrorChecks/General/NotEqualsField.rst.txt b/Documentation/_sources/ErrorChecks/General/NotEqualsField.rst.txt new file mode 100644 index 00000000..317f5295 --- /dev/null +++ b/Documentation/_sources/ErrorChecks/General/NotEqualsField.rst.txt @@ -0,0 +1,52 @@ + +.. _notequalsfield: + +============== +NotEqualsField +============== + +Checks if a field value does not equals another field value. + +.. code-block:: typoscript + + Example Code: + + validators { + DefaultValidator { + model = DefaultValidatorModel + config { + fields { + password.errorChecks { + notEqualsField { + model = NotEqualsFieldModel + field = 1.username + } + } + } + } + } + } + +**Properties** + +.. list-table:: + :align: left + :width: 100% + :widths: 20 80 + :header-rows: 0 + :stub-columns: 0 + + * - **field** + - Path name of the field that must not be equal to the value of a given field + * - + - + * - *Mandatory* + - False + * - *Data Type* + - String + * - *Default* + - Empty String + +.. toctree:: + :maxdepth: 2 + :hidden: diff --git a/Documentation/_sources/ErrorChecks/General/Url.rst.txt b/Documentation/_sources/ErrorChecks/General/Url.rst.txt new file mode 100644 index 00000000..7eceab96 --- /dev/null +++ b/Documentation/_sources/ErrorChecks/General/Url.rst.txt @@ -0,0 +1,31 @@ + +.. _url: + +=== +Url +=== + +Checks if a field contains a valid url. + +.. code-block:: typoscript + + Example Code: + + validators { + DefaultValidator { + model = DefaultValidatorModel + config { + fields { + homepage.errorChecks { + url { + model = UrlModel + } + } + } + } + } + } + +.. toctree:: + :maxdepth: 2 + :hidden: diff --git a/Documentation/_sources/ErrorChecks/Strings/ContainsOne.rst.txt b/Documentation/_sources/ErrorChecks/Strings/ContainsOne.rst.txt index 0256071c..c81a1973 100644 --- a/Documentation/_sources/ErrorChecks/Strings/ContainsOne.rst.txt +++ b/Documentation/_sources/ErrorChecks/Strings/ContainsOne.rst.txt @@ -19,7 +19,7 @@ Checks if a field contains at least one of the configured values privacy_policy.errorChecks { containsOne { model = ContainsOneModel - words = Yes,Ja + values = Yes,Ja } } } @@ -36,8 +36,8 @@ Checks if a field contains at least one of the configured values :header-rows: 0 :stub-columns: 0 - * - **words** - - Comma separated list of words of which one must be in the value of a given field + * - **values** + - Comma separated list of values of which one must be the value of a given field * - - * - *Mandatory* diff --git a/Documentation/_sources/Finishers/RedirectFinisher.rst.txt b/Documentation/_sources/Finishers/RedirectFinisher.rst.txt index 3ca3532d..5870f58a 100644 --- a/Documentation/_sources/Finishers/RedirectFinisher.rst.txt +++ b/Documentation/_sources/Finishers/RedirectFinisher.rst.txt @@ -65,7 +65,7 @@ Redirects to specified page after successful form submission. :stub-columns: 0 * - **correctRedirectUrl** - - Replaces "&;" with "&" in URL + - Replaces "&" with "&" in URL * - - * - *Mandatory* diff --git a/Documentation/_sources/GeneralOptions/Index.rst.txt b/Documentation/_sources/GeneralOptions/Index.rst.txt index 0b50a7b8..5c2b01e7 100644 --- a/Documentation/_sources/GeneralOptions/Index.rst.txt +++ b/Documentation/_sources/GeneralOptions/Index.rst.txt @@ -5,9 +5,14 @@ General Options =============== +:ref:`Settings` + All forms are build via TypoScript as predefined forms. -All forms are build via TypoScript as predefined forms. +:ref:`Predefined-Form` + Predefine form settings and make them selectable in plugin record. +:ref:`Step` + Multistep forms settings .. toctree:: :maxdepth: 2 diff --git a/Documentation/_sources/GeneralOptions/PredefinedForm.rst.txt b/Documentation/_sources/GeneralOptions/PredefinedForm.rst.txt index dba71284..63b3293a 100644 --- a/Documentation/_sources/GeneralOptions/PredefinedForm.rst.txt +++ b/Documentation/_sources/GeneralOptions/PredefinedForm.rst.txt @@ -5,7 +5,7 @@ Predefined Form =============== - Predefine form settings and make them selectable in plugin record. +Predefine form settings and make them selectable in plugin record. .. list-table:: :align: left diff --git a/Documentation/_sources/GeneralOptions/Settings.rst.txt b/Documentation/_sources/GeneralOptions/Settings.rst.txt index c6f8dfa7..ad81e5c8 100644 --- a/Documentation/_sources/GeneralOptions/Settings.rst.txt +++ b/Documentation/_sources/GeneralOptions/Settings.rst.txt @@ -1,6 +1,4 @@ -.. include:: /Includes.rst.txt - .. _settings: ======== diff --git a/Documentation/_sources/GeneralOptions/Step.rst.txt b/Documentation/_sources/GeneralOptions/Step.rst.txt index 8019bc7d..6b6177f6 100644 --- a/Documentation/_sources/GeneralOptions/Step.rst.txt +++ b/Documentation/_sources/GeneralOptions/Step.rst.txt @@ -5,6 +5,8 @@ Step ==== +Multistep forms settings + .. list-table:: :align: left :width: 100% diff --git a/Documentation/_sources/Index.rst.txt b/Documentation/_sources/Index.rst.txt index c016237f..d5f58ed8 100644 --- a/Documentation/_sources/Index.rst.txt +++ b/Documentation/_sources/Index.rst.txt @@ -42,6 +42,7 @@ However, Formhandler is currently not being delivered with a wizard that enables Loggers/Index PreProcessors/Index Validators/Index + ViewHelpers/Index .. Meta Menu diff --git a/Documentation/_sources/Interceptors/InitInterceptors.rst.txt b/Documentation/_sources/Interceptors/InitInterceptors.rst.txt index b547757e..3308bd05 100644 --- a/Documentation/_sources/Interceptors/InitInterceptors.rst.txt +++ b/Documentation/_sources/Interceptors/InitInterceptors.rst.txt @@ -1,9 +1,9 @@ .. _initinterceptors: -================ -InitInterceptors -================ +================= +Init Interceptors +================= The init interceptors are called before every time the form is displayed. diff --git a/Documentation/_sources/Interceptors/SaveInterceptors.rst.txt b/Documentation/_sources/Interceptors/SaveInterceptors.rst.txt index b002898f..c0ecbcbd 100644 --- a/Documentation/_sources/Interceptors/SaveInterceptors.rst.txt +++ b/Documentation/_sources/Interceptors/SaveInterceptors.rst.txt @@ -1,9 +1,9 @@ .. _saveinterceptors: -================ -SaveInterceptors -================ +================= +Save Interceptors +================= The save interceptors are called after all steps are validated and before the loggers and finishers are called. diff --git a/Documentation/_sources/PreProcessors/Index.rst.txt b/Documentation/_sources/PreProcessors/Index.rst.txt index 04301c12..38aefd58 100644 --- a/Documentation/_sources/PreProcessors/Index.rst.txt +++ b/Documentation/_sources/PreProcessors/Index.rst.txt @@ -1,9 +1,9 @@ .. _preprocessors: -============= -PreProcessors -============= +============== +Pre Processors +============== You can enter as many :ref:`PreProcessors` as you like. Each entry requires a model name of the :ref:`PreProcessor `. Optionally you can enter specific configuration for the :ref:`PreProcessor ` in the config section. The :ref:`PreProcessors` are only called the first time the form is shown. diff --git a/Documentation/_sources/ViewHelpers/FieldNameFromPathViewHelper.rst.txt b/Documentation/_sources/ViewHelpers/FieldNameFromPathViewHelper.rst.txt new file mode 100644 index 00000000..decb5d40 --- /dev/null +++ b/Documentation/_sources/ViewHelpers/FieldNameFromPathViewHelper.rst.txt @@ -0,0 +1,26 @@ + +.. _fieldnamefrompathviewhelper: + +=========================== +FieldNameFromPathViewHelper +=========================== + +Converts the field name path 1.group.field to field name [1][group][field]. + +.. code-block:: php + + Example Code: + + $view->assign('fieldNamePath', '1.group.field'); + +And in the template: + +.. code-block:: typoscript + + {fieldNamePath -> formhandler:fieldNameFromPath()} + +Which returns: + +.. code-block:: text + + [1][group][field] diff --git a/Documentation/_sources/ViewHelpers/Index.rst.txt b/Documentation/_sources/ViewHelpers/Index.rst.txt new file mode 100644 index 00000000..1f1fb37f --- /dev/null +++ b/Documentation/_sources/ViewHelpers/Index.rst.txt @@ -0,0 +1,15 @@ + +.. _viewhelpers: + +============ +View Helpers +============ + +:ref:`FieldNameFromPathViewHelper` + Converts the field name path 1.group.field to field name [1][group][field]. + +.. toctree:: + :maxdepth: 2 + :hidden: + + FieldNameFromPathViewHelper diff --git a/Documentation/_static/custom.css b/Documentation/_static/custom.css new file mode 100644 index 00000000..bf5fc667 --- /dev/null +++ b/Documentation/_static/custom.css @@ -0,0 +1,3 @@ +.wy-nav-content { + max-width: 1200px !important; +} diff --git a/Documentation/genindex.html b/Documentation/genindex.html index 7b122c55..09855d89 100644 --- a/Documentation/genindex.html +++ b/Documentation/genindex.html @@ -6,6 +6,7 @@ Index — Formhandler 9.0.0 (Alpha) documentation +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Equals

+

Checks if a field equals the configured value.

+
Example Code:
+
+validators {
+  DefaultValidator {
+    model = DefaultValidatorModel
+    config {
+      fields {
+        privacy_policy.errorChecks {
+          equals {
+            model = EqualsModel
+            value = Yes
+          }
+        }
+      }
+    }
+  }
+}
+
+
+

Properties

+ ++++ + + + + + + + + + + + + + + + + + +

value

Value that must be equal to the value of a given field

Mandatory

False

Data Type

String

Default

Empty String

+
+
+
+ + +
+
+ +
+
+
+