WEB开发网
开发学院CMS教程其它CMS 在模板里调用特定排序的栏目的信息 阅读

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

 2010-05-30 19:14:27 来源:WEB开发网   
核心提示:以下模板代码,会显示栏目排序为86的栏目的一些文章信息,在模板里调用特定排序的栏目的信息,好处:在设计模板的时候,不用在模板源代码里写死栏目ID,模板作者可以随意设置 自定义字段的数值,在模板里判断即可,以后要更换栏目的时候,可以通过在hbcms系统后台修改栏目排序属性来达到目的

以下模板代码,会显示栏目排序为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}>

包含数据文件的具体含义可以看这篇文章:模板里调用某个栏目的文章

进阶:

在宏博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' }>

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

Tags:模板 调用 特定

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接