TYPO3 CMS  TYPO3_6-2
TYPO3\CMS\Fluid\Core\ViewHelper\AbstractConditionViewHelper Class Reference
Inheritance diagram for TYPO3\CMS\Fluid\Core\ViewHelper\AbstractConditionViewHelper:
TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper TYPO3\CMS\Fluid\Core\ViewHelper\Facets\ChildNodeAccessInterface TYPO3\CMS\Fluid\Core\ViewHelper\Facets\CompilableInterface Tx_Fluid_Core_ViewHelper_AbstractConditionViewHelper TYPO3\CMS\Documentation\ViewHelpers\Be\Security\IfAdminViewHelper TYPO3\CMS\Fluid\ViewHelpers\Be\Security\IfAuthenticatedViewHelper TYPO3\CMS\Fluid\ViewHelpers\Be\Security\IfHasRoleViewHelper TYPO3\CMS\Fluid\ViewHelpers\IfViewHelper TYPO3\CMS\Fluid\ViewHelpers\Security\IfAuthenticatedViewHelper TYPO3\CMS\Fluid\ViewHelpers\Security\IfHasRoleViewHelper Tx_Fluid_ViewHelpers_Be_Security_IfAuthenticatedViewHelper Tx_Fluid_ViewHelpers_Be_Security_IfHasRoleViewHelper Tx_Fluid_ViewHelpers_IfViewHelper Tx_Fluid_ViewHelpers_Security_IfAuthenticatedViewHelper Tx_Fluid_ViewHelpers_Security_IfHasRoleViewHelper

Public Member Functions

 setChildNodes (array $childNodes)
 
 __construct ()
 
 compile ($argumentsVariableName, $renderChildrenClosureVariableName, &$initializationPhpCode, \TYPO3\CMS\Fluid\Core\Parser\SyntaxTree\AbstractNode $syntaxTreeNode, \TYPO3\CMS\Fluid\Core\Compiler\TemplateCompiler $templateCompiler)
 
- Public Member Functions inherited from TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper
 setArguments (array $arguments)
 
 setRenderingContext (\TYPO3\CMS\Fluid\Core\Rendering\RenderingContextInterface $renderingContext)
 
 injectReflectionService (\TYPO3\CMS\Extbase\Reflection\ReflectionService $reflectionService)
 
 isEscapingInterceptorEnabled ()
 
 setViewHelperNode (\TYPO3\CMS\Fluid\Core\Parser\SyntaxTree\ViewHelperNode $node)
 
 setRenderChildrenClosure (\Closure $renderChildrenClosure)
 
 initializeArgumentsAndRender ()
 
 initialize ()
 
 renderChildren ()
 
 prepareArguments ()
 
 validateArguments ()
 
 initializeArguments ()
 
 compile ($argumentsVariableName, $renderChildrenClosureVariableName, &$initializationPhpCode, \TYPO3\CMS\Fluid\Core\Parser\SyntaxTree\AbstractNode $syntaxTreeNode, \TYPO3\CMS\Fluid\Core\Compiler\TemplateCompiler $templateCompiler)
 
 resetState ()
 

Protected Member Functions

 renderThenChild ()
 
 renderElseChild ()
 
- Protected Member Functions inherited from TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper
 registerArgument ($name, $type, $description, $required=FALSE, $defaultValue=NULL)
 
 overrideArgument ($name, $type, $description, $required=FALSE, $defaultValue=NULL)
 
 callRenderMethod ()
 
 buildRenderChildrenClosure ()
 
 hasArgument ($argumentName)
 

Private Attributes

 $childNodes = array()
 

Additional Inherited Members

- Static Public Member Functions inherited from TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper
static renderStatic (array $arguments, \Closure $renderChildrenClosure, \TYPO3\CMS\Fluid\Core\Rendering\RenderingContextInterface $renderingContext)
 
- Static Public Member Functions inherited from TYPO3\CMS\Fluid\Core\ViewHelper\Facets\CompilableInterface
static renderStatic (array $arguments, \Closure $renderChildrenClosure, \TYPO3\CMS\Fluid\Core\Rendering\RenderingContextInterface $renderingContext)
 
- Protected Attributes inherited from TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper
 $arguments
 
 $templateVariableContainer
 
 $controllerContext
 
 $renderingContext
 
 $renderChildrenClosure = NULL
 
 $viewHelperVariableContainer
 
 $objectManager
 
 $escapingInterceptorEnabled = TRUE
 

Detailed Description

This view helper is an abstract ViewHelper which implements an if/else condition.

See also
TYPO3::convertArgumentValue() to find see how boolean arguments are evaluated

= Usage =

To create a custom Condition ViewHelper, you need to subclass this class, and implement your own render() method. Inside there, you should call $this->renderThenChild() if the condition evaluated to TRUE, and $this->renderElseChild() if the condition evaluated to FALSE.

