如何在DEDECMS织梦系统中自定义文章排序?
- 行业动态
- 2024-10-05
- 1
DEDECMS织梦自定义文章排序可以通过修改arclist标签的orderby和orderrule属性来实现。
DEDECMS织梦自定义文章排序
在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值排序。
通过以上步骤,您可以在织梦中自定义文章排序,请根据实际情况调整代码和参数,以满足您的需求。
本站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本站,有问题联系侵删!
本文链接:http://www.xixizhuji.com/fuzhu/109718.html