这里用的到带模板的栏目导航标签(showclasstemp),用其它标签需要修改其它函数。
一、首先,模板管理,找到左边从最下面往上数第三个,其中有一个标签管理,点击后在右边找到showclasstemp这个标签,点击修改后可以看到该标签所使用的函数名称(sys_ShowClassByTemp),需要修改的就是这个函数。
二、我在我自己做的站中增加了两个自定义字段(pic,entitle),一个是栏目前面显示的小图标,一个是英文名
三、打开e/class/t_functions.php 这个文件,帽似帝国的函数处理都 在这个文件中进行
四、现在仔细看看第一步中找到的那个函数名,记下来,在t_functions.php这个文件中找到他,7.0测试版大概是在1574行,6.6的大概在1889行,在这个函数中找到下面的代码:
$sql=$empire->query("select classid,classname,islast,sonclass,tbname,intro,classimg from {$dbtbpre}enewsclass where bclassid='$classid' and showclass=0 order by myorder,classid".$limit);
替换为:
$sql=$empire->query("SELECT C.classid,C.classname,C.islast,C.islast,C.tbname,C.intro,C.classid,C.classimg,C.infos,D.classid,D.pic,D.entitle FROM {$dbtbpre}enewsclass C LEFT JOIN {$dbtbpre}enewsclassadd D ON C.classid=D.classid where C.bclassid='$classid' and C.showclass=0 order by myorder,C.classid
".$limit);
帝国的这个栏目字段跟自定义栏目字段不在同一个表中,所以原来的单一查询就查不到自定字段的值,这里只需要把这个查询改成复合查询,把自定义字段的表带进来一起查询即可。
刚才查询己可以把数据查到了,现在需要做的就是替换到模板里面去即可。
五、找到以下代码,把添加的字段变量加进去
复制代码 代码示例:
//替换变量
$bclassname=$class_r[$classid][classname];
$br[classid]=$classid;
$bclassurl=sys_ReturnBqClassname($br,9);
$listtemp=str_replace("[!--bclassname--]",$bclassname,$listtemp);
$listtemp=str_replace("[!--bclassurl--]",$bclassurl,$listtemp);
$listtemp=str_replace("[!--bclassid--]",$classid,$listtemp);
修改为:
复制代码 代码示例:
//替换变量
$bclassname=$class_r[$classid][classname];
$br[classid]=$classid;
$bclassurl=sys_ReturnBqClassname($br,9);
$listtemp=str_replace("[!--pic--]",$pic,$listtemp);
$listtemp=str_replace("[!--entitle--]",$entitle,$listtemp);
$listtemp=str_replace("[!--bclassname--]",$bclassname,$listtemp);
$listtemp=str_replace("[!--bclassurl--]",$bclassurl,$listtemp);
$listtemp=str_replace("[!--bclassid--]",$classid,$listtemp);
六,最后一步:
把变量替换到模板中,找到以下代码:
复制代码 代码示例:
//栏目名称
$listtemp=str_replace("[!--classname--]",$r[classname],$listtemp);
//栏目id
$listtemp=str_replace("[!--classid--]",$r[classid],$listtemp);
//栏目图片
if(empty($r[classimg]))
{
$r[classimg]=$public_r[newsurl]."e/data/images/notimg.gif"/>";
}
$listtemp=str_replace("[!--classimg--]",$r[classimg],$listtemp);
//栏目简介
$listtemp=str_replace("[!--intro--]",nl2br($r[intro]),$listtemp);
//记录数
$listtemp=str_replace("[!--num--]",$num,$listtemp);
//序号
$listtemp=str_replace("[!--no--]",$no,$listtemp);
return $listtemp;
在这上面增加几行,修改后的代码为:
复制代码 代码示例:
//栏目小图标
$listtemp=str_replace("[!--pic--]",$r[pic],$listtemp);
//栏目英文名
$listtemp=str_replace("[!--entitle--]",$r[entitle],$listtemp);
//栏目名称
$listtemp=str_replace("[!--classname--]",$r[classname],$listtemp);
//栏目id
$listtemp=str_replace("[!--classid--]",$r[classid],$listtemp);
//栏目图片
if(empty($r[classimg]))
{
$r[classimg]=$public_r[newsurl]."e/data/images/notimg.gif"/>";
}
$listtemp=str_replace("[!--classimg--]",$r[classimg],$listtemp);
//栏目简介
$listtemp=str_replace("[!--intro--]",nl2br($r[intro]),$listtemp);
//记录数
$listtemp=str_replace("[!--num--]",$num,$listtemp);
//序号
$listtemp=str_replace("[!--no--]",$no,$listtemp);
return $listtemp;
七、还有最后一步,最要紧,至关重要的。
在showclasstemp调用的标签模板中记得加上调用代码:
复制代码 代码示例:
<li><span><img src="[!--pic--]" width="19" height="21" /></span>
<a href="[!--classurl--]">[!--classname--]</a><b>[!--entitle--]</b></li>