帝国cms怎么用万能标签调用父栏目下所有文章?
如题,我的网站结构是首页-一级栏目-二级栏目-内容页,现在想在内容页调用一级栏目下的所有文章,请问用万能标签或者其他标签也行,怎么实现?我试过用[ecmsinfo]'se...
如题,我的网站结构是首页-一级栏目-二级栏目-内容页,现在想在内容页调用一级栏目下的所有文章,请问用万能标签或者其他标签也行,怎么实现?我试过用
[ecmsinfo] 'select * from [!db.pre!]ecms_news where classid=[!--bclass.id--]',10,34,0,1,2,0,'','newstime DESC'[/ecmsinfo]
和[ecmsinfo] '[!--bclass.id--]',10,34,0,1,2,0,'','newstime DESC'[/ecmsinfo]都显示错误,求高手解答,并告知我第一串代码哪里错了,谢谢。 展开
[ecmsinfo] 'select * from [!db.pre!]ecms_news where classid=[!--bclass.id--]',10,34,0,1,2,0,'','newstime DESC'[/ecmsinfo]
和[ecmsinfo] '[!--bclass.id--]',10,34,0,1,2,0,'','newstime DESC'[/ecmsinfo]都显示错误,求高手解答,并告知我第一串代码哪里错了,谢谢。 展开
2个回答
展开全部
<?php
$fcr=explode('|',$class_r[$GLOBALS[navclassid]][featherclass]);
$topbclassid=$fcr[1]?$fcr[1]:$GLOBALS[navclassid];//取得当前栏目的顶级栏目ID
//echo $topbclassid;
?>
[e:loop={'select * from [!db.pre!]enewsclass as a right join [!db.pre!]ecms_news as b on a.classid=b.classid and a.bclassid='.$topbclassid.'',1,24,0}]
[<?=$bqno?>]<a href="<?=$bqsr[titleurl]?>" target="_blank"><?=$bqr[title]?></a><br />
[/e:loop]
首先,我也好久没有弄过帝国了,很多东西都忘了,凭仅有的记忆和网上搜索,在6.6版本里测试了一下,以上方法是有效的。
关于[!--bclass.id--]这个标签,记得外面的[!-- --]这个是输出的意思,相当于echo吧,所以放在标签里怎么都不对了,因为它并不需要在那里输出,
其次在[!db.pre!]ecms_news数据表里的classid是本栏目id,比如你顶级栏目2下面有34,35,36,37,新闻表里只能查34,35,36,37栏目的新闻,所以你classid=[!--bclass.id--]这样写就算[!--bclass.id--]没有输出的问题也是不正确的
所以我用了联合查询的mysql,同时查栏目表和新闻表,在栏目表查出哪个栏目的父栏目id是2,得出34,35,36,37,然后去新闻表查属于这4个栏目的新闻
最上面取得当前栏目的顶级栏目ID是在网上搜的,测试过是对的,它应该比[!--bclass.id--]好吧,记得[!--bclass.id--]好像只是父栏目id,如果有3级栏目是不是就不能获取一级栏目了,我记不太清了,你可以自己测试一下2个变量的区别
$fcr=explode('|',$class_r[$GLOBALS[navclassid]][featherclass]);
$topbclassid=$fcr[1]?$fcr[1]:$GLOBALS[navclassid];//取得当前栏目的顶级栏目ID
//echo $topbclassid;
?>
[e:loop={'select * from [!db.pre!]enewsclass as a right join [!db.pre!]ecms_news as b on a.classid=b.classid and a.bclassid='.$topbclassid.'',1,24,0}]
[<?=$bqno?>]<a href="<?=$bqsr[titleurl]?>" target="_blank"><?=$bqr[title]?></a><br />
[/e:loop]
首先,我也好久没有弄过帝国了,很多东西都忘了,凭仅有的记忆和网上搜索,在6.6版本里测试了一下,以上方法是有效的。
关于[!--bclass.id--]这个标签,记得外面的[!-- --]这个是输出的意思,相当于echo吧,所以放在标签里怎么都不对了,因为它并不需要在那里输出,
其次在[!db.pre!]ecms_news数据表里的classid是本栏目id,比如你顶级栏目2下面有34,35,36,37,新闻表里只能查34,35,36,37栏目的新闻,所以你classid=[!--bclass.id--]这样写就算[!--bclass.id--]没有输出的问题也是不正确的
所以我用了联合查询的mysql,同时查栏目表和新闻表,在栏目表查出哪个栏目的父栏目id是2,得出34,35,36,37,然后去新闻表查属于这4个栏目的新闻
最上面取得当前栏目的顶级栏目ID是在网上搜的,测试过是对的,它应该比[!--bclass.id--]好吧,记得[!--bclass.id--]好像只是父栏目id,如果有3级栏目是不是就不能获取一级栏目了,我记不太清了,你可以自己测试一下2个变量的区别
追问
不好意思,可能我问他没表述清楚。调用一级栏目下的所有文章,是指此文章页所属一级栏目下的所有文章。您发的这串代码,我试了之后发现是调用的整站文章,也就是调用了所有一级栏目的文章,麻烦帮忙看看怎么修改。。追加100分
追答
嗯,你的意思我没有弄错,因为我一开始获取的就是本栏目的顶级栏目ID,如果是全站我就没必要获取了。
错误还是在mysql语句和变量的连接上,改成下面这样就行,双引号放外面,里面是单引号,我顺便把right join换成了inner join,这个不是关键,不过觉得这个更好一点
[e:loop={"select * from [!db.pre!]enewsclass as a inner join [!db.pre!]ecms_news as b on a.classid=b.classid and a.bclassid='$topbclassid'",1,24,0}]
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |