【问题标题】:How to reuse same Smarty templates for multiple sites?如何为多个站点重用相同的 Smarty 模板?
【发布时间】:2012-06-15 23:02:49
【问题描述】:

我正在维护一个在 wiki 网站之间共享的 PHP 代码库。我的意思是,有一个目录 /web/wiki 包含为多个网站提供服务的 PHP 脚本,例如 wiki-devs.domain.comwiki-public.domain.com 等。它是这样编写的,因为所有 wiki 看起来都一样,并且修复了一个错误(或在其中一个中添加功能)自动意味着它们都获得相同的修复/功能。 PHP 代码使用$_SERVER['HTTP_HOST'] 更改 wiki 的徽标并选择正确的数据库等,但所有其他代码对于所有 wiki 保持相同。

我正在重写这个 Web 项目以使用 Smarty 模板,但我不太明白如何让 Smarty 避免提供为 wiki-devs.domain.com 编译为 wiki-public.domain.com 的模板(比如说 sidebar.template.html),如它不知道有多个域访问相同的代码。

我希望你明白我的意思。重申一下:当“wiki-devs”访问该站点时,Smarty 会为“wiki-devs”生成模板,但如果“wiki-public”在一秒钟后访问该站点,则会为他们提供相同的模板。

【问题讨论】:

  • 您是否尝试为每个站点设置不同的缓存目录?
  • 那一定是@SamDufel 的解决方案。我不知道您可以设置不同的缓存目录。我现在正在尝试,我会告诉你它是否有效!

标签: php templates smarty


【解决方案1】:

您应该为Smarty 模板使用一个目录,并为每个站点使用不同的编译目录。这样可以避免编译问题。

例如,您可以使用类似的东西:

    $sitename=$_SERVER['HTTP_HOST'];        
    $smarty->template_dir='themes/themename/';
    $smarty->compile_dir='files/compile/'.$sitename.'/';

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多