织梦的likearticle相關标签支持随机排序orderby方法
{dede:arclistorderby=}
[field:title/]
更多精彩就在: 51免费论文网|www.jxszl.com
>{/dede:arclist}
orderby=sortrank文档排序方式
orderby=hot或orderby=click表示按点击数排列
orderby=sortrank或orderby=pubdate按出版时间排列
orderby=near
orderby=lastpost按最后评论时间
orderby=scores按得分排序
orderby=id按文章ID排序
orderby=rand随机获得指定条件的文档列表
但织梦{dede:likearticle}却没有orderby这个功能.下面是修改方法
likearticle标签增加orderby排序功能
打开/include/taglib/likearticle.lib.php,找到
if(empty($arcid)||$byabs==0){
$orderquery="orderbyarc.iddesc";
}
else{
$orderquery="orderbyABS(arc.id-".$arcid.")";
}
修改为
if($orderby==hot||$orderby==click)$orderquery="orderbyarc.click$orderWay";
elseif($orderby==sortrank||$orderby==pubdate)$orderquery="orderbyarc.sortrank$orderWay";
elseif($orderby==id)$orderquery="orderbyarc.id$orderWay";
elseif($orderby==near)$orderquery="orderbyABS(arc.id-".$arcid.")";
elseif($orderby==lastpost)$orderquery="orderbyarc.lastpost$orderWay";
elseif($orderby==scores)$orderquery="orderbyarc.scores$orderWay";
elseif($orderby==rand)$orderquery="orderbyrand()";
elseif($orderby==weight)$orderquery="orderbyarc.weightasc";//如果没有特定设置排序则按照权重先排序
else$orderquery="orderbyarc.sortrank$orderWay";
注意到排序是针对数字而言,因此只要这里就可以拓展成许多自定义排序,比如DedeCMS做商城时按照价格排序功能就可以这样做.商城arclist.likearticle标签增加价格排序
在上面代码最后I.行前增加I.行代码
elseif($orderby==trueprice)$ordersql="orderbyaddf.trueprice$orderWay";
arclist.likearticle标签增加主表自定义字段排序
实现自定义字段排序如{dede:arclistorderby=orderid}
数据库操作
用MYSQL的管理工具或者其他,修改dede_archives表结构,添加I.列orderid字段
后台文件操作
①修改article_add.php,改I.VIIIVII行,字段和接收文本的值
//保存到主表
$query="INSERTINTO`dede_archives`(id,typeid,typeidII,sortrank,flag,ismake,channel,arcrank,click,money,title,shorttitle,
color,writer,source,litpic,pubdate,senddate,mid,notpost,description,keywords,filename,dutyadmin,orderid)
VALUES($arcID,$typeid,$typeidII,$sortrank,$flag,$ismake,$channelid,$arcrank,$click,$money,
$title,$shorttitle,$color,$writer,$source,$litpic,$pubdate,$senddate,
$adminid,$notpost,$description,$keywords,$filename,$adminid,$orderid);";
②修改article_edit.php,在I.IXI.行
dutyadmin=$adminid
下面增加I.行
,orderid=$orderid
③修改article_add.htm和article_edit.html,这个自行琢磨哦(懂点HTML知识的都会哦)
前台文件操作
①修改include/arc.listview.class.php,在第VVI.行至VVV行处添加如下代码:
elseif($orderby=="orderid"){
$ordersql="orderbyarc.orderid$orderWay";
}
②修改VIXIV行代码,修改如下(此步骤是参考他人的,可以省略,个人测试了,不起作用)
if(ereg(hot|click|lastpost|orderid,$orderby))
③修改taglib里的arclist.lib.php,IIIIIV行添加如下代码:
elseif($orderby==orderid)$ordersql="orderbyarc.orderid$orderWay";
这样就能实现自定义字段的操作了.HTML模板调用如下:
{dede:arclistorderby=orderidorderway=desc}
这里是HTML部分
{/dede:arclist}
原文链接:http://www.jxszl.com/biancheng/dedecms/76443.html