zblog教程 内容:90

zblog分类 / 最新 / 浏览 / 评论 / 排序教程

  • 查看作者
  • 现在很多高端cms主题分类页基本都有做排序,比较常见组合有,最新时间,最多评论,最多浏览,等等...如果你现在用的免费模板,没有这个功能,不妨自己动手试一试,不多说,代码下方已整理好。开干吧。

    zblog分类 / 最新 浏览 评论 排序教程 zblog 第1张图片

    模板挂载接口

    1、主题文件“include.php”挂载下方接口

    Add_Filter_Plugin('Filter_Plugin_LargeData_Article', 'LargeData_Article');

    2、接口代码放置“include.php”代码最后

    //分类模板排序
    function LargeData_Article($select, $w, &$order, $limit, $option, $type){
        global $zbp;
        switch($type){
            case 'category':
            //分类模板标签,此段可删除
            case 'tag':
            //标签模板标签,此段可删除
                $pagebar = $option['pagebar'];
                $sort = GetVars('sort','GET') ? 'ASC' : 'DESC';
                switch($o = GetVars('order','GET')){
                    case 'view':
                        $order = array('log_ViewNums' => $sort);
                        break;
                    case 'comment':
                        $order = array('log_CommNums' => $sort);
                        break;
                    case 'newest':
                    default:
                        $order = array('log_PostTime' => $sort);
                        $sort == 'DESC' && $o = null;
                        break;
                }
                if ($o){
                    $pagebar->UrlRule->__construct($zbp->option['ZC_CATEGORY_REGEX'] .($zbp->Config('system')->ZC_STATIC_MODE != 'REWRITE' ? '&' : '?'). 'order={%order%}&sort={%sort%}');
                    $pagebar->UrlRule->Rules['{%order%}'] = $o;
                    $pagebar->UrlRule->Rules['{%sort%}'] = (int)GetVars('sort','GET');
                }
                break;
        }
    }

    PS:模板挂载接口,和接口代码都是放置在“include.php”里,只是位置不一样。不要混淆了

    分类模板html代码

    <form id="sort-list" class="filter-tag">
        <span class="filter-l"><i class="icon font-paixu"></i>排序</span>
        <li class="filter order">
            <a href="" rel="nofollow" class="{if GetVars('order','GET') == 'newest' || !GetVars('order','GET')}current{/if}" data-type="newest">最新<i class="icon font-chevron-{if GetVars('sort','GET')}up{else}down{/if}"></i></a>
            <a href="" rel="nofollow" class="{if GetVars('order','GET') == 'view'}current{/if}" data-type="view">浏览<i class="icon font-chevron-{if GetVars('sort','GET')}up{else}down{/if}"></i></a>
            <a href="" rel="nofollow" class="{if GetVars('order','GET') == 'comment'}current{/if}" data-type="comment">评论<i class="icon font-chevron-{if GetVars('sort','GET')}up{else}down{/if}"></i></a> 
        </li>
        {if $zbp->Config('system')->ZC_STATIC_MODE != 'REWRITE'}<input type="hidden" name="cate" value="{$category->ID}">{/if}
        <input type="hidden" name="order" value="{GetVars('order','GET')}">
        <input type="hidden" name="sort" value="{php}echo (int)GetVars('sort','GET'){/php}">
    </form>

    分类模板JS代码

    //分类排序
    !function(f){
      var a=f.find('.order a'),o=f.find('[name=order]'),s=f.find('[name=sort]');
      a.click(function(){
         var v=$(this).data('type');
          if(v===o.val()){
          s.val(s.val().toString()==='1'?0:1);
        }else{
          s.val(''===o.val() && !$(this).index() ? 1 : 0);
          o.val(v);
        }
        f.submit();
        return false;
      })
    }($('#sort-list'))

    PS:放置主题分类模板请引用到分类js文件里,如果没有的话,也可以直接放模板最后面。格式:<script>这里放以上JS代码</script>

    请登录之后再进行评论

    登录
    最新评论
    0U币
    已有914人浏览, 浏览收益0, 礼物收益0, 打赏收益0, 点赞收益0, 广告收益0, 获得总收益0U币
    也可开通会员全场文章免费看
    免费教程