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)'/} 过滤掉连接符 以反方向排列 栏目名称
声明
部分技术代码来自论坛搜索 吕轻侯 的技术修改