织梦二次开发,二次开发,李丕长,网站php二次开发,做网站,模板设计,jquery效果,jquery特效

当前位置: 主页 > Smarty学习 >

下载smarty并且配置第一个smarty案例

时间:2013-05-12 17:19作者:LEO 点击:
首先、下载Smarty核心包 下载 接着解压 将libs文件夹放到你的项目根目录下面 开始配置 (我将以dedecms管理系统的插件形式来说明下 测试的文件放到织梦plus文件夹中) 1、先建一个文件

 首先、下载Smarty核心包 下载  

接着解压 将libs文件夹放到你的项目根目录下面

 

开始配置 (我将以dedecms管理系统的插件形式来说明下  测试的文件放到织梦plus文件夹中)

1、先建一个文件在你的plus目录下面 名字为test.php

2、建立一个模板文件夹名字可以自己定 比如:templates

3、复制如下文件内容 到test.php文件里面

 

  1. <?php 
  2. require_once(dirname(__FILE__)."/../include/common.inc.php"); 
  3. require(dirname(__FILE__)."/../libs/Smarty.class.php"); 
  4.  
  5. $smarty = new Smarty; 
  6.  
  7.  
  8.  
  9. //$smarty->force_compile = true; 
  10. /* 
  11. smarty默认的方式是compile_check = true; 
  12. 即在每次输出模板的时候检查当前模板是否有过改变,如果有那么重新编译(判断时间戳), 
  13. 这会浪费一些效率,但会保证模板改动后可以正常显示, 
  14. 但在我们的网站上线后,很多时候,是不需要检查这个的,因为模板已经不变了~ 
  15. 建议是:在开发阶段,force_compile = true;产品上线时compile_check = false; 
  16. <?php 
  17.   
  18. if (DEBUG) { 
  19.     $smarty->force_compile = true; 
  20. } else { 
  21.     $smarty->compile_check = false; 
  22. } 
  23.   
  24. ?> 
  25.  
  26. */ 
  27. $smarty->debugging = true; //开启代码调试 
  28. $smarty->caching = true;//关闭开启缓存,调试中建议关闭 默认为关闭即设置成false 
  29. $smarty->cache_lifetime = 120;//单位为秒     设置缓存时间 
  30.  
  31. $smarty->config_dir="../configs"
  32. /*这种格式,意思是指定smarty加载外部配置文件应当存放与此目录下, 
  33. 对于配置文件只需要是文本文件即可,文件名和扩展名均无要求。 
  34. 例如有一个全局配置文件,可以是global.conf,需要存放在./configs/目录下 
  35. 那么在模板中就可以使用config_load来加载这个配置文件 
  36. {config_load file="global.conf"} 
  37. 意思就是加载./configs/global.conf文件,那么在这个文件中定义的变量就可以在smarty的模板文件中使用了. 
  38. */ 
  39.  
  40. $smarty->template_dir="../templates";//设置模版目录,模板文件名类似index.tpl 
  41.  
  42. $smarty->compile_dir="../templates_c";//设置编译目录必选 也是可以自动生成  
  43.  
  44. $smarty->cache_dir="../smarty_cache";//缓存文件夹可选为减轻压力 可以自动生成 
  45.  
  46. //查询数据 
  47. $sql="select * from dede_archives"
  48. $rs=mysql_query($sqlor die((mysql_error())); 
  49. $ary=array(); 
  50. while($row=mysql_fetch_array($rs)) 
  51.     $ary[]=$row
  52.  
  53. $smarty->assign("wenzhang"$ary); 
  54. //模板赋值,我这里赋值了一个数组资源集,这里相当于实例化一个对象wenzhang里面的值是"$ary"; 
  55.  
  56.  
  57. /* 
  58. 这里都是smarty 自带的赋值例子 
  59. $smarty->assign("Name","Fred Irving Johnathan Bradley Peppergill",true); 
  60. $smarty->assign("FirstName",array("John","Mary","James","Henry")); 
  61. $smarty->assign("LastName",array("Doe","Smith","Johnson","Case")); 
  62. $smarty->assign("Class",array(array("A","B","C","D"), array("E", "F", "G", "H"), 
  63.       array("I", "J", "K", "L"), array("M", "N", "O", "P"))); 
  64.  
  65. $smarty->assign("contacts", array(array("phone" => "1", "fax" => "2", "cell" => "3"), 
  66.       array("phone" => "555-4444", "fax" => "555-3333", "cell" => "760-1234"))); 
  67.  
  68. $smarty->assign("option_values", array("NY","NE","KS","IA","OK","TX")); 
  69. $smarty->assign("option_output", array("New York","Nebraska","Kansas","Iowa","Oklahoma","Texas")); 
  70. $smarty->assign("option_selected", "NE"); 
  71. */ 
  72.  
  73. $smarty->display('index.tpl'); 
  74. /*载入模板 模板文件夹已经指定了 templates 这是我新建的 不是织梦自带的 
  75. 渲染页面 页面上的调用参数就是这样:{$wenzhang} 不过是一个资源集合所以需要使用smarty的foreach来遍历*/ 
  76.  
  77.       
  78. ?> 

直接复制上面的 内容即可

 

4、模板设置

新建名为index.tpl 的模板文件到templates的文件夹里(另外新建head.tpl和footer.tpl 共用shiyogn)

index.tpl文件我分成了三个部分一个是head.tpl 一个是index.tpl 一个是footer.tpl

head.tpl的代码如下

 

  1. <HTML> 
  2. <HEAD> 
  3. <TITLE>{$title}</TITLE> 
  4. </HEAD> 
  5. <BODY> 

footer.tpl的代码如下

 

  1. </BODY> 
  2. </HTML> 

 

index.tpl的代码如下

 

  1. {include file="header.tpl" title='smarty遍历织梦文章输出'
  2.  
  3. <PRE> 
  4. {foreach from=$wenzhang item=item name=wenzhang } 
  5.     文章ID: {$item.id}<br> 
  6.     文章标题: {$item.title}<br> 
  7.     描述:{$item.description} 
  8. {/foreach} 
  9.  
  10. {include file="footer.tpl"

 

这样就完成了一个完整的配置了 更多的变量输出方式请查看smarty api帮助文档

 

 

顶一下
(9)
90%
踩一下
(1)
10%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
无觅相关文章插件,快速提升流量