[TASK] Move arguments to initializeArguments() in LinkVH in ext:fluid 02/49002/3
authorRoberto Torresani <erreti@gmail.com>
Sat, 16 Jul 2016 19:04:23 +0000 (21:04 +0200)
committerSusanne Moog <typo3@susannemoog.de>
Tue, 19 Jul 2016 07:21:06 +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: #77125
Releases: master
Change-Id: I5b3859651d410bd12bac963cdb3310487651204e
Reviewed-on: https://review.typo3.org/49002
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/LinkViewHelper.php

index 04c8b38..ac7b61b 100644 (file)
@@ -51,21 +51,23 @@ class LinkViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractTagBasedVi
         $this->registerTagAttribute('rev', 'string', 'Specifies the relationship between the linked document and the current document');
         $this->registerTagAttribute('target', 'string', 'Specifies where to open the linked document');
         $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 link.
      *
-     * @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) {
             $uri = $this->getAjaxUri();
         } else {