帝国cms [!–class.name–]调用输出的是栏目别名的原因及解决办法
在使用帝国cms的过程中,发现模板页通过[!–class.name–]和[!–this.classname–]来调用栏目名称,本来是希望显示栏目名称的,但是实际生成的页面显示的确实栏目别名,原因是帝国cms默认在填了栏目别名的情况下,[!–class.name–]优先调用栏目别名。对于站长来说这显然不是很合理呀。
那么如何实现使用[!–class.name–]调用出来的就是栏目名而不要出现栏目别名呢?
作为程序员,无尘首先想到的办法就是修改帝国cms的代码来,下面来看看如何修改吧
1、找到 /e/class/connect.php 文件搜索“function sys_ReturnBqClassname($r,$have_class=0)” 找到代码段
if(empty($class_r[$r[classid]][bname]))
{$classname=$class_r[$r[classid]][classname];}
else
{$classname=$class_r[$r[classid]][bname];}
把他注释掉,改成:$classname=$class_r[$r[classid]][classname];
搜索“function ReplaceListVars”找到代码段
$thisclassname=$class_r[$r[classid]][bname]?$class_r[$r[classid]][bname]:$class_r[$r[classid]][classname];
把他注释掉,改成:$thisclassname=$class_r[$r[classid]][classname];
2、找到 /e/class/t_functions.php 文件搜索“function sys_ReturnEcmsLoopStext($r)”找到代码段
$sr[‘classname’]=$class_r[$r[classid]][bname]?$class_r[$r[classid]][bname]:$class_r[$r[classid]][classname];
把他注释掉,改成:$sr[‘classname’]=$class_r[$r[classid]][classname];