channel 获取栏目列表标签
(>DedeCMS 3,DedeCMS 4,DedeCMS 5)
名称:channel
功能:织梦常用标记,通常用于网站顶部以获取站点栏目信息,方便网站会员分类浏览整站信息
语法:
{dede:channel type='top' row='8' currentstyle="<li><a href='~typelink~' class='thisclass'>~typename~</a> </li>"}
<li><a href='[field:typelink/]'>[field:typename/]</a> </li>
{/dede:channel}
文件:
\include\taglib\channel.lib.php
function lib_channel(&$ctag,&$refObj)
默认底层模板:
channel_list.htm
参数:
typeid = '0' 栏目ID
reid = '0' 上级栏目ID
row = '100' 调用栏目数
col = '1' 分多少列显示(默认为单列)
type = 'son | sun' son表示下级栏目,self表示同级栏目,top顶级栏目
currentstyle = '' 应用样式
底层字段:
ID(同 id),typeid, typelink, typename, typeurl,typedir(仅表示栏目的网址) 例:
{dede:channel type='top'} <a href='[field:typelink /]'>[field:typename/]</a> {/dede:channel}
currentstyle中支持~rel~、~id~、~typelink~、~typename~
注:在没有指定typeid的情况下,type标记与模板的环境有关,如,模板生成到栏目一,那么type='son'就表示栏目一的所有子类
范例:
这个标签是全局常用标记,主要用于显示页面的栏目分类,我们可以查看默认模板\templets\default\head.htm中的相关代码:
{dede:channel type='top' currentstyle="<li class='thisclass'><a href='~typelink~'>~typename~</a> </li>"}
<li><a href='[field:typeurl/]'>[field:typename/]</a></li>{/dede:channel}
这里的栏目可以通过后台进行设置,栏目显示顺序按照排序的高低进行,我们可以在系统后台[核心]-[栏目管理]中进行栏目设置:
设置完成我们可以在首页顶部看到相关的效果
当然这里涉及到一个顶级栏目和子级栏目显示的问题,我们可以在模板中使用相应的标签进行调用,我们来看一个封面的页面内容:
我们查看这个文章封面\templets\default\index_article.htm的模板标签
<ul>
{dede:channel type='son' currentstyle="<li class='thisclass'><a href='~typelink~'><span>~typename~</span></a> </li>"}
<li><a href='[field:typeurl/]'><span>[field:typename/]</span></a></li>{/dede:channel}
</ul>
这里就使用了 type='son'这个属性用来显示子栏目,currentstyle则代表当前选中项的呈现样式。
很多用户希望顶部导航连接便于SEO,需要去除超链接中的“index.html”,我们可以在这里对标签进行一个修改:
{dede:channel type='top'}
<li><a href='[field:typeurl function='str_replace("index.html","",@me)'/]'>[field:typename/]</a></li> {/dede:channel}