HBCMS模板教程第十四讲:首页栏目列表(下)
2010-06-08 19:16:42 来源:WEB开发网最外围的表格主要是为方便循环所建立,因为用表格实现栏目两页循环的话,就必须这样做。
从第2行开始是最外围的循环代码,此循环的大致意思是:
循环第一行,是声明一个变量type_num,这个变量的作用就是栏目计数,首先赋值为1
循环第二行,是调出所有栏目数据,循环第三行是在第二行调用的栏目中调用一级栏目,并且过滤掉栏目ID为4和6的栏目,因为这两个是友情链接和站内公告,不需要在首页循环中出现。
再看代码结尾,从倒数第九行开始,是最外围循环的代码,倒数第九行的作用是,每行显示两个栏目,也就是两列显示。倒数第七行是这个小循环的结束,这三行代码的意思是,当变量循环是偶数时,就输入出倒数第八行的代码。再往下看是变量type_num的循环相加代码,每次循环加1。再往下是大循环的结束代码。
回到头部,在大循环代码中,是一个单元格,大循环代码就是循环输出这个单元格,当输入两个单元格时,输入换行代码< /tr>< tr>。这样就形成了两个栏目一行的情况,如图所示:
以下为引用的内容:
<table cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY><TR>
<{assign var="type_num" value="1"}>
<{foreach name=all_type item=single_type from=$data_ary.all_type}>
<{if $single_type.parent_id == 0 && $single_type.id !=4 && $single_type.id != 6 && ( $single_type.property == 'list' || $single_type.property == 'cover' )}>
<TD vAlign=top width="50%">
<table width="99%" border="0" cellpadding="3" cellspacing="1">
<tr>
<td height="33" background="<{$web.img_dir}>/title_bg.jpg">
<table border="0" cellpadding="0" cellspacing="0" width="98%">
<tr>
<td width='3' bgcolor="#B00B1C"></td>
<td width='8'></td>
<td><a href="<{$single_type.url}>" class="title1"><strong><{$single_type.title}></strong></a> </td>
<td width="35" valign="bottom">
<a href="<{$single_type.url}>"><img src=http://www.fxmoban.com/cms/fd/"<{$web.img_dir}>/more.jpg" width="36" height="13" border="0"></a>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td height="50" valign="top" bgcolor="#FFFFFF"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<{foreach name=new_article_data item=item_info from=$data_ary.new_article[$single_type.id]}>
<{if $smarty.foreach.new_article_data.iteration <= 10}>
<tr>
<td width="100%" height="22" class="inddline">
·<a href="<{$item_info.url}>"><{$item_info.title|strip_tags:true|cn_truncate:18:"":true}></a>
</td>
</tr>
<{/if}>
<{/foreach}>
</table>
</td>
</tr>
</table>
</TD>
<{if $type_num%2 == 0}>
</tr><tr>
<{/if}>
<{assign var="type_num" value="`$type_num+1`"}>
<{/if}>
<{/foreach}>
</tr>
</TBODY>
</table>
我们接着看此单元格中的代码,<{$web.img_dir}>的作用是输出模板的图片文件夹路径。然后就是栏目的名称和URL地址了,分别是标记<{$single_type.title}>和<{$single_type.url}>。
再往下就是输出栏目文章列表的代码了, 这是一个小的循环代码,和最新文章列表的代码基本一样,唯一的区别是,循环的第一行<{foreach name=new_article_data item=item_info from=$data_ary.new_article[$single_type.id]}>,代码中的中括号处的内容是调出栏目的ID,就像输出站内公告列表的代码<{foreach name=new_article_data item=item_info from=$data_ary.new_article[6]}>同理,6就是站内公告栏目的ID。此外的代码如果还不明白,请参考教程:
好了,我用我自己的理解和我自己的语言解释了HBCMS的模板循环代码,不知理解和用词是否准确,但在我的应用中,还是很正确的。如有错误,欢迎指出,我们共同探讨。我们下一讲再见。
- ››模板方法(Template method)模式在Android应用
- ››模板在线编辑后一保存就为空了?
- ››教程:使用千千静听巧妙管理音乐文件
- ››HBCMS模板教程第二十讲:列表页模板文章列表代码
- ››HBCMS模板教程第二十一讲:列表页页码和热点推荐代...
- ››HBCMS模板教程第十五讲:推荐文档、热点文档和投票...
- ››HBCMS模板教程第十六讲:友情链接代码
- ››HBCMS模板教程第十七讲:版权代码
- ››HBCMS模板教程第十八讲:列表页模板头部和尾部代码...
- ››HBCMS模板教程第十九讲:列表页模板顶部代码和当前...
- ››HBCMS模板教程第十二讲:图片文档列表
- ››HBCMS模板教程第十三讲:首页栏目列表(上)
更多精彩
赞助商链接