国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > CMS > PhpCMS > 正文

【phpcms-v9】獲取上周發(fā)表的文章中點擊量最高的三篇帶縮略

2024-09-10 07:15:51
字體:
供稿:網(wǎng)友

1.提示:使用{pc action="hits"}{/pc}標(biāo)簽是不能完成此功能的

2.html代碼:

  1. <div class="b_bianjituijian_c">   
  2.                     <!-- 當(dāng)前欄目下周點擊率最高的三篇文章 -->   
  3.                     {pc:content action="lists" catid="$catid" len="3" thumb="1" views="week"  cache="3"}   
  4.                     {loop $data $r}   
  5.                     <dl class="b_bianjituijian_cf">   
  6.                         <dt><a href="{$r['url']}"><img src="{$r['thumb']}" width="60" height="60"  alt="{$r['title']}"/></a></dt>   
  7.                         <dd>   
  8.                             <h3><a href="{$r['url']}">{str_cut($r[title],24,'...')}</a></h3>   
  9.                             <p>   
  10.                             {str_cut($r[description],70,'...')}   
  11.                                 <a href="{$r['url']}">【詳細】</a>   
  12.                             </p>   
  13.                         </dd>   
  14.                     </dl>   
  15.                        
  16.                     <span class="border-bx"></span>   
  17.                     {/loop}   
  18.                     {/pc}   
  19. </div> 

3.libs/function/global.func.php文件中添加:

  1. //排序函數(shù)-weiyanhui添加,主要為了實現(xiàn)list標(biāo)簽中文章按點擊量排序功能   
  2. function array_sort($arr,$keys,$type='desc'){   
  3.     $keysvalue = $new_array = array();   
  4.     foreach ($arr as $k=>$v){   
  5.         $keysvalue[$k] = $v[$keys];   
  6.     }   
  7.     if($type == 'asc'){   
  8.         asort($keysvalue);   
  9.     }else{   
  10.         arsort($keysvalue);   
  11.     }   
  12.     reset($keysvalue);   
  13.     foreach ($keysvalue as $k=>$v){   
  14.         $new_array[$k] = $arr[$k];   
  15.     }   
  16.     return $new_array;   
  17. }  

