帝国cms怎么获取当前列表id?
本文实例讲述了帝国cms在自定义列表中获取当前列表id的方法。分享给大家供大家参考,具体如下:
推荐学习《帝国cms教程》
今天用帝国cms做一个项目时,发现帝国自定义列表中无法获取当前自定义列表的id。分析帝国源码后以现,帝国默认传出的值为0。下面简单记录一下如何通过修改源码实现“帝国cms自定义列表获取当前列表id”
上面所提到的项目功能简介:
用户用自定义列表功能创建了大量的自定义列表,然后在这些自定义列表中要获取到同分类自定义列表名称,并且当前栏目名称的样式要加上特定的css样式。
自定义列表模板代码片段
代码如下:
[e:loop={'select listid,listname,filepath from [!db.pre!]enewsuserlist where classid=1',100,24}]<li<?=($bqr[listid]==$globals[navclassid]?' class="this"':'')?>><?=$bqr[listname]?></li>[/e:loop]
默认请况下 $globals[navclassid] 的值是为空的, 所以我们只需修改程序将当前自定义列表的id值赋给$globals[navclassid]即可
帝国源程序修改
通过phpxref工具分析程序运行流程发现,生成自定义信息列表的函数为reuserlist(),reuserlist()进一步调用listhtml()函数生成信息列表,并传入$enews事件为4,至此即可通过listhtml()函数传入列表id。
打开(/e/class/functions.php) 找到函数 listhtml(可搜索 function listhtml 快速查找) 中找到如下代码
代码如下:
$globals['navclassid']=$classid;
更改成
代码如下:
$globals['navclassid']=$enews==4?$userlistr['listid']:$classid;
保存(注意文件编码问题)
重新生成自定义列表,所需功能已实现!
希望本文所述对大家基于帝国cms的网站程序设计有所帮助。
以上就是帝国cms怎么获取当前列表id的详细内容。