dedecms 权重排序问题
isweight='y' orderway='asc' orderby='weight'
依次进入根目录》dede 找到打开文件 album_edit.php
//找到更新数据库的SQL语句
$query = "
update `#@__archives` set
......
weight='$weight' //在后面加上权重变量
找到list解析文件 include/arc.listview.class.php
//排序方式
$ordersql = '';
if($orderby=="senddate" || $orderby=="id") {
$ordersql=" order by arc.id $orderWay";
}
else if($orderby=="hot" || $orderby=="click") {
$ordersql = " order by arc.click $orderWay";
}
else if($orderby=="lastpost") {
$ordersql = " order by arc.lastpost $orderWay";
} 发现排序规则里面并没有按照weight排序的判断,于是乎修改程序加入排序规则
//排序方式
$ordersql = '';
if($orderby=="senddate" || $orderby=="id") {
$ordersql=" order by arc.id $orderWay";
}
else if($orderby=="hot" || $orderby=="click") {
$ordersql = " order by arc.click $orderWay";
}
else if($orderby=="lastpost") {
$ordersql = " order by arc.lastpost $orderWay";
}
else if($orderby=="weight") {
$ordersql = " order by arc.weight $orderWay";
}
else {
$ordersql=" order by arc.sortrank $orderWay";
} 更改好在后台更新栏目html,新问题又来了,更新报错
Error infos: Unknown column 'arc.weight' in 'order clause'
Error sql: Select id From `dede_arctiny` arc where arc.arcrank > -1 And ( arc.typeid = '10' OR CONCAT(',', arc.typeid2, ',') like '%,10,%' ) order by arc.weight desc limit 0,10
根据错误信息查找代码,很快找到include/arc.listview.class.php第669行 为报错的sql语句,通过检查发现原来排序有两种查询,一个是单表查询一个是组合查询,而我们按weight排序需要进行组合查询,而进入组合查询的条件没有包含weight
修改条件大概在682行左右找到---》 if(ereg('hot|click|lastpost',$orderby)) 为 if(ereg('hot|click|lastpost|weight',$orderby)),
在快速属性编辑器里面也加上这个功能 /dede/archives_do.php
在754行左右 sql 更新语句后面加上权重变量 weight = '$weight'
接下来如果想把权重值现在在内容列表里面就在这些模板和程序里面修改了 便于直观和修改
/dede/themes/article_add.htm 模板
/dede/article_add.php 添加文章时的处理程序
/dede/themes/article_edit.htm 模板
/dede/article_edit.php 更改文章时的处理程序
/dede/themes/content_list.htm 数据库文档管理 内容列表 模板
/dede/content_list.php 内容列表处理程序
最新文章
- cpp 调用python
- 安装和使用Visual Studio 2013并进行简单的单元测试
- puppet 部署 horizon server 所需的参数和部署逻辑
- php发送http请求
- __block存储类型
- 使用EF 的简单的增删改查
- UCOS 信号量
- vs2012 发布网站丢失文件
- Codeforces 430B Balls Game(Two Pointers)
- PAT (Advanced Level) 1001. A+B Format (20)
- Linux添加硬盘和挂载
- MySQL innodb引擎下根据.frm和.ibd文件恢复表结构和数据
- UI---设置Activity背景为透明
- error: ‘module’ object has no attribute ‘_rebuild_tensor_v2’
- DataBaseDaoAbstract
- Domino 邮箱服务器接收不存在的邮箱账号的邮件
- [译] OpenStack Ocata 版本中的 53 个新功能盘点
- centos 7.2 安装mysql 修改 初始密码
- WebGL——水波纹特效
- 乘风破浪:LeetCode真题_010_Regular Expression Matching