[TASK] Move arguments to initializeArguments() in MediaVH in ext:fluid 16/49016/2
authorRoberto Torresani <erreti@gmail.com>
Sun, 17 Jul 2016 19:17:12 +0000 (21:17 +0200)
committerSusanne Moog <typo3@susannemoog.de>
Tue, 19 Jul 2016 06:02:25 +0000 (08:02 +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: #77142
Releases: master
Change-Id: Ib904fc615a6be28ac1e57b81ac897b0ef887eb7e
Reviewed-on: https://review.typo3.org/49016
Tested-by: Bamboo TYPO3com <info@typo3.com>
Reviewed-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/MediaViewHelper.php

index 4f48f76..116c73e 100644 (file)
@@ -66,20 +66,24 @@ class MediaViewHelper extends AbstractTagBasedViewHelper
         parent::initializeArguments();
         $this->registerUniversalTagAttributes();
         $this->registerTagAttribute('alt', 'string', 'Specifies an alternate text for an image', false);
+        $this->registerArgument('file', 'object', 'File', true);
+        $this->registerArgument('additionalConfig', 'string', 'This array can hold additional configuration that is passed though to the Renderer object', false, array());
+        $this->registerArgument('width', 'string', 'This can be a numeric value representing the fixed width of in pixels. But you can also perform simple calculations by adding "m" or "c" to the value. See imgResource.width for possible options.');
+        $this->registerArgument('height', 'string', 'This can be a numeric value representing the fixed height in pixels. But you can also perform simple calculations by adding "m" or "c" to the value. See imgResource.width for possible options.');
     }
 
     /**
      * Render a given media file
      *
-     * @param object $file
-     * @param array $additionalConfig This array can hold additional configuration that is passed though to the Renderer object
-     * @param string $width This can be a numeric value representing the fixed width of in pixels. But you can also perform simple calculations by adding "m" or "c" to the value. See imgResource.width for possible options.
-     * @param string $height This can be a numeric value representing the fixed height in pixels. But you can also perform simple calculations by adding "m" or "c" to the value. See imgResource.width for possible options.
      * @return string Rendered tag
      * @throws \UnexpectedValueException
      */
-    public function render($file, $additionalConfig = array(), $width = null, $height = null)
+    public function render()
     {
+        $file = $this->arguments['file'];
+        $additionalConfig = $this->arguments['additionalConfig'];
+        $width = $this->arguments['width'];
+        $height = $this->arguments['height'];
 
         // get Resource Object (non ExtBase version)
         if (is_callable(array($file, 'getOriginalResource'))) {