gpt4 book ai didi

php - Symfony2 中使用 Twig 的动态主题

转载 作者:可可西里 更新时间:2023-11-01 14:05:35 25 4
gpt4 key购买 nike

我正在为 Symfony2 设计一个 Multi-Tenancy 应用程序,其中每个租户都可以有一个覆盖默认应用程序模板的主题。因此,一个主题将有一个独特的 base.html.twig 文件,并且可能包含也可能不包含覆盖默认模板文件的其他文件。

Symfony2 已经在 app/Resources/views 中检查覆盖 bundle 模板的模板。但是 Symfony2 假定 app/Resources/views 只有一组模板可以覆盖默认模板。我想为各种覆盖模板动态检查租户的自定义主题文件夹,例如:

  1. Theme:
    • app/Resources/views/theme1/base.html.twig
  2. Theme:
    • app/Resources/views/theme2/base.html.twig
    • app/Resources/views/theme2/SomeBundle/Resources/views/page.html.twig

我不确定在 Symfony2 中构造它并在 Twig 中配置它的最佳方法。我是否应该将所有不同的主题堆放在 app/Resources/views 中的文件夹中?或者我应该创建某种可以处理所有事情的 ThemeBundle 吗?谢谢!

最佳答案

我很难尝试做这样的事情...我查看了 liipthemebundle 的代码,它需要很多配置...我在互联网上看了很多...然后我开始思考。 ..我看到的是:

http://symfony.com/doc/current/book/templating.html#overriding-bundle-templates

该页面中有很多有用的信息...但是让我想到一个简单的解决方案的是这个事实:symfony 在 app/Resources/[MyBundle] 中查找模板和东西...我发现了负责的服务是 file_locator 服务...

所以,如果你定义一个参数,让我们在 parameters.yml 中说皮肤

并将此行添加到您的 app/config/config.yml

file_locator:
class: %file_locator.class%
arguments: [@kernel,%kernel.root_dir%/Resources/skins/%skin%]

你有你的皮肤......

关于php - Symfony2 中使用 Twig 的动态主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6806867/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com