当前位置:首页 > 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. } 
  26. if($data['catid']){ 
  27. $catids = explode(',', $data['catid']); 
  28. foreach($catids as $catid){ 
  29. $catid = intval($catid); 
  30. if(emptyempty($catid))continue; 
  31. $this->set_modelid($catid); 
  32. $where = $this->category[$catid]['child'] ? ' `catid` IN ('.$this->category[$catid]['arrchildid'].')' : " `catid` = $catid"; 
  33. $datas = $this->db->select($where, '*', $num, $order); 
  34. $data[$catid]['data'] = $datas; 
  35. // 记录本次的文章数 
  36. $data['num'][] = count($datas); 
  37. $model_num++; 
  38. } 
  39. }else{ 
  40. $models = getcache('model', 'commons'); 
  41. foreach($models as $model){ 
  42. $this->db->set_model($model['modelid']); 
  43. $datas = $this->db->select('', '*', $num, $order); 
  44. $data[$model['modelid']]['data'] = $datas; 
  45. // 记录本次的文章数 
  46. $data['num'][] = count($datas); 
  47. $model_num++; 
  48. } 
  49. } 
  50. if($data){ 
  51. // 获取每个模型应该截取的条数 
  52. $num = ceil($num/$model_num); 
  53. // 循环条数记录用于找出条数不满足的数量然后进行平均 
  54. $w_num = $w_num_t = ''; 
  55. foreach($data['num'] as $num_t){ 
  56. if($num_t < $num){ 
  57. $w_num += $num-$num_t; 
  58. $w_num_t++; 
  59. } 
  60. } 
  61. // 判断是否有不满足平均数的 如果有那么就增加平均值 
  62. if($w_num_t){ 
  63. $num += ceil($w_num/($model_num-$w_num_t)); 
  64. } 
  65. $datas = array(); 
  66. foreach($data as $r){ 
  67. $r_n = ''; 
  68. if(is_array($r['data'])) 
  69. foreach($r['data'] as $r_t){ 
  70. $datas[] = $r_t; 
  71. if(++$r_n == $num)break; 
  72. } //phpfensi.com 
  73. } 
  74. return $datas; 
  75. }else{ 
  76. return false; 
  77. } 
  78. } 

第二步:模板调用

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

{pc:content action="newcontent" }

参数说明:

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

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

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

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

分享到: