帝国模板之家为广大用户提供专业、一站式建站服务。

帝国cms教程

帝国cms教程栏目,提供精品建站,仿站,二次开发,安装,标签使用等图文教程,帮助建设和管理好你的帝国cms站点。

当前位置:首页 > 教程 > 帝国cms教程 > 正文

[原创]帝国cms调用栏目别名,自定义标签[!--bname--]调用的方法

帝国模板之家 2020-09-05 帝国cms教程 评论

帝国cms的封面模板,列表模板,内容模板中并没有栏目别名的标签,如果我们想要调用栏目别名,该怎么操作,在之前的文章中我们介绍过几种方式。今天,帝国模板之家小编给大家介绍一下如何自定一个别名标签,这样我们调用起来就非常方便了。下面来看看具体操作:

首先我们将程序做好备份。

封面模板中定义栏目别名标签[!--bname--]:

在/e/class/function.php 中找到 Class_ReplaceSvars 栏目页替换公共标记函数,添加一个参数($bname),并添加替换栏目别名方法$temp=str_replace('[!--bname--]',$bname,$temp);,代码如下

function Class_ReplaceSvars($temp,$url,$classid,$title,$key,$des,$classimg,$add,$enews=0,$bname=""){
...
if($enews==0)//栏目
    {
        $temp=str_replace('[!--class.name--]',$class_r[$classid]['classname'],$temp);
        $bclassid=$class_r[$classid]['bclassid'];
        $temp=str_replace('[!--bclass.name--]',$class_r[$bclassid]['classname'],$temp);
        $temp=str_replace('[!--bclass.id--]',$bclassid,$temp);
        $temp=str_replace('[!--bname--]',$bname,$temp);
        $path=$public_r['newsurl'].'d/js/class/class'.$classid.'_';
    }
   ...
}

然后找到在/e/class/function.php 中找到 NewsBq 标签替换函数  在查询中添加bname栏目别名字段, Class_ReplaceSvars 函数添加替换别名参数 ,代码如下:

...
$cr=$empire->fetch1("select classpagekey,intro,classimg,bname,cgroupid".$cf." from {$dbtbpre}enewsclass where classid='$classid'");
...
$indextext=Class_ReplaceSvars($indextext,$url,$classid,$pagetitle,$pagekey,$pagedes,$classimg,$add,0,$bname);

列表模板中定义栏目别名标签[!--bname--]:

在/e/class/function.php 中找到 ListHtml生成信息列表函数,(如果之前未做二次开发,可以直接替换成如下代码):

