阅读内容

在模板里调用特定排序的栏目的信息

来源:宏博网  作者:hbcms  [日期:2008-08-15] [字体: ]

以下模板代码,会显示栏目排序为86的栏目的一些文章信息。

好处:在设计模板的时候,不用在模板源代码里写死栏目ID,以后要更换栏目的时候,可以通过在hbcms系统后台修改栏目排序属性来达到目的。

<{* 根据特定的栏目排序属性,显示此栏目的下级栏目信息 *}>
 
<{assign var="some_type_id" value="0"}>
<{foreach name=sub_type item=item_info from=$web.type}>
 <{if $item_info.parent_id==0 && $item_info.order_mark == '86'}>
  <{assign var="some_type_id" value="`$item_info.id`"}>
 <{/if}>
 <{if $item_info.parent_id == $some_type_id && $some_type_id != '0' }>
  <LI><A HREF="<{$item_info.url}>"><{$item_info.title}></A> <BR>
 <{/if}>
<{/foreach}>

提示:上面的代码适用于在首页模板里直接使用。

如果需要在其他模板页面里显示特定栏目的数据,需要先将特定栏目的数据缓存文件包含进来。参考代码如下:

<{foreach name=all_type item=single_type from=$web.type}>
 <{if $single_type.parent_id == 0 && $single_type.order_mark == 88 }>

 <H3>title:<{$single_type.title}> type id: <{$single_type.id}></H3>

 <{php}>
 include("config/type_" . $this->_tpl_vars['single_type']['id'] . ".inc.php");
 $this->assign('my_variable_name',$TYPE_DATA['new_article']);
 <{/php}>
 <{foreach name="my_foreach_name" item="curr_section" from=$my_variable_name}>
  <{if $smarty.foreach.my_foreach_name.iteration <= 10}>
     <{$smarty.foreach.my_foreach_name.iteration}>.
     <a href="<{$curr_section.url}>"><{$curr_section.title}></a><br>
  <{/if}>
 <{/foreach}>


 <{/if}>
<{/foreach}>

包含数据文件的具体含义可以看这篇文章:http://www.fxmoban.com/moban/38/133.html


进阶:

在宏博cms1.1版本开始,栏目设置页面里增加了自定义属性的字段。此字段可以代替排序字段。例如:

 <{if $item_info.parent_id==0 && $item_info.order_mark == '86'}>

可以改成

<{if $single_type.parent_id == 0 && $single_type.custom_str|strstr:'sub_type_show' }>

这样的好处是,不影响排序功能,模板作者可以随意设置 自定义字段的数值,在模板里判断即可,加大了模板设计的自由度。



阅读:36
录入:爱随缘来

本文评论
发表评论
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款