zblog文章分类模板实现自定义筛选排序的教程
时间:2022年03月19日
/来源:网络
/编辑:佚名
78模板网分享zblog分类模板添加自定义排序的教程
资源类主题模板一般实现分类自定义排序,目前已经完成了基本功能设置,正在做适应的兼容,资源类主题模板涉及的接口较多,而且目前上线的主题中基本都有一个常用的功能,那就是分类模板页的排序,可以自由组合,按照时间、浏览、评论等等,部分主题模板还可能设计了免费、收费、VIP等等功能,所以这个排序是必要的。
zblog分类模板添加自定义排序的教程步骤如下
1.首先挂载接口
需要在主题核心文件(include.php)中挂载接口
PHP
Add_Filter_Plugin('Filter_Plugin_LargeData_Article', 'LargeData_Article');
2.然后接口对应代码:
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;
}
}
3.在模板添加调用代码:
找到主题分类模板(catalog.php)文件,在适当的位置加入排序代码:
PHP
<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>
添加之后css样式自己修改,图标采用的是阿里图标库,如果您的奥森图标或者其他请自行更改<i class="icon font-paixu"></i>代码,值得注意的是 name="cate" 默认是指分类模板,如果是标签模板页需要修改成 name="tags" 就可以了。
4.最后添加js代码:
找到主题模板自带的js文件,在最后的位置添加如下代码,如果是放在html里,记得首位加上<script>如下代码</script>
JavaScript
//分类排序
!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'))
效果预览:
新闻资讯 更多
热门文章
- 178Moban源码谈谈免费源码与收费源码的区别
- 2帝国CMS忘记后台登陆用户名、密码、认证码的解决方法
- 3帝国CMS(EmpireCMS) v7.5后台任意代码执行漏洞及具体修复方法
- 4帝国CMS和WordPress 哪个好?哪个适合建站?
- 5如何解决Discuz的密码错误次数过多请15分钟后登陆的问题
- 6帝国cms灵动标签取得内容和栏目链接地址
- 7emlog pro 注册码“开心”教程(如果有一天,emlog官方版 或者 emlog免费版 跑路了,那用户怎么办?)
- 8织梦CMS在nginx下设置伪静态方法(附nginx伪静态规则)
- 9帝国cms后台登录出现”您还未登录”怎么解决?
- 10帝国cms7.5忘记登录密码 和忘记登录认证码以及多次登录 失败被锁定解决办法