[TASK] Move arguments to initializeArguments() in ValidationResultsVH in ext:fluid 81/48881/3
authorRoberto Torresani <erreti@gmail.com>
Sun, 10 Jul 2016 19:50:48 +0000 (21:50 +0200)
committerAnja Leichsenring <aleichsenring@ab-softlab.de>
Mon, 11 Jul 2016 16:29:06 +0000 (18:29 +0200)
Move the argument registrations away from the render() method
to initializeArguments(), to prevent any errors with PHP7 and
subclassed ViewHelpers if/when render() method signatures change.

Resolves: #77017
Releases: master
Change-Id: Ib5f39c2c7bc44e7f29c913e7e04768b33bd134a9
Reviewed-on: https://review.typo3.org/48881
Tested-by: Bamboo TYPO3com <info@typo3.com>
Reviewed-by: Anna Färber <anna.faerber@dkd.de>
Tested-by: Anna Färber <anna.faerber@dkd.de>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
typo3/sysext/fluid/Classes/ViewHelpers/Form/ValidationResultsViewHelper.php

index fe47715..f2c8e00 100644 (file)
@@ -71,15 +71,29 @@ class ValidationResultsViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\Abstr
     protected $escapeOutput = false;
 
     /**
+     * Initialize arguments
+     *
+     * @return void
+     * @api
+     */
+    public function initializeArguments()
+    {
+        parent::initializeArguments();
+        $this->registerArgument('for', 'string', 'The name of the error name (e.g. argument name or property name). This can also be a property path (like blog.title), and will then only display the validation errors of that property.', false, '');
+        $this->registerArgument('as', 'string', 'The name of the variable to store the current error', false, 'validationResults');
+    }
+
+    /**
      * Iterates through selected errors of the request.
      *
-     * @param string $for The name of the error name (e.g. argument name or property name). This can also be a property path (like blog.title), and will then only display the validation errors of that property.
-     * @param string $as The name of the variable to store the current error
      * @return string Rendered string
      * @api
      */
-    public function render($for = '', $as = 'validationResults')
+    public function render()
     {
+        $for = $this->arguments['for'];
+        $as = $this->arguments['as'];
+
         $validationResults = $this->controllerContext->getRequest()->getOriginalRequestMappingResults();
         if ($validationResults !== null && $for !== '') {
             $validationResults = $validationResults->forProperty($for);