📄 正在查看:twcms/block/kp_block_list.lib.php
1<?php
2defined('KONG_PATH') || exit;
3
4/**
5 * 内容列表模块
6 * @param int cid 分类ID 如果不填:自动识别 (不推荐用于读取频道分类,影响性能)
7 * @param int mid 模型ID (当cid为0时,设置mid才能生效,否则程序自动识别)
8 * @param string dateformat 时间格式
9 * @param int titlenum 标题长度
10 * @param int intronum 简介长度
11 * @param string orderby 排序方式
12 * @param int orderway 降序(-1),升序(1)
13 * @param int start 开始位置
14 * @param int limit 显示几条
15 * @return array
16 */
17function kp_block_list($conf) {
18 global $run;
19
20 // hook kp_block_list_before.php
21
22 $cid = isset($conf['cid']) ? intval($conf['cid']) : (isset($_GET['cid']) ? intval($_GET['cid']) : 0);
23 $mid = _int($conf, 'mid', 2);
24 $dateformat = empty($conf['dateformat']) ? 'Y-m-d H:i:s' : $conf['dateformat'];
25 $titlenum = _int($conf, 'titlenum');
26 $intronum = _int($conf, 'intronum');
27 $orderby = isset($conf['orderby']) && in_array($conf['orderby'], array('id', 'dateline')) ? $conf['orderby'] : 'id';
28 $orderway = isset($conf['orderway']) && $conf['orderway'] == 1 ? 1 : -1;
29 $start = _int($conf, 'start');
30 $limit = _int($conf, 'limit', 10);
31
32 // 读取分类内容
33 if($cid == 0) {
34 $cate_name = 'No Title';
35 $cate_url = 'javascript:;';
36
37 $table_arr = &$run->_cfg['table_arr'];
38 $table = isset($table_arr[$mid]) ? $table_arr[$mid] : 'article';
39
40 $where = array();
41 }else{
42 $cate_arr = $run->category->get_cache($cid);
43 if(empty($cate_arr)) return;
44 $cate_name = $cate_arr['name'];
45 $cate_url = $run->category->category_url($cid, $cate_arr['alias']);
46 $table = &$cate_arr['table'];
47
48 if(!empty($cate_arr['son_cids']) && is_array($cate_arr['son_cids'])) {
49 $where = array('cid' => array("IN" => $cate_arr['son_cids'])); // 影响数据库性能
50 }else{
51 $where = array('cid' => $cid);
52 }
53 }
54
55 // 初始模型表名
56 $run->cms_content->table = 'cms_'.$table;
57
58 // 读取内容列表
59 $list_arr = $run->cms_content->find_fetch($where, array($orderby => $orderway), $start, $limit);
60 foreach($list_arr as &$v) {
61 $run->cms_content->format($v, $mid, $dateformat, $titlenum, $intronum);
62 }
63
64 // hook kp_block_list_after.php
65
66 return array('cate_name'=> $cate_name, 'cate_url'=> $cate_url, 'list'=> $list_arr);
67}
68