//生成信息列表
function ListHtml($classid,$fields,$enews=0,$userlistr=""){
    global $empire,$dbtbpre,$emod_r,$public_r,$class_r,$class_zr,$fun_r,$class_tr,$level_r,$etable_r;
    //不生成栏目
    if(($enews==0||$enews==3)&&($class_r[$classid]['listdt']||$class_r[$classid]['wburl']||strstr($public_r['nreclass'],','.$classid.',')))
    {
        return '';
    }
    $GLOBALS['navclassid']=$classid;
    $doclass="index";
    $classlevel='';
    $yhvar='qlist';
    $bname="";
    if($enews==0)//子栏目列表
    {
        if(InfoIsInTable($class_r[$classid][tbname]))//内部表
        {
            return '';
        }
        $selfclassid=$classid;
        $doenews=0;
        $cr=$empire->fetch1("select classpagekey,intro,classimg,cgroupid,repagenum,bdinfoid,addsql,bname from {$dbtbpre}enewsclass where classid='$classid'");
        //绑定信息
        if(!empty($cr['bdinfoid']))
        {
            ReClassBdInfo($classid);
            return '';
        }
        eAutodo_AddDo('ReListHtml',$classid,0,0,0,0);//moreportdo
        $mid=$class_r[$classid][modid];
        //权限
        if($cr['cgroupid'])
        {
            $classlevel=AddCheckClassLevel($classid,$cr['cgroupid'],'');
        }
        //页面
        $pagetitle=ehtmlspecialchars($class_r[$classid][classname]);
        $pagekey=ehtmlspecialchars($cr['classpagekey']);
        $pagedes=ehtmlspecialchars($cr['intro']);
        $classimg=$cr['classimg'];
        $bname=$cr['bname'];
        $url=ReturnClassLink($classid);
        $haveclass=0;
        //排序
        if(empty($class_r[$classid][reorder]))
        {
            $addorder="newstime desc";
        }
        else
        {
            $addorder=$class_r[$classid][reorder];
        }
        //分页参数
        $pagefunr=eReturnRewriteLink('classpage',$classid,0);
        $pagefunr['repagenum']=$cr['repagenum'];
        $totalrepage=$cr['repagenum']*$class_r[$classid][lencord];
        if($totalrepage)
        {
            $limit=" limit ".$totalrepage;
        }
        if($class_r[$classid][maxnum])//总记录数
        {
            if($class_r[$classid][maxnum]<$totalrepage)
            {
                $limit=" limit ".$class_r[$classid][maxnum];
            }
            $limitnum=$class_r[$classid][maxnum];
        }
        //优化
        $yhid=$class_r[$classid][yhid];
        if($yhid)
        {
            $yhadd=ReturnYhSql($yhid,$yhvar,1);
        }
        $caddsql=$cr['addsql']?' and ('.$cr['addsql'].')':'';
        $query="select ".ReturnSqlListF($mid)." from {$dbtbpre}ecms_".$class_r[$classid][tbname]." where ".$yhadd."classid='$classid'".$caddsql." order by ".ReturnSetTopSql('list').$addorder.$limit;
        $totalquery="select count(*) as total from {$dbtbpre}ecms_".$class_r[$classid][tbname]." where ".$yhadd."classid='$classid'".$caddsql;//统计
        $doclasspath=ReturnSaveClassPath($classid,0);
        $dopath=eReturnTrueEcmsPath().$doclasspath."/";//moreport
        if(empty($class_r[$classid][classurl]))
        {
            $dolink=$public_r[newsurl].$doclasspath."/";
        }
        else
        {
            $dolink=$class_r[$classid][classurl]."/";
        }
        $dotype=$class_r[$classid][classtype];
        $classname=$class_r[$classid][classname];
        $lencord=$class_r[$classid][lencord];//记录数
        $onclick="<script src='".$public_r[newsurl]."e/public/onclick/?enews=doclass&classid=$classid'></script>";
        //模板
        $listtempid=$class_r[$classid][listtempid];
    }
    elseif($enews==5)//标题分类列表
    {
        $mid=$class_tr[$classid]['mid'];
        $tbname=$emod_r[$mid]['tbname'];
        if(InfoIsInTable($tbname))//内部表
        {
            return '';
        }
        $selfclassid=$classid;
        $doenews=1;
        $cr=$empire->fetch1("select tnum,listtempid,maxnum,reorder,timg,intro,pagekey,listdt,repagenum from {$dbtbpre}enewsinfotype where typeid='$classid'");
        //页面
        $pagetitle=ehtmlspecialchars($class_tr[$classid]['tname']);
        $pagekey=ehtmlspecialchars($cr['pagekey']);
        $pagedes=ehtmlspecialchars($cr['intro']);
        $classimg=$cr['timg'];
        $url=ReturnInfoTypeLink($classid);
        $haveclass=1;
        if($cr['listdt'])//动态页面
        {
            return '';
        }
        eAutodo_AddDo('ReTtListHtml',$classid,0,0,0,0);//moreportdo
        //排序
        if(empty($cr['reorder']))
        {
            $addorder='newstime desc';
        }
        else
        {
            $addorder=$cr['reorder'];
        }
        //分页参数
        $pagefunr=eReturnRewriteLink('ttpage',$classid,0);
        $pagefunr['repagenum']=$cr['repagenum'];
        $totalrepage=$cr['repagenum']*$cr['tnum'];
        if($totalrepage)
        {
            $limit=" limit ".$totalrepage;
        }
        if($cr['maxnum'])
        {
            if($cr['maxnum']<$totalrepage)
            {
                $limit=" limit ".$cr['maxnum'];
            }
            $limitnum=$cr['maxnum'];
        }
        //优化
        $yhid=$class_tr[$classid]['yhid'];
        if($yhid)
        {
            $yhadd=ReturnYhSql($yhid,$yhvar,1);
        }
        $query="select ".ReturnSqlListF($mid)." from {$dbtbpre}ecms_".$tbname." where ".$yhadd."ttid='$classid' order by ".ReturnSetTopSql('list').$addorder.$limit;
        $totalquery="select count(*) as total from {$dbtbpre}ecms_".$tbname." where ".$yhadd."ttid='$classid'";//统计
        $doclasspath=ReturnSaveInfoTypePath($classid,0);
        $dopath=eReturnTrueEcmsPath().$doclasspath."/";//moreport
        $dolink=$public_r[newsurl].$doclasspath."/";
        $dotype=$class_tr[$classid]['ttype'];
        $classname=$class_tr[$classid]['tname'];
        $lencord=$cr['tnum'];//记录数
        $onclick="";
        //模板
        $listtempid=$cr['listtempid'];
    }
    elseif($enews==3)//大栏目列表
    {
        if(InfoIsInTable($class_r[$classid][tbname]))//内部表
        {
            return '';
        }
        eAutodo_AddDo('ReListHtml',$classid,0,0,0,0);//moreportdo
        $selfclassid=$classid;
        $doenews=0;
        $cr=$empire->fetch1("select classpagekey,intro,classimg,cgroupid,repagenum,addsql,bname from {$dbtbpre}enewsclass where classid='$classid'");
        $mid=$class_r[$classid][modid];
        //权限
        if($cr['cgroupid'])
        {
            $classlevel=AddCheckClassLevel($classid,$cr['cgroupid'],'');
        }
        //页面
        $pagetitle=ehtmlspecialchars($class_r[$classid][classname]);
        $pagekey=ehtmlspecialchars($cr['classpagekey']);
        $pagedes=ehtmlspecialchars($cr['intro']);
        $classimg=$cr['classimg'];
        $bname=$cr['bname'];
        $url=ReturnClassLink($classid);
        $haveclass=1;
        //排序
        if(empty($class_r[$classid][reorder]))
        {
            $addorder="newstime desc";
        }
        else
        {
            $addorder=$class_r[$classid][reorder];
        }
        //分页参数
        $pagefunr=eReturnRewriteLink('classpage',$classid,0);
        $pagefunr['repagenum']=$cr['repagenum'];
        $totalrepage=$cr['repagenum']*$class_r[$classid][lencord];
        if($totalrepage)
        {
            $limit=" limit ".$totalrepage;
        }
        if($class_r[$classid][maxnum])
        {
            if($class_r[$classid][maxnum]<$totalrepage)
            {
                $limit=" limit ".$class_r[$classid][maxnum];
            }
            $limitnum=$class_r[$classid][maxnum];
        }
        $whereclass=ReturnClass($class_r[$classid][sonclass]);
        //优化
        $yhid=$class_r[$classid][yhid];
        if($yhid)
        {
            $yhadd=ReturnYhSql($yhid,$yhvar,1);
        }
        $caddsql=$cr['addsql']?' and ('.$cr['addsql'].')':'';
        $query="select ".ReturnSqlListF($mid)." from {$dbtbpre}ecms_".$class_r[$classid][tbname]." where ".$yhadd."(".$whereclass.")".$caddsql." order by ".ReturnSetTopSql('list').$addorder.$limit;
        $totalquery="select count(*) as total from {$dbtbpre}ecms_".$class_r[$classid][tbname]." where ".$yhadd."(".$whereclass.")".$caddsql;//统计
        $doclasspath=ReturnSaveClassPath($classid,0);
        $dopath=eReturnTrueEcmsPath().$doclasspath."/";//moreport
        if(empty($class_r[$classid][classurl]))
        {
            $dolink=$public_r[newsurl].$doclasspath."/";
        }
        else
        {
            $dolink=$class_r[$classid][classurl]."/";
        }
        $dotype=$class_r[$classid][classtype];
        $classname=$class_r[$classid][classname];
        $lencord=$class_r[$classid][lencord];//记录数
        $onclick="<script src='".$public_r[newsurl]."e/public/onclick/?enews=doclass&classid=$classid'></script>";
        //模板
        $listtempid=$class_r[$classid][listtempid];
    }
    elseif($enews==4)//按sql语句生成列表
    {
        $selfclassid=0;
        $doenews=1;
        $userlistr['listsql']=RepSqlTbpre($userlistr['listsql']);
        $userlistr['totalsql']=RepSqlTbpre($userlistr['totalsql']);
        //页面
        $pagetitle=ehtmlspecialchars($userlistr['pagetitle']);
        $pagekey=ehtmlspecialchars($userlistr['pagekeywords']);
        $pagedes=ehtmlspecialchars($userlistr['pagedescription']);
        $haveclass=1;
        if($userlistr['maxnum'])//最大查询数
        {
            $limit=" limit ".$userlistr['maxnum'];
            $limitnum=$userlistr['maxnum'];
        }
        $query=stripSlashes($userlistr['listsql']).$limit;
        //统计
        $totalquery=stripSlashes($userlistr['totalsql']);
        $dopath=eReturnTrueEcmsPath().'e/data/'.$userlistr['filepath'];//maddpath
        $dolink=$public_r[newsurl].str_replace('../../','',$userlistr['filepath']);
        $dotype=$userlistr['filetype'];
        $classname=$userlistr['pagetitle'];
        $lencord=$userlistr['lencord'];//记录数
        $onclick='';
        $url=ReturnUserPLink($pagetitle,$dolink);
        //模板
        $listtempid=$userlistr['listtempid'];
    }
    if(empty($lencord))
    {
        $lencord=25;
    }
    //列表模板
    $listtemp_r=GetListTemp($listtempid);
    $listtemp=$listtemp_r[temptext];
    $subnews=$listtemp_r[subnews];
    $subtitle=$listtemp_r[subtitle];
    $docode=$listtemp_r[docode];
    $listvar=str_replace('[!--news.url--]',$public_r[newsurl],$listtemp_r[listvar]);
    $rownum=$listtemp_r[rownum];
    $formatdate=$listtemp_r[showdate];
    if(empty($rownum))
    {
        $rownum=1;
    }
    if(empty($mid))
    {
        $mid=$listtemp_r[modid];
    }
    $field=ReturnReplaceListF($mid);
    //分页参数
    $pagefunr['dofile']=$dofile;
    //分页列表函数
    if(!empty($public_r['listpagefun'])||!empty($public_r['listpagelistfun']))
    {
        if(strstr($listtemp,'[!--show.page--]'))//下拉式
        {
            $thefun=$public_r['listpagefun'];
            $bereplistpage='[!--show.page--]';
        }
        else//列表式
        {
            $thefun=$public_r['listpagelistfun'];
            $bereplistpage='[!--show.listpage--]';
        }
    }
    else
    {
        $thefun='sys_ShowListPage';
        $bereplistpage='[!--show.page--]';
    }
    //替换模板变量
    $listtemp=str_replace('[!--newsnav--]',$url,$listtemp);//位置导航
    $listtemp=Class_ReplaceSvars($listtemp,$url,$selfclassid,$pagetitle,$pagekey,$pagedes,$classimg,$add,$doenews,$bname);
    $listtemp=str_replace('[!--page.stats--]',$onclick,$listtemp);
    $no=1;
    $ok=0;
    $changerow=1;
    $num=$empire->gettotal($totalquery);
    //最大数
    if($limitnum&&$limitnum<$num)
    {
        $num=$limitnum;
    }
    $page=ceil($num/$lencord);
    //取得列表模板
    $list_exp="[!--empirenews.listtemp--]";
    $list_r=explode($list_exp,$listtemp);
    //无信息
    if(empty($num))
    {
        $noinfopath=$dopath."index".$dotype;
        NotinfoListHtml($noinfopath,$list_r,$classlevel);
        return "";
    }
    $sql=$empire->query($query);
    $listtext=$list_r[1];
    while($k=$empire->fetch($sql))
    {
        //替换列表变量
        $repvar=ReplaceListVars($no,$listvar,$subnews,$subtitle,$formatdate,$url,$haveclass,$k,$field,$docode);
        $listtext=str_replace("<!--list.var".$changerow."-->",$repvar,$listtext);
        $changerow+=1;
        //超过行数
        if($changerow>$rownum)
        {
            $changerow=1;
            $string.=$listtext;
            $listtext=$list_r[1];
        }
        if($no%$lencord==0||($num%$lencord<>0&&$num==$no))
        {
            $ok+=1;
            $pagenum=ceil($no/$lencord);
            //首页
            if($pagenum==1)
            {
                $path=$dopath."index".$dotype;
            }
            else
            {
                $path=$dopath."index_".$ok.$dotype;
            }
            //取得分页参数
            $returnpager=$thefun($num,$pagenum,$dolink,$dotype,$page,$lencord,$ok,$myoptions,$pagefunr);
            $showpage=$returnpager['showpage'];
            $myoptions=$returnpager['option'];
            $list1=str_replace($bereplistpage,$showpage,$list_r[0]);
            $list2=str_replace($bereplistpage,$showpage,$list_r[2]);
            //多余数据
            if($changerow<=$rownum&&$listtext<>$list_r[1])
            {
                $string.=$listtext;
            }
            $listtext=$list_r[1];
            $changerow=1;
            $string=$list1.$string.$list2;
            //替换分页数
            $string=str_replace('[!--list.pageno--]',($pagenum==1?'':$pagenum),$string);
            WriteFiletext($path,$classlevel.$string);
            $string='';
        }
        $no++;
    }
    $empire->free($sql);
}

