[TASK] Move arguments to initializeArguments() in UriVH in ext:fluid 01/49001/4
authorRoberto Torresani <erreti@gmail.com>
Sat, 16 Jul 2016 18:58:54 +0000 (20:58 +0200)
committerSusanne Moog <typo3@susannemoog.de>
Tue, 19 Jul 2016 07:21:33 +0000 (09:21 +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: #77124
Releases: master
Change-Id: Id18c97cc8f819a36ff4113dfc8da6d05a7ffe3db
Reviewed-on: https://review.typo3.org/49001
Tested-by: Bamboo TYPO3com <info@typo3.com>
Reviewed-by: Joerg Boesche <typo3@joergboesche.de>
Tested-by: Joerg Boesche <typo3@joergboesche.de>
Reviewed-by: Susanne Moog <typo3@susannemoog.de>
Tested-by: Susanne Moog <typo3@susannemoog.de>
typo3/sysext/fluid/Classes/ViewHelpers/Widget/UriViewHelper.php

index 6d70300..e611400 100644 (file)
@@ -39,22 +39,25 @@ class UriViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper
      */
     public function initializeArguments()
     {
+        parent::initializeArguments();
         $this->registerArgument('addQueryStringMethod', 'string', 'Method to be used for query string');
+        $this->registerArgument('action', 'string', 'Target action');
+        $this->registerArgument('arguments', 'array', 'Arguments', false, array());
+        $this->registerArgument('section', 'string', 'The anchor to be added to the URI', false, '');
+        $this->registerArgument('format', 'string', 'The requested format, e.g. ".html', false, '');
+        $this->registerArgument('ajax', 'bool', 'TRUE if the URI should be to an AJAX widget, FALSE otherwise.', false, false);
     }
 
     /**
      * Render the Uri.
      *
-     * @param string $action Target action
-     * @param array $arguments Arguments
-     * @param string $section The anchor to be added to the URI
-     * @param string $format The requested format, e.g. ".html
-     * @param bool $ajax TRUE if the URI should be to an AJAX widget, FALSE otherwise.
      * @return string The rendered link
      * @api
      */
-    public function render($action = null, $arguments = array(), $section = '', $format = '', $ajax = false)
+    public function render()
     {
+        $ajax = $this->arguments['ajax'];
+
         if ($ajax === true) {
             return $this->getAjaxUri();
         } else {