当前位置:首页 > CMS教程 > phpcms > 列表

phpcms v9调用全站最新文章功能代码

发布:smiling 来源: PHP粉丝网  添加日期:2014-10-20 23:20:50 浏览: 评论:0 

第一步:修改 phpcms\modules\content\classes  content_tag.class.php 在最后面的 } 上面添加如下代码:

  1. public function newcontent($data){ 
  2. $num = intval($data['limit']) ? intval($data['limit']) : '20'
  3. // 设置排序 
  4. switch($data['order']){ 
  5. case '1'
  6. $order = ' `id` ASC '
  7. break
  8. case '2'
  9. $order = ' `id` DESC '
  10. break
  11. case '3'
  12. $order = ' `inputtime` ASC '
  13. break
  14. case '4'
  15. $order = ' `inputtime` DESC '
  16. break
  17. case '5'
  18. $order = ' `updatetime` ASC '
  19. break
  20. case '6'
  21. $order = ' `updatetime` DESC '
  22. break
  23. default
  24. $order = ' `id` DESC '
  25. if($data['catid']){ 
  26. $catids = explode(','$data['catid']); 
  27. foreach($catids as $catid){ 
  28. $catid = intval($catid); 
  29. if(emptyempty($catid))continue
  30. $this->set_modelid($catid); 
  31. $where = $this->category[$catid]['child'] ? ' `catid` IN ('.$this->category[$catid]['arrchildid'].')' : " `catid` = $catid"
  32. $datas = $this->db->select($where'*'$num$order); 
  33. $data[$catid]['data'] = $datas
  34. // 记录本次的文章数 
  35. $data['num'][] = count($datas); 
  36. $model_num++; 
  37. }else
  38. $models = getcache('model''commons'); 
  39. foreach($models as $model){ 
  40. $this->db->set_model($model['modelid']); 
  41. $datas = $this->db->select('''*'$num$order); 
  42. $data[$model['modelid']]['data'] = $datas
  43. // 记录本次的文章数 
  44. $data['num'][] = count($datas); 
  45. $model_num++; 
  46. if($data){ 
  47. // 获取每个模型应该截取的条数 
  48. $num = ceil($num/$model_num); 
  49. // 循环条数记录用于找出条数不满足的数量然后进行平均 
  50. $w_num = $w_num_t = ''
  51. foreach($data['num'as $num_t){ 
  52. if($num_t < $num){ 
  53. $w_num += $num-$num_t
  54. $w_num_t++; 
  55. // 判断是否有不满足平均数的 如果有那么就增加平均值 
  56. if($w_num_t){ 
  57. $num += ceil($w_num/($model_num-$w_num_t)); 
  58. $datas = array(); 
  59. foreach($data as $r){ 
  60. $r_n = ''
  61. if(is_array($r['data'])) 
  62. foreach($r['data'as $r_t){ 
  63. $datas[] = $r_t
  64. if(++$r_n == $num)break
  65. //phpfensi.com 
  66. return $datas
  67. }else
  68. return false; 

第二步:模板调用

其实就和默认的文章列表调用差不多:

{pc:content action="newcontent" }

参数说明:

catid:可有可无,加了就只调用指定栏目的信息,多个栏目请使用英文半角的,间隔.

order:排序 参数值:1-7  具体的含义在代码里面很容易看明白,不祥述.

num:调用数量,不指定默认调用20条.

Tags: phpcms最新文章 phpcms全站文章

分享到: