帝国cms中如何获取二级置顶,二级推荐,二级头条等

[e:loop={栏目ID/标题分类ID,显示条数,操作类型,只显示有标题图片,附加SQL条件,显示排序}]

模板代码内容

[/e:loop]

firsttitle 是否头条

isgood 是否推荐

istop 置顶级别

以置顶为例,数值为0表示不置顶,为1表示一级置顶,为2表示二级置顶,以此类推

如果在e:loop中需要选择既置顶又是头条的,那么需要在“附加SQL条件”中添加条件sql语句,比如说需要找到二级置顶的随机元素,那么 附加sql条件为“RAND() and istop=2”

经过对帝国模版的解析sql语句如下:select id,.... from ***_ecms_news where istop>0 order by RAND() and istop=2 limit 6

 

============================

悲催,实际情况是这种想法给我打脸了,如果想要实现上述的功能,在ECMS中,只能通过SQL语句的形式来实现:

[e:loop={'select * from xxx_ecms_xxxs where firsttitle=2 order by RAND() limit 9',9,24,0}]
模板代码内容
[/e:loop]

出现错误的原因是 ecms 中把上面的sql代码解析如下:

where firsttitle>0 order by RAND() and firsttitle=1 limit 9

实际情况是:在“order by ”后面的 “and firsttitle=1”已经不再生效执行了(但是也不报错),目前能找到的比较好的方式就是用这样的整句sql来完成信息获取。