📄 正在查看:twcms/block/kp_block_global_cate.lib.php
大小:2,373 字节 · 修改:2014-01-23 01:42:52 · 行数:67
1<?php
2defined('KONG_PATH') || exit;
3
4/**
5 * 列表页模块 (不推荐频道分类使用此模块,影响性能)
6 * @param int pagenum 每页显示条数
7 * @param int titlenum 标题长度
8 * @param int intronum 简介长度
9 * @param string dateformat 时间格式
10 * @param string orderby 排序方式
11 * @param int orderway 降序(-1),升序(1)
12 * @return array
13 */
14function kp_block_global_cate($conf) {
15 global $run;
16
17 // hook kp_block_global_cate_before.php
18
19 $pagenum = empty($conf['pagenum']) ? 20 : max(1, (int)$conf['pagenum']);
20 $titlenum = isset($conf['titlenum']) ? (int)$conf['titlenum'] : 0;
21 $intronum = isset($conf['intronum']) ? (int)$conf['intronum'] : 0;
22 $dateformat = empty($conf['dateformat']) ? 'Y-m-d H:i:s' : $conf['dateformat'];
23 $orderby = isset($conf['orderby']) && in_array($conf['orderby'], array('id', 'dateline')) ? $conf['orderby'] : 'id';
24 $orderway = isset($conf['orderway']) && $conf['orderway'] == 1 ? 1 : -1;
25
26 // 排除单页模型
27 $cid = &$run->_var['cid'];
28 $mid = &$run->_var['mid'];
29 if($mid == 1) return FALSE;
30
31 if(!empty($run->_var['son_cids']) && is_array($run->_var['son_cids'])) {
32 // 影响数据库性能
33 $where = array('cid' => array("IN" => $run->_var['son_cids']));
34 $total = 0;
35 $cate_arr = array();
36 foreach($run->_var['son_cids'] as $v) {
37 $cate_arr[$v] = $run->category->get_cache($v);
38 $total += $cate_arr[$v]['count'];
39 }
40 }else{
41 $where = array('cid' => $cid);
42 $total = &$run->_var['count'];
43 }
44
45 // 分页相关
46 $maxpage = max(1, ceil($total/$pagenum));
47 $page = min($maxpage, max(1, intval(R('page'))));
48 $pages = pages($page, $maxpage, $run->category->category_url($cid, $run->_var['alias'], TRUE));
49
50 // 初始模型表名
51 $run->cms_content->table = 'cms_'.$run->_var['table'];
52
53 // 获取内容列表
54 $list_arr = $run->cms_content->list_arr($where, $orderby, $orderway, ($page-1)*$pagenum, $pagenum, $total);
55 foreach($list_arr as &$v) {
56 $run->cms_content->format($v, $mid, $dateformat, $titlenum, $intronum);
57 if(isset($cate_arr)) {
58 $v['cate_name'] = $cate_arr[$v['cid']]['name'];
59 $v['cate_url'] = $run->category->category_url($cate_arr[$v['cid']]['cid'], $cate_arr[$v['cid']]['alias']);
60 }
61 }
62
63 // hook kp_block_global_cate_after.php
64
65 return array('total'=> $total, 'pages'=> $pages, 'list'=> $list_arr);
66}
67