zoukankan      html  css  js  c++  java
  • 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 内容列表处理程序

  • 相关阅读:
    lambda函数用法
    Appium基础篇-元素定位
    python生成测试报告
    jmeter 设置中文
    jmeter bin下常用目录
    高效求幂运算
    欧几里德算法(求最大公因数)
    二分查找
    最大子序列和问题
    秋游小记
  • 原文地址:https://www.cnblogs.com/weibo806/p/5010722.html
Copyright © 2011-2022 走看看