Smarty模板学习入门教程

  1. smarty模版是比较大众化的一个模版,在php开发过程当中被很多开发者视为最友好的模版之一,学习smarty课程对于很多培训机构来说也是列入了培训课程之一,那么很多方面就需要我们学习了  
  2. 一. 安装  
  3. 首先打开网页http://smarty.php.net/download.php,下载最新版本的Smarty。解压下载的文件(目录结构还蛮复杂的)。例如:  
  4. (1) 我在根目录下建立了新的目录learn/,再在learn/里建立一个文件夹smarty/。将刚才解压缩出来的目录的libs/拷贝到smarty/里, 再在smarty/里新建templates目录,templates里新建cache/,templates/,templates_c/, config/,  
  5. (2) 新建一个模板文件:index.tpl,将此文件放在learn/smarty/templates/templates目录下,代码如下:  
  6. <!DOCTYPE HTML PUBLIC “-//W3C//DTDHTML 4.01 Transitional//EN”“http://www.w3.org/TR/html4/loose.dtd”>  
  7. <html>  
  8. <head>  
  9. <metahttp-equiv=“Content-Type” c>  
  10. <title>Smarty</title>  
  11. </head>  
  12. <body>  
  13. {$hello}  
  14. </body>  
  15. </html>  
  16. 新建index.php,将此文件放在learn/下:  
  17. <?php  
  18. //引用类文件  
  19. require ‘smarty/libs/Smarty.class.php’;  
  20. $smarty = new Smarty;  
  21. //设置各个目录的路径,这里是安装的重点  
  22. $smarty->template_dir =“smarty/templates/templates”;  
  23. $smarty->compile_dir =“smarty/templates/templates_c”;  
  24. $smarty->config_dir = “smarty/templates/config”;  
  25. $smarty->cache_dir =“smarty/templates/cache”;  
  26. //smarty模板有高速缓存的功能,如果这里是true的话即打开caching,但是会造成网页不立即更新的问题,当然也可以通过其他的办法解决  
  27. $smarty->caching = false;  
  28. $hello = “Hello World!”;  
  29. //赋值  
  30. $smarty->assign(“hello”,$hello);  
  31. //引用模板文件  
  32. $smarty->display(‘index.tpl’);  
  33. ?>  
  34. (3) 执行index.php就能看到Hello World!了。  
  35. 二. 赋值  
  36. 在模板文件中需要替换的值用大括号{}括起来,值的前面还要加$号。例如{$hello}。这里可以是数组,比如{$hello.item1},{$hello.item2}…  
  37. 而PHP源文件中只需要一个简单的函数assign(var , value)。  
  38. 简单的例子:  
  39. *.tpl:  
  40. Hello,{$exp.name}!Good {$exp.time}  
  41. *.php:  
  42. $hello[name]= “Mr. Green”;  
  43. $hello[time]=”morning”;  
  44. $smarty->assign(“exp”,$hello);  
  45. output:  
  46. Hello,Mr.Green!Good morning  
  47. 三. 引用  
  48. 网站中的网页一般header和footer是可以共用的,所以只要在每个tpl中引用它们就可以了。  
  49. 示例:*.tpl:  
  50. {include file=“header.tpl”}  
  51. {* body of template goes here *}  
  52. {include file=“footer.tpl”}  
  53. 四. 判断  
  54. 模板文件中可以使用if else等判断语句,即可以将一些逻辑程序放在模板里。“eq”,“ne”“neq”“gt”“lt”,“lte”“le”“gte” “ge”,“is even”“is odd”“is not even”“is notodd”“not”“mod”“div by”“evenby”“odd by”,“==”,“!=”,“>”,“<“,“<=”,“>=”这些是if中可以用到的比较。看看就能知道什么意思吧。  
  55. 示例:  
  56. {if $name eq“Fred”}  
  57. WelcomeSir.  
  58. {elseif $name eq“Wilma”}  
  59. WelcomeMa’am.  
  60. {else}  
  61. Welcome,whatever you are.  
  62. {/if}  
  63. 五. 循环  
  64. 在Smarty里使用循环遍历数组的方法是section,如何赋值遍历都是在模板中解决,php源文件中只要一个assign就能解决问题。  
  65. 示例:  
  66. {* this examplewill print out all the values of the $custid array *}  
  67. {secti loop=$custid}  
  68. id: {$custid[customer]}<br>  
  69. {/section}  
  70. OUTPUT:  
  71. id: 1000<br>  
  72. id: 1001<br>  
  73. id: 1002<br>  
  74. 六. 常见问题  
  75. Smarty将所有大括号{}里的东西都视为自己的逻辑程序,于是我们在网页中想插入javascrīpt函数就需要literal的帮忙了,literal的功能就是忽略大括号{}。  
  76. 示例:  
  77. {literal}  
  78. <scrīptlanguage=javascrīpt>  
  79. function isblank(field) {  
  80. if (field.value == )  
  81. return false; }  
  82. else  
  83. {  
  84. document.loginform.submit();  
  85. return true;  
  86. }  
  87. }  
  88. </scrīpt>  
  89. {/literal}  

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

www.admin122.com 关注微信
24小时客服在线