DEDE(织梦)专题节点支持按后台自定义ID顺序排序输出
2013-07-14 23:36
176 查看
不知道大家在DEDE开发过程中有没有遇到这个问题哦~
刚研究出来和大家分享下,由于公司最近项目有这个需求,本来都快没希望了无意间在谷歌搜索中发现几条SQL函数,研究过DEDE的开发人员应该清楚,DEDE专题节点输出是结合了arclist标签的方式来进行解析的,输出的结构通过SQL语句查询之后循环组合成一组HTML标签生成静态页;好,那我们就依照这个原理来改进它,让其支持自定义排序;
先和大家分享下我搜索到的几个SQL函数:
instr、find_in_set、substring_index、field
用法如下:
instr用法:
首先打开include/taglib/arclist.lib.php文件,查找到下述内容:
本文出自 “逆袭逐风” 博客,请务必保留此出处http://windchaser.blog.51cto.com/5742634/1248827
刚研究出来和大家分享下,由于公司最近项目有这个需求,本来都快没希望了无意间在谷歌搜索中发现几条SQL函数,研究过DEDE的开发人员应该清楚,DEDE专题节点输出是结合了arclist标签的方式来进行解析的,输出的结构通过SQL语句查询之后循环组合成一组HTML标签生成静态页;好,那我们就依照这个原理来改进它,让其支持自定义排序;
先和大家分享下我搜索到的几个SQL函数:
instr、find_in_set、substring_index、field
用法如下:
instr用法:
select * from table1 order by instr('1,4,5,7,2',id)find_in_set用法:
select * from test where id in(3,1,5) order by find_in_set(id,'3,1,5');substring_index用法:
select * from test where id in(3,1,5) order by substring_index('3,1,2',id,1);field用法:
select * from a where id in(8,11,3) order by field(id,8,11,3);我采用的是最后一个函数:field 实现了DEDE专题节点自定义ID排序的小需求功能;
首先打开include/taglib/arclist.lib.php文件,查找到下述内容:
else if($orderby == 'scores') $ordersql = " ORDER BY arc.scores $orderWay";再该代码后面添加一句判断:
else if($orderby == 'custom') $ordersql = " ORDER BY field(arc.id,$idlist)";OK,已经完成了百分之九十九了;最后一步打开include/taglib/channel/specialtopic.lib.php文件,大约在61行,将
default改为
custom现在更新下专题页面,文档排序是不是和后台输入的一样咯!
本文出自 “逆袭逐风” 博客,请务必保留此出处http://windchaser.blog.51cto.com/5742634/1248827
相关文章推荐
- dede专题节点文章按id,点击等类型排序
- dede(织梦)专题节点排序方法
- 织梦自定义专题节点容器模板修正
- 织梦DedeCMS让{dede:list}标签支持weight权重排序、flag
- 织梦模板修改{dede:list}标签后,可支持权重排序、flag标签功能
- 按顺序排列id, 我想这是可以支持打数据量的办法了。重新排序140万数据需要200多秒。今天总算升级到了4条裤头子+
- 织梦dedecms 在会员中心或后台 隐藏特定字段,部分或个别自定义字段的方法
- 织梦dede后台怎么查找文章内容关键词
- 排序查找一____顺序方法输出
- DEDECMS织梦自定义文章排序
- 织梦搜索结果增加dede:type、dede:arclist、dede:channelartlist、dede:tag等标签支持
- 【转】Rancher 2.0 里程碑版本:支持添加自定义节点!
- 织梦联动地区后台自定义表单列表中显示为数字的真正解决方法
- 织梦dedecms自定义文章排序weight用法
- aceAdmin fuelux tree 从后台获取数据,并设置节点ID等属性
- where id in 排序 按in的顺序排
- sort排序(以ASCII码顺序输出列表)
- 带有头指针的链表的 创建 输出 查找 删除 释放 排序(冒泡排序)功能实现(尾插法(自动记录最后一个节点))
- 在Iframe判断ExtJs tree控件选中的节点id并且传输到后台
- 根据id查询所有子节点/父节点,mysql 以及ssm前后台处理流程