Twig 支持这个吗?
Does Twig support this?
我正在研究 Symfony 的 CMS 想法,我不确定我想要实现的东西是否可行。我正在寻找一些指导。
我想创建一个更像块的树枝函数。
我希望能够像这样编写模板:
{% content('main_content') %}
<p>Some markup here</p>
{% end content('main_content') %}
其中 content($id)
是一个让我可以访问内部标记并允许我的 twig 扩展在需要时更改该标记的函数。
content($id)
函数的目标是根据给定的 $id
更改标记。
显然我对这个实现的思路是错误的,因为我找不到任何与此相关的文档。
我不确定如何表达这个问题:是否可以编写一个像块一样运行并允许我访问内部数据的 twig 函数。如果可能的话,您可以 link 给我一些示例或博客吗?我正在使用 Symfony,所以使用 Symfony 实现的答案是一个加号。
编辑:content($id) 函数的示例
class TwigExtension extends \Twig_Extension{
public function content ($id, $content) {
/* pseudo code now*/
if($id = "some condition"){
return $someNewContent;
}
return $content;
}
}
您需要创建一个新的 Twig 标签。更多文档在这里:https://github.com/twigphp/Twig/blob/master/doc/advanced.rst#tags
此外,Twig_Node_Block
会很好地说明您需要构建什么:
https://github.com/twigphp/Twig/blob/1.x/lib/Twig/Node/Block.php
我正在研究 Symfony 的 CMS 想法,我不确定我想要实现的东西是否可行。我正在寻找一些指导。
我想创建一个更像块的树枝函数。
我希望能够像这样编写模板:
{% content('main_content') %}
<p>Some markup here</p>
{% end content('main_content') %}
其中 content($id)
是一个让我可以访问内部标记并允许我的 twig 扩展在需要时更改该标记的函数。
content($id)
函数的目标是根据给定的 $id
更改标记。
显然我对这个实现的思路是错误的,因为我找不到任何与此相关的文档。
我不确定如何表达这个问题:是否可以编写一个像块一样运行并允许我访问内部数据的 twig 函数。如果可能的话,您可以 link 给我一些示例或博客吗?我正在使用 Symfony,所以使用 Symfony 实现的答案是一个加号。
编辑:content($id) 函数的示例
class TwigExtension extends \Twig_Extension{
public function content ($id, $content) {
/* pseudo code now*/
if($id = "some condition"){
return $someNewContent;
}
return $content;
}
}
您需要创建一个新的 Twig 标签。更多文档在这里:https://github.com/twigphp/Twig/blob/master/doc/advanced.rst#tags
此外,Twig_Node_Block
会很好地说明您需要构建什么:
https://github.com/twigphp/Twig/blob/1.x/lib/Twig/Node/Block.php