问题标签 [twig-extension]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
617 浏览

twitter-bootstrap - Twig过滤器在html标签内返回

我正在尝试在 twig 模板中更轻松、更清晰地显示 Bootstrap 工具提示。我想实现这样的目标:<i class="icon" {{'this is great tooltip'|tooltip}}></i> 我创建了树枝过滤器:

它按我想要的方式返回字符串。但是,在 html 代码中,它看起来像这样:

正如你所看到的,我已经添加了['is_safe'=>['html']],但它根本没有改变任何东西。
我试图将空间更改为硬空间,但没有效果。
更糟糕的是,工具提示显示如下:那个工具提示很奇怪忽略所有空格和引号或撇号。它应该看起来像这样: 请帮我解决它!:)这是一个非常好的工具提示!

0 投票
0 回答
379 浏览

debian - Debian服务器上的Twig C扩展,带有来自composer的php5-twig和twig包,它会工作吗?

我在只能安装 deb 包的共享 Debian(稳定)Web 服务器上使用 Twig(composer 版本)。

  • 我应该要求管理员为 Twig 安装 Debian C 扩展吗?
  • composer 的 Twig(php 库)版本将比 Debian 的 C 扩展版本更新:它会给出什么结果?
    • Twig 在某些情况下可能会失败。
    • Twig 将看到扩展来自旧版本并忽略它。
    • 如果只是稍微老一点,Twig 可以使用 C 扩展。
  • 今天debian stable版本是1.16.2,composer版本是1.24.0

我有一个选择:

  1. 使用 composer 100% php 中的 Twig,版本 1.24.0,没有 C 扩展
  2. 使用 composer php 版本 1.24.0 中的 Twig,以及 Debian 版本 1.16.2 中的 C 扩展(但它会工作吗?)
  3. 使用来自 Debian 的 Twig php 和 C 扩展,版本 1.16.2 该扩展将起作用,但我还不知道如何为此配置作曲家,因为我需要其他 php 包的作曲家,而不是在 Debian 中并且取决于 Twig。)

我的问题是什么是最好的选择?我可以进行测试并对其进行分析,但我还不知道如何编写简单的代码来显示使用 Twig C 扩展的好处。

参考:

0 投票
0 回答
115 浏览

twig - 单选按钮值作为 Twig 中的整数

这是我生成radio_button问题的代码;

这里的值都以字符串的形式出现。我怎样才能强迫它们成为整数?

顺便说一句,如果这有所作为,我正在使用 Twig Bridge。

更新 - 这是其中一个单选按钮的视图源;

不应该吗?

0 投票
2 回答
265 浏览

html - 跳过 Twig 中的 html 行

我以前没有使用过 Twig,现在出现了一个问题,我需要跳过 twig 中的整行,因为它是

我的html是

在我的索引中

当我渲染 html 时,由于翻译而出现 Twig 错误。我需要建议如何告诉 twig 跳过这些行,因为它不会更改我的 html 中的任何符号(可能带有标签“翻译”)

0 投票
1 回答
464 浏览

symfony - 如何从控制器添加本地 Twig 扩展

我有一个非常专业的过滤器,我想将其用于单个页面而不使其成为全局过滤器。我试过这样做(这不是我想要的功能,这只是一个测试):

但我收到一个错误,“无法添加过滤器,因为扩展已经初始化”。

我知道我可以在 AppBundle/Twig 目录中创建一个类并将其添加为服务,但是 1)这非常重,而且 PITA 仅用于我需要的一个简单过滤器,并且 2)它使其对整个应用程序都是全局的,这对于我在本地需要的东西来说是愚蠢的。

有什么办法可以做到这一点,还是我只坚持全局扩展?提前致谢。

0 投票
2 回答
1159 浏览

symfony - Symfony2 在没有服务的情况下在树枝扩展中调用控制器动作

