DedeCMS让{dede:list}标签支持weight权重排序、flag属性

  • 大西北织梦模板下载网欢迎你的到来!我们只专注于织梦模板
rss
 
首页 > 织梦建站教程 > 正文

DedeCMS让{dede:list}标签支持weight权重排序、flag属性
2013-10-09 15:55:53   来源:   评论:0 点击:

修改{dede:list}标签后,可支持权重排序、flag标签功能在开发过程中客户需要在列表中支持权重排序,和推荐功能。经过不断的摸索,终于将{dede:list}标签修改成功。使用方法:{dede:listorderby='weight&#...
修改{dede:list}标签后,可支持权重排序、flag标签功能

 

在开发过程中客户需要在列表中支持权重排序,和推荐功能。经过不断的摸索,终于将{dede:list}标签修改成功。 
使用方法:{dede:list   orderby='weight' orderway='asc' flag='c'  
orderby='weight' orderway='asc'  与权重排序、从小到大。(与{dede:arclist}标签的使用方法相同) 
flag='c'  推荐标识(与{dede:arclist}标签的使用方法相同) 

好了,不多讲了,现在放上修改后源码,给需要的朋友们! 
 include.rar (9 K) 下载次数:64  修改后代码,直接复制到根目录下即可! 
这是utf-8编码的,使用GB2312的朋友可以自已转码一下! 
更新信息:2012-3-26. 
此修改后的文件在栏目页面时会与{arclist} 的 flag 标签有兼容问题。 
如果栏目列表页只显示列表信息则没有问题。 
但与{arclist} 的 flag标签和用时,则{list}标签将不会显示具体内容。 

特此声明。有时间我会再研究一下并做修改~~~谢谢大家的支持!

另一种解决方案:只针对 flag="p" 无图则不显示缩略图 http://my.oschina.net/lyx2012/blog/58046

 

{dede:list pagesize=18 orderby=pubdate titlelen=26}
        [field:array runphp='yes']
                @me=strpos(@me['litpic'],'defaultpic')?'':"

  • @me[title]
  • ";
            [/field:array]
    {/dede:list}


     

    http://bbs.dedecms.com/455219-1.html

     

    1、找到"根目录\include\arc.listview.class.php"文件。

    2、修改代码:在文件第727行处添加按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";
            }

    3、再在第778行处找到此段代码

      //如果不用默认的sortrank或id排序,使用联合查询(数据量大时非常缓慢)
         if(preg_match('/hot|click|lastpost
    |weight/', $orderby))

      并添加红色部分内容。

    4、标签调用:

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

      这样{dede:list}标签就支持了按权重排序的调用,并且动静态状态下测试均成功!

     

    5、将文件中原有的这部分注释掉

    //        if($this->TotalResult==-1)
    //        {
    //            $cquery = "SELECT COUNT(*) AS dd FROM `#@__arctiny` arc WHERE ".$this->addSql;
    //            $row = $this->dsql->GetOne($cquery);
    //            if(is_array($row))
    //            {
    //                $this->TotalResult = $row['dd'];
    //            }
    //            else
    //            {
    //                $this->TotalResult = 0;
    //            }
    //        }

    6、在238行左右  $this->dtp->LoadTemplate($tempfile);下添加如下代码:

        
            foreach($this->dtp->CTags as $tagid=>$ctag)
            {     
                    $flag = $ctag->GetAtt('flag');
                    if($flag!='') {
                    $this->addSql .=  " and arc.flag like '%{$flag}%'";
                    }
            }
            if($this->TotalResult==-1)
            {    //修改了
           
                $cquery = "SELECT COUNT(*) AS dd FROM `#@__archives` arc WHERE ".$this->addSql;
                $row = $this->dsql->GetOne($cquery);
             
                if(is_array($row))
                { 
                    $this->TotalResult = $row['dd']; 
                }
                else
                {
                    $this->TotalResult = 0;
                }
               
            }
           

    7、在647行左右$ctag->GetAtt("orderway"),下面添加一行:

          $ctag->GetAtt('flag')

    8、在721行左右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、在754行左右也就是排序方式上面添加 :

       
            //添加flag标签
            $whereFlag = "";
            if($flag!='') {
                $whereFlag = " and arc.flag like '%{$flag}%'";
            }
           

    10、在813行左右 修改成  if(preg_match('/hot|click|lastpost|weight|flag/', $orderby))

         接着在下面的$query  sql语句中WHERE {$this->addSql} 后面添加 {$whereFlag}

    11、847行左右   $query sql语句中WHERE arc.id in($idstr)后面添加 {$whereFlag} 

     

     

    flag属性就添加成功了

    相关热词搜索:DedeCMS dede:list 标签

    上一篇:dedecms去除所有版权方法全解
    下一篇:最后一页

    延伸阅读:
    • ·织梦文章站模板:紫砂艺术网站模板(2011-08-24)
    • ·dedecms减肥药模板,dedecms免费减肥药广告模板(2011-11-24)
    • ·织梦机械行业企业模板,dedecms利于优化的企业模板(2011-11-30)
    • ·dedecms古典文章模板,织梦dedecms5.7清爽文章站模板(去除了密码)(2011-12-01)
    • ·精美的织梦下载站模板:当下软件园dedecms模板完美版(2011-12-08)
    频道总排行
    • 织梦模板如何安装?(新手版)
    • 如何实现实现织梦首页分页
    • 价值280元的织梦建站教程18集
    • (推荐)织梦cms仿站视频教程
    • 织梦仿站教程:仿站必备知识(
    • 织梦模板修改系列教程:经典案
    • 织梦模板修改系列教程:模板安
    • 织梦模板修改之如何调用特定栏
    • 织梦模板修改系列教程:模板头
    • 织梦模板修改系列教程:首页侧
    频道本月排行
    • 82织梦模板如何安装?(新手版)
    • 37dedecms去除所有版权方法全解
    • 33用dede建站如何更改后台登陆界面?
    • 32如何实现实现织梦首页分页
    • 27织梦模板修改系列教程:模板安装(第二节)
    • 25价值280元的织梦建站教程18集(大西北织梦免费模板下载网...
    • 20织梦仿站教程:仿站必备知识(仿企业站第一节)
    • 17dedecms如何去掉模板幻灯片上的文字
    • 16织梦仿站实例教程第一讲:目标网站确定和其网站模板源码下载
    • 16织梦模板修改系列教程:模板头部介绍和更改(第三节)

    你可能感兴趣的:(织梦常见问题)