当前位置:首页 > 行业动态 > 正文

如何在DEDECMS织梦系统中自定义文章排序?

DEDECMS织梦自定义文章排序可以通过修改arclist标签的orderby和orderrule属性来实现。

DEDECMS织梦自定义文章排序

如何在DEDECMS织梦系统中自定义文章排序?  第1张

在DEDECMS中,通过dede:arclist标签的orderby属性来指定排序方式,默认情况下,orderby只能接受有限的字段如sortrank、hot、click等,如果需要按照自定义字段进行排序,例如添加一个名为orderid的字段,则需要进行一些额外的操作和修改。

数据库操作

需要在数据库中添加一个新的字段,使用MySQL管理工具或其他工具,修改dede_archives表结构,添加一列orderid字段:

ALTER TABLE dede_archives ADD orderid INT NOT NULL;

修改后台文件

需要对几个后台文件进行修改,以便新的字段能够被识别和使用。

1、 :打开dede/article_add.php文件,找到第187191行,将代码修改为:

“`php

$query = "INSERT INTOdede_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’之后加逗号,并换行加入以下代码:

“`php

orderid=’$orderid’

“`

3、修改模板文件:打开dede/templets/article_add.htm和dede/templets/article_edit.html,分别在适当位置添加输入框以供用户输入orderid的值。

“`html

<table width="800" border="0" cellspacing="0" cellpadding="0">

<tr>

<td width="90" >排序权重:</td>

<td colspan="3"><input type="text" name="orderid" value="0" />(请填写数字,越大越靠前)</td>

</tr>

</table>

“`

4、 :打开dede/include/arc.listview.class.php文件,找到600行,将代码修改为:

“`php

if(ereg(‘hot|click|lastpost|orderid’, $orderby)) {

$ordersql = ($orderWay == "desc") ? "ORDER BY {$orderby} DESC" : "ORDER BY {$orderby} ASC";

} elseif (ereg(‘sortrank|pubdate|near|scores|id|rand’, $orderby)) {

$ordersql = ($orderWay == "desc") ? "ORDER BY {$orderby} DESC" : "ORDER BY {$orderby} ASC";

}

“`

5、增加排序选项:在134行之后增加以下代码:

“`php

$sortweight = "<table width="800" border="0" cellspacing="0" cellpadding="0">

<tr>

<td width="90" >排序权重:</td>

<td colspan="3"><input type="text" name="orderid" value="{$arcRow[‘orderid’]}" />(请填写数字,越大越靠前)</td>

</tr>

</table>";

“`

前台文件操作

需要修改前台文件以实现自定义字段的调用。

1、 :打开include/arc.listview.class.php文件,到558行,增加一行代码:

“`php

else if($orderby == ‘orderid’) {

$ordersql = "ORDER BY arc.orderid $orderWay"; //orderid为dede_archives表里面自己添加的字段

}

“`

2、 :打开include/taglib/arclist.lib.php文件,到233行,增加一行代码:

“`php

else if($orderby == ‘orderid’) $ordersql = "ORDER BY arc.orderid $orderWay, arc.id $orderWay";

“`

HTML模板调用

在HTML模板文件中,可以通过以下方式调用自定义排序字段:

{dede:arclist typeid='2' row='11' titlelen='42' orderby='orderid' orderway='desc'}
………
{/dede:arclist}

FAQs

Q1: 如何按照自定义字段进行降序排序?

A1: 在调用dede:arclist标签时,可以设置orderway='desc'来实现降序排序。

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

Q2: 如何在编辑文章时设置自定义排序字段的值?

A2: 在编辑文章的页面上,会有一个新增的输入框用于填写orderid字段的值,只需在该输入框中填写相应的数字即可,数字越大,文章在列表中的排序越靠前。

DEDECMS织梦自定义文章排序教程

DEDECMS(织梦)是一款功能强大的内容管理系统,广泛用于搭建各类网站,默认情况下,织梦的文章排序可能不符合您的需求,本文将详细介绍如何在织梦中自定义文章排序。

前提条件

已经安装并配置好DEDECMS。

了解基本的HTML和CSS知识。

步骤一:修改数据库

1、登录织梦后台管理。

2、进入“系统”菜单,选择“数据库”。

3、找到包含文章信息的数据库表(通常是dede_arc表)。

4、在“操作”列中,选择“结构”。

5、在弹出的表结构编辑页面,找到“sortid”字段。

6、将“sortid”字段的类型改为“文本”,并设置合适的长度。

7、点击“保存结构”按钮。

步骤二:修改文章模板

1、登录织梦后台管理。

2、进入“首页”菜单,选择“内容模板”。

3、找到您的文章列表模板文件,通常是list_article.html。

4、在模板文件中,找到文章排序的相关代码。

5、默认情况下,文章列表可能是按照id排序的,您需要修改为按照sortid排序。

6、修改代码如下:

<?php
// 获取当前页码
$page = empty($page) ? 1 : $page;
// 获取每页显示的文章数量
$pagesize = 10;
// 计算起始文章ID
$startid = ($page 1) * $pagesize;
// 获取文章列表
$dsql>SetQuery("SELECT id FROM dede_arc WHERE arcrank>0 ORDER BY sortid ASC");
$dsql>Execute();
$ids = $dsql>GetArray();
$ids = implode(',', $ids);
// 分页处理
$dsql>SetQuery("SELECT * FROM dede_arc WHERE arcrank>0 AND id IN ($ids) ORDER BY sortid ASC LIMIT $startid, $pagesize");
$dsql>Execute();
?>

7、保存模板文件。

步骤三:更新文章排序字段

1、登录织梦后台管理。

2、进入“内容”菜单,选择“文章管理”。

3、找到需要修改排序的文章。

4、在文章编辑页面,找到“自定义属性”选项卡。

5、在“自定义属性”中,添加一个新的字段,名称为sortid,类型为“文本”。

6、设置每个文章的sortid值,以便按照您的需求排序。

7、保存文章。

步骤四:测试

1、在网站前端预览文章列表。

2、检查文章是否按照您设置的sortid值排序。

通过以上步骤,您可以在织梦中自定义文章排序,请根据实际情况调整代码和参数,以满足您的需求。

0