在上面代码中我们同样添加了查询栏目别名字段,然后在Class_ReplaceSvars函数中添加了替换栏目别名参数(记得先给Class_ReplaceSvars函数添加栏目别名变量)。

内容模板中定义栏目别名标签[!--bname--]:

在/e/class/function.php 中找到 GetHtmlRepVar内容变量处理函数,

在//总体页面变量下添加如下代码:

$newstempstr=str_replace('[!--bname--]','<?=$class_r[$classid][bname]?>',$newstempstr);

如图所示:

ok,我们在封面模板,列表模板,内容模板中直接使用[!--bname--]标签就可以调用栏目别名了,是不是非常方便呢,大家赶紧测试一下吧。更多相关内容请关注帝国模板之家其他文章。

美梦,诞生在一瞬间,这短暂的喜悦,也就像泡沫一样,往往

已有 位小伙伴发表了看法

欢迎 发表评论

  • 匿名发表

关于

帝国cms模板

网页插件

帝国模板之家 | www.moyouyouw.cn

本站所有模板/文章除标明原创外,均来自网络转载,版权归原作者所有,如果有侵犯到您的权益,请联系站长删除,谢谢! 寻找帝国cms模板首选帝国模板之家,用心做站,上线至今广受好评,值得信赖!

  • 交流群1:帝国cms交流群1
  • 交流群2:帝国cms交流群2
在线QQ 给我留言