57 $this->
registerArgument(
'then',
'mixed',
'Value to be returned if the condition if met.', FALSE);
58 $this->
registerArgument(
'else',
'mixed',
'Value to be returned if the condition if not met.', FALSE);
71 return $this->arguments[
'then'];
74 $thenClosure = $this->arguments[
'__thenClosure'];
75 return $thenClosure();
80 $elseViewHelperEncountered = FALSE;
81 foreach ($this->childNodes as $childNode) {
82 if ($childNode instanceof \
TYPO3\CMS\
Fluid\Core\Parser\SyntaxTree\ViewHelperNode
83 && $childNode->getViewHelperClassName() ===
'TYPO3\\CMS\\Fluid\\ViewHelpers\\ThenViewHelper') {
84 $data = $childNode->evaluate($this->renderingContext);
87 if ($childNode instanceof \
TYPO3\CMS\
Fluid\Core\Parser\SyntaxTree\ViewHelperNode
88 && $childNode->getViewHelperClassName() ===
'TYPO3\\CMS\\Fluid\\ViewHelpers\\ElseViewHelper') {
89 $elseViewHelperEncountered = TRUE;
93 if ($elseViewHelperEncountered) {
110 return $this->arguments[
'else'];
113 $elseClosure = $this->arguments[
'__elseClosure'];
114 return $elseClosure();
116 foreach ($this->childNodes as $childNode) {
117 if ($childNode instanceof \
TYPO3\CMS\
Fluid\Core\Parser\SyntaxTree\ViewHelperNode
118 && $childNode->getViewHelperClassName() ===
'TYPO3\\CMS\\Fluid\\ViewHelpers\\ElseViewHelper') {
119 return $childNode->evaluate($this->renderingContext);
138 public function compile($argumentsVariableName, $renderChildrenClosureVariableName, &$initializationPhpCode, \
TYPO3\CMS\
Fluid\Core\Parser\SyntaxTree\AbstractNode $syntaxTreeNode, \
TYPO3\CMS\
Fluid\Core\Compiler\TemplateCompiler $templateCompiler) {
139 foreach ($syntaxTreeNode->getChildNodes() as $childNode) {
140 if ($childNode instanceof \
TYPO3\CMS\
Fluid\Core\Parser\SyntaxTree\ViewHelperNode
141 && $childNode->getViewHelperClassName() ===
'TYPO3\\CMS\\Fluid\\ViewHelpers\\ThenViewHelper') {
143 $childNodesAsClosure = $templateCompiler->wrapChildNodesInClosure($childNode);
144 $initializationPhpCode .= sprintf(
'%s[\'__thenClosure\'] = %s;', $argumentsVariableName, $childNodesAsClosure) . chr(10);
146 if ($childNode instanceof \
TYPO3\CMS\
Fluid\Core\Parser\SyntaxTree\ViewHelperNode
147 && $childNode->getViewHelperClassName() ===
'TYPO3\\CMS\\Fluid\\ViewHelpers\\ElseViewHelper') {
149 $childNodesAsClosure = $templateCompiler->wrapChildNodesInClosure($childNode);
150 $initializationPhpCode .= sprintf(
'%s[\'__elseClosure\'] = %s;', $argumentsVariableName, $childNodesAsClosure) . chr(10);
153 return \TYPO3\CMS\Fluid\Core\Compiler\TemplateCompiler::SHOULD_GENERATE_VIEWHELPER_INVOCATION;
hasArgument($argumentName)
registerArgument($name, $type, $description, $required=FALSE, $defaultValue=NULL)
compile($argumentsVariableName, $renderChildrenClosureVariableName, &$initializationPhpCode, \TYPO3\CMS\Fluid\Core\Parser\SyntaxTree\AbstractNode $syntaxTreeNode, \TYPO3\CMS\Fluid\Core\Compiler\TemplateCompiler $templateCompiler)
setChildNodes(array $childNodes)