Every Condition ViewHelper has a "then" and "else" argument, so it can be used like: <[aConditionViewHelperName] .... then="condition true" else="condition false" />, or as well use the "then" and "else" child nodes.

See also
TYPO3 for a more detailed explanation and a simple usage example. Make sure to NOT OVERRIDE the constructor.

Definition at line 34 of file AbstractConditionViewHelper.php.

Constructor & Destructor Documentation

◆ __construct()

TYPO3\CMS\Fluid\Core\ViewHelper\AbstractConditionViewHelper::__construct ( )

Initializes the "then" and "else" arguments

Definition at line 56 of file AbstractConditionViewHelper.php.

References TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper\registerArgument().

Member Function Documentation

◆ compile()

TYPO3\CMS\Fluid\Core\ViewHelper\AbstractConditionViewHelper::compile (   $argumentsVariableName,
  $renderChildrenClosureVariableName,
$initializationPhpCode,
\TYPO3\CMS\Fluid\Core\Parser\SyntaxTree\AbstractNode  $syntaxTreeNode,
\TYPO3\CMS\Fluid\Core\Compiler\TemplateCompiler  $templateCompiler 
)

The compiled ViewHelper adds two new ViewHelper arguments: __thenClosure and __elseClosure. These contain closures which are be executed to render the then(), respectively else() case.

Parameters
string$argumentsVariableName
string$renderChildrenClosureVariableName
string$initializationPhpCode
\TYPO3\CMS\Fluid\Core\Parser\SyntaxTree\AbstractNode$syntaxTreeNode
\TYPO3\CMS\Fluid\Core\Compiler\TemplateCompiler$templateCompiler
Returns
string

Implements TYPO3\CMS\Fluid\Core\ViewHelper\Facets\CompilableInterface.

Definition at line 138 of file AbstractConditionViewHelper.php.

◆ renderElseChild()

TYPO3\CMS\Fluid\Core\ViewHelper\AbstractConditionViewHelper::renderElseChild ( )
protected

Returns value of "else" attribute. If else attribute is not set, iterates through child nodes and renders ElseViewHelper. If else attribute is not set and no ElseViewHelper is found, an empty string will be returned.

Returns
string rendered ElseViewHelper or an empty string if no ThenViewHelper was found

Definition at line 108 of file AbstractConditionViewHelper.php.

References TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper\hasArgument().

Referenced by TYPO3\CMS\Documentation\ViewHelpers\Be\Security\IfAdminViewHelper\render(), TYPO3\CMS\Fluid\ViewHelpers\Be\Security\IfAuthenticatedViewHelper\render(), TYPO3\CMS\Fluid\ViewHelpers\Security\IfAuthenticatedViewHelper\render(), TYPO3\CMS\Fluid\ViewHelpers\Be\Security\IfHasRoleViewHelper\render(), TYPO3\CMS\Fluid\ViewHelpers\Security\IfHasRoleViewHelper\render(), and TYPO3\CMS\Fluid\ViewHelpers\IfViewHelper\render().

◆ renderThenChild()

TYPO3\CMS\Fluid\Core\ViewHelper\AbstractConditionViewHelper::renderThenChild ( )
protected

Returns value of "then" attribute. If then attribute is not set, iterates through child nodes and renders ThenViewHelper. If then attribute is not set and no ThenViewHelper and no ElseViewHelper is found, all child nodes are rendered

Returns
string rendered ThenViewHelper or contents of <f:if> if no ThenViewHelper was found

Definition at line 69 of file AbstractConditionViewHelper.php.

References TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper\hasArgument(), and TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper\renderChildren().

Referenced by TYPO3\CMS\Documentation\ViewHelpers\Be\Security\IfAdminViewHelper\render(), TYPO3\CMS\Fluid\ViewHelpers\Be\Security\IfAuthenticatedViewHelper\render(), TYPO3\CMS\Fluid\ViewHelpers\Security\IfAuthenticatedViewHelper\render(), TYPO3\CMS\Fluid\ViewHelpers\Be\Security\IfHasRoleViewHelper\render(), TYPO3\CMS\Fluid\ViewHelpers\Security\IfHasRoleViewHelper\render(), and TYPO3\CMS\Fluid\ViewHelpers\IfViewHelper\render().

◆ setChildNodes()

TYPO3\CMS\Fluid\Core\ViewHelper\AbstractConditionViewHelper::setChildNodes ( array  $childNodes)

Setter for ChildNodes - as defined in ChildNodeAccessInterface

Parameters
array$childNodesChild nodes of this syntax tree node
Returns
void

Implements TYPO3\CMS\Fluid\Core\ViewHelper\Facets\ChildNodeAccessInterface.

Definition at line 49 of file AbstractConditionViewHelper.php.

References TYPO3\CMS\Fluid\Core\ViewHelper\AbstractConditionViewHelper\$childNodes.

Member Data Documentation

◆ $childNodes

TYPO3\CMS\Fluid\Core\ViewHelper\AbstractConditionViewHelper::$childNodes = array()
private