专业的织梦模板下载平台,更多精品模板,超低模板价格,网站建设如此简单!-互创湾
当前位置:主页 > 建站教程 > 二次开发 >

织梦列表页list标签调用支持flag属性;weight权重排序解决方法

发布时间:2017-05-04 来源:互创湾 浏览: 关键词:
织梦列表页list标签支持flag属性方法:(注:红色标记部分就是修改处)
1、打开include/arc.listview.class.php
2、找到 var $remoteDir;
      替换 var $remoteDir;
               var $flag;
5、找到下方代码并注释
//        if($this->TotalResult==-1)
//        {
//            $cquery = "SELECT COUNT(*) AS dd FROM `dede_arctiny` arc WHERE ".$this->addSql;
//            $row = $this->dsql->GetOne($cquery);
//            if(is_array($row))
//            {
//                $this->TotalResult = $row['dd'];
//            }
//            else
//            {
//                $this->TotalResult = 0;
//            }
//        }
6、在253行左右找到$this->TotalPage = ceil($this->TotalResult/$this->PageSize);在前面添加如下代码:  
       /* flag */
 if($this->TotalResult==-1)
        {
foreach($this->dtp->CTags as $tagid=>$ctag)
{
$flag = $ctag->GetAtt('flag'); 
if($flag!='') {
$this->addSql .=   " and (arc.flag like '%{$flag}%') ";
            $cquery = "SELECT COUNT(*) AS dd FROM `dede_archives` arc WHERE ".$this->addSql;
            $row = $this->dsql->GetOne($cquery);
            if(is_array($row))
            {
                $this->TotalResult = $row['dd'];
            }
            else
            {
                $this->TotalResult = 0;
            }
        }
     /* flag end */       
7、在637行左右找到$ctag->GetAtt("orderway")
    替换$ctag->GetAtt("orderway"),
            $ctag->GetAtt("flag")
 
8、在712行左右function GetArcList($limitstart=0,$row=10,$col=1,$titlelen=30,$infolen=250,
    $imgwidth=120,$imgheight=90,$listtype="all",$orderby="default",$innertext="",$tablewidth="100",$ismake=1,$orderWay='desc',$flag='')中添加了$flag=''
9、在745行左右也就是"//排序方式"上面添加 :
        //添加flag标签
$whereFlag = "";
if($flag!='') {
$whereFlag = " and arc.flag like '%{$flag}%' ";
}
10、在799行左右 修改成  if(preg_match('/hot|click|lastpost|weight|flag/', $orderby))
11、标签调用:
  {dede:list flag='c' pagesize ='3'}
      {/dede:list}
  接下来{dede:list}标签就支持了flag属性的调用了。
 
织梦列表页list标签weight权重排序方法:(注:红色标记部分就是修改处)
1、打开include/arc.listview.class.php
2、找到 else if($orderby=="lastpost") {
            $ordersql = "  ORDER BY arc.lastpost $orderWay";
        }
   替换
        else if($orderby=="lastpost") {
            $ordersql = "  ORDER BY arc.lastpost $orderWay";
        }
       else if($orderby=="weight") {
            $ordersql = "  ORDER BY arc.weight $orderWay";
        }
        
3、找到
     //如果不用默认的sortrank或id排序,使用联合查询(数据量大时非常缓慢)
        if(preg_match('/hot|click|lastpost/', $orderby))
   替换
  //如果不用默认的sortrank或id排序,使用联合查询(数据量大时非常缓慢)
     if(preg_match('/hot|click|lastpost|weight/', $orderby))
4、找到$query = "SELECT id FROM `dede_arctiny` arc WHERE {$this->addSql} $ordersql LIMIT $limitstart,$row ";
      替换$query = "SELECT id FROM `dede_archives` arc WHERE {$this->addSql} $ordersql LIMIT $limitstart,$row ";
5、标签调用:
  {dede:list orderby='weight' pagesize ='3'}
    {/dede:list}
  接下来{dede:list}标签就支持了按权重排序的调用了。

 list标签支持flag属性效果图:
 
 

责任编辑:互创青年
共有人阅读,期待你的评论!评论
CopyRight © 2015-2016 互创湾模板网 版权所有  备案号:苏ICP备15051054号