1 修改方法:
2
3 第一步 修改 phpcms <\modules\content\classes content_tag.class.php 在最后面的 } 上面添加
4
5 public function newcontent($data){
6
7 $num = intval($data['limit']) ? intval($data['limit']) : '20';
8
9 // 设置排序
10
11 switch($data['order']){
12
13 case '1':
14
15 $order = ' `id` ASC ';
16
17 break;
18
19 case '2':
20
21 $order = ' `id` DESC ';
22
23 break;
24
25 case '3':
26
27 $order = ' `inputtime` ASC ';
28
29 break;
30
31 case '4':
32
33 $order = ' `inputtime` DESC ';
34
35 break;
36
37 case '5':
38
39 $order = ' `updatetime` ASC ';
40
41 break;
42
43 case '6':
44
45 $order = ' `updatetime` DESC ';
46
47 break;
48
49 default:
50
51 $order = ' `id` DESC ';
52
53 }
54
55 if($data['catid']){
56
57 $catids = explode(',', $data['catid']);
58
59 foreach($catids as $catid){
60
61 $catid = intval($catid);
62
63 if(empty($catid))continue;
64
65 $this->set_modelid($catid);
66
67 $where = $this->category[$catid]['child'] ? ' `catid` IN ('.$this->category[$catid]['arrchildid'].')' : " `catid` = $catid";
68
69 $datas = $this->db->select($where, '*', $num, $order);
70
71 $data[$catid]['data'] = $datas;
72
73 // 记录本次的文章数
74
75 $data['num'][] = count($datas);
76
77 $model_num++;
78
79 }
80
81 }else{
82
83 $models = getcache('model', 'commons');
84
85 foreach($models as $model){
86
87 $this->db->set_model($model['modelid']);
88
89 $datas = $this->db->select('', '*', $num, $order);
90
91 $data[$model['modelid']]['data'] = $datas;
92
93 // 记录本次的文章数
94
95 $data['num'][] = count($datas);
96
97 $model_num++;
98
99 }
100
101 }
102
103 if($data){
104
105 // 获取每个模型应该截取的条数
106
107 $num = ceil($num/$model_num);
108
109 // 循环条数记录用于找出条数不满足的数量然后进行平均
110
111 $w_num = $w_num_t = '';
112
113 foreach($data['num'] as $num_t){
114
115 if($num_t < $num){
116
117 $w_num += $num-$num_t;
118
119 $w_num_t++;
120
121 }
122
123 }
124
125 // 判断是否有不满足平均数的 如果有那么就增加平均值
126
127 if($w_num_t){
128
129 $num += ceil($w_num/($model_num-$w_num_t));
130
131 }
132
133 $datas = array();
134
135 foreach($data as $r){
136
137 $r_n = '';
138
139 if(is_array($r['data']))
140
141 foreach($r['data'] as $r_t){
142
143 $datas[] = $r_t;
144
145 if(++$r_n == $num)break;
146
147 }
148
149 }
150
151 return $datas;
152
153 }else{
154
155 return false;
156
157 }
158
159 }
160
161 第二步:模板调用
162
163 其实就和默认的文章列表调用差不多
164
165 {pc:content action="newcontent" }
166
167 参数说明:
168
169 catid: 可有可无 加了就只调用指定栏目的信息 多个栏目请使用英文半角的 ,间隔
170
171 order:排序 参数值:1-7 具体的含义在代码里面很容易看明白 不祥述
172
173 num:调用数量 不指定默认调用20条