PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / trunk
Matomo Analytics – Powerful, Privacy-First Insights for WordPress vtrunk
5.11.1 5.11.0 5.10.2 5.10.1 trunk 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.3.2 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.10.0 4.11.0 4.12.0 4.13.0 4.13.2 4.13.3 4.13.4 4.13.5 4.14.0 4.14.1 4.14.2 4.15.0 4.15.1 4.15.2 4.15.3 4.2.0 4.3.0 4.3.1 4.4.1 4.4.2 4.5.0 4.6.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.10.0 5.2.0 5.2.1 5.2.2 5.3.0 5.3.1 5.3.2 5.3.3 5.6.0 5.6.1 5.7.0 5.7.1 5.8.0 5.8.1 5.8.2
matomo / app / core / View / RenderTokenParser.php
matomo / app / core / View Last commit date
HtmlEmailFooterView.php 2 years ago HtmlReportEmailHeaderView.php 1 month ago MethodCallExpression.php 1 year ago OneClickDone.php 6 months ago RenderTokenParser.php 1 year ago SecurityPolicy.php 1 month ago UIControl.php 1 month ago ViewInterface.php 1 year ago
RenderTokenParser.php
57 lines
1 <?php
2
3 /**
4 * Matomo - free/libre analytics platform
5 *
6 * @link https://matomo.org
7 * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
8 */
9 namespace Piwik\View;
10
11 use Matomo\Dependencies\Twig\Node\Expression\ArrayExpression;
12 use Matomo\Dependencies\Twig\Node\IncludeNode;
13 use Matomo\Dependencies\Twig\Token;
14 use Matomo\Dependencies\Twig\TokenParser\AbstractTokenParser;
15 /**
16 * Defines a new Twig tag that will render a Piwik View.
17 *
18 * Use the tag like this:
19 *
20 * {% render theView %}
21 *
22 * where `theView` is a variable referencing a View instance.
23 */
24 class RenderTokenParser extends AbstractTokenParser
25 {
26 /**
27 * Parses the Twig stream and creates a Twig_Node_Include instance that includes
28 * the View's template.
29 *
30 * @return \Twig\Node\Node
31 */
32 public function parse(Token $token)
33 {
34 $parser = $this->parser;
35 $stream = $parser->getStream();
36 $view = $parser->getExpressionParser()->parseExpression();
37 $variablesOverride = new ArrayExpression(array(), $token->getLine());
38 if ($stream->test(Token::NAME_TYPE, 'with')) {
39 $stream->next();
40 $variablesOverride->addElement($this->parser->getExpressionParser()->parseExpression());
41 }
42 $stream->expect(Token::BLOCK_END_TYPE);
43 $viewTemplateExpr = new \Piwik\View\MethodCallExpression($view, 'getTemplateFile', new ArrayExpression(array(), $token->getLine()), $token->getLine());
44 $variablesExpr = new \Piwik\View\MethodCallExpression($view, 'getTemplateVars', $variablesOverride, $token->getLine());
45 return new IncludeNode($viewTemplateExpr, $variablesExpr, $only = \false, $ignoreMissing = \false, $token->getLine());
46 }
47 /**
48 * Returns the tag identifier.
49 *
50 * @return string
51 */
52 public function getTag()
53 {
54 return 'render';
55 }
56 }
57