最新公告
  • 欢迎您光临 我爱模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境! 立即加入钻石VIP
  • 帝国cms模板教程之栏目自定义字段调用教程及代码

    正文概述 管理员   2025-09-06   4

    首先说一下,我这里用的到带模板的栏目导航标签(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);

    这里说下这是什么意思,高手请飘过,呵呵

    帝国的这个栏目字段跟自定义栏目字段不在同一个表中,所以他原来的单一查询就查不到自定字段的值,这里我们只需要把这个查询改成复合查询,把自定义字段的表带进来一起查询就可以了

    刚才的查询我们己经可以把数据查到了,现在需要做的就是替换到模板里面去就OOK了,继续!

    五、找到以下代码,把我们添加的字段变量加进去

            //替换变量 
            $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--]"   /></span><a href="[!--classurl--]">[!--classname--]</a><b>[!--entitle--]</b></li>

    我爱模板网 » 帝国cms模板教程之栏目自定义字段调用教程及代码

    发表评论

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者
    script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?587cc1e5c052b5b0ce99533beff13c96"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();

    请选择支付方式

    ×
    支付宝支付
    余额支付
    ×
    微信扫码支付 0 元