zoukankan      html  css  js  c++  java
  • 关于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,让我走了太多的弯路了。

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    史上最简单的Hibernate入门简单介绍
    极客Web前端开发资源大荟萃
    ios7 UIScrollView 尺寸问题
    用ahk脚本自己主动删除flashcookies
    CSS文字样式
    Windows 10 安装
    万圣节福利:红孩儿3D引擎开发课程《3ds max导出插件初步》
    算法实验 层序列表问题(二叉树)
    git配置别名
    git忽略特殊文件
  • 原文地址:https://www.cnblogs.com/xiaodoudou/p/4777243.html
Copyright © 2011-2022 走看看