织梦设置栏目列表排序方式

标签dede:arclist的排序是通过orderby来指定的,如下:

{dede:arclist orderby=’排序字段’ }

{/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:arclist orderby=’orderid’ }是不行的。那应该怎样修改?

一、数据库操作:

用MYSQL的管理工具或者其他,修改dede_archives表结构,添加一列orderid字段

二、修改后台文件

1、打开dede/article_add.php     //修改代码文件

把187-191行,修改为以下代码:

$query = ”INSERT INTO `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’ copyright www.dedecmsmuban.com

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行,回车增加一行,加入以下代码:

<table width=”800″ border=”0″ cellspacing=”0″ cellpadding=”0″>

<tr> www.dedecmsmuban.com

<td width=”90″ style=”color:#F00″> 排序权重:</td>

<td colspan=”3″><input type=’text’ name=’orderid’ value=’0′ style=’width:100px;’ />(请填写数字,越大越靠前)</td>

</tr>

</table>

4、打开dede/templets/article_edit.html    //修改模板文件

到131行,回车增加一行,加入以下代码:

<table width=”800″ border=”0″ cellspacing=”0″ cellpadding=”0″>

<tr>

<td width=”90″ style=”color:#F00″> 排序权重:</td>

<td colspan=”3″><input type=’text’ name=’orderid’ value=’<?php echo $arcRow["orderid"]?>’ style=’width:100px;’ />(请填写数字,越大越靠前)</td>

<td></td>

</tr>

</table>

PS:第3、4步骤是照顾不太会HTML语言的新手们的,如果你是老手可以自己决定添加位置。

三、前台文件操作:

1、打开include/arc.listview.class.php     //修改代码文件

到558行,回车增加一行,加入以下代码:

else if($orderby==”orderid”) {

$ordersql = ” order by arc.orderid $orderWay”; //orderid为dede_archives表里面自己添加的字段

}

2、打开include/taglib/arclist.lib.php     //修改代码文件

到233行,回车增加一行,加入以下代码:

else if($orderby == ’orderid’) $ordersql = ” order by arc.orderid $orderWay,arc.id $orderWay”;

这样就能实现自定义字段的操作了,UTF-8版也可以类似修改即可。

四、HTML模板调用如下:

{dede:arclist typeid=’2′ row=’11′ titlelen=’42′ orderby=’orderid’ orderway=’desc’}

……………..

{/dede:arclist}

时间: 2024-10-02 20:05:55

织梦设置栏目列表排序方式的相关文章

织梦生成栏目列表后,前台访问空白,0kb文件

解决方法 打开 /include/arc.listview.class.php 找到 $this->CountRecord(); 如果这一行只有这一句代码话,那就把它改成 if(empty($this->TotalResult)) $this->CountRecord(); 原文地址:https://www.cnblogs.com/dedevip/p/9902784.html

(转)织梦后台模块列表不显示的原因以及四种解决方法

最近,kdchxue在学习织梦的建站,可是遇到了这样的问题,织梦的后台模块列表没有办法显示.kdchxue在网上一搜,发现出现这样的原因的用户可不是少数,于是小编在网上冲浪了一般,结合自己的实际经验,给大家分析了织梦的后台模块列表无法显示的原因做了剖析,以及解决的方法! 虽然说织梦CMS是一款非常优秀的开源CMS程序,但在使用织梦DedeCMS的过程中,我们还是会遇到一些很恼火的事情,比如模块管理列表无法显示,无法对模块进行卸载,这个是非常影响心情的.造成织梦模块管理列表无法显示的原因,可能有很

织梦 {dede:list}列表按多种排序显示

orderby='sortrank' 文档排序方式 orderby='hot' 或 orderby='click' 表示按点击数排列 orderby='sortrank' 或 orderby='pubdate' 按出版时间排列 orderby='near' orderby=='lastpost' 按最后评论时间 orderby=='scores' 按得分排序 orderby='id' 按文章ID排序 orderby='rand' 随机获得指定条件的文档列表 orderby='scores' 按评

修改织梦默认栏目页、文章页URL命名规则

用织梦Dedecms建站,建议优化系统默认的URL结构,这样能简化网站目录深度,利于搜索引擎收录. 现在织梦的默认文章命名规则是 {typedir}/{Y}{M}/{D}/{aid}.html {typedir}代表的是上级目录 如我的网站http://www.dedeadmin.com/ 按照织梦默认的命名规则,一级栏目下生成的文章URL为 http://www.dedeadmin.com/skill/2010/826/1.html 二级目录下生成的文章URL为 http://www.dede

【转】织梦为栏目添加图片的方法

如我们一个栏目列表都用缩略图来表示,而不仅仅只是文字,如果没有这项功能会非常麻烦,网上有很多这方面的资料,但是都试过了有很多问题,自己研究一下,测试基本通过.新加字段 typeimg后台执行SQL: alter table `cn_arctype` add `typeimg` char(100) NOT NULL default ''; 涉及到文件: dede/catalog_add.php               dede/catalog_edit.php               de

dedecms织梦设置为动态静态页面和文章的方法

可能你会遇到这样的问题,有很多栏目全部要从动态变成静态,里面的文章也要静态化,如何更快捷的设置dede的静态化或者动态化呢? 我们可以运用sql语句来操作,后台--SQL命令行工具, SQL语句: DEDE整站动态化: 将所有文档设置为“仅动态”, update dede_archives set ismake=-1 将所有栏目设置为“使用动态页”, update dede_arctype set isdefault=-1 DEDE整站静态化: 将所有文档设置为“生成HTML”, update

织梦调用栏目、栏目内容代码

dedecms调用顶级栏目 {dede:channel type='top' currentstyle="<li class='on'><a href='~typelink~' ~rel~>~typename~</a></li>"} <li><a href='[field:typeurl/]' [field:rel/]>[field:typename/]</a></li> {/dede:ch

织梦顶级栏目不显示的解决方法

打开templets文件夹里的head.html模板 <div class="menu"> <ul> <li id="nvabar-item-index"><a href="/"><i class="icon-home"></i> 首页</a></li> {dede:type typeid='1'}<li id="n

织梦DEDE文章列表前面自动加递增数字标签

实现的办法很简单,只须要在序号递增的处所加上这段代码就行 [field:global runphp=""yes"" name=autoindex][/field:global] 完整代码如下: <ul > {dede:arclist row=""5"" titlelen=""30"" } <li><em>[field:global runphp=&qu