[FEATURE] Add "allowedTags" argument on f:format.stripTags 71/46471/4
authorClaus Due <claus@namelesscoder.net>
Wed, 3 Feb 2016 21:00:30 +0000 (22:00 +0100)
committerWouter Wolters <typo3@wouterwolters.nl>
Fri, 5 Feb 2016 19:52:23 +0000 (20:52 +0100)
Allows passing HTML tags which will not be stripped, as
supported by the strip_tags() PHP function.

Change-Id: I2ecc5a6746491ff37f992931a1d03157abebf36f
Resolves: #67236
Releases: master
Reviewed-on: https://review.typo3.org/46471
Reviewed-by: Benni Mack <benni@typo3.org>
Tested-by: Benni Mack <benni@typo3.org>
Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl>
Tested-by: Wouter Wolters <typo3@wouterwolters.nl>
typo3/sysext/core/Documentation/Changelog/master/Feature-67236-AddedAllowedTagsArgumentToFformatstripTagsViewHelper.rst [new file with mode: 0644]
typo3/sysext/fluid/Classes/ViewHelpers/Format/StripTagsViewHelper.php
typo3/sysext/fluid/Tests/Unit/ViewHelpers/Format/StripTagsViewHelperTest.php

diff --git a/typo3/sysext/core/Documentation/Changelog/master/Feature-67236-AddedAllowedTagsArgumentToFformatstripTagsViewHelper.rst b/typo3/sysext/core/Documentation/Changelog/master/Feature-67236-AddedAllowedTagsArgumentToFformatstripTagsViewHelper.rst
new file mode 100644 (file)
index 0000000..6c437aa
--- /dev/null
@@ -0,0 +1,14 @@
+===============================================================================
+Feature: #67236 - Added "allowedTags" argument to f:format.stripTags ViewHelper
+===============================================================================
+
+Description
+===========
+
+The argument ``allowedTags`` containing a list of HTML tags which will not be stripped can now be used on ``f:format.stripTags``. Tag list syntax is identical to second parameter of PHP function ``strip_tags``.
+
+
+Impact
+======
+
+New ViewHelper argument (string) ``allowedTags`` becomes available, allowing passing the tag list as second parameter to ``strip_tags``.
index 81d29a3..8d2b4ae 100644 (file)
@@ -56,15 +56,17 @@ class StripTagsViewHelper extends AbstractViewHelper
      * Escapes special characters with their escaped counterparts as needed using PHPs strip_tags() function.
      *
      * @param string $value string to format
+     * @param string $allowedTags Optional string of allowed tags as required by PHPs strip_tags() function
      * @return mixed
      * @see http://www.php.net/manual/function.strip-tags.php
      * @api
      */
-    public function render($value = null)
+    public function render($value = null, $allowedTags = null)
     {
         return static::renderStatic(
             array(
-                'value' => $value
+                'value' => $value,
+                'allowedTags' => $allowedTags
             ),
             $this->buildRenderChildrenClosure(),
             $this->renderingContext
@@ -88,6 +90,6 @@ class StripTagsViewHelper extends AbstractViewHelper
         if (!is_string($value)) {
             return $value;
         }
-        return strip_tags($value);
+        return strip_tags($value, (string)$arguments['allowedTags']);
     }
 }
index 84a2134..241fdc8 100644 (file)
@@ -61,9 +61,10 @@ class StripTagsViewHelperTest extends ViewHelperBaseTestcase
     public function stringsTestDataProvider()
     {
         return array(
-            array('This is a sample text without special characters.', 'This is a sample text without special characters.'),
-            array('This is a sample text <b>with <i>some</i> tags</b>.', 'This is a sample text with some tags.'),
-            array('This text contains some &quot;&Uuml;mlaut&quot;.', 'This text contains some &quot;&Uuml;mlaut&quot;.')
+            array('This is a sample text without special characters.', '', 'This is a sample text without special characters.'),
+            array('This is a sample text <b>with <i>some</i> tags</b>.', '', 'This is a sample text with some tags.'),
+            array('This text contains some &quot;&Uuml;mlaut&quot;.', '', 'This text contains some &quot;&Uuml;mlaut&quot;.'),
+            array('This text <i>contains</i> some <strong>allowed</strong> tags.', '<strong>', 'This text contains some <strong>allowed</strong> tags.'),
         );
     }
 
@@ -71,9 +72,9 @@ class StripTagsViewHelperTest extends ViewHelperBaseTestcase
      * @test
      * @dataProvider stringsTestDataProvider
      */
-    public function renderCorrectlyConvertsIntoPlaintext($source, $expectedResult)
+    public function renderCorrectlyConvertsIntoPlaintext($source, $allowed, $expectedResult)
     {
-        $actualResult = $this->viewHelper->render($source);
+        $actualResult = $this->viewHelper->render($source, $allowed);
         $this->assertSame($expectedResult, $actualResult);
     }