欢迎来到酱油妹!织梦模板,dede模板下载,织梦cms模板,免费网站模板下载站

酱油妹

织梦CMS自概念文章排序

企业模板

上次做个站需要文章自概念排序,网上找了下,有结果不过不完整,特记录了下来,与大伙离别
标签dede:arclist的排序是通过orderby来指定的,如下:
{dede:arclistorderby=’排序字段’}
{/dede:arclist}
orderby=’sortrank’文档排序方法
§orderby=’hot’或orderby=’click’表示按点击数排列
§orderby=’sortrank’或orderby=’pubdate’按出版时间排列
§orderby=’near’
§orderby==’lastpost’按最后评论时间
§orderby==’scores’按得分排序
§orderby=’id’按文章ID排序
§orderby=’rand’随机获得指定条件的文档列表而能给orderby赋值的只能是上面列出的值,也就是说dede:arclist标签只能根据上面列出的字段排序。
那如何才能根据自概念的字段排序呢?倘若我目前在dede_archives表里面添加了一个字段orderid,我想根据这个字段排序。直接如此写:{dede:arclistorderby=’orderid’}是不可以的。那应该如何修改?一、数据库操作:
用MYSQL的管理工具或者其他,修改dede_archives表结构,添加一列orderid字段二、修改后台文件
1、打开dede/article_add.php//修改代码文件
把187-191行,修改为以下代码:
$query=”INSERTINTO`dede_archives`(id,typeid,typeid2,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’,'$typeid2′,’$sortrank’,'$flag’,'$ismake’,'$channelid’,'$arcrank’,'$click’,'$money’,
‘$title’,'$shorttitle’,'$color’,'$writer’,'$source’,'$litpic’,'$pubdate’,'$senddate’,
‘$adminid’,'$notpost’,'$description’,'$keywords’,'$filename’,'$adminid’,'$orderid’);”;
2、打开dede/article_edit.php//修改代码文件
在191行的dutyadmin=’$adminid’之后加逗号,
回车换行加入下面代码:orderid=’$orderid’
3、打开dede/templets/article_add.htm//修改模板文件
4、打开dede/include/arc.listview.class.php
找到600行
把if(ereg('hot|click|lastpost',$orderby))改为if(ereg('hot|click|lastpost|orderid',$orderby))
找到134行,回车增加一行,加入以下代码:
<tablewidth=”800″border=”0″cellspacing=”0″cellpadding=”0″>
<tr>
<tdwidth=”90″style=”color:#F00″>排序网站权重:</td>
<tdcolspan=”3″><inputtype=’text’name=’orderid’value=’0′style=’width:100px;’/>(请填写数字,越大越靠前)</td>
</tr>
</table>
4、打开dede/templets/article_edit.html//修改模板文件
到131行,回车增加一行,加入以下代码:
<tablewidth=”800″border=”0″cellspacing=”0″cellpadding=”0″>
<tr>
<tdwidth=”90″style=”color:#F00″>排序网站权重:</td>
<tdcolspan=”3″><inputtype=’text’name=’orderid’value=’<?phpecho$arcRow["orderid"]?>’style=’width:100px;’/>(请填写数字,越大越靠前)</td>
<td></td>
</tr>
</table>
PS:第3、4步骤是照顾不太会HTML语言的没有经验的人们的,假如你是老手可以自己决定添加地方。三、前台文件操作:
1、打开include/arc.listview.class.php//修改代码文件
到558行,回车增加一行,加入以下代码:
elseif($orderby==”orderid”){
$ordersql=”orderbyarc.orderid$orderWay”;//orderid为dede_archives表里面自己添加的字段
}
2、打开include/taglib/arclist.lib.php//修改代码文件
到233行,回车增加一行,加入以下代码:
elseif($orderby==’orderid’)$ordersql=”orderbyarc.orderid$orderWay,arc.id$orderWay”;
如此就能达成自概念字段的操作了,UTF-8版也可以类似修改即可。四、HTML模板调用如下:
{dede:arclisttypeid=’2′row=’11′titlelen=’42′orderby=’orderid’orderway=’desc’}
……………..
{/dede:arclist}以上是提供的办法,通过此办法顺利达成想要的结果,完全可行,假如您也需要,可以一试。原文http://hi.baidu.com/xlpu/blog/item/7c840c377a7c77d1a2cc2b0a.html

经过个人测试此办法确实可以,不过这部分都要改到程序让非常多不懂程序的站长非常为难。还有一种办法可以不需要改程序达成排序的办法。
在编辑文章的时候的高级参数里有个文章排序,可以通过这个功能达成排序,先置顶的会排在后置顶的后面,如此就达成排序了。
前面介绍的是给DEDE标签arclist增加排序功能。目前介绍一下给DEDElist标签增加自概念排序的功能。 自概念排序的字段是大家在后台模型中增加的。其中涉及的文件还是上面有提到的arc.listview.class.php文件。在arc.listview.class.php文件中找到约558行处,回车换行加上以下代码
elseif($orderby=="paixu"){
$ordersql="orderbypaixu$orderWay";//paixu为自概念排序字段
}
然后找到约597行,将代码
//假如不需要默认的sortrank或id排序,用联合在线查询(数据量大时很缓慢)
if(ereg('hot|click|lastpost',$orderby))改成
//假如不需要默认的sortrank或id排序,用联合在线查询(数据量大时很缓慢)
if(ereg('hot|click|lastpost|paixu',$orderby))
在前台调用用以下方法
{dede:listpagesize='5'orderby='paixu'orderway='asc'}
……………………
{/dede:list}


希望以上内容可以解决您的问题!
如有其他问题欢迎大家一起交流学习!
作者:酱油妹 来源:互联网 关注: 时间:2021-01-13 08:47
版权声明:凡注明来源为www.jiangyoumei.com的均为本站原创,转载请注明来源。
本文网址:http://www.jiangyoumei.com/jiaocheng/jiqiao/20210114/10995.html
►凡本站提供教程均已验证教程的准确性。
►为提高用户在织梦后台添加栏目的灵活性(可随意添加/删除栏目),并保持(管理后台添加/删除栏目)与前端网站栏目的一致,本站模板中栏目均未固定,用户直接搜索typeid=''并替换''中的数字为所需栏目id即可。
►本站提供各种类型织梦模板!希望在这里找到喜欢的。下载本站模板,用户直接替换相关文字和图片即可。
►本站仅提供织梦模板即(DEDE模板),(除另外说明)均不带织梦安装程序及数据,用户直接覆盖默认模板即可。
►本站所有资源(包括源码、模板、插件等)仅供学习与参考,请勿用于商业用途。
►如有其他问题,请加网站客服QQ(375750496)进行交流。
相关织梦教程
在线客服

织梦模板 整站模板 新手教程 使用技巧