张荣康 發表於 2023-5-25 00:00:00

帝国CMS在自定义列表中获取当前列表ID的方法

<p>
本文实例讲述了帝国CMS在自定义列表中获取当前列表ID的方法。分享给大家供大家参考,具体如下:</p>
<p>
今天用帝国CMS做一个项目时,发现帝国自定义列表中无法获取当前自定义列表的ID。分析帝国源码后以现,帝国默认传出的值为0。下面简单记录一下如何通过修改源码实现“帝国CMS自定义列表获取当前列表ID”</p>
<p>
<strong>上面所提到的项目功能简介:</strong></p>
<p>
用户用自定义列表功能创建了大量的自定义列表,然后在这些自定义列表中要获取到同分类自定义列表名称,并且当前栏目名称的样式要加上特定的CSS样式。</p>
<p>
<strong>自定义列表模板代码片段</strong><br>
 </p>
<div>

<p>
代码如下:</p>
</div>
<div id="phpcode3">
enewsuserlist where classid=1',100,24}]<br>
&lt;li&lt;?=($bqr==$GLOBALS?'':'')?&gt;&gt;&lt;?=$bqr?&gt;&lt;/li&gt;<br>
</div>
<p>
 </p>
<p>
默认请况下 $GLOBALS 的值是为空的, 所以我们只需修改程序将当前自定义列表的ID值赋给$GLOBALS即可</p>
<p>
<strong>帝国源程序修改</strong></p>
<p>
通过phpxref工具分析程序运行流程发现,生成自定义信息列表的函数为ReUserlist(),ReUserlist()进一步调用ListHtml()函数生成信息列表,并传入$enews事件为4,至此即可通过ListHtml()函数传入列表ID。</p>
<p>
打开(/e/class/functions.php) 找到函数 ListHtml(可搜索 function ListHtml 快速查找) 中找到如下代码<br>
 </p>
<div>

<p>
代码如下:</p>
</div>
<div id="phpcode4">
$GLOBALS['navclassid']=$classid;</div>
<p>
 </p>
<p>
更改成<br>
 </p>
<div>

<p>
代码如下:</p>
</div>
<div id="phpcode5">
$GLOBALS['navclassid']=$enews==4?$userlistr['listid']:$classid;</div>
<p>
 </p>
<p>
保存(注意文件编码问题)</p>
<p>
重新生成自定义列表,所需功能已实现!</p>
<p>
希望本文所述对大家基于帝国CMS的网站程序设计有所帮助。</p>
頁: [1]
查看完整版本: 帝国CMS在自定义列表中获取当前列表ID的方法