在使用smarty时,如果要做到真正的模板和代码分离的话,我经常是在代码中直接输出一个数组,然后具体实现的话就交给模板了.淡如果遇到了多为数组的时候section就会遇到一些问题,但可以按下面的方法来解决.希望哪位也能提供好的给我.
使用section的多维数组遍历每个数据
例如数据集为:
Array ( [0] => Array ( [Tid] => 21 [Updated] => 2007-12-31 10:21:18 [Created] => 2007-12-31 10:21:18 [Typename] => 系统相关 [Fid] => 0 ) [1] => Array ( [Tid] => 20 [Updated] => 2007-12-31 10:21:07 [Created] => 2007-12-31 10:21:07 [Typename] => Html/Css/Ajax [Fid] => 0 [SmallType] => Array ( [0] => Array ( [Tid] => 25 [Updated] => 2007-12-31 10:25:42 [Created] => 2007-12-31 10:25:42 [Typename] => HtmlBook [Fid] => 20 [TopArticle] => Array ( [0] => Array ( [Atcid] => 9 [Title] => 文章测试 [Tid] => 25 [Created] => 2007-12-31 10:27:13 [Hits] => 1 [Atc_guest] => ) ) ) ) ) [2] => Array ( [Tid] => 17 [Updated] => 2007-12-31 10:20:34 [Created] => 2007-12-31 07:55:34 [Typename] => PHP编程 [Fid] => 0 [SmallType] => Array ( [0] => Array ( [Tid] => 24 [Updated] => 2007-12-31 10:22:16 [Created] => 2007-12-31 10:22:16 [Typename] => Fleaphp框架 [Fid] => 17 [TopArticle] => Array ( ) ) [1] => Array ( [Tid] => 23 [Updated] => 2007-12-31 10:21:50 [Created] => 2007-12-31 10:21:50 [Typename] => PHP代码库 [Fid] => 17 [TopArticle] => Array ( [0] => Array ( [Atcid] => 13 [Title] => 特殊贴 [Tid] => 23 [Created] => 2008-02-26 09:59:25 [Hits] => 1 [Atc_guest] => ) ) ) [2] => Array ( [Tid] => 22 [Updated] => 2007-12-31 10:21:33 [Created] => 2007-12-31 10:21:33 [Typename] => PHP基础 [Fid] => 17 [TopArticle] => Array ( [0] => Array ( [Atcid] => 12 [Title] => Smarty生成分页静态页面 [Tid] => 22 [Created] => 2007-12-31 10:40:08 [Hits] => 1 [Atc_guest] => ) [1] => Array ( [Atcid] => 11 [Title] => smarty生成静态页面 [Tid] => 22 [Created] => 2007-12-31 10:36:28 [Hits] => 1 [Atc_guest] => ) ) ) ) ) ) 在使用模板时:可以采用以下写法: {{section name=list loop=$Atcs}}<!-- 一级类别 --> <div align="left">{{$Atcs[list].Typename}}</div>
{{assign var=SmallType value=$Atcs[list].SmallType}}<!-- 二级类别 --> {{section name=list1 loop=$SmallType}} <div align="left"> -->{{$SmallType[list1].Typename}}</div>
{{assign var=TopAtc value=$SmallType[list1].TopArticle}}<!-- 二级分类中 的几篇文章 --> {{section name=list2 loop=$TopAtc}} <div align="left"> -------{{$TopAtc[list2].Title}} -----{{$TopAtc[list2].Created}}</div> {{/section}}
{{/section}} <hr /> {{/section}}
显示结果为:系统相关
Html/Css/Ajax-->HtmlBook--------文章测试 -------2007-12-31 10:27:13
PHP编程-->Fleaphp框架-->PHP代码库--------特殊贴 -------2008-02-26 09:59:25-->PHP基础--------Smarty生成分页静态页面 -------2007-12-31 10:40:08--------smarty生成静态页面 -------2007-12-31 10:36:28