正文

zblog分類模板添加自定義排序教程

Zblog資源類主題模板涉及的接口較多,而且目前上線的主題中基本都有一個常用的功能,那就是分類模板頁的排序,可以自由組合,按照時間、瀏覽、評論等等,部分主題模板還可能設計了免費、收費、VIP等等功能,所以這個排序是必要的。參考了百度和幾位朋友的介紹算是實現(xiàn)了,但是跟可風大佬聊天的時候順帶說了這個事,因為蕞初的排序有一部分代碼是可風寫的,然后大佬告訴我有更簡介高效的代碼,好吧,有技術就是任性,不多說,直接上代碼。

zblog分類模板添加自定義排序教程(圖1)

首先掛載接口

需要在主題核心文件(include.php)中掛載接口

Add_Filter_Plugin(&39;Filter_Plugin_LargeData_Article&39;,&39;LargeData_Article&39;);

然后接口對應代碼:

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

其次在模板添加代碼:

找到主題分類模板(catalog.php)文件,在適當?shù)奈恢眉尤肱判虼a:

<formid="sort-list"class="filter-tag">
<spanclass="filter-l"><iclass="iconfont-paixu"></i>排序</span>
<liclass="filterorder">
<ahref=""rel="nofollow"class="{ifGetVars(&39;order&39;,&39;GET&39;)==&39;newest&39;||!GetVars(&39;order&39;,&39;GET&39;)}current{/if}"data-type="newest">蕞新<iclass="iconfont-chevron-{ifGetVars(&39;sort&39;,&39;GET&39;)}up{else}down{/if}"></i></a>
<ahref=""rel="nofollow"class="{ifGetVars(&39;order&39;,&39;GET&39;)==&39;view&39;}current{/if}"data-type="view">瀏覽<iclass="iconfont-chevron-{ifGetVars(&39;sort&39;,&39;GET&39;)}up{else}down{/if}"></i></a>
<ahref=""rel="nofollow"class="{ifGetVars(&39;order&39;,&39;GET&39;)==&39;comment&39;}current{/if}"data-type="comment">評論<iclass="iconfont-chevron-{ifGetVars(&39;sort&39;,&39;GET&39;)}up{else}down{/if}"></i></a></li>
{if$zbp->Config(&39;system&39;)->ZC_STATIC_MODE!=&39;REWRITE&39;}<inputtype="hidden"name="cate"value="{$category->ID}">{/if}
<inputtype="hidden"name="order"value="{GetVars(&39;order&39;,&39;GET&39;)}">
<inputtype="hidden"name="sort"value="{php}echo(int)GetVars(&39;sort&39;,&39;GET&39;){/php}">
</form>

添加之后css樣式自己修改,圖標采用的是阿里圖標庫,如果您的奧森圖標或者其他請自行更改<i class="icon font-paixu"></i>代碼,值得注意的是 name="cate" 默認是指分類模板,如果是標簽模板頁需要修改成 name="tags" 就可以了。

蕞后添加js代碼:

找到主題模板自帶的js文件,在蕞后的位置添加如下代碼,如果是放在html里,記得首位加上<script>如下代碼</script>

//分類排序
!function(f){
vara=f.find(&39;.ordera&39;),o=f.find(&39;[name=order]&39;),s=f.find(&39;[name=sort]&39;);
a.click(function(){
varv=$(this).data(&39;type&39;);
if(v===o.val()){
s.val(s.val().toString()===&39;1&39;?0:1);
}else{
s.val(&39;&39;===o.val()&&!$(this).index()?1:0);
o.val(v);
}
f.submit();
returnfalse;
})
}($(&39;sort-list&39;))

效果如開篇的圖,大功告成。

來源:李洋博客

聲明:月季網致力月季產業(yè),部分文字和圖片來源網絡,版權歸原作者,如有侵權請聯(lián)系刪除。

月季網

月季網