自定义列表不是亲生的-- 你在列表模版中无法获得自定义列表的id
这个id,就是身份识别,无法获得!导致你不认识你自己!被抛弃的感觉有木有?不是亲生的有木有?
无怪乎,论坛大量的关于自定义列表的问题:
TYPE获取不到自定义列表栏目ID怎么办?
如何获取自定义列表当前url?非js获取
自定义列表如何获取当前ID?
怎么写标签调用当前自定义列表页的url路径?
求教自定义列表如何获取当前自定义列表的url路径
请问如何获取自定义列表当前url
.......
这些问题的本质,就是自定义列表id(数据库中为listid)的缺位导致。帝友们只能无奈的说:这id帝国不支持,用js解决等。
其实,这只是帝国cms 的一个小bug,打开/e/class/funtions.php,看代码:
//生成自定义信息列表
function ReUserlist($listr,$addpath){
$listr['addpath']=$addpath;
DoFileMkDir($listr['addpath'].$listr['filepath']);//建目录
ListHtml($classid,$field,4,$listr);
}
可见,在函数ListHtml($classid,$field,4,$listr)调用中,参数$classid没有值。是忘记了,还是有别的考虑?
修改为:
//生成自定义信息列表
此处隐藏332个字。
登录可见问题解决。在列表模版中,可以用$GLOBALS['navclassid']得到自定义列表的id。
得到id后,使用类似这样的调用:
http://bbs.phome.net/ShowThread/?threadid=338793&forumid=13
码农可以飞了。
后记:一个自定一列表的具体内容
Array
(
[listid] => 4
[listname] => 中草药名称查询
[pagetitle] => 中草药名称别名查询
[filepath] => ../../zhongcaoyao/mch/
[
filetype
] => .html
[totalsql] => select
count
(*)
as
total from drug_bieming
[listsql] => select * from drug_bieming order by id desc
[maxnum] => 0
[lencord] => 50
[listtempid] => 15
[pagekeywords] => 中草药名称别名查询
[pagedescription] => 中草药名称别名查询
[classid] => 0
)
获取filepath后,可以这样格式化:
<?php
$bqr[filepath]='../../aaa/bbb/';
echo str_replace("../../","",rtrim($bqr[filepath],'/'));
?>