PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / 1.3.1
Matomo Analytics – Powerful, Privacy-First Insights for WordPress v1.3.1
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 6 years ago HtmlReportEmailHeaderView.php 6 years ago OneClickDone.php 6 years ago RenderTokenParser.php 6 years ago UIControl.php 6 years ago ViewInterface.php 6 years ago
RenderTokenParser.php
83 lines
1 <?php
2 /**
3 * Piwik - free/libre analytics platform
4 *
5 * @link https://matomo.org
6 * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
7 *
8 */
9 namespace Piwik\View;
10
11 use Twig_Node_Expression_Array;
12 use Twig_Node_Expression_MethodCall;
13 use Twig_Node_Include;
14 use Twig_Token;
15 use Twig_TokenParser;
16
17 /**
18 * Defines a new Twig tag that will render a Piwik View.
19 *
20 * Use the tag like this:
21 *
22 * {% render theView %}
23 *
24 * where `theView` is a variable referencing a View instance.
25 */
26 class RenderTokenParser extends Twig_TokenParser
27 {
28 /**
29 * Parses the Twig stream and creates a Twig_Node_Include instance that includes
30 * the View's template.
31 *
32 * @return Twig_Node_Include
33 */
34 public function parse(Twig_Token $token)
35 {
36 $parser = $this->parser;
37 $stream = $parser->getStream();
38
39 $view = $parser->getExpressionParser()->parseExpression();
40
41 $variablesOverride = new Twig_Node_Expression_Array(array(), $token->getLine());
42 if ($stream->test(Twig_Token::NAME_TYPE, 'with')) {
43 $stream->next();
44
45 $variablesOverride->addElement($this->parser->getExpressionParser()->parseExpression());
46 }
47
48 $stream->expect(Twig_Token::BLOCK_END_TYPE);
49
50 $viewTemplateExpr = new Twig_Node_Expression_MethodCall(
51 $view,
52 'getTemplateFile',
53 new Twig_Node_Expression_Array(array(), $token->getLine()),
54 $token->getLine()
55 );
56
57 $variablesExpr = new Twig_Node_Expression_MethodCall(
58 $view,
59 'getTemplateVars',
60 $variablesOverride,
61 $token->getLine()
62 );
63
64 return new Twig_Node_Include(
65 $viewTemplateExpr,
66 $variablesExpr,
67 $only = false,
68 $ignoreMissing = false,
69 $token->getLine()
70 );
71 }
72
73 /**
74 * Returns the tag identifier.
75 *
76 * @return string
77 */
78 public function getTag()
79 {
80 return 'render';
81 }
82 }
83