一、问题描述:
需要调出自定义列表名称,如下图所示:
而使用帝国CMS原有的标签只能调用网页标题,而无法调出列表名称
二、解决方法
方法一:
首先需要实现自定义列表可调出当前栏目ID,具体方法可参考脚本之家前面的教程《帝国CMS在自定义列表中获取当前列表ID的方法》。
能够在自定义列表通过$navclassid获取当前栏目ID的话,问题就变得非常简单了,使用灵动标签的SQL调用如下:
XML/HTML代码
- [e:loop={"select * from [!db.pre!]enewsuserlist where listid=$navclassid",1,24,0}]
- <?=$bqr['listname']?>
- [/e:loop]
这样就可以调出列表名了!
方法二:
修改帝国CMS源码,添加调用字段实现直接调用该名称。具体操作如下:
步骤1:
打开e\admin\other\ListUserlist.php文件,在大约147行找到刷新自定义列表函数function DoReUserlist($add,$userid,$username){
在该函数的查找调用数据库字段部分找到这段代码:
XML/HTML代码
- $ur=$empire->fetch1("select listid,pagetitle,filepath,filetype,totalsql,listsql,maxnum,lencord,listtempid,pagekeywords,pagedescription from {$dbtbpre}enewsuserlist where listid='".$listid[$i]."'");
添加listname字段,改成如下形式:
XML/HTML代码
- $ur=$empire->fetch1("select listid,listname,pagetitle,filepath,filetype,totalsql,listsql,maxnum,lencord,listtempid,pagekeywords,pagedescription from {$dbtbpre}enewsuserlist where listid='".$listid[$i]."'");
如下图所示:
步骤2:
打开e\class\functions.php,在大约2467行找到生成信息列表函数function ListHtml($classid,$fields,$enews=0,$userlistr=""){
添加自定义字段:
XML/HTML代码
- $GLOBALS['navclasslistname']=$enews==4?$userlistr['listname']:"";
如下图所示:
至此,就可以在列表模板使用$GLOBALS['navclasslistname']调用自定义列表名称。