{"viewHelpers":{"alias":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\AliasViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"AliasViewHelper","tagName":"alias","documentation":"Declares new variables which are aliases of other variables.\nTakes a \"map\"-Parameter which is an associative array which defines the shorthand mapping.\n\nThe variables are only declared inside the ``<f:alias>...<\/f:alias>`` tag. After the\nclosing tag, all declared variables are removed again.\n\nUsing this ViewHelper can be a sign of weak architecture. If you end up\nusing it extensively you might want to fine-tune your \"view model\" (the\ndata you assign to the view).\n\nExamples\n========\n\nSingle alias\n------------\n\n::\n\n    <f:alias map=\"{x: 'foo'}\">{x}<\/f:alias>\n\nOutput::\n\n    foo\n\nMultiple mappings\n-----------------\n\n::\n\n    <f:alias map=\"{x: foo.bar.baz, y: foo.bar.baz.name}\">\n        {x.name} or {y}\n    <\/f:alias>\n\nOutput::\n\n    [name] or [name]\n\nDepending on ``{foo.bar.baz}``.","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":{"@api":""},"argumentDefinitions":{"map":{"name":"map","type":"array","description":"Array that specifies which variables should be mapped to which alias","required":true,"defaultValue":null,"escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"Alias","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Alias"},"argument":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\ArgumentViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"ArgumentViewHelper","tagName":"argument","documentation":"``f:argument`` allows to define requirements and type constraints to variables that\nare provided to templates and partials. This can be very helpful to document how\na template or partial is supposed to be used and which input variables are required.\n\nThese requirements are enforced during rendering of the template or partial:\nIf an argument is defined with this ViewHelper which isn't marked as ``optional``,\nan exception will be thrown if that variable isn't present during rendering.\nIf a variable doesn't match the specified type and can't be converted automatically,\nan exception will be thrown as well.\n\nNote that ``f:argument`` ViewHelpers must be used at the root level of the\ntemplate, and can't be nested into other ViewHelpers. Also, the usage of variables\nin any of its arguments is not possible (e. g. you can't define an argument name\nby using a variable).\n\nRendering of specific sections will not validate argument constraints. They\nwill only be evaluated if the template or partial is rendered directly.\n\nExample\n========\n\nFor the following partial:\n\n.. code-block:: xml\n\n   <f:argument name=\"title\" type=\"string\" \/>\n   <f:argument name=\"tags\" type=\"string[]\" optional=\"{true}\" \/>\n   <f:argument name=\"user\" type=\"string\" optional=\"{true}\" default=\"admin\" \/>\n\n   Title: {title}<br \/>\n   <f:if condition=\"{tags}\">\n     Tags: {tags -> f:join(separator: ', ')}<br \/>\n   <\/f:if>\n   User: {user}\n\nThe following render calls will be successful:\n\n.. code-block:: xml\n\n   <!-- All arguments supplied -->\n   <f:render partial=\"MyPartial\" arguments=\"{title: 'My title', tags: {0: 'tag1', 1: 'tag2'}, user: 'me'}\" \/>\n   <!-- \"user\" will fall back to default value -->\n   <f:render partial=\"MyPartial\" arguments=\"{title: 'My title', tags: {0: 'tag1', 1: 'tag2'}}\" \/>\n   <!-- \"tags\" will be \"null\", \"user\" will fall back to default value -->\n   <f:render partial=\"MyPartial\" arguments=\"{title: 'My title'}\" \/>\n\nThe following render calls will result in an exception:\n\n.. code-block:: xml\n\n   <!-- required \"title\" has not been supplied -->\n   <f:render partial=\"MyPartial\" \/>\n   <!-- \"user\" has been supplied as array, not as string -->\n   <f:render partial=\"MyPartial\" arguments=\"{title: 'My title', user: {firstName: 'Jane', lastName: 'Doe'}}\" \/>","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":{"@api":""},"argumentDefinitions":{"name":{"name":"name","type":"string","description":"name of the template argument","required":true,"defaultValue":null,"escape":null},"type":{"name":"type","type":"string","description":"type of the template argument","required":true,"defaultValue":null,"escape":null},"description":{"name":"description","type":"string","description":"description of the template argument","required":false,"defaultValue":null,"escape":null},"optional":{"name":"optional","type":"boolean","description":"true if the defined argument should be optional","required":false,"defaultValue":false,"escape":null},"default":{"name":"default","type":"mixed","description":"default value for optional argument","required":false,"defaultValue":null,"escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"Argument","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Argument"},"cache.disable":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\Cache\\DisableViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"Cache\\DisableViewHelper","tagName":"cache.disable","documentation":"ViewHelper to disable template compiling\n\nInserting this ViewHelper at any point in the template,\nincluding inside conditions which do not get rendered,\nwill forcibly disable the caching\/compiling of the full\ntemplate file to a PHP class.\n\nUse this if for whatever reason your platform is unable\nto create or load PHP classes (for example on read-only\nfile systems or when using an incompatible default cache\nbackend).\n\nPasses through anything you place inside the ViewHelper,\nso can safely be used as container tag, as self-closing\nor with inline syntax - all with the same result.\n\nExamples\n========\n\nSelf-closing\n------------\n\n::\n\n    <f:cache.disable \/>\n\nInline mode\n-----------\n\n::\n\n    {f:cache.disable()}\n\n\nContainer tag\n-------------\n\n::\n\n    <f:cache.disable>\n       Some output or Fluid code\n    <\/f:cache.disable>\n\nAdditional output is also not compilable because of the ViewHelper","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":{"@api":""},"argumentDefinitions":[],"allowsArbitraryArguments":false,"nameWithoutSuffix":"Cache\\Disable","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Cache\/Disable"},"cache.static":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\Cache\\StaticViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"Cache\\StaticViewHelper","tagName":"cache.static","documentation":"ViewHelper to force compiling to a static string\n\nUsed around chunks of template code where you want the\noutput of said template code to be compiled to a static\nstring (rather than a collection of compiled nodes, as\nis the usual behavior).\n\nThe effect is that none of the child ViewHelpers or nodes\nused inside this tag will be evaluated when rendering the\ntemplate once it is compiled. It will essentially replace\nall logic inside the tag with a plain string output.\n\nWorks by turning the ``compile`` method into a method that\nrenders the child nodes and returns the resulting content\ndirectly as a string variable.\n\nYou can use this with great effect to further optimise the\nperformance of your templates: in use cases where chunks of\ntemplate code depend on static variables (like thoese in\n``{settings}`` for example) and those variables never change,\nand the template uses no other dynamic variables, forcing\nthe template to compile that chunk to a static string can\nsave a lot of operations when rendering the compiled template.\n\nNB: NOT TO BE USED FOR CACHING ANYTHING OTHER THAN STRING-\nCOMPATIBLE OUTPUT!\n\nUSE WITH CARE! WILL PRESERVE EVERYTHING RENDERED, INCLUDING\nPOTENTIALLY SENSITIVE DATA CONTAINED IN OUTPUT!\n\nExamples\n========\n\nUsage and effect\n----------------\n\n::\n\n    <f:if condition=\"{var}\">Is always evaluated also when compiled<\/f:if>\n    <f:cache.static>\n        <f:if condition=\"{othervar}\">\n            Will only be evaluated once and this output will be\n            cached as a static string with no logic attached.\n            The compiled template will not contain neither the\n            condition ViewHelperNodes or the variable accessor\n            that are used inside this node.\n        <\/f:if>\n    <\/f:cache.static>\n\nThis is also evaluated when compiled (static node is closed)::\n\n    <f:if condition=\"{var}\">Also evaluated; is outside static node<\/f:if>","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":{"@api":""},"argumentDefinitions":[],"allowsArbitraryArguments":false,"nameWithoutSuffix":"Cache\\Static","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Cache\/Static"},"cache.warmup":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\Cache\\WarmupViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"Cache\\WarmupViewHelper","tagName":"cache.warmup","documentation":"ViewHelper to insert variables which only apply during\ncache warmup and only apply if no other variables are\nspecified for the warmup process.\n\nIf a chunk of template code is impossible to compile\nwithout additional variables, for example when rendering\nsections or partials using dynamic names, you can use this\nViewHelper around that chunk and specify a set of variables\nwhich will be assigned only while compiling the template\nand only when this is done as part of cache warmup. The\ntemplate chunk can then be compiled using those default\nvariables.\n\nThis does not imply that only those variable values will\nbe used by the compiled template. It only means that\nDEFAULT values of vital variables will be present during\ncompiling.\n\nIf you find yourself completely unable to properly warm up\na specific template file even with use of this ViewHelper,\nthen you can consider using\n``f:cache.disable`` ViewHelper\nto prevent the template compiler from even attempting to\ncompile it.\n\nUSE WITH CARE! SOME EDGE CASES OF FOR EXAMPLE VIEWHELPERS\nWHICH REQUIRE SPECIAL VARIABLE TYPES MAY NOT BE SUPPORTED\nHERE DUE TO THE RUDIMENTARY NATURE OF VARIABLES YOU DEFINE.\n\nExamples\n========\n\nUsage and effect\n----------------\n\n::\n\n    <f:cache.warmup variables=\"{foo: bar}\">\n       Template code depending on {foo} variable which is not\n       assigned when warming up Fluid's caches. {foo} is only\n       assigned if the variable does not already exist and the\n       assignment only happens if Fluid is in warmup mode.\n    <\/f:cache.warmup>","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":{"@api":"","@deprecated":"Will be removed in Fluid v5"},"argumentDefinitions":{"variables":{"name":"variables","type":"array","description":"Array of variables to assign ONLY when compiling. See main class documentation.","required":false,"defaultValue":[],"escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"Cache\\Warmup","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Cache\/Warmup"},"case":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\CaseViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"CaseViewHelper","tagName":"case","documentation":"Case ViewHelper that is only usable within the ``f:switch`` ViewHelper.","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":{"@see":"\\TYPO3Fluid\\Fluid\\ViewHelpers\\SwitchViewHelper","@api":""},"argumentDefinitions":{"value":{"name":"value","type":"mixed","description":"Value to match in this case","required":true,"defaultValue":null,"escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"Case","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Case"},"ceil":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\CeilViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"CeilViewHelper","tagName":"ceil","documentation":"The CeilViewHelper rounds up a float value to the next integer.\nThe ViewHelper mimics PHP's :php:`ceil()` function.\n\nExamples\n========\n\nValue argument\n--------------\n::\n\n   <f:ceil value=\"123.456\" \/>\n\n.. code-block:: text\n\n   124\n\nTag content as value\n--------------------\n::\n\n   <f:ceil>123.456<\/f:ceil>\n\n.. code-block:: text\n\n   124","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":[],"argumentDefinitions":{"value":{"name":"value","type":"float","description":"The number that should be rounded up","required":false,"defaultValue":null,"escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"Ceil","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Ceil"},"comment":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\CommentViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"CommentViewHelper","tagName":"comment","documentation":"This ViewHelper prevents rendering of any content inside the tag.\n\nContents of the comment will **not be parsed** thus it can be used to\ncomment out invalid Fluid syntax or non-existent ViewHelpers during\ndevelopment.\n\nUsing this ViewHelper won't have a notable effect on performance,\nespecially once the template is parsed. However, it can lead to reduced\nreadability. You can use layouts and partials to split a large template\ninto smaller parts. Using self-descriptive names for the partials can\nmake comments redundant.\n\nExamples\n========\n\nCommenting out fluid code\n-------------------------\n\n::\n\n    Before\n    <f:comment>\n        This is completely hidden.\n        <f:debug>This does not get rendered<\/f:debug>\n    <\/f:comment>\n    After\n\nOutput::\n\n    Before\n    After","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":{"@api":""},"argumentDefinitions":[],"allowsArbitraryArguments":false,"nameWithoutSuffix":"Comment","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Comment"},"constant":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\ConstantViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"ConstantViewHelper","tagName":"constant","documentation":"Wrapper for PHPs :php:`constant` function.\nSee https:\/\/www.php.net\/manual\/function.constant.php.\n\nExamples\n========\n\nGet built-in PHP constant\n-------------------------\n\n::\n\n   {f:constant(name: 'PHP_INT_MAX')}\n\nOutput::\n\n   9223372036854775807\n   (Depending on CPU architecture).\n\nGet class constant\n------------------\n\n::\n\n   {f:constant(name: '\\Vendor\\Package\\Class::CONSTANT')}\n\nGet enum case\n-------------\n\n::\n\n   {f:constant(name: '\\Vendor\\Package\\Enum::CASE')}","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":[],"argumentDefinitions":{"name":{"name":"name","type":"string","description":"String representation of a PHP constant or enum","required":false,"defaultValue":null,"escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"Constant","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Constant"},"contains":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\ContainsViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"ContainsViewHelper","tagName":"contains","documentation":"The ContainsViewHelper checks if a provided string or array contains\nthe specified value. Depending on the input, this mimicks PHP's\n:php:`in_array()` or :php:`str_contains()`.\n\n\nExamples\n========\n\nCheck value in array\n--------------------\n\n::\n\n     <f:variable name=\"myArray\" value=\"{0: 'Hello', 1: 'World'}\" \/>\n\n     <f:contains value=\"Hello\" subject=\"{myArray}\">\n         It Works!\n     <\/f:contains>\n\nOutput::\n\n     It Works!\n\nCheck value in string\n---------------------\n\n::\n\n     <f:variable name=\"myString\" value=\"Hello, World!\" \/>\n\n     <f:contains value=\"Wo\" subject=\"{myString}\">\n         It Works!\n     <\/f:contains>\n\nOutput::\n\n     It Works!\n\nA more complex example with inline notation\n-------------------------------------------\n\n::\n\n     <f:variable name=\"myString\" value=\"Hello, World!\" \/>\n\n     <f:if condition=\"{someCondition} || {f:contains(value: 'Wo', subject: myString)}\">\n         It Works!\n     <\/f:if>\n\nOutput::\n\n      It Works!","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":[],"argumentDefinitions":{"then":{"name":"then","type":"mixed","description":"Value to be returned if the condition if met.","required":false,"defaultValue":null,"escape":true},"else":{"name":"else","type":"mixed","description":"Value to be returned if the condition if not met.","required":false,"defaultValue":null,"escape":true},"value":{"name":"value","type":"mixed","description":"The value to check for (needle)","required":true,"defaultValue":null,"escape":null},"subject":{"name":"subject","type":"mixed","description":"The string or array that might contain the value (haystack)","required":true,"defaultValue":null,"escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"Contains","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Contains"},"count":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\CountViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"CountViewHelper","tagName":"count","documentation":"This ViewHelper counts elements of the specified array or countable object.\n\nExamples\n========\n\nCount array elements\n--------------------\n\n::\n\n    <f:count subject=\"{0:1, 1:2, 2:3, 3:4}\" \/>\n\nOutput::\n\n    4\n\ninline notation\n---------------\n\n::\n\n    {objects -> f:count()}\n\nOutput::\n\n    10 (depending on the number of items in ``{objects}``)","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":{"@api":""},"argumentDefinitions":{"subject":{"name":"subject","type":"array","description":"Countable subject, array or \\Countable","required":false,"defaultValue":null,"escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"Count","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Count"},"cycle":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\CycleViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"CycleViewHelper","tagName":"cycle","documentation":"This ViewHelper cycles through the specified values.\nThis can be often used to specify CSS classes for example.\n\nTo achieve the \"zebra class\" effect in a loop you can also use the\n\"iteration\" argument of the **for** ViewHelper.\n\nExamples\n========\n\nThese examples could also be achieved using the \"iteration\" argument\nof the ForViewHelper.\n\nSimple\n------\n\n::\n\n    <f:for each=\"{0:1, 1:2, 2:3, 3:4}\" as=\"foo\">\n        <f:cycle values=\"{0: 'foo', 1: 'bar', 2: 'baz'}\" as=\"cycle\">\n            {cycle}\n        <\/f:cycle>\n    <\/f:for>\n\nOutput::\n\n    foobarbazfoo\n\nAlternating CSS class\n---------------------\n\n::\n\n    <ul>\n        <f:for each=\"{0:1, 1:2, 2:3, 3:4}\" as=\"foo\">\n            <f:cycle values=\"{0: 'odd', 1: 'even'}\" as=\"zebraClass\">\n                <li class=\"{zebraClass}\">{foo}<\/li>\n            <\/f:cycle>\n        <\/f:for>\n    <\/ul>\n\nOutput::\n\n    <ul>\n        <li class=\"odd\">1<\/li>\n        <li class=\"even\">2<\/li>\n        <li class=\"odd\">3<\/li>\n        <li class=\"even\">4<\/li>\n    <\/ul>","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":{"@api":""},"argumentDefinitions":{"values":{"name":"values","type":"array","description":"The array or object implementing \\ArrayAccess (for example \\SplObjectStorage) to iterated over","required":false,"defaultValue":null,"escape":null},"as":{"name":"as","type":"string","description":"The name of the iteration variable","required":true,"defaultValue":null,"escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"Cycle","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Cycle"},"debug":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\DebugViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"DebugViewHelper","tagName":"debug","documentation":"This ViewHelper is only meant to be used during development.\n\nExamples\n========\n\nInline notation and custom title\n--------------------------------\n\n::\n\n    {object -> f:debug(title: 'Custom title')}\n\nOutput::\n\n    all properties of {object} nicely highlighted (with custom title)\n\nOnly output the type\n--------------------\n\n::\n\n    {object -> f:debug(typeOnly: true)}\n\nOutput::\n\n    the type or class name of {object}","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":{"@api":""},"argumentDefinitions":{"typeOnly":{"name":"typeOnly","type":"boolean","description":"If true, debugs only the type of variables","required":false,"defaultValue":false,"escape":null},"levels":{"name":"levels","type":"integer","description":"Levels to render when rendering nested objects\/arrays","required":false,"defaultValue":5,"escape":null},"html":{"name":"html","type":"boolean","description":"Render HTML. If false, output is indented plaintext","required":false,"defaultValue":false,"escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"Debug","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Debug"},"defaultCase":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\DefaultCaseViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"DefaultCaseViewHelper","tagName":"defaultCase","documentation":"A ViewHelper which specifies the \"default\" case when used within the ``f:switch`` ViewHelper.","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":{"@see":"\\TYPO3Fluid\\Fluid\\ViewHelpers\\SwitchViewHelper","@api":""},"argumentDefinitions":[],"allowsArbitraryArguments":false,"nameWithoutSuffix":"DefaultCase","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/DefaultCase"},"else":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\ElseViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"ElseViewHelper","tagName":"else","documentation":"Else-Branch of a condition. Only has an effect inside of ``f:if``.\nSee the ``f:if`` ViewHelper for documentation.\n\nExamples\n========\n\nOutput content if condition is not met\n--------------------------------------\n\n::\n\n    <f:if condition=\"{someCondition}\">\n        <f:else>\n            condition was not true\n        <\/f:else>\n    <\/f:if>\n\nOutput::\n\n    Everything inside the \"else\" tag is displayed if the condition evaluates to false.\n    Otherwise, nothing is outputted in this example.","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":{"@see":"TYPO3Fluid\\Fluid\\ViewHelpers\\IfViewHelper","@api":""},"argumentDefinitions":{"if":{"name":"if","type":"boolean","description":"Condition expression conforming to Fluid boolean rules","required":false,"defaultValue":null,"escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"Else","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Else"},"endsWith":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\EndsWithViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"EndsWithViewHelper","tagName":"endsWith","documentation":"EndsWith ViewHelper checks if the subject string ends with a specified string.\nThis ViewHelper implements an if\/else condition.\n\nExamples\n========\n\nRender the body if \"myString\" ends with \"World!\"\n-----------------------------------------------\n\n::\n\n     <f:variable name=\"myString\" value=\"Hello, World!\" \/>\n     <f:endsWith search=\"Hello\" subject=\"{myString}\">This will be rendered if variable \"myString\" ends with \"World!\"<\/f:endsWith>\n\nOutput::\n\n     This will be rendered if variable \"myString\" ends with \"World!\"\n\nA more complex example with inline notation\n-----------------------------------------\n\n::\n\n     <f:variable name=\"condition\" value=\"{false}\" \/>\n     <f:variable name=\"myString\" value=\"Hello, World!\" \/>\n\n     <f:if condition=\"{condition} || {f:endsWith(search: 'World!', subject: myString)}\">\n     It Works!\n     <\/f:if>\n\nOutput::\n\n     It Works!","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":[],"argumentDefinitions":{"then":{"name":"then","type":"mixed","description":"Value to be returned if the condition if met.","required":false,"defaultValue":null,"escape":true},"else":{"name":"else","type":"mixed","description":"Value to be returned if the condition if not met.","required":false,"defaultValue":null,"escape":true},"subject":{"name":"subject","type":"string","description":"String to search in","required":true,"defaultValue":null,"escape":null},"search":{"name":"search","type":"string","description":"String to search in subject at the beginning","required":true,"defaultValue":null,"escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"EndsWith","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/EndsWith"},"first":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\FirstViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"FirstViewHelper","tagName":"first","documentation":"The FirstViewHelper returns the first item of an array.\n\nExample\n========\n::\n\n   <f:first value=\"{0: 'first', 1: 'second'}\" \/>\n\n.. code-block:: text\n\n   first","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":[],"argumentDefinitions":{"value":{"name":"value","type":"array","description":"","required":false,"defaultValue":null,"escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"First","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/First"},"flatten":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\FlattenViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"FlattenViewHelper","tagName":"flatten","documentation":"The FlattenViewHelper flattens a multi-dimensional array into a\nsingle-dimensional array.\n\n\nExample\n========\n\n::\n\n   <f:flatten value=\"{0: {0: '1', 1: '2'}, 1: {0: '3', 1: '4'}}\" \/>\n\n.. code-block:: text\n\n   {0: '1', 1: '2', 2: '3', 3: '4'}","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":[],"argumentDefinitions":{"value":{"name":"value","type":"array","description":"An array","required":false,"defaultValue":null,"escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"Flatten","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Flatten"},"floor":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\FloorViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"FloorViewHelper","tagName":"floor","documentation":"The FloorViewHelper rounds down a float value to the next integer.\nThe ViewHelper mimics PHP's :php:`floor()` function.\n\nExamples\n========\n\nValue argument\n--------------\n::\n\n   <f:floor value=\"123.456\" \/>\n\n.. code-block:: text\n\n   123\n\nTag content as value\n--------------------\n::\n\n   <f:floor>123.456<\/f:floor>\n\n.. code-block:: text\n\n   123","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":[],"argumentDefinitions":{"value":{"name":"value","type":"float","description":"The number that should be rounded down","required":false,"defaultValue":null,"escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"Floor","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Floor"},"for":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\ForViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"ForViewHelper","tagName":"for","documentation":"Loop ViewHelper which can be used to iterate over arrays.\nImplements what a basic PHP ``foreach()`` does.\n\nExamples\n========\n\nSimple Loop\n-----------\n\n::\n\n    <f:for each=\"{0:1, 1:2, 2:3, 3:4}\" as=\"foo\">{foo}<\/f:for>\n\nOutput::\n\n    1234\n\nOutput array key\n----------------\n\n::\n\n    <ul>\n        <f:for each=\"{fruit1: 'apple', fruit2: 'pear', fruit3: 'banana', fruit4: 'cherry'}\"\n            as=\"fruit\" key=\"label\"\n        >\n            <li>{label}: {fruit}<\/li>\n        <\/f:for>\n    <\/ul>\n\nOutput::\n\n    <ul>\n        <li>fruit1: apple<\/li>\n        <li>fruit2: pear<\/li>\n        <li>fruit3: banana<\/li>\n        <li>fruit4: cherry<\/li>\n    <\/ul>\n\nIteration information\n---------------------\n\n::\n\n    <ul>\n        <f:for each=\"{0:1, 1:2, 2:3, 3:4}\" as=\"foo\" iteration=\"fooIterator\">\n            <li>Index: {fooIterator.index} Cycle: {fooIterator.cycle} Total: {fooIterator.total}{f:if(condition: fooIterator.isEven, then: ' Even')}{f:if(condition: fooIterator.isOdd, then: ' Odd')}{f:if(condition: fooIterator.isFirst, then: ' First')}{f:if(condition: fooIterator.isLast, then: ' Last')}<\/li>\n        <\/f:for>\n    <\/ul>\n\nOutput::\n\n    <ul>\n        <li>Index: 0 Cycle: 1 Total: 4 Odd First<\/li>\n        <li>Index: 1 Cycle: 2 Total: 4 Even<\/li>\n        <li>Index: 2 Cycle: 3 Total: 4 Odd<\/li>\n        <li>Index: 3 Cycle: 4 Total: 4 Even Last<\/li>\n    <\/ul>","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":{"@api":""},"argumentDefinitions":{"each":{"name":"each","type":"array","description":"The array or \\SplObjectStorage to iterated over","required":true,"defaultValue":null,"escape":null},"as":{"name":"as","type":"string","description":"The name of the iteration variable","required":true,"defaultValue":null,"escape":null},"key":{"name":"key","type":"string","description":"Variable to assign array key to","required":false,"defaultValue":null,"escape":null},"reverse":{"name":"reverse","type":"boolean","description":"If true, iterates in reverse","required":false,"defaultValue":false,"escape":null},"iteration":{"name":"iteration","type":"string","description":"The name of the variable to store iteration information (index, cycle, total, isFirst, isLast, isEven, isOdd)","required":false,"defaultValue":null,"escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"For","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/For"},"format.case":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\Format\\CaseViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"Format\\CaseViewHelper","tagName":"format.case","documentation":"Modifies the case of an input string to upper- or lowercase or capitalization.\nThe default transformation will be uppercase as in `mb_convert_case`_.\n\nPossible modes are:\n\n``lower``\n  Transforms the input string to lowercase\n  Example: \"Hello World\" -> \"hello world\"\n\n``upper``\n  Transforms the input string to uppercase\n  Example: \"Hello World\" -> \"HELLO WORLD\"\n\n``capital``\n  Transforms the first character of the input string to uppercase\n  Example: \"hello world\" -> \"Hello world\"\n\n``uncapital``\n  Transforms the input string to its first letter lower-cased\n  Example: \"Hello World\" -> \"hello World\"\n\n``capitalWords``\n  Transforms the input string to capitalize each word\n  Example: \"hello world\" -> \"Hello World\"\n\nNote that the behavior will be the same as in the appropriate PHP function `mb_convert_case`_;\nespecially regarding locale and multibyte behavior.\n\n.. _mb_convert_case: https:\/\/www.php.net\/manual\/function.mb-convert-case.php\n\nExamples\n========\n\nDefault\n-------\n\n::\n\n   <f:format.case>Some Text with miXed case<\/f:format.case>\n\nOutput::\n\n   SOME TEXT WITH MIXED CASE\n\nExample with given mode\n-----------------------\n\n::\n\n   <f:format.case mode=\"capital\">someString<\/f:format.case>\n\nOutput::\n\n   SomeString","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":[],"argumentDefinitions":{"value":{"name":"value","type":"string","description":"The input value. If not given, the evaluated child nodes will be used.","required":false,"defaultValue":null,"escape":null},"mode":{"name":"mode","type":"string","description":"The case to apply, must be one of this' CASE_* constants. Defaults to uppercase application.","required":false,"defaultValue":"upper","escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"Format\\Case","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Format\/Case"},"format.cdata":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\Format\\CdataViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"Format\\CdataViewHelper","tagName":"format.cdata","documentation":"Outputs an argument\/value without any escaping and wraps it with CDATA tags.\n\nPAY SPECIAL ATTENTION TO SECURITY HERE (especially Cross Site Scripting),\nas the output is NOT SANITIZED!\n\nExamples\n========\n\nChild nodes\n-----------\n\n::\n\n    <f:format.cdata>{string}<\/f:format.cdata>\n\nOutput::\n\n    <![CDATA[(Content of {string} without any conversion\/escaping)]]>\n\nValue attribute\n---------------\n\n::\n\n    <f:format.cdata value=\"{string}\" \/>\n\nOutput::\n\n    <![CDATA[(Content of {string} without any conversion\/escaping)]]>\n\nInline notation\n---------------\n\n::\n\n    {string -> f:format.cdata()}\n\nOutput::\n\n    <![CDATA[(Content of {string} without any conversion\/escaping)]]>","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":{"@api":""},"argumentDefinitions":{"value":{"name":"value","type":"mixed","description":"The value to output","required":false,"defaultValue":null,"escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"Format\\Cdata","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Format\/Cdata"},"format.htmlspecialchars":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\Format\\HtmlspecialcharsViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"Format\\HtmlspecialcharsViewHelper","tagName":"format.htmlspecialchars","documentation":"Applies PHP ``htmlspecialchars()`` escaping to a value.\n\nSee http:\/\/www.php.net\/manual\/function.htmlspecialchars.php\n\nExamples\n========\n\nDefault notation\n----------------\n\n::\n\n    <f:format.htmlspecialchars>{text}<\/f:format.htmlspecialchars>\n\nOutput::\n\n    Text with & \" ' < > * replaced by HTML entities (htmlspecialchars applied).\n\nInline notation\n---------------\n\n::\n\n    {text -> f:format.htmlspecialchars(encoding: 'ISO-8859-1')}\n\nOutput::\n\n    Text with & \" ' < > * replaced by HTML entities (htmlspecialchars applied).","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":{"@api":""},"argumentDefinitions":{"value":{"name":"value","type":"string","description":"Value to format","required":false,"defaultValue":null,"escape":null},"keepQuotes":{"name":"keepQuotes","type":"boolean","description":"If true quotes will not be replaced (ENT_NOQUOTES)","required":false,"defaultValue":false,"escape":null},"encoding":{"name":"encoding","type":"string","description":"Encoding","required":false,"defaultValue":"UTF-8","escape":null},"doubleEncode":{"name":"doubleEncode","type":"boolean","description":"If false, html entities will not be encoded","required":false,"defaultValue":true,"escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"Format\\Htmlspecialchars","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Format\/Htmlspecialchars"},"format.json":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\Format\\JsonViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"Format\\JsonViewHelper","tagName":"format.json","documentation":"Wrapper for PHPs :php:`json_encode` function.\nSee https:\/\/www.php.net\/manual\/function.json-encode.php.\n\nExamples\n========\n\nEncoding a view variable\n------------------------\n\n::\n\n   {someArray -> f:format.json()}\n\n``[\"array\",\"values\"]``\nDepending on the value of ``{someArray}``.\n\nAssociative array\n-----------------\n\n::\n\n   {f:format.json(value: {foo: 'bar', bar: 'baz'})}\n\n``{\"foo\":\"bar\",\"bar\":\"baz\"}``\n\nNon associative array with forced object\n----------------------------------------\n\n::\n\n   {f:format.json(value: {0: 'bar', 1: 'baz'}, forceObject: true)}\n\n``{\"0\":\"bar\",\"1\":\"baz\"}``","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":[],"argumentDefinitions":{"value":{"name":"value","type":"mixed","description":"The incoming data to convert, or null if VH children should be used","required":false,"defaultValue":null,"escape":null},"forceObject":{"name":"forceObject","type":"bool","description":"Outputs an JSON object rather than an array","required":false,"defaultValue":false,"escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"Format\\Json","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Format\/Json"},"format.nl2br":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\Format\\Nl2brViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"Format\\Nl2brViewHelper","tagName":"format.nl2br","documentation":"Wrapper for PHPs :php:`nl2br` function.\nSee https:\/\/www.php.net\/manual\/function.nl2br.php.\n\nExamples\n========\n\nDefault\n-------\n\n::\n\n   <f:format.nl2br>{text_with_linebreaks}<\/f:format.nl2br>\n\nText with line breaks replaced by ``<br \/>``\n\nInline notation\n---------------\n\n::\n\n   {text_with_linebreaks -> f:format.nl2br()}\n\nText with line breaks replaced by ``<br \/>``","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":[],"argumentDefinitions":{"value":{"name":"value","type":"string","description":"string to format","required":false,"defaultValue":null,"escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"Format\\Nl2br","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Format\/Nl2br"},"format.number":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\Format\\NumberViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"Format\\NumberViewHelper","tagName":"format.number","documentation":"Formats a number with custom precision, decimal point and grouped thousands.\nSee https:\/\/www.php.net\/manual\/function.number-format.php.\n\nExamples\n========\n\nDefaults\n--------\n\n::\n\n   <f:format.number>423423.234<\/f:format.number>\n\n``423,423.20``\n\nWith all parameters\n-------------------\n\n::\n\n   <f:format.number decimals=\"1\" decimalSeparator=\",\" thousandsSeparator=\".\">\n       423423.234\n   <\/f:format.number>\n\n``423.423,2``","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":[],"argumentDefinitions":{"decimals":{"name":"decimals","type":"int","description":"The number of digits after the decimal point","required":false,"defaultValue":2,"escape":null},"decimalSeparator":{"name":"decimalSeparator","type":"string","description":"The decimal point character","required":false,"defaultValue":".","escape":null},"thousandsSeparator":{"name":"thousandsSeparator","type":"string","description":"The character for grouping the thousand digits","required":false,"defaultValue":",","escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"Format\\Number","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Format\/Number"},"format.printf":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\Format\\PrintfViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"Format\\PrintfViewHelper","tagName":"format.printf","documentation":"A ViewHelper for formatting values with printf. Either supply an array for\nthe arguments or a single value.\n\nSee http:\/\/www.php.net\/manual\/en\/function.sprintf.php\n\nExamples\n========\n\nScientific notation\n-------------------\n\n::\n\n    <f:format.printf arguments=\"{number: 362525200}\">%.3e<\/f:format.printf>\n\nOutput::\n\n    3.625e+8\n\nArgument swapping\n-----------------\n\n::\n\n    <f:format.printf arguments=\"{0: 3, 1: 'Kasper'}\">%2$s is great, TYPO%1$d too. Yes, TYPO%1$d is great and so is %2$s!<\/f:format.printf>\n\nOutput::\n\n    Kasper is great, TYPO3 too. Yes, TYPO3 is great and so is Kasper!\n\nSingle argument\n---------------\n\n::\n\n    <f:format.printf arguments=\"{1: 'TYPO3'}\">We love %s<\/f:format.printf>\n\n\nOutput::\n\n    We love TYPO3\n\nInline notation\n---------------\n\n::\n\n    {someText -> f:format.printf(arguments: {1: 'TYPO3'})}\n\n\nOutput::\n\n    We love TYPO3","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":{"@api":""},"argumentDefinitions":{"value":{"name":"value","type":"string","description":"String to format","required":false,"defaultValue":null,"escape":null},"arguments":{"name":"arguments","type":"array","description":"The arguments for vsprintf","required":false,"defaultValue":[],"escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"Format\\Printf","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Format\/Printf"},"format.raw":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\Format\\RawViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"Format\\RawViewHelper","tagName":"format.raw","documentation":"Outputs an argument\/value without any escaping. Is normally used to output\nan ObjectAccessor which should not be escaped, but output as-is.\n\nPAY SPECIAL ATTENTION TO SECURITY HERE (especially Cross Site Scripting),\nas the output is NOT SANITIZED!\n\nExamples\n========\n\nChild nodes\n-----------\n\n::\n\n    <f:format.raw>{string}<\/f:format.raw>\n\nOutput::\n\n    (Content of ``{string}`` without any conversion\/escaping)\n\nValue attribute\n---------------\n\n::\n\n    <f:format.raw value=\"{string}\" \/>\n\nOutput::\n\n    (Content of ``{string}`` without any conversion\/escaping)\n\nInline notation\n---------------\n\n::\n\n    {string -> f:format.raw()}\n\nOutput::\n\n    (Content of ``{string}`` without any conversion\/escaping)","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":{"@api":""},"argumentDefinitions":{"value":{"name":"value","type":"mixed","description":"The value to output","required":false,"defaultValue":null,"escape":false}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"Format\\Raw","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Format\/Raw"},"format.stripTags":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\Format\\StripTagsViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"Format\\StripTagsViewHelper","tagName":"format.stripTags","documentation":"Removes tags from the given string (applying PHPs :php:`strip_tags()` function)\nSee https:\/\/www.php.net\/manual\/function.strip-tags.php.\n\nExamples\n========\n\nDefault notation\n----------------\n\n::\n\n   <f:format.stripTags>Some Text with <b>Tags<\/b> and an &Uuml;mlaut.<\/f:format.stripTags>\n\nSome Text with Tags and an &Uuml;mlaut. :php:`strip_tags()` applied.\n\n.. note::\n   Encoded entities are not decoded.\n\nDefault notation with allowedTags\n---------------------------------\n\n::\n\n   <f:format.stripTags allowedTags=\"<p><span><div><script>\">\n       <p>paragraph<\/p><span>span<\/span><div>divider<\/div><iframe>iframe<\/iframe><script>script<\/script>\n   <\/f:format.stripTags>\n\nOutput::\n\n   <p>paragraph<\/p><span>span<\/span><div>divider<\/div>iframe<script>script<\/script>\n\nInline notation\n---------------\n\n::\n\n   {text -> f:format.stripTags()}\n\nText without tags :php:`strip_tags()` applied.\n\nInline notation with allowedTags\n--------------------------------\n\n::\n\n   {text -> f:format.stripTags(allowedTags: \"<p><span><div><script>\")}\n\nText with p, span, div and script Tags inside, all other tags are removed.","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":[],"argumentDefinitions":{"value":{"name":"value","type":"string","description":"string to format","required":false,"defaultValue":null,"escape":null},"allowedTags":{"name":"allowedTags","type":"string","description":"Optional string of allowed tags as required by PHPs strip_tags() function","required":false,"defaultValue":null,"escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"Format\\StripTags","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Format\/StripTags"},"format.trim":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\Format\\TrimViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"Format\\TrimViewHelper","tagName":"format.trim","documentation":"This ViewHelper strips whitespace (or other characters) from the beginning and end of a string.\n\nPossible sides are:\n\n``both`` (default)\n  Strip whitespace (or other characters) from the beginning and end of a string\n\n``left`` or ``start``\n  Strip whitespace (or other characters) from the beginning of a string\n\n``right`` or ``end``\n  Strip whitespace (or other characters) from the end of a string\n\n\nExamples\n========\n\nDefaults\n--------\n::\n\n   #<f:format.trim>   String to be trimmed.   <\/f:format.trim>#\n\n.. code-block:: text\n\n   #String to be trimmed.#\n\n\nTrim only one side\n------------------\n\n::\n\n   #<f:format.trim side=\"right\">   String to be trimmed.   <\/f:format.trim>#\n\n.. code-block:: text\n\n   #   String to be trimmed.#\n\n\nTrim special characters\n-----------------------\n\n::\n\n   #<f:format.trim characters=\" St.\">   String to be trimmed.   <\/f:format.trim>#\n\n.. code-block:: text\n\n   #ring to be trimmed#\n\n\nInline usage\n-----------------------\n\n::\n\n   #{f:format.trim(value: my_variable)}#\n   #{my_variable -> f:format.trim()}#","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":[],"argumentDefinitions":{"value":{"name":"value","type":"string","description":"The string value to be trimmed. If not given, the evaluated child nodes will be used.","required":false,"defaultValue":null,"escape":null},"characters":{"name":"characters","type":"string","description":"Optionally, the stripped characters can also be specified using the characters parameter. Simply list all characters that you want to be stripped. With .. you can specify a range of characters.","required":false,"defaultValue":null,"escape":null},"side":{"name":"side","type":"string","description":"The side to apply, must be one of this' CASE_* constants. Defaults to both application.","required":false,"defaultValue":"both","escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"Format\\Trim","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Format\/Trim"},"format.urlencode":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\Format\\UrlencodeViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"Format\\UrlencodeViewHelper","tagName":"format.urlencode","documentation":"Encodes the given string according to http:\/\/www.faqs.org\/rfcs\/rfc3986.html\nApplying PHPs :php:`rawurlencode()` function.\nSee https:\/\/www.php.net\/manual\/function.rawurlencode.php.\n\n.. note::\n   The output is not escaped. You may have to ensure proper escaping on your own.\n\nExamples\n========\n\nDefault notation\n----------------\n\n::\n\n   <f:format.urlencode>foo @+%\/<\/f:format.urlencode>\n\n``foo%20%40%2B%25%2F`` :php:`rawurlencode()` applied.\n\nInline notation\n---------------\n\n::\n\n   {text -> f:format.urlencode()}\n\nUrl encoded text :php:`rawurlencode()` applied.","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":[],"argumentDefinitions":{"value":{"name":"value","type":"string","description":"string to format","required":false,"defaultValue":null,"escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"Format\\Urlencode","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Format\/Urlencode"},"fragment":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\FragmentViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"FragmentViewHelper","tagName":"fragment","documentation":"``f:fragment`` is the counterpart of the :ref:`<f:slot> ViewHelper <typo3fluid-fluid-slot>`.\nIt allows to provide multiple HTML fragments to a component, which defines\nthe matching named slots. ``f:fragment`` is used directly inside a component\ntag, nesting into other ViewHelpers is not possible.\n\nDefault Fragment Example\n========================\n\nIf the following template ``Text.html``:\n\n.. code-block:: xml\n\n   <f:argument name=\"title\" type=\"string\" \/>\n\n   <div class=\"textComponent\">\n       <h2>{title}<\/h2>\n       <div class=\"textComponent__content\">\n           <f:slot \/>\n       <\/div>\n   <\/div>\n\nis rendered with the following component call:\n\n..  code-block:: xml\n    :emphasize-lines: 2,5\n\n   <my:text title=\"My title\">\n       <f:fragment>\n           <p>My first paragraph<\/p>\n           <p>My second paragraph<\/p>\n       <\/f:fragment>\n   <\/my:text>\n\nit will result in the following output:\n\n.. code-block:: xml\n\n   <div class=\"textComponent\">\n       <h2>My title<\/h2>\n       <div class=\"textComponent__content\">\n           <p>My first paragraph<\/p>\n           <p>My second paragraph<\/p>\n       <\/div>\n   <\/div>\n\nMultiple Named Slots\n====================\n\nIf the following template ``TextMedia.html``:\n\n.. code-block:: xml\n\n   <f:argument name=\"title\" type=\"string\" \/>\n\n   <div class=\"textMediaComponent\">\n       <h2>{title}<\/h2>\n       <div class=\"textMediaComponent__media\">\n           <f:slot name=\"media\" \/>\n       <\/div>\n       <div class=\"textMediaComponent__content\">\n           <f:slot name=\"content\" \/>\n       <\/div>\n   <\/div>\n\nis rendered with the following component call:\n\n..  code-block:: xml\n    :emphasize-lines: 2,4,5,8\n\n   <my:textMedia title=\"My title\">\n       <f:fragment name=\"media\">\n           <img src=\"path\/to\/image.jpg\" alt=\"...\" \/>\n       <\/f:fragment>\n       <f:fragment name=\"content\">\n           <p>My first paragraph<\/p>\n           <p>My second paragraph<\/p>\n       <\/f:fragment>\n   <\/my:textMedia>\n\nit will result in the following output:\n\n.. code-block:: xml\n\n   <div class=\"textMediaComponent\">\n       <h2>My title<\/h2>\n       <div class=\"textMediaComponent__media\">\n           <img src=\"path\/to\/image.jpg\" alt=\"...\" \/>\n       <\/div>\n       <div class=\"textMediaComponent__content\">\n           <p>My first paragraph<\/p>\n           <p>My second paragraph<\/p>\n       <\/div>\n   <\/div>","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":{"@api":""},"argumentDefinitions":{"name":{"name":"name","type":"string","description":"Name of the slot that should be filled","required":false,"defaultValue":"default","escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"Fragment","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Fragment"},"groupedFor":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\GroupedForViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"GroupedForViewHelper","tagName":"groupedFor","documentation":"Grouped loop ViewHelper.\nLoops through the specified values.\n\nThe groupBy argument also supports property paths.\n\nUsing this ViewHelper can be a sign of weak architecture. If you end up\nusing it extensively you might want to fine-tune your \"view model\" (the\ndata you assign to the view).\n\nExamples\n========\n\nSimple\n------\n\n::\n\n    <f:groupedFor each=\"{0: {name: 'apple', color: 'green'}, 1: {name: 'cherry', color: 'red'}, 2: {name: 'banana', color: 'yellow'}, 3: {name: 'strawberry', color: 'red'}}\"\n        as=\"fruitsOfThisColor\" groupBy=\"color\"\n    >\n        <f:for each=\"{fruitsOfThisColor}\" as=\"fruit\">\n            {fruit.name}\n        <\/f:for>\n    <\/f:groupedFor>\n\nOutput::\n\n    apple cherry strawberry banana\n\nTwo dimensional list\n--------------------\n\n::\n\n    <ul>\n        <f:groupedFor each=\"{0: {name: 'apple', color: 'green'}, 1: {name: 'cherry', color: 'red'}, 2: {name: 'banana', color: 'yellow'}, 3: {name: 'strawberry', color: 'red'}}\" as=\"fruitsOfThisColor\" groupBy=\"color\" groupKey=\"color\">\n            <li>\n                {color} fruits:\n                <ul>\n                    <f:for each=\"{fruitsOfThisColor}\" as=\"fruit\" key=\"label\">\n                        <li>{label}: {fruit.name}<\/li>\n                    <\/f:for>\n                <\/ul>\n            <\/li>\n        <\/f:groupedFor>\n    <\/ul>\n\nOutput::\n\n    <ul>\n        <li>green fruits\n            <ul>\n                <li>0: apple<\/li>\n            <\/ul>\n        <\/li>\n        <li>red fruits\n            <ul>\n                <li>1: cherry<\/li>\n            <\/ul>\n            <ul>\n                <li>3: strawberry<\/li>\n            <\/ul>\n        <\/li>\n        <li>yellow fruits\n            <ul>\n                <li>2: banana<\/li>\n            <\/ul>\n        <\/li>\n    <\/ul>","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":{"@api":""},"argumentDefinitions":{"each":{"name":"each","type":"array","description":"The array or \\SplObjectStorage to iterated over","required":true,"defaultValue":null,"escape":null},"as":{"name":"as","type":"string","description":"The name of the iteration variable","required":true,"defaultValue":null,"escape":null},"groupBy":{"name":"groupBy","type":"string","description":"Group by this property","required":true,"defaultValue":null,"escape":null},"groupKey":{"name":"groupKey","type":"string","description":"The name of the variable to store the current group","required":false,"defaultValue":"groupKey","escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"GroupedFor","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/GroupedFor"},"if":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\IfViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"IfViewHelper","tagName":"if","documentation":"This ViewHelper implements an if\/else condition.\n\nFluid Boolean Rules \/ Conditions:\n=================================\n\nA condition is evaluated as a boolean value, so you can use any\nboolean argument, like a variable.\nAlternatively, you can use a full boolean expression.\nThe entered expression is evaluated as a PHP expression. You can\ncombine multiple expressions via :php:`&&` (logical AND) and\n:php:`||` (logical OR).\n\nAn expression can also be prepended with the :php:`!` (\"not\") character,\nwhich will negate that expression.\n\nHave a look into the Fluid section of the \"TYPO3 Explained\" Documentation\nfor more details about complex conditions.\n\nBoolean expressions have the following form:\n\n`is true` variant: `{variable}`::\n\n      <f:if condition=\"{foo}\">\n          Will be shown if foo is truthy.\n      <\/f:if>\n\nor `is false` variant: `!{variable}`::\n\n      <f:if condition=\"!{foo}\">\n          Will be shown if foo is falsy.\n      <\/f:if>\n\nor comparisons with expressions::\n\n      XX Comparator YY\n\nComparator is one of: :php:`==, !=, <, <=, >, >=` and :php:`%`\nThe :php:`%` operator (modulo) converts the result of the operation to\nboolean.\n\n`XX` and `YY` can be one of:\n\n- Number\n- String\n- Object Accessor (`object.property`)\n- Array\n- a ViewHelper\n\n::\n\n      <f:if condition=\"{rank} > 100\">\n          Will be shown if rank is > 100\n      <\/f:if>\n      <f:if condition=\"{rank} % 2\">\n          Will be shown if rank % 2 != 0.\n      <\/f:if>\n      <f:if condition=\"{rank} == {k:bar()}\">\n          Checks if rank is equal to the result of the ViewHelper \"k:bar\"\n      <\/f:if>\n      <f:if condition=\"{object.property} == 'stringToCompare'\">\n          Will result in true if {object.property}'s represented value\n          equals 'stringToCompare'.\n      <\/f:if>\n\nExamples\n========\n\nBasic usage\n-----------\n\n::\n\n    <f:if condition=\"somecondition\">\n        This is being shown in case the condition matches\n    <\/f:if>\n\nOutput::\n\n    Everything inside the <f:if> tag is being displayed if the condition evaluates to true.\n\nIf \/ then \/ else\n----------------\n\n::\n\n    <f:if condition=\"somecondition\">\n        <f:then>\n            This is being shown in case the condition matches.\n        <\/f:then>\n        <f:else>\n            This is being displayed in case the condition evaluates to false.\n        <\/f:else>\n    <\/f:if>\n\nOutput::\n\n    Everything inside the \"then\" tag is displayed if the condition evaluates to true.\n    Otherwise, everything inside the \"else\" tag is displayed.\n\nInline notation\n---------------\n\n::\n\n    {f:if(condition: someCondition, then: 'condition is met', else: 'condition is not met')}\n\nOutput::\n\n    The value of the \"then\" attribute is displayed if the condition evaluates to true.\n    Otherwise, everything the value of the \"else\" attribute is displayed.\n\nCombining multiple conditions\n-----------------------------\n\n::\n\n    <f:if condition=\"{user.rank} > 100 && {user.type} == 'contributor'\">\n        <f:then>\n            This is being shown in case both conditions match.\n        <\/f:then>\n        <f:else if=\"{user.rank} > 200 && ({user.type} == 'contributor' || {user.type} == 'developer')\">\n            This is being displayed in case the first block of the condition evaluates to true and any condition in\n            the second condition block evaluates to true.\n        <\/f:else>\n        <f:else>\n            This is being displayed when none of the above conditions evaluated to true.\n        <\/f:else>\n    <\/f:if>\n\nOutput::\n\n    Depending on which expression evaluated to true, that value is displayed.\n    If no expression matched, the contents inside the final \"else\" tag are displayed.","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":{"@api":"","@todo":": Declare final with next major"},"argumentDefinitions":{"then":{"name":"then","type":"mixed","description":"Value to be returned if the condition if met.","required":false,"defaultValue":null,"escape":true},"else":{"name":"else","type":"mixed","description":"Value to be returned if the condition if not met.","required":false,"defaultValue":null,"escape":true},"condition":{"name":"condition","type":"boolean","description":"Condition expression conforming to Fluid boolean rules","required":false,"defaultValue":false,"escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"If","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/If"},"inline":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\InlineViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"InlineViewHelper","tagName":"inline","documentation":"Inline Fluid rendering ViewHelper\n\nRenders Fluid code stored in a variable, which you normally would\nhave to render before assigning it to the view. Instead you can\ndo the following (note, extremely simplified use case)::\n\n     $view->assign('variable', 'value of my variable');\n     $view->assign('code', 'My variable: {variable}');\n\nAnd in the template::\n\n     {code -> f:inline()}\n\nWhich outputs::\n\n     My variable: value of my variable\n\nYou can use this to pass smaller and dynamic pieces of Fluid code\nto templates, as an alternative to creating new partial templates.","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":[],"argumentDefinitions":{"code":{"name":"code","type":"string","description":"Fluid code to be rendered as if it were part of the template rendering it. Can be passed as inline argument or tag content","required":false,"defaultValue":null,"escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"Inline","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Inline"},"join":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\JoinViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"JoinViewHelper","tagName":"join","documentation":"The JoinViewHelper combines elements from an array into a single string.\nYou can specify both a general separator and a special one for the last\nelement, which serves as the delimiter between the elements.\n\n\nExamples\n========\n\nSimple join\n-----------\n::\n\n   <f:join value=\"{0: '1', 1: '2', 2: '3'}\" \/>\n\n.. code-block:: text\n\n   123\n\n\nJoin with separator\n-------------------\n\n::\n\n   <f:join value=\"{0: '1', 1: '2', 2: '3'}\" separator=\", \" \/>\n\n.. code-block:: text\n\n   1, 2, 3\n\n\nJoin with separator, and special one for the last\n-------------------------------------------------\n\n::\n\n   <f:join value=\"{0: '1', 1: '2', 2: '3'}\" separator=\", \" separatorLast=\" and \" \/>\n\n.. code-block:: text\n\n   1, 2 and 3","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":[],"argumentDefinitions":{"value":{"name":"value","type":"array","description":"An array","required":false,"defaultValue":null,"escape":null},"separator":{"name":"separator","type":"string","description":"The separator","required":false,"defaultValue":"","escape":null},"separatorLast":{"name":"separatorLast","type":"string","description":"The separator for the last pair.","required":false,"defaultValue":null,"escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"Join","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Join"},"last":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\LastViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"LastViewHelper","tagName":"last","documentation":"The LastViewHelper returns the last item of an array.\n\nExample\n========\n::\n\n   <f:last value=\"{0: 'first', 1: 'second'}\" \/>\n\n.. code-block:: text\n\n   second","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":[],"argumentDefinitions":{"value":{"name":"value","type":"array","description":"","required":false,"defaultValue":null,"escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"Last","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Last"},"layout":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\LayoutViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"LayoutViewHelper","tagName":"layout","documentation":"With this ViewHelper, you can select a layout to be used for the current template.\n\n..  deprecated:: 4.4\n    Prevously, it was possible to set the layout of a template with the special\n    variable `layoutName`. This will no longer work with Fluid 5.\n\nExamples\n========\n\n::\n\n    <f:layout name=\"main\" \/>\n\nOutput::\n\n    (no output)","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":{"@api":""},"argumentDefinitions":{"name":{"name":"name","type":"string","description":"Name of layout to use. If none given, \"Default\" is used.","required":false,"defaultValue":null,"escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"Layout","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Layout"},"length":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\LengthViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"LengthViewHelper","tagName":"length","documentation":"The LengthViewHelper returns the length of a given string.\nSetting the character encoding is optional.\n\n\nExamples\n========\n\nSimple example\n--------------\n\n::\n\n     <f:length value=\"Hello, World!\" \/>\n\nOutput::\n\n     13\n\nExample with encoding\n---------------------\n\n::\n\n     <f:length value=\"Hello, World!\" encoding=\"UTF-8\" \/>\n\nOutput::\n\n     13\n\nFor supported character encodings see https:\/\/www.php.net\/manual\/en\/mbstring.supported-encodings.php\n\n\nInline notation\n---------------\n\n::\n\n     {f:length(value: 'Hello, World!')}\n\nOutput::\n\n     13","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":[],"argumentDefinitions":{"value":{"name":"value","type":"mixed","description":"An string","required":false,"defaultValue":null,"escape":null},"encoding":{"name":"encoding","type":"string","description":"Character encoding","required":false,"defaultValue":null,"escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"Length","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Length"},"max":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\MaxViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"MaxViewHelper","tagName":"max","documentation":"The MaxViewHelper returns the maximum element from an array\n\nExample\n=======\n\n::\n\n     <f:max value=\"{0: '1', 1: '2', 2: '3'}\" \/>\n\nOutput::\n\n     3","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":[],"argumentDefinitions":{"value":{"name":"value","type":"array","description":"An array","required":false,"defaultValue":null,"escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"Max","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Max"},"merge":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\MergeViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"MergeViewHelper","tagName":"merge","documentation":"The MergeViewHelper merges two arrays into one, optionally recursively.\n\nIt works similar to the PHP functions array_merge() and array_merge_recursive(),\ndepending on the value of the \"recursive\" argument.\n\n\nExample\n========\n\nSimple merge\n-------------\n\n::\n\n   <f:merge array=\"{0: 'a', 1: 'b'}\" with=\"{1: 'x', 2: 'c'}\" \/>\n\nResult::\n\n   {0: 'a', 1: 'x', 2: 'c'}\n\nRecursive merge\n---------------\n\n::\n\n   <f:merge array=\"{foo: {bar: 'baz'}}\" with=\"{foo: {qux: 'value'}}\" recursive=\"true\" \/>\n\nResult::\n\n   {foo: {bar: 'baz', qux: 'value'}}\n\nInline notation\n---------------\n\n::\n\n     {f:variable(name: 'myArray', value: {foo: 1})}\n     {myArray -> f:merge(with: {bar: 2})}\n\nResult::\n\n   {foo: 1, bar: 2}","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":[],"argumentDefinitions":{"array":{"name":"array","type":"array","description":"The array to merge into","required":false,"defaultValue":null,"escape":null},"with":{"name":"with","type":"array","description":"Array to be merged","required":false,"defaultValue":null,"escape":null},"recursive":{"name":"recursive","type":"boolean","description":"Whether to merge arrays recursively","required":false,"defaultValue":false,"escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"Merge","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Merge"},"min":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\MinViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"MinViewHelper","tagName":"min","documentation":"The MinViewHelper returns the minimum element from an array.\n\nExample\n=======\n\n::\n\n     <f:min value=\"{0: '1', 1: '2', 2: '3'}\" \/>\n\nOutput::\n\n     1","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":[],"argumentDefinitions":{"value":{"name":"value","type":"array","description":"An array","required":false,"defaultValue":null,"escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"Min","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Min"},"or":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\OrViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"OrViewHelper","tagName":"or","documentation":"Or ViewHelper\n\nIf content is null use alternative text.\n\nUsage of f:or\n=============\n\n::\n\n    {f:variable(name:'fallback',value:'this is not the variable you\\'re looking for')}\n    {undefinedVariable -> f:or(alternative:fallback)}\n\nUsage of ternary operator\n=========================\n\nIn some cases (e.g. when you want to check for empty instead of null)\nit might be more handy to use a ternary operator instead of f:or\n\n::\n\n    {emptyVariable ?: 'this is an alterative text'}","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":[],"argumentDefinitions":{"content":{"name":"content","type":"mixed","description":"Content to check if null","required":false,"defaultValue":null,"escape":null},"alternative":{"name":"alternative","type":"mixed","description":"Alternative if content is null","required":false,"defaultValue":null,"escape":null},"arguments":{"name":"arguments","type":"array","description":"Arguments to be replaced in the resulting string, using sprintf","required":false,"defaultValue":null,"escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"Or","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Or"},"range":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\RangeViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"RangeViewHelper","tagName":"range","documentation":"The RangeViewHelper returns an array containing a range of integers.\n\nThis ViewHelper mimicks PHP's :php:`range()` function.\n\nThe following examples store the result in a variable because an array cannot\nbe outputted directly in a template.\n\nExamples\n========\n\nIncreasing range\n-----------------\n::\n\n   <f:variable name=\"result\"><f:range start=\"1\" end=\"5\" \/><\/f:variable>\n\n.. code-block:: text\n\n   {0: 1, 1: 2, 2: 3, 3: 4, 4: 5}\n\n\nInline increasing range\n------------------------\n\n::\n\n   <f:variable name=\"result\" value=\"{f:range(start: 1, end: 5)}\" \/>\n\n.. code-block:: text\n\n   {0: 1, 1: 2, 2: 3, 3: 4, 4: 5}\n\n\nDecreasing range\n-----------------\n\n::\n\n   <f:variable name=\"result\" value=\"{f:range(start: 5, end: 0)}\" \/>\n\n.. code-block:: text\n\n   {0: 5, 1: 4, 2: 3, 3: 2, 4: 1, 5: 0}\n\n\nIncreasing stepped range\n-------------------------\n\n::\n\n   <f:variable name=\"result\" value=\"{f:range(start: 1, end: 6, step: 2)\" \/>\n\n.. code-block:: text\n\n   {0: 1, 1: 3, 2: 5}\n\n\nDecreasing stepped range\n-------------------------\n\n::\n\n   <f:variable name=\"result\" value=\"{f:range(start: 5, end: 1, step: 2)\" \/>\n\n.. code-block:: text\n\n   {0: 5, 1: 3, 2: 1}","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":[],"argumentDefinitions":{"start":{"name":"start","type":"integer","description":"First value of the sequence.","required":true,"defaultValue":null,"escape":null},"end":{"name":"end","type":"integer","description":"Last possible value of the sequence.","required":true,"defaultValue":null,"escape":null},"step":{"name":"step","type":"integer","description":"indicates by how much the produced sequence is progressed between values of the sequence.","required":false,"defaultValue":1,"escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"Range","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Range"},"render":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\RenderViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"RenderViewHelper","tagName":"render","documentation":"A ViewHelper to render a section, a partial, a specified section in a partial\nor a delegate ParsedTemplateInterface implementation.\n\nExamples\n========\n\nRendering partials\n------------------\n\n::\n\n    <f:render partial=\"SomePartial\" arguments=\"{foo: someVariable}\" \/>\n\nOutput::\n\n    the content of the partial \"SomePartial\". The content of the variable {someVariable} will be available in the partial as {foo}\n\nRendering sections\n------------------\n\n::\n\n    <f:section name=\"someSection\">This is a section. {foo}<\/f:section>\n    <f:render section=\"someSection\" arguments=\"{foo: someVariable}\" \/>\n\nOutput::\n\n    the content of the section \"someSection\". The content of the variable {someVariable} will be available in the partial as {foo}\n\nRendering recursive sections\n----------------------------\n\n::\n\n    <f:section name=\"mySection\">\n        <ul>\n            <f:for each=\"{myMenu}\" as=\"menuItem\">\n                <li>\n                    {menuItem.text}\n                    <f:if condition=\"{menuItem.subItems}\">\n                        <f:render section=\"mySection\" arguments=\"{myMenu: menuItem.subItems}\" \/>\n                    <\/f:if>\n                <\/li>\n            <\/f:for>\n        <\/ul>\n       <\/f:section>\n       <f:render section=\"mySection\" arguments=\"{myMenu: menu}\" \/>\n\nOutput::\n\n    <ul>\n        <li>menu1\n            <ul>\n              <li>menu1a<\/li>\n              <li>menu1b<\/li>\n            <\/ul>\n        <\/li>\n    [...]\n    (depending on the value of {menu})\n\n\nPassing all variables to a partial\n----------------------------------\n\n::\n\n    <f:render partial=\"somePartial\" arguments=\"{_all}\" \/>\n\nOutput::\n\n    the content of the partial \"somePartial\".\n    Using the reserved keyword \"_all\", all available variables will be passed along to the partial\n\n\nRendering via a delegate ParsedTemplateInterface implementation w\/ custom arguments\n-----------------------------------------------------------------------------------\n\n::\n\n    <f:render delegate=\"My\\Special\\ParsedTemplateImplementation\" arguments=\"{_all}\" \/>\n\nThis will output whichever output was generated by calling ``My\\Special\\ParsedTemplateImplementation->render()``\nwith cloned RenderingContextInterface $renderingContext as only argument and content of arguments\nassigned in VariableProvider of cloned context. Supports all other input arguments including\nrecursive rendering, contentAs argument, default value etc.\n\nNote that while ParsedTemplateInterface supports returning a Layout name, this Layout will not\nbe respected when rendering using this method. Only the ``render()`` method will be called!","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":{"@api":""},"argumentDefinitions":{"section":{"name":"section","type":"string","description":"Section to render - combine with partial to render section in partial","required":false,"defaultValue":null,"escape":null},"partial":{"name":"partial","type":"string","description":"Partial to render, with or without section","required":false,"defaultValue":null,"escape":null},"delegate":{"name":"delegate","type":"string","description":"Optional PHP class name of a permanent, included-in-app ParsedTemplateInterface implementation to override partial\/section","required":false,"defaultValue":null,"escape":null},"arguments":{"name":"arguments","type":"array","description":"Array of variables to be transferred. Use {_all} for all variables","required":false,"defaultValue":[],"escape":null},"optional":{"name":"optional","type":"boolean","description":"If true, considers the *section* optional. Partial never is.","required":false,"defaultValue":false,"escape":null},"default":{"name":"default","type":"mixed","description":"Value (usually string) to be displayed if the section or partial does not exist","required":false,"defaultValue":null,"escape":null},"contentAs":{"name":"contentAs","type":"string","description":"If used, renders the child content and adds it as a template variable with this name for use in the partial\/section","required":false,"defaultValue":null,"escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"Render","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Render"},"replace":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\ReplaceViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"ReplaceViewHelper","tagName":"replace","documentation":"The ReplaceViewHelper replaces one or multiple strings with other\nstrings. This ViewHelper mimicks PHP's :php:`str_replace()` function.\nHowever, it's also possible to provide replace pairs as associative array\nvia the \"replace\" argument.\n\n\nExamples\n========\n\nReplace a single string\n-----------------------\n::\n\n   <f:replace value=\"Hello World\" search=\"World\" replace=\"Fluid\" \/>\n\n.. code-block:: text\n\n   Hello Fluid\n\n\nReplace multiple strings\n------------------------\n::\n\n   <f:replace value=\"Hello World\" search=\"{0: 'World', 1: 'Hello'}\" replace=\"{0: 'Fluid', 1: 'Hi'}\" \/>\n\n.. code-block:: text\n\n   Hi Fluid\n\n\nReplace multiple strings using associative array\n------------------------------------------------\n::\n\n   <f:replace value=\"Hello World\" replace=\"{'World': 'Fluid', 'Hello': 'Hi'}\" \/>\n\n.. code-block:: text\n\n   Hi Fluid","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":[],"argumentDefinitions":{"value":{"name":"value","type":"string","description":"","required":false,"defaultValue":null,"escape":null},"search":{"name":"search","type":"mixed","description":"","required":false,"defaultValue":null,"escape":null},"replace":{"name":"replace","type":"mixed","description":"","required":true,"defaultValue":null,"escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"Replace","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Replace"},"round":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\RoundViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"RoundViewHelper","tagName":"round","documentation":"The RoundViewHelper rounds a float value with the specified precision and rounding mode.\nThe ViewHelper mimics PHP's :php:`round()` function.\n\n+------------------+-----------+-------------+\n|  rounding modes  | PHP < 8.4 | PHP >= 8.4  |\n+==================+===========+=============+\n| HalfAwayFromZero |     Yes   |      Yes    |\n+------------------+-----------+-------------+\n| HalfTowardsZero  |     Yes   |      Yes    |\n+------------------+-----------+-------------+\n| HalfEven         |     Yes   |      Yes    |\n+------------------+-----------+-------------+\n| HalfOdd          |     Yes   |      Yes    |\n+------------------+-----------+-------------+\n| TowardsZero      |     No    |      Yes    |\n+------------------+-----------+-------------+\n| AwayFromZero     |     No    |      Yes    |\n+------------------+-----------+-------------+\n| NegativeInfinity |     No    |      Yes    |\n+------------------+-----------+-------------+\n| PositiveInfinity |     No    |      Yes    |\n+------------------+-----------+-------------+\n\nExamples\n========\n\nRound with default precision\n----------------------------\n::\n\n   <f:round value=\"123.456\" \/>\n\n.. code-block:: text\n\n   123.46\n\nRound with specific precision\n-----------------------------\n::\n\n   <f:round value=\"123.456\" precision=\"1\" \/>\n\n.. code-block:: text\n\n   123.5\n\nRound with specific precision and rounding mode\n-----------------------------------------------\n::\n\n   <f:round value=\"123.456\" precision=\"1\" roundingMode=\"HalfAwayFromZero\" \/>\n\n.. code-block:: text\n\n   123.5\n\nTag content as value\n--------------------\n::\n\n   <f:round precision=\"1\">123.456<\/f:round>\n\n.. code-block:: text\n\n   123.5","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":[],"argumentDefinitions":{"value":{"name":"value","type":"float","description":"The number that should be rounded","required":false,"defaultValue":null,"escape":null},"precision":{"name":"precision","type":"int","description":"Rounding precision","required":false,"defaultValue":2,"escape":null},"roundingMode":{"name":"roundingMode","type":"string","description":"Rounding mode","required":false,"defaultValue":"HalfAwayFromZero","escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"Round","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Round"},"section":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\SectionViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"SectionViewHelper","tagName":"section","documentation":"A ViewHelper to declare sections in templates for later use with e.g. the ``f:render`` ViewHelper.\n\nExamples\n========\n\nRendering sections\n------------------\n\n::\n\n    <f:section name=\"someSection\">This is a section. {foo}<\/f:section>\n    <f:render section=\"someSection\" arguments=\"{foo: someVariable}\" \/>\n\nOutput::\n\n    the content of the section \"someSection\". The content of the variable {someVariable} will be available in the partial as {foo}\n\nRendering recursive sections\n----------------------------\n\n::\n\n    <f:section name=\"mySection\">\n       <ul>\n            <f:for each=\"{myMenu}\" as=\"menuItem\">\n                 <li>\n                   {menuItem.text}\n                   <f:if condition=\"{menuItem.subItems}\">\n                       <f:render section=\"mySection\" arguments=\"{myMenu: menuItem.subItems}\" \/>\n                   <\/f:if>\n                 <\/li>\n            <\/f:for>\n       <\/ul>\n    <\/f:section>\n    <f:render section=\"mySection\" arguments=\"{myMenu: menu}\" \/>\n\nOutput::\n\n    <ul>\n        <li>menu1\n            <ul>\n                <li>menu1a<\/li>\n                <li>menu1b<\/li>\n            <\/ul>\n        <\/li>\n    [...]\n    (depending on the value of {menu})","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":{"@api":""},"argumentDefinitions":{"name":{"name":"name","type":"string","description":"Name of the section","required":true,"defaultValue":null,"escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"Section","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Section"},"shuffle":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\ShuffleViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"ShuffleViewHelper","tagName":"shuffle","documentation":"The ShuffleViewHelper shuffles elements from an array.\nThis ViewHelper uses PHP's :php:`shuffle()` function.\n\nExample\n========\n\n::\n\n   <f:shuffle value=\"{0: '1', 1: '2', 2: '3'}\" \/>\n\n.. code-block:: text\n\n   {0: '2', 1: '3', 2: '1'}","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":[],"argumentDefinitions":{"value":{"name":"value","type":"array","description":"An array","required":false,"defaultValue":null,"escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"Shuffle","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Shuffle"},"slot":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\SlotViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"SlotViewHelper","tagName":"slot","documentation":"``f:slot`` allows a template that is called as a component to access and render\nthe child content of the calling component tag. This makes nesting of components\npossible.\n\nMost importantly, the ``f:slot`` ViewHelper makes sure that the right level of\nHTML escaping happens automatically, in line with the escaping in other parts of\nFluid: If HTML is used directly, it is not escaped. However, if a variable is\nused within the child content that contains a HTML string, that HTML is escaped\nbecause it might be from an unknown source.\n\nIn combination with the :ref:`<f:fragment> ViewHelper <typo3fluid-fluid-fragment>`,\nmultiple slots can be used in one component.\n\nIf a slot is defined, this ViewHelper will always attempt to return a string,\nregardless of the original type of the content. If a slot is not defined, the\nViewHelper will return ``null``.\n\nBasic Example\n=============\n\nIf the following template ``Text.html``:\n\n..  code-block:: xml\n    :emphasize-lines: 6\n\n   <f:argument name=\"title\" type=\"string\" \/>\n\n   <div class=\"textComponent\">\n       <h2>{title}<\/h2>\n       <div class=\"textComponent__content\">\n           <f:slot \/>\n       <\/div>\n   <\/div>\n\nis rendered with the following component call:\n\n.. code-block:: xml\n\n   <my:text title=\"My title\">\n       <p>My first paragraph<\/p>\n       <p>My second paragraph<\/p>\n   <\/my:text>\n\nit will result in the following output:\n\n.. code-block:: xml\n\n   <div class=\"textComponent\">\n       <h2>My title<\/h2>\n       <div class=\"textComponent__content\">\n           <p>My first paragraph<\/p>\n           <p>My second paragraph<\/p>\n       <\/div>\n   <\/div>\n\nEscaping Example\n================\n\nIf the same component is called like this:\n\n.. code-block:: xml\n\n   <f:variable name=\"htmlString\">\n       <p>My first paragraph<\/p>\n       <p>My second paragraph<\/p>\n   <\/f:variable>\n   <my:text title=\"My title\">{htmlString}<\/my:text>\n\nit would result in escaped HTML:\n\n.. code-block:: xml\n\n   <div class=\"textComponent\">\n       <h2>My title<\/h2>\n       <div class=\"textComponent__content\">\n           &lt;p&gt;My first paragraph&lt;\/p&gt;\n           &lt;p&gt;My second paragraph&lt;\/p&gt;\n       <\/div>\n   <\/div>\n\nIf you want to avoid escaping in this use case, you need to use ``f:format.raw`` on\nthe variable when it's passed to the component. Please be aware that depending on\nthe source of the input, this might have security implications!\n\nComponent Nesting Example\n=========================\n\nNesting of multiple components is possible. The following template ``Paragraphs.html``:\n\n.. code-block:: xml\n\n   <p>My first paragraph<\/p>\n   <p>My second paragraph<\/p>\n\ncan be called as a component and nested into the text component described above:\n\n.. code-block:: xml\n\n   <my:text title=\"My title\">\n       <my:paragraphs \/>\n   <\/my:text>\n\nwhich would lead to unescaped output, since components are always expected to return HTML:\n\n.. code-block:: xml\n\n   <div class=\"textComponent\">\n       <h2>My title<\/h2>\n       <div class=\"textComponent__content\">\n           <p>My first paragraph<\/p>\n           <p>My second paragraph<\/p>\n       <\/div>\n   <\/div>\n\nMultiple Named Slots\n====================\n\nIf the following template ``TextMedia.html``:\n\n..  code-block:: xml\n    :emphasize-lines: 6,9\n\n   <f:argument name=\"title\" type=\"string\" \/>\n\n   <div class=\"textMediaComponent\">\n       <h2>{title}<\/h2>\n       <div class=\"textMediaComponent__media\">\n           <f:slot name=\"media\" \/>\n       <\/div>\n       <div class=\"textMediaComponent__content\">\n           <f:slot name=\"content\" \/>\n       <\/div>\n   <\/div>\n\nis rendered with the following component call:\n\n.. code-block:: xml\n\n   <my:textMedia title=\"My title\">\n       <f:fragment name=\"media\">\n           <img src=\"path\/to\/image.jpg\" alt=\"...\" \/>\n       <\/f:fragment>\n       <f:fragment name=\"content\">\n           <p>My first paragraph<\/p>\n           <p>My second paragraph<\/p>\n       <\/f:fragment>\n   <\/my:textMedia>\n\nit will result in the following output:\n\n.. code-block:: xml\n\n   <div class=\"textMediaComponent\">\n       <h2>My title<\/h2>\n       <div class=\"textMediaComponent__media\">\n           <img src=\"path\/to\/image.jpg\" alt=\"...\" \/>\n       <\/div>\n       <div class=\"textMediaComponent__content\">\n           <p>My first paragraph<\/p>\n           <p>My second paragraph<\/p>\n       <\/div>\n   <\/div>","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":{"@api":""},"argumentDefinitions":{"name":{"name":"name","type":"string","description":"Name of the slot, can be omitted for default slot","required":false,"defaultValue":"default","escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"Slot","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Slot"},"spaceless":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\SpacelessViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"SpacelessViewHelper","tagName":"spaceless","documentation":"Space Removal ViewHelper\n\nRemoves redundant spaces between HTML tags while\npreserving the whitespace that may be inside HTML\ntags. Trims the final result before output.\n\nHeavily inspired by Twig's corresponding node type.\n\nUsage of f:spaceless\n====================\n\n::\n\n    <f:spaceless>\n        <div>\n            <div>\n                <div>text\n\n        text<\/div>\n            <\/div>\n        <\/div>\n    <\/f:spaceless>\n\nOutput::\n\n    <div><div><div>text\n\n    text<\/div><\/div><\/div>","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":[],"argumentDefinitions":[],"allowsArbitraryArguments":false,"nameWithoutSuffix":"Spaceless","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Spaceless"},"split":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\SplitViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"SplitViewHelper","tagName":"split","documentation":"The SplitViewHelper splits a string by the specified separator, which\nresults in an array. The number of values in the resulting array can\nbe limited with the limit parameter, which results in an array where\nthe last item contains the remaining unsplit string.\n\nThis ViewHelper mimicks PHP's :php:`explode()` function.\n\nThe following examples store the result in a variable because an array cannot\nbe outputted directly in a template.\n\nExamples\n========\n\nSplit with a separator\n-----------------------\n::\n\n   <f:variable name=\"result\"><f:split value=\"1,5,8\" separator=\",\" \/><\/f:variable>\n\n.. code-block:: text\n\n   {0: '1', 1: '5', 2: '8'}\n\n\nSplit using tag content as value\n--------------------------------\n\n::\n\n   <f:variable name=\"result\"><f:split separator=\"-\">1-5-8<\/f:split><\/f:variable>\n\n.. code-block:: text\n\n   {0: '1', 1: '5', 2: '8'}\n\n\nSplit with a limit\n-------------------\n\n::\n\n   <f:variable name=\"result\"><f:split value=\"1,5,8\" separator=\",\" limit=\"2\" \/><\/f:variable>\n\n.. code-block:: text\n\n   {0: '1', 1: '5,8'}","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":[],"argumentDefinitions":{"value":{"name":"value","type":"string","description":"The string to explode","required":false,"defaultValue":null,"escape":null},"separator":{"name":"separator","type":"string","description":"Separator string to explode with","required":true,"defaultValue":null,"escape":null},"limit":{"name":"limit","type":"int","description":"If limit is positive, a maximum of $limit items will be returned. If limit is negative, all items except for the last $limit items will be returned. 0 will be treated as 1.","required":false,"defaultValue":9223372036854775807,"escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"Split","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Split"},"startsWith":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\StartsWithViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"StartsWithViewHelper","tagName":"startsWith","documentation":"StartsWith ViewHelper checks if the subject string starts with a specified string.\nThis ViewHelper implements an if\/else condition.\n\nExamples\n========\n\nRender the body if \"myString\" starts with \"Hello\"\n-----------------------------------------------\n\n::\n\n     <f:variable name=\"myString\" value=\"Hello, World!\" \/>\n     <f:startsWith search=\"Hello\" subject=\"{myString}\">This will be rendered if variable \"myString\" starts with \"Hello\"<\/f:startsWith>\n\nOutput::\n\n     This will be rendered if variable \"myString\" starts with \"Hello\"\n\nA more complex example with inline notation\n-----------------------------------------\n\n::\n\n     <f:variable name=\"condition\" value=\"{false}\" \/>\n     <f:variable name=\"myString\" value=\"Hello, World!\" \/>\n\n     <f:if condition=\"{condition} || {f:startsWith(search: 'Hello', subject: myString)}\">\n     It Works!\n     <\/f:if>\n\nOutput::\n\n     It Works!","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":[],"argumentDefinitions":{"then":{"name":"then","type":"mixed","description":"Value to be returned if the condition if met.","required":false,"defaultValue":null,"escape":true},"else":{"name":"else","type":"mixed","description":"Value to be returned if the condition if not met.","required":false,"defaultValue":null,"escape":true},"subject":{"name":"subject","type":"string","description":"String to search in","required":true,"defaultValue":null,"escape":null},"search":{"name":"search","type":"string","description":"String to search in subject at the beginning","required":true,"defaultValue":null,"escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"StartsWith","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/StartsWith"},"switch":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\SwitchViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"SwitchViewHelper","tagName":"switch","documentation":"Switch ViewHelper which can be used to render content depending on a value or expression.\nImplements what a basic PHP ``switch()`` does.\n\nAn optional default case can be specified which is rendered if none of the\n``case`` conditions matches.\n\nUsing this ViewHelper can be a sign of weak architecture. If you end up using it extensively\nyou might want to consider restructuring your controllers\/actions and\/or use partials and sections.\nE.g. the above example could be achieved with :html:`<f:render partial=\"title.{person.gender}\" \/>`\nand the partials \"title.male.html\", \"title.female.html\", ...\nDepending on the scenario this can be easier to extend and possibly contains less duplication.\n\nExamples\n========\n\nSimple Switch statement\n-----------------------\n\n::\n\n    <f:switch expression=\"{person.gender}\">\n        <f:case value=\"male\">Mr.<\/f:case>\n        <f:case value=\"female\">Mrs.<\/f:case>\n        <f:defaultCase>Mr. \/ Mrs.<\/f:defaultCase>\n    <\/f:switch>\n\nOutput::\n\n    \"Mr.\", \"Mrs.\" or \"Mr. \/ Mrs.\" (depending on the value of {person.gender})","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":{"@api":""},"argumentDefinitions":{"expression":{"name":"expression","type":"mixed","description":"Expression to switch","required":true,"defaultValue":null,"escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"Switch","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Switch"},"then":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\ThenViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"ThenViewHelper","tagName":"then","documentation":"``f:then`` only has an effect inside of ``f:if``. See the ``f:if`` ViewHelper for documentation.","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":{"@see":"\\TYPO3Fluid\\Fluid\\ViewHelpers\\IfViewHelper","@api":""},"argumentDefinitions":[],"allowsArbitraryArguments":false,"nameWithoutSuffix":"Then","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Then"},"variable":{"className":"TYPO3Fluid\\Fluid\\ViewHelpers\\VariableViewHelper","namespace":"TYPO3Fluid\\Fluid\\ViewHelpers","name":"VariableViewHelper","tagName":"variable","documentation":"Variable assigning ViewHelper\n\nAssigns one template variable which will exist also\nafter the ViewHelper is done rendering, i.e. adds\ntemplate variables.\n\nIf you require a variable assignment which does not\nexist in the template after a piece of Fluid code\nis rendered, consider using ``f:alias`` ViewHelper instead.\n\nUsages:\n\n::\n\n    {f:variable(name: 'myvariable', value: 'some value')}\n    <f:variable name=\"myvariable\">some value<\/f:variable>\n    {oldvariable -> f:format.htmlspecialchars() -> f:variable(name: 'newvariable')}\n    <f:variable name=\"myvariable\"><f:format.htmlspecialchars>{oldvariable}<\/f:format.htmlspecialchars><\/f:variable>","xmlNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","docTags":{"@api":""},"argumentDefinitions":{"value":{"name":"value","type":"mixed","description":"Value to assign. If not in arguments then taken from tag content","required":false,"defaultValue":null,"escape":null},"name":{"name":"name","type":"string","description":"Name of variable to create","required":true,"defaultValue":null,"escape":null}},"allowsArbitraryArguments":false,"nameWithoutSuffix":"Variable","namespaceWithoutSuffix":"TYPO3Fluid\\Fluid","uri":"Fluid\/Variable"}},"uri":"Fluid\/Index","name":"Fluid","label":"Fluid (f:*)","namespaceAlias":"f","targetNamespace":"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers","includesNamespaces":["http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers"],"sourceEdit":{"http:\/\/typo3.org\/ns\/TYPO3Fluid\/Fluid\/ViewHelpers":{"sourcePrefix":"https:\/\/github.com\/TYPO3\/Fluid\/blob\/main\/src\/ViewHelpers\/","editPrefix":"https:\/\/github.com\/TYPO3\/Fluid\/edit\/main\/src\/ViewHelpers\/"}},"headlineIdentifierPrefix":null}