Dedecms5.3 栏目名称(title)部分的优化

2009-03-06 00:35:53   来源:OKXUN.com

首先 我们要实现的效果是


根栏目名称 - 上级 - 顶级 -网站名称

很多人都会修改 栏目连接符 例如

根栏目名称 >>上级 >> 顶级 >>网站名称

我个人是修改成了 <li>做连接符 以求内容页使用排版

这样出来的结果就是

根栏目名称 - li -上级 -li - 顶级 -网站名称



修改开始 首先要实现 栏目名称的顺序 以及连接符的修改

1,修改栏目顺序 为 从低级到高级

“子级栏目-顶级栏目-站点名称”,需要找到include/typelink.class.php第164行
$this->valuePositionName = $tinfos['typename'].$this->SplitSymbol.$this->valuePositionName;


修改为
$this->valuePositionName = $this->valuePositionName.$this->SplitSymbol.$tinfos['typename'];


接下来
<title>{dede:field.title/} - {dede:global.cfg_webname/}</title>


模板标题部分

然后修改连接符的问题

查看代码include/arc.listview.class.php,找到55行
$this->Fields['title'] = ereg_replace("[<>]"," / ",$this->TypeLink->GetPositionLink(false));


把 / 删除 注意留空 " "

这样出来的时候就是

根栏目名称 li 上级 li  顶级 -网站名称

模板部分再修改
<title>{dede:field.title function='ereg_replace(" li "," - ",@me)'/} - {dede:global.cfg_webname/}</title>


替换连接符 li  为 -
如果你的连接符是 》 或者 > 把li 自己修改就可以了


最后测试结果


{dede:field name='position'/}  是文章页中当前位置的标签  可以使用连接符显示 例如  顶级<li>2级<li>3级
{dede:field.titles function='ereg_replace(" li "," - ",@me)'/}  过滤掉连接符 以反方向排列 栏目名称


声明
部分技术代码来自论坛搜索 吕轻侯 的技术修改