帝国cms教程栏目,提供精品建站,仿站,二次开发,安装,标签使用等图文教程,帮助建设和管理好你的帝国cms站点。
帝国cms的封面模板,列表模板,内容模板中并没有栏目别名的标签,如果我们想要调用栏目别名,该怎么操作,在之前的文章中我们介绍过几种方式。今天,帝国模板之家小编给大家介绍一下如何自定一个别名标签,这样我们调用起来就非常方便了。下面来看看具体操作:
首先我们将程序做好备份。
在/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);
在/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函数添加栏目别名变量)。
在/e/class/function.php 中找到 GetHtmlRepVar内容变量处理函数,
在//总体页面变量下添加如下代码:
$newstempstr=str_replace('[!--bname--]','<?=$class_r[$classid][bname]?>',$newstempstr);
如图所示:
ok,我们在封面模板,列表模板,内容模板中直接使用[!--bname--]标签就可以调用栏目别名了,是不是非常方便呢,大家赶紧测试一下吧。更多相关内容请关注帝国模板之家其他文章。
转载请注明来源:[原创]帝国cms调用栏目别名,自定义标签[!--bname--]调用的方法
本文永久链接地址:https://www.moyouyouw.cn/code/429.html
郑重声明:本站所有主题/文章除标明原创外,均来自网络转载,版权归原作者所有,如果有侵犯到您的权益,请联系本站删除,谢谢!我们不承担任何技术及版权问题,且不对任何资源负法律责任。
上一篇
下一篇
售价: 300 16 ℃ 0 评论
售价: 300 8 ℃ 0 评论
售价: 200 22 ℃ 0 评论
已有 位小伙伴发表了看法
欢迎 你 发表评论