关于smarty模板display函数的$compile_id 参数的意义

为了同一份数据生成不同的模板,所以在smarty模板中找了下这个方法,display函数有这个作用,可以设置不同的compile_id参数。这个参数的作用是在改变了模板目录之后可以重新编译页面,其作用类似于url后面的随机参数。

 

 

 

 

附高人介绍

 

Smarty compile_id 的作用

做一个多语言版本的网站,不同的语言版本使用不同位置的Template,

本以为在程序中直接修改template_dir就可以了。但发觉根本没有改变template,非要手工把compile_dir下面的文件清空,Smarty才会重新编译。

开始以为是smarty 的一个Bug,用了最笨的方法,要需要改变网站语言时,写代码删除compile_dir的文件。但这样的效率是非常低的。

后来才发觉Smarty 有个compile_id参数,正是应用在这种情况下的

$template_path="tpl/".$bk_lang."/";                      // 这里为网页更换不同的模板文件,
require_once("../smarty/libs/Smarty_class.php");
$smarty=new Smarty();
$smarty->config_dir = "../smarty/libs/Config_File.class.php";
$smarty->caching = false;
$smarty->cache_dir = "./smarty_cache";
$smarty->compile_dir ="./smarty_c";
$smarty->compile_id =$bk_lang ;                      //  加了这语句,smarty会为不同的模板文件生成不同的编译文件。
$smarty->template_dir=$template_path;

这样之后,程序中改变变量$bk_lang的值就能即时使用不同的模板了。
没有深入研究smarty,让我走了太多的弯路了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值