我正在编写一个具有以下功能的系统:普通用户(没有程序员或管理员)可以创建可以插入“占位符”的内容。在呈现页面时,这些占位符将被替换为不同的内容类型(例如,十六进制颜色代码、滑块、图像……)。占位符的替换有点复杂,并且有一些额外的功能(例如定义默认值,用正确语言的内容替换占位符,...)。因此,我创建了一个带有“占位符过滤器”的树枝扩展。此函数应获取正确的内容以替换占位符并处理附加功能。

因为内容类型是如此不同,所以对于每个包含在控制器中呈现内容的逻辑的内容类型,都有一些 - 让它称之为“插件”。

现在我的问题:

插件的控制器动作返回渲染的内容。因为我用树枝扩展中的内容替换了占位符,所以我需要一种方法来调用这个树枝扩展中的控制器动作。

到目前为止我的想法:

我知道我可以通过这种方式在模板中调用控制器动作(来源:http ://symfony.com/doc/current/book/templating.html ):

所以在twig中调用controller-action似乎没有问题。但我需要在树枝扩展中调用这个函数。

我也知道当我将控制器实现为服务时,我可以调用控制器动作。但是我不能将所有插件控制器定义为服务,因为插件是动态包含在系统中的。在安装新插件时动态处理服务也将是“困难的”(我认为我必须使用脚本编辑 service.yml - 或者我错了吗?)。这就是为什么我不能将控制器用作服务。- 但是当您可以告诉我如何动态实施服务时,我对其他解决方案持开放态度。

我已经尝试过的是结合这两个页面的解决方案:http: //symfony.com/doc/current/book/templating.html

https://www.robinvdvleuten.nl/blog/rendering-templates-in-a-twig-extension/

我现在可以在我的 twig-extension 中的占位符过滤器中访问 Twig_Environment,但以下代码不起作用:

我收到 ControllerReference 无法转换为字符串的错误(这是有道理的,因为 ControllerReference 是一个对象......)。

那么有没有办法在树枝扩展中调用控制器动作而不将控制器定义为服务?还是我应该重新考虑整个解决方案?

0 投票
3 回答
1064 浏览

twig - Twig - 如果启用调试模式,则显示模板名称

我最近在使用 Twig,我想知道是否可以输出页面上加载的模板名称。我能想到的最好方法是将模板本身的名称显示为 html 注释。

我知道我可以通过插入来获取模板名称,{{ _self.templateName }}但我不喜欢将它添加到每个模板或部分模板中。

该解决方案应该适用于{% include %}{% use %}等等,如果它只是在启用调试模式时发生,那也很好。

我试图写一个扩展,但无论我怎么写,我都必须在每个模板中进行某种调用。

这背后的原因是我试图减少搜索其他人实施的模板的时间,因为项目越来越大。

注意:我没有使用 Symfony。

在此先感谢,任何帮助表示赞赏!

0 投票
1 回答
1879 浏览

php - SlimPHP v3 如何在视图上显示 Flash 消息

在他们的新文档中,没有任何关于 Flash 消息的内容。

我从他们的 github 存储库 (slimphp/Slim-Flash) 安装了 flash 扩展。一切正常,我可以添加消息,也可以获取这些消息。

但这仅适用于路线内部。当然,我希望这些消息显示在我的视图中。

但我只是不知道如何在树枝视图上获取此消息。

我已经尝试过:

感谢帮助!

0 投票
1 回答
144 浏览

php - Twig Datetime 在 Twig 函数中作为整数传递

我制作了一个 twig 函数,我需要从 twig 传递 id 和 datetime 对象。

从树枝上;

但得到一个错误

IT 必须是 DateTime 的实例,给定整数,

0 投票
0 回答
1331 浏览

php - 如何使用奏鸣曲块捆绑渲染块

我创建了一个块,并在块内添加了一些内容。我想在页面 myblock.html.twig 内呈现我的块的内容

这是页面:myblock.html.twig

刷新页面时出现以下错误:

此网页无法使用

ERR_CONNECTION_RESET

我的服务器仍在运行,我可以访问该网站的其他页面。

服务.yml