当前位置:  开发笔记 > 前端 > 正文

围绕特定树枝变量{{product.name}}包装上下文html

如何解决《围绕特定树枝变量{{product.name}}包装上下文html》经验,为你挑选了0个好方法。

我想自动换行一些html,当我{{ product.name }}在我的twig模板中调用时,我就说.

所以当我在一个twig模板中使用时{{ product.name }},我希望输出为:My product name.我不能使用twig过滤器或宏,因为我真的需要模板语法{{ product.name }},所以最终用户(模板设计师)不必关心它.

我需要这个的原因是因为我正在为twig模板构建一个页面编辑工具,所以我需要从HTML中知道这些变量的上下文.

我试图重写CompilerTwig_Environment用途,但我似乎无法改变树枝变量节点的输出.

我怎样才能做到这一点?

编辑

我想提一下,我需要这个来使用{{ product.name }}语法,因为其他设计师将使用Symfony 2之外的那些模板.我想在前端编辑几乎所有的枝条变量,所以带过滤器或宏的解决方案确实可以工作,但它会破坏我正在编写的平台的可用性和可读性.目前在twig中没有可以实现我想要的公共API,这就是为什么我在摆弄twig编译器.我没有必要的Twig内部知识来实现​​这一目标.如果有人能够指出我的方向会很棒!

更新2

我找到了一个可以达到我想要的地方.每个GetAttr节点都编译为$this->getAttribute($someContext, "property").因此,如果我可以更改已编译的twig模板的子类,我可以实现我想要的.默认情况下,所有树枝模板都从Twig_Template.我想扩展这个方法.

如何更改所有已编译的twig模板的子类?

更新3 我找到了一种方法来为所有已编译的树枝模板使用我自己的基类.我可以简单地将它设置为树枝环境中的一个选项,请参阅此链接.我希望明天能够开始工作,我将就如何一起解决这个问题发表一个正确的答案.不确定我将如何处理转义,因为这将在$this->getAttribute()调用之后发生.

推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有