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