4.content_tag.class.php文件中l(wèi)ists方法:

  1. /**  
  2.      * 列表頁標(biāo)簽:主要返回的是主表中數(shù)據(jù)與附表中數(shù)據(jù)  
  3.      * @param $data  
  4.      */   
  5.     public function lists($data) {   
  6.         $catid = intval($data['catid']);                            //pc標(biāo)簽中catid屬性   
  7.         $data['limit'] = (isset($data['limitt'])&& (!emptyempty($data['limitt'])))?$data['limitt']:$data['limit'];                                   //pc標(biāo)簽中l(wèi)imit屬性,此行代碼由weiyanhui添加   
  8.         if(!$this->set_modelid($catid)) return false;                        //會根據(jù)欄目id->對應(yīng)的模型id->對應(yīng)的模型表   
  9.         if(isset($data['where'])) {                                         //如果pc標(biāo)簽中設(shè)置了where屬性,一般情況下不存在   
  10.             $sql = $data['where'];                                     
  11.         } else {                                                            //如果pc標(biāo)簽中沒有設(shè)置where屬性    
  12.             $thumb = intval($data['thumb']) ? " AND thumb != ''" : '';      //如果有thumb屬性   
  13.             if($this->category[$catid]['child']) {                           //當(dāng)前欄目下是否存在子欄目   
  14.                 $catids_str = $this->category[$catid]['arrchildid'];     //所有子欄目id,包括當(dāng)前欄目自身id   
  15.                 $pos = strpos($catids_str,',')+1;                             
  16.                 $catids_str = substr($catids_str$pos);                    //所有子欄目id,不包括當(dāng)前欄目自身id   
  17.                 $sql = "status=99 AND catid IN ($catids_str)".$thumb;       //拼接成一個sql語句   
  18.             } else {   
  19.                     $sql = "status=99 AND catid='$catid'".$thumb;               //如果當(dāng)前欄目下不存在子欄目   
  20.             }   
  21.         }
  22.            
  23.         //weiyanhui開始,獲取一周內(nèi)發(fā)表的點擊量最高的帶縮略圖的三篇文章   
  24.         if(isset($data['views']) && $data['views']=='week'){   
  25.             $time=time()-3600*24*7;//一周內(nèi)   
  26.             $sql=$sql." and inputtime > '$time' ";   
  27.         }   
  28.         //weiyanhui結(jié)束   
  29.            
  30.         //weiyanhui開始,獲取昨天發(fā)表的點擊量最高的三篇文章   
  31.         if(isset($data['views']) && $data['views']=='yestoday'){   
  32.             $time=time()-3600*24;//昨天   
  33.             $sql=$sql." and inputtime > '$time' ";   
  34.         }   
  35.         //weiyanhui結(jié)束   
  36.            
  37.         $order = $data['order'];                                            //pc標(biāo)簽中order屬性   
  38.         //$sql作為一個條件出現(xiàn),調(diào)用的是model.calss.php文件中的select方法,返回結(jié)果集數(shù)組,并按照鍵名'id'排序   
  39.         $return = $this->db->select($sql'*'$data['limit'], $order'''id');//從數(shù)據(jù)庫中獲取主表數(shù)據(jù),使用的也是sql語句查詢   
  40.         //注意:修改了$data['limit']為$data['limitt']了,修改于2012年09月21日 19:15   
  41.         //如果需要在前臺顯示類別名稱,可添加如下代碼   
  42.            
  43.            
  44.         /*文章添加類別  
  45.         $TYPES = getcache('type_content','commons');//獲取類別緩存文件,此文件緩存了所有與類別信息相關(guān)的信息  
  46.         foreach ($return as $key=>$v) {                                       
  47.             $return[$key][typename]=$TYPES[$v['typeid']][name];//給$return中的每篇文章追加一個類別字段  
  48.         }  
  49.         echo "<pre>";  
  50.         print_r($return);  
  51.         */   
  52.            
  53.         //weiyanhui開始,此參數(shù)代表從hits表中獲取每篇文章的點擊量   
  54.         if($data['views']){   
  55.             //二次開發(fā)-獲取文章點擊量   
  56.             foreach($return as &$r){   
  57.                 $h_md=pc_base::load_model('hits_model');   
  58.                 $get_db=$h_md->get_one(array('hitsid'=>"c-".$this->db->modelid."-".$r[id]));   
  59.                 $r['views']=$get_db[views];   
  60.             }   
  61.             $return = array_sort($return,'views');//按點擊量排序   
  62.         }   
  63.         //weiyanhui結(jié)束   
  64.         //weiyanhui開始   
  65.         if(isset($data['len'])){//截取長度   
  66.             //獲取數(shù)組中的前l(fā)en條數(shù)據(jù)   
  67.             $return=array_slice($return,0, intval($data['len']));   
  68.         }  //開源軟件:Vevb.com 
  69.         //weiyanhui結(jié)束   
  70.           
  71.            
  72.         //調(diào)用副表的數(shù)據(jù)   
  73.         if (isset($data['moreinfo']) && intval($data['moreinfo']) == 1) {   //如果pc標(biāo)簽中設(shè)置了moreinfo屬性:是否調(diào)用附表數(shù)據(jù)   
  74.             $ids = array();   
  75.             //$return為返回的主表數(shù)據(jù)   
  76.             foreach ($return as $v) {                                       //循環(huán)主表中的記錄信息:$v-主表中的每條記錄   
  77.                 if (isset($v['id']) && !emptyempty($v['id'])) {   
  78.                     $ids[] = $v['id'];                                      //ids[]是主表中排序完成的文章id數(shù)組   
  79.                 } else {   
  80.                     continue;   
  81.                 }   
  82.             }   
  83.             if (!emptyempty($ids)) {   
  84.                 $this->db->table_name = $this->db->table_name.'_data';      //副表名    
  85.                 $ids = implode('/',/''$ids);                              //以逗號拼接成一個字符串   
  86.                 $r = $this->db->select("`id` IN ('$ids')"'*''''''''id');//查詢與主表中數(shù)據(jù)有關(guān)的副表中的數(shù)據(jù)   
  87.                 if (!emptyempty($r)) {   
  88.                     foreach ($r as $k=>$v) {                             //副表中的數(shù)據(jù)   
  89.                         //$return:返回的主表中的數(shù)據(jù),主表中的id字段值與附表中的id字段值是對應(yīng)的,也就是說一篇文章在主表中存儲的id跟在附表中存儲的id的值是相等的   
  90.                         if (isset($return[$k])) $return[$k] = array_merge($v$return[$k]);//主表中數(shù)據(jù)與副表中數(shù)據(jù)合并    
  91.                     }   
  92.                 }   
  93.             }   
  94.         }   
  95.         return $return;   
  96.     }

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 泗阳县| 定结县| 大名县| 灵寿县| 昌黎县| 清新县| 渭南市| 收藏| 石棉县| 吉木乃县| 翼城县| 曲沃县| 蓬安县| 仙居县| 沧源| 屏山县| 二手房| 垦利县| 甘德县| 尉犁县| 临湘市| 兴海县| 贵溪市| 衡阳县| 义马市| 前郭尔| 昌邑市| 青阳县| 乐山市| 古浪县| 准格尔旗| 竹溪县| 新昌县| 马边| 博乐市| 阆中市| 高淳县| 仲巴县| 乡城县| 万州区| 玉龙|