muban大师 发表于 2020-11-1 13:01:17

拓展channel标签实现limit功能

由于网站栏目多次需要调用同一栏目下的栏目比如顶级栏目6 下级栏目5.4.3.2.1 需要分两次分别调出543和21 感觉channel就比较吃力了全部写SQL又太多,可能是我还不知道有其他方法吧。row调用不出这种效果所以就把row改为了Limit用法了比较方便 修改文件include\taglib/下面的channel.lib.php 在函数lib_channel里面加上
        //limit条件
          $limit = trim(eregi_replace('limit','',$limit));
          if($limit!='') $limitsql = " limit $limit ";
          else $limitsql = " limit 0]7 ";
       
          $orwhere = '';
          if(isset($orwheres)) {
                $orwhere = join(' And ',$orwheres);
                $orwhere = ereg_replace("^ And",'',$orwhere);
                $orwhere = ereg_replace("And[ ,{1,}And",'And ',$orwhere);
          }
          if($orwhere!='') $orwhere = " where $orwhere ";//二次开发
       
       
       
        --------------------------------------------------------------------------------
       
        把上面的代码,添加到函数lib_channel(具体位置为:)
       
        function lib_channel(&$ctag,&$refObj)
        {
          global $dsql;
       
          $attlist = "typeid|0]reid|0]row|100]col|1,type|son,currentstyle|,cacheid|";
          FillAttsDefault($ctag->CAttribute->Items,$attlist);
          extract($ctag->CAttribute->Items, EXTR_SKIP);
          $innertext = $ctag->GetInnerText();
          $line = empty($row) ? 100 : $row;
       
        ----------------------------------------------------------
        这段代码后面
        所有查询条件的limit 0]$row改为$limitsql OK 保存
页: [1]
查看完整版本: 拓展channel标签实现limit功能