关于smarty模板display函数的$compile_id 参数的意义
2011-01-31 16:14
741 查看
为了同一份数据生成不同的模板,所以在smarty模板中找了下这个方法,display函数有这个作用,可以设置不同的compile_id参数。这个参数的作用是在改变了模板目录之后可以重新编译页面,其作用类似于url后面的随机参数。
附高人介绍
做一个多语言版本的网站,不同的语言版本使用不同位置的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,让我走了太多的弯路了。
附高人介绍
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,让我走了太多的弯路了。
相关文章推荐
- 关于smarty中的$cache_id及$compile_id
- 关于smarty中的$cache_id及$compile_id
- 关于(id)sender参数——拖曳按钮生成的点击事件
- 关于shutdown、startup 参数解释,意义。
- 关于setcookie函数的参数的代表意义
- 关于MTK soc_create kal_uint32 nwk_account_id参数
- 关于listview监听方法onItemClick(AdapterView<?> parent, View view, int position, long id)里的四个参数详解
- 关于main()函数两个参数的意义和应用
- 关于jquery取div下面的id的参数
- 关于传递参数是出现id[]问题
- 关于sql条件语句where id in (@参数)执行报错问题(转换成数据类型 int 时失败)(
- angular中关于如何传id以及其他参数的
- 关于LayoutInflate和View-infalte的参数意义以及区别总结
- 关于防止参数ID恶意传值的问题收藏
- 关于协方差矩阵的概念及意义
- 深入分析request_irq的dev_id参数作用
- Android 的onListItemClick监听器参数Position和Id的理解
- 关于在windows2008R2 建立群集时 出现了 ID 1570错误
- 关于EXPDP中的PARALLEL参数
- java SE基础(关于初始化代码执行顺序与变长参数的方法)