如何修改织梦cms中的arclist和list标签,以实现按权重weight排序?

avatar
作者
筋斗云
阅读量:0
要实现织梦CMS中arclist和list标签按权重weight排序,可以在标签中添加orderby属性,并设置为"weight"。,,,``html,{dede:arclist typeid='1' orderby='weight'},``

在织梦CMS中,实现arclist和list标签按权重weight排序的方法主要涉及对系统文件的修改,以下是详细的步骤和方法:

一、dede:list 标签按权重weight排序的修改方法

1、找到并修改arc.listview.class.php文件

如何修改织梦cms中的arclist和list标签,以实现按权重weight排序?

定位到include\arc.listview.class.php文件。

在第727行左右添加权重排序代码:

```php

else if($orderby=="weight") {

$ordersql = " ORDER BY arc.weight $orderWay";

}

```

继续在该文件中查找如下代码段(大约在第778行):

```php

if(preg_match('/hot|click|lastpost/', $orderby))

```

修改为:

```php

if(preg_match('/hot|click|weight|lastpost/', $orderby))

```

2、调用示例

在模板中使用以下标签即可实现按权重排序:

```html

{dede:list orderby='weight' orderway='asc'}

```

二、dede:arclist 标签按权重weight排序的修改方法

1、找到并修改arclist.lib.php文件

定位到include\taglib\arclist.lib.php文件。

在大约第74行找到:

```php

$isweight = $ctag>GetAtt('isweight');

```

将其修改为:

```php

$weight = $ctag>GetAtt('weight');

```

在大约第327行找到:

```php

else if($orderby == 'id') $ordersql = " ORDER BY arc.id $orderWay";

```

在其下面添加一行:

```php

else if($orderby == 'weight') $ordersql = " ORDER BY arc.weight $orderWay";

```

2、调用示例

在模板中使用以下标签即可实现按权重排序:

```html

{dede:arclist orderby='weight'}

```

如果需要降序排列,可以添加orderway='desc'参数:

```html

{dede:arclist orderby='weight' orderway='desc'}

```

FAQs(常见问题解答)

问题1:为什么修改了arc.listview.class.php文件后,列表页还是没有按照权重排序?

答:请确保以下几点:

1、修改文件的位置和行数准确无误。

2、确保在模板调用时使用了正确的标签语法,如{dede:list orderby='weight' orderway='asc'}

3、检查是否有缓存文件存在,如果有,请删除缓存并重新生成页面。

问题2:如何在自定义字段上实现按权重排序?

答:如果您希望在自定义字段上实现按权重排序,可以按照以下步骤操作:

1、在数据库中为文章表(如dede_archives)添加一个新的字段,例如custom_weight

2、在模板调用时使用新字段进行排序,

```html

{dede:arclist orderby='custom_weight'}

```

3、如果需要在dede:list标签中实现,同样需要修改arc.listview.class.php文件,添加相应的排序判断代码。


织梦ARclist和List标签按权重Weight排序修改办法

1. 问题背景

在织梦(Dedecms)中,使用ARclist和List标签默认是按照文章的发布时间排序的,如果需要按照文章的权重(weight)排序,可以通过修改模板文件中的代码来实现。

2. 准备工作

确保你的织梦网站已经安装并正常运行。

打开织梦后台,确保文章的权重字段(weight)已正确设置。

3. 修改步骤

步骤一:找到模板文件

1、进入织梦后台,找到并复制你想要修改的模板文件的路径。

2、使用FTP客户端或其他文件传输工具登录到服务器,找到并打开该模板文件。

步骤二:定位ARclist或List标签

1、在模板文件中搜索<arclist><list>

2、定位到生成文章列表的部分。

步骤三:修改排序代码

1、找到生成列表的SQL查询语句。

2、在SQL查询语句中,将原来的排序条件修改为按照权重排序。

以下是一个示例代码修改:

原代码:

 SELECT * FROMdede_arctype ORDER BY aid DESC

修改后的代码:

 SELECT * FROMdede_arctype ORDER BY weight DESC

或者,如果你使用的是<list> 标签,修改方式类似:

原代码:

 SELECT a.id,a.title,a.onclick,a.addtime FROM dede_article a INNER JOIN dede_arctype b ON a.typeid=b.id WHERE a.arcrank>0 AND b.id={typeid} ORDER BY a.addtime DESC

修改后的代码:

 SELECT a.id,a.title,a.onclick,a.addtime FROM dede_article a INNER JOIN dede_arctype b ON a.typeid=b.id WHERE a.arcrank>0 AND b.id={typeid} ORDER BY a.weight DESC

步骤四:保存并预览

1、保存修改后的模板文件。

2、返回织梦后台,刷新相应的页面,预览修改后的效果。

4. 注意事项

确保修改的SQL查询语句符合你的数据库结构。

修改前备份模板文件,以防万一出现错误。

如果你对SQL语句不熟悉,请谨慎操作,或者寻求专业人士的帮助。

5. 结束

通过以上步骤,你应该能够成功地将织梦中的ARclist和List标签按照文章的权重进行排序。

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!