搜索

当前位置:首页 > 全栈分享 > phpcms > 正文

phpcms全站最新文章调用方法

发布时间:2018-08-02 23:48:14作者:魏义齐阅读:()

本文为博主原创文章,未经博主允许不得转载。

这是本次改版的需要,网上虽然有这个教程,但我写文章的目的在于再次有这个需求时不用去找自己的源码复制或去百度找教程,而是直接看自己写的文章。

方法如下:

打开/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. return $datas
  66. }else
  67. return false; 
下面是我首页“今日更新”模块调用全站最新文章的代码(我还调用了点击量)
{pc:content action="newcontent" num="1"} 
{php $categorys = getcache('category_content_'.$siteid,'commons');} 
<ul> 
  {loop $data $v} 
  {php $category = $categorys[$v[catid]];}  
  {php $modelid = $category['modelid'];}  
  {php $db = pc_base::load_model('hits_model');   $_r = $db->get_one(array('hitsid'=>'c-'.$modelid.'-'.$v[id])); $views = $_r[views]; }  
  {php $comment_tag = pc_base::load_app_class("comment_tag", "comment"); $comment_total = $comment_tag->count(array('commentid'=>'content_'.$v[catid].'-'.$v[id].'-'.$modelid));} 
  <li> 
    <h2><span class="todayupdate">今日更新</span><a href="{$v['url']}" target=_blank>{str_cut($v[title],200,”)}</a><span class="ydcs">(浏览&nbsp;:&nbsp;{$views})</span></h2> 
    <p class="description">{str_cut($v[description],500)}</p> 
  </li> 
  {/loop} 
</ul> 
{/pc} 
如果你不想调用点击量,那么代码如下:
{pc:content action="newcontent" num="1"} 
<ul> 
  {loop $data $v} 
  <li> 
    <h2><span class="todayupdate">今日更新</span><a href="{$v['url']}" target=_blank>{str_cut($v[title],200,”)}</a><span class="ydcs">(浏览&nbsp;:&nbsp;{$views})</span></h2> 
    <p class="description">{str_cut($v[description],500)}</p> 
  </li> 
  {/loop} 
</ul> 
{/pc} 
大家可参考调用。

本文标签:,您可以阅读与「」相关的所有文章

魏义齐全栈技术交流:魏义齐全栈技术交流

上一篇:phpcms代码高亮显示最新解决方案下一篇:phpcms如何将已删除的内容http状态码设置为404

赞助本站

原创不易,您的赞助就是博主更新的动力!

赞助本站可在赞助光荣榜留下外链信息,支付宝扫此二维码可领红包