TYPO3  7.6
HtmlspecialcharsViewHelper.php
Go to the documentation of this file.
1 <?php
2 namespace TYPO3\CMS\Fluid\ViewHelpers\Format;
3 
4 /* *
5  * This script is backported from the TYPO3 Flow package "TYPO3.Fluid". *
6  * *
7  * It is free software; you can redistribute it and/or modify it under *
8  * the terms of the GNU Lesser General Public License, either version 3 *
9  * of the License, or (at your option) any later version. *
10  * *
11  * The TYPO3 project - inspiring people to share! *
12  * */
14 
38 {
45  protected $escapingInterceptorEnabled = false;
46 
58  public function render($value = null, $keepQuotes = false, $encoding = null, $doubleEncode = true)
59  {
60  if ($value === null) {
61  $value = $this->renderChildren();
62  }
63  if (!is_string($value)) {
64  return $value;
65  }
66  if ($encoding === null) {
67  $encoding = self::resolveDefaultEncoding();
68  }
69  $flags = $keepQuotes ? ENT_NOQUOTES : ENT_COMPAT;
70  return htmlspecialchars($value, $flags, $encoding, $doubleEncode);
71  }
72 
84  public function compile($argumentsVariableName, $renderChildrenClosureVariableName, &$initializationPhpCode, \TYPO3\CMS\Fluid\Core\Parser\SyntaxTree\AbstractNode $syntaxTreeNode, \TYPO3\CMS\Fluid\Core\Compiler\TemplateCompiler $templateCompiler)
85  {
86  $valueVariableName = $templateCompiler->variableName('value');
87  $initializationPhpCode .= sprintf('%s = (%s[\'value\'] !== NULL ? %s[\'value\'] : %s());', $valueVariableName, $argumentsVariableName, $argumentsVariableName, $renderChildrenClosureVariableName) . LF;
88 
89  return sprintf('(!is_string(%s) ? %s : htmlspecialchars(%s, (%s[\'keepQuotes\'] ? ENT_NOQUOTES : ENT_COMPAT), (%s[\'encoding\'] !== NULL ? %s[\'encoding\'] : \\TYPO3\\CMS\\Fluid\\Core\\Compiler\\AbstractCompiledTemplate::resolveDefaultEncoding()), %s[\'doubleEncode\']))',
90  $valueVariableName, $valueVariableName, $valueVariableName, $argumentsVariableName, $argumentsVariableName, $argumentsVariableName, $argumentsVariableName);
91  }
92 }