首页 > CMS > PhpCMS > 正文

phpcms v9笔记之全站点击排行调用方法

2024-09-10 07:16:02
字体:
来源:转载
供稿:网友

此法需要添加一个标签,找到phpcms/modules/content/classes/content_tag.class.php,可以在最后添加这个function。

  1. /**  
  2. * sitehits站点点击排行  
  3. * @param $data  
  4. */   
  5. function sitehits($data){   
  6. if(emptyempty($data['siteid'])) $data['siteid']=1;   
  7. $siteid = intval($data['siteid']);   
  8. $this->hits_db = pc_base::load_model('hits_model');   
  9. $category_content = getcache('category_content','commons');   
  10. $catid = '';   
  11. //获取站点下所有栏目ID   
  12. foreach($category_content as $key=>$val){   
  13. if($val==$siteid){   
  14. $catid .= $comma.$key;   
  15. $comma=',';   
  16. }   
  17. }   
  18. $sql='catid in('.$catid.')';   
  19. if(isset($data['day'])) {   
  20. $updatetime = SYS_TIME-intval($data['day'])*86400;   
  21. $sql .= " AND updatetime>'$updatetime'";   
  22. }   
  23. //获取点击排行   
  24. $r = $this->hits_db->select($sql,'hitsid',$data['limit'],$data['order']);   
  25. $return = array();   
  26. $sitemodel_model_db = pc_base::load_model('sitemodel_model');   
  27. $this->db_config = pc_base::load_config('database');   
  28. $tablepre = $this->db_config['default']['tablepre'];   
  29. foreach($r as $key){   
  30. preg_match_all('/-(d+)-/',$key['hitsid'],$modelid);   
  31. $id = substr($key['hitsid'],(strpos($key['hitsid'],'-',2)+1));   
  32. $tablename = $sitemodel_model_db->get_one(array('modelid'=>$modelid[1][0]),'tablename');   
  33. $this->db->table_name = $tablepre.$tablename['tablename'];   
  34. $return[] = array_merge($return,$this->db->get_one(array('id'=>$id)));  //开源软件:Vevb.com 
  35. }   
  36. return $return;   

这样就好了,下面看看调用的代码吧.

  1. {pc:content action="sitehits" siteid="1" num="10" day="7" order="views DESC" cache="3600"}   
  2. {loop $data $r}   
  3. < li><a href="{$r[url]}" target="_blank">{$r[title]}</a></li>   
  4. {/loop}   
  5. {/pc}   
  6. < /ul> 

OK,就这样结束了在phpcms v9中全站点击排行调用,而且可以指定日间范围.

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表