一直使用DeDe CMS,功能的确非常强大的,各种标签、自定义功能也非常灵活。但是有一个问题一直困扰着我,那就是二级栏目页面的title是“一级栏目名称/二级栏目名称_网站名称”的显示形式,看着非常的不爽,尤其是中间的那个“/”。总想如何改改源文件去掉这个斜杠或弄成其它形式,可是看了半天代码也不知道该在哪里改,水平太差啊……到DeDe论坛去搜,看到以前就有人问如何去掉这个斜杠,但没人回答。
经过反复试验,一直也没有一个好的办法,也有过一个高人给过一个代码:
{dede:field name='position' runphp='yes'} $tc="_"; //分隔符 $tw=$GLOBALS['cfg_list_symbol']; //调用位置分隔符 @me=html2text(@me); //去除html标签 $tf=split($tw,@me); //分解成数组 for($ta=(count($tf)-2);$ta>=1;$ta--){ //循环赋值给$tk $tk.=trim($tf[$ta]).$tc; } $tk=substr($tk,0,-1); @me=$tk; //赋值给@me {/dede:field}
这个代码可以解决一下问题,不过还是有个缺陷,就是一个列表页面数大于1之后,其他页面就不能显示了,变成“_网站名称”,后来在管理广告的时候给了我一个启示,是否可以通过DeDe自定义宏标记的功能进行修改,去掉斜杠。
在自定义标记页面增加一个标记,“所属栏目”选择二级栏目,“标记名称”填“title”,“正常显示内容”填上希望在该栏目页面显示的标题,然后提交。把二级栏目依次按上述方法添加标记。
打开dede列表模板,将 <title>{dede:field name=’title’/} - {dede:global name=’cfg_webname’/}</title>替换为:<title>{dede:mytag name=’title’/} - {dede:global name=’cfg_webname’/}</title>然后重新生成HTML。
添加宏标记这种方法还有一个优点就是对于优化标题是比较灵活的,可以自由设定栏目的title的显示内容,而不一定非得是栏目名称,能自定义可以说是其最大的一个优点了,也不枉费自己的一番劳动给逐个添加。
不过这个方法有一点千万要记得注意:以后新增加栏目的时候一定要为其新增一个宏标记,否则title显示不正常。 |