📄 正在查看:twcms/block/kp_block_listeach.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) 默认:-1
13 * @param int limit 显示几条
14 * @return array
15 */
16function kp_block_listeach($conf) {
17 global $run;
18
19 // hook kp_block_listeach_before.php
20
21 $cid = isset($conf['cid']) ? intval($conf['cid']) : (isset($_GET['cid']) ? intval($_GET['cid']) : 0);
22 $mid = _int($conf, 'mid', 2);
23 $dateformat = empty($conf['dateformat']) ? 'Y-m-d H:i:s' : $conf['dateformat'];
24 $titlenum = _int($conf, 'titlenum');
25 $intronum = _int($conf, 'intronum');
26 $orderby = isset($conf['orderby']) && in_array($conf['orderby'], array('id', 'dateline')) ? $conf['orderby'] : 'id';
27 $orderway = isset($conf['orderway']) && $conf['orderway'] == 1 ? 1 : -1;
28 $limit = _int($conf, 'limit', 10);
29
30 if($cid == 0) {
31 $cid_arr = $run->category->get_cids_by_mid($mid);
32
33 $table_arr = &$run->_cfg['table_arr'];
34 $table = isset($table_arr[$mid]) ? $table_arr[$mid] : 'article';
35 }else{
36 $_var = $run->category->get_cache($cid);
37 if(isset($_var['son_list'])) {
38 $cid_arr = $_var['son_list'];
39 $table = $_var['table'];
40 }else{
41 return array();
42 }
43 }
44
45 // 初始模型表名
46 $run->cms_content->table = 'cms_'.$table;
47
48 // 读取内容列表
49 $ret = array();
50 foreach($cid_arr as $_cid => $cids) {
51 // 读取分类内容
52 $cate_arr = $run->category->get_cache($_cid);
53 $ret[$_cid]['cate_name'] = $cate_arr['name'];
54 $ret[$_cid]['cate_url'] = $run->category->category_url($cate_arr['cid'], $cate_arr['alias']);
55
56 if(!$cids) continue;
57
58 // 读取分类列表
59 if(is_array($cids)) {
60 $where = array('cid' => array("IN" => $cids)); // 影响数据库性能,不推荐这样建分类
61 }else{
62 $where = array('cid' => $_cid);
63 }
64
65 $ret[$_cid]['list'] = $run->cms_content->find_fetch($where, array($orderby => $orderway), 0, $limit);
66 foreach($ret[$_cid]['list'] as &$v) {
67 $run->cms_content->format($v, $mid, $dateformat, $titlenum, $intronum);
68 }
69 }
70
71 // hook kp_block_listeach_after.php
72
73 return $ret;
74}
75