dedecms后台搜索关键字排序

2012-11-09 15:34 来源:www.chinab4c.com 作者:dedecms专家

     dedecms后台搜索关键字排序,这个可以说是在这么长时间对dedecms二次开发遇到的一个官方的bug,dedecms后台搜索关键字管理的地方,我们如果想按搜索数量,以及搜索日期。或者是结果数量来排序,这个时候发现dedecms的后台就非常不好用。

   为了增强dedecms后台关键字排序功能。我们对dedecms做以下的修改。

   1:if(empty($sortby)) $sortby ='desc';
if(!isset($typeid)){
     $typeid ='-1';
}else{
   
     $typeid =intval($_REQUEST['typeid']);

}
if($sortby=='desc'){$sortby='asc';}else{$sortby='desc';}
$where = '';
if($typeid!='-1'){
    $where = ' where 1 and typeid=\''.intval($_GET['typeid']).'\'';
}

 2:模板里面

  var orderby = '<?php echo $orderby?>';
var sortby = '<?php echo $sortby?>';

  function ReloadPage(ordertype,sortby){
    orderby = ordertype;
    var listArea = $Obj('rslist');
    var errMsg = "网络通信出错!<br>[<a href=\"javascript:ReloadPage('"+ordertype+"','"+sortby+"')\"><u>点击此重新加载列表</u></a>]";
  var myajax = new DedeAjax(listArea,true,true,"",errMsg,"正在加载...");
  <?php if(isset($_GET['typeid'])){
  ?>
  myajax.SendGet("search_keywords_main.php?dopost=getlist&pageno="+pageno+"&sortby="+sortby+"&orderby="+ordertype+"&typeid="+<?php echo $typeid;?>);
  <?php
  }else{?>
  myajax.SendGet("search_keywords_main.php?dopost=getlist&pageno="+pageno+"&sortby="+sortby+"&orderby="+ordertype);
  <?php
 
  }?>
 
}

 

3:sql语句里面

  $row = $dsql->GetOne("SELECT COUNT(*) AS dd FROM `dede_search_keywords` $where ");

  if($orderby=='result') $orderby = $orderby." ".$sortby;
    else $orderby = $orderby." ".$sortby;
   
    $typeid = !isset($_REQUEST['typeid']) ? '-1' : intval($_REQUEST['typeid']);
   
    $where = '';
    if($typeid!='-1'){
        $where = '  where 1 and typeid=\''.intval($typeid).'\'';
    }
   
    $dsql->SetQuery("SELECT * FROM dede_search_keywords $where ORDER BY $orderby LIMIT $start,$pagesize ");

   4:模板里面js

    <td width='15%'><a href='#' onclick=\"ReloadPage('lasttime','".$sortby."')\"><u>最后搜索时间</u></a></td>

    以上操作就实现了dedecms后台关键字BUG的修复。

    来源:http://www.chinab4c.com