phpcms v9调用全站最新文章

  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条

 

posted @ 2013-09-27 18:43  撑着破伞去看雨  阅读(449)  评论(0)    收藏  举报