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

首頁 > CMS > PhpCMS > 正文

phpcms v9全站最新文章調(diào)用幾個(gè)方法

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

在網(wǎng)上隨便看了一下有很多這類的文章,幾乎每一種方法都有它的可用之處了,下文我整理了我覺得還不錯(cuò)的全站最新文章調(diào)用方案,大家一起參考.

修改 phpcms/modules/content/classes/content_tag.class.php  在最后面的 },上面添加以下代碼:

  1. public function newcontent($data){  
  2.   $num = intval($data['limit']) ? intval($data['limit']) : '20';  
  3.   // 設(shè)置排序  
  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.   // 記錄本次的文章數(shù)  
  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.   // 記錄本次的文章數(shù)  
  46.   $data['num'][] = count($datas);  
  47.   $model_num++;  
  48.   }  
  49.   }  
  50.   if($data){  
  51.   // 獲取每個(gè)模型應(yīng)該截取的條數(shù)  
  52.   $num = ceil($num/$model_num);  
  53.   // 循環(huán)條數(shù)記錄用于找出條數(shù)不滿足的數(shù)量然后進(jìn)行平均  
  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.   // 判斷是否有不滿足平均數(shù)的 如果有那么就增加平均值  
  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.   } //開源軟件:Vevb.com 
  73.   }  
  74.   return $datas;  
  75.   }else{  
  76.   return false;  
  77.   }  
  78.   } 

然后我們?cè)谛枰{(diào)用全站最新的頁面中調(diào)用下面的標(biāo)簽:

  1. {pc:content action=”newcontent”  num=15} 
  2. <ul > 
  3. {loop $data $r}<li><span class=”date”>{date(‘m-d’,$r[inputtime])}</span> <a href=”{$r['url']}” target=”_blank”>{str_cut($r[title],57,”)}</a></li>{/loop} 
  4. </ul> 
  5. {/pc} 

這樣就可以獲取到全站最新的15條數(shù)據(jù),默認(rèn)是調(diào)用20條最新,如果不設(shè)置.

catid:可有可無  加了就只調(diào)用指定欄目的信息  多個(gè)欄目請(qǐng)使用英文半角的 ,間隔

order:排序 參數(shù)值:1-7  具體的含義在代碼里面很容易看明白 不祥述

num:調(diào)用數(shù)量  不指定默認(rèn)調(diào)用20條

還有一種方案,代碼放置的位置是不一樣的。

V9的模型使用分表儲(chǔ)存,調(diào)用多個(gè)模型下的最新內(nèi)容使用GET來IN catid卻要連表查詢十分麻煩,所以使用下面的辦法即可.

第一步:

phpcms/libs/functions/extention.func.php

里面增加如下代碼:

  1. function news($limit="",$modelid="",$where=""
  2.   $db=pc_base::load_model('content_model'); 
  3.   if((strpos($modelid,",")>=0)) 
  4.   { 
  5.    $modelid=explode(",",$modelid); 
  6.    $midarr=$dot=''
  7.    foreach($modelid as $mid
  8.    { 
  9.     $midarr=$midarr.$dot.$mid
  10.     $dot=','
  11.    } 
  12.    $sq="`modelid` IN ({$midarr})"
  13.   } 
  14.   else 
  15.   { 
  16.    $sq="`modelid`={$modelid}"
  17.   } 
  18.   $db->table_name='v9_model'
  19.   $models=$db->select($sq,"tablename"); 
  20.   $sql=''
  21.   $lianhe=''
  22.   foreach($models as $name
  23.   { 
  24.    $sql=$sql.$lianhe."SELECT id,catid,title,url,inputtime FROM v9_{$name['tablename']}"
  25.    $lianhe=' UNION ALL '
  26.   } 
  27.  
  28.   $time=time(); 
  29.   $sql=$sql." ".$where." order by inputtime desc limit  ".$limit
  30.  
  31.   $allnews=$db->query($sql); 
  32.   while($r = $db->fetch_array($allnews)) 
  33.   {//開源軟件:Vevb.com 
  34.    if($keyfield
  35.    { 
  36.     $key = $r[$keyfield]; 
  37.     $array[$key] = $r
  38.    } 
  39.    else 
  40.    { 
  41.     $array[] = $r
  42.    } 
  43.   } 
  44.   return $array[0]; 

以上代碼需要注意的是里面表前綴,這里是V9,使用的時(shí)候改成你自己的表前綴,默認(rèn)是V9.

第二步:

調(diào)用的方式為:

  1. <?php $recent=news(“0,8“,”1,12“);?> 
  2. {loop $recent $r
  3. <li><a href=”{$r['url']}” target=”_blank” title=”{$r['title']}”>{str_cut($r[title],54,”)}</a></li> 
  4. {/loop} 
  5. {/pc} 

解釋:

數(shù)字是調(diào)用條數(shù),從0開始調(diào)用8條

數(shù)字模型ID,不是欄目的ID,多個(gè)模型用,分開

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 宝山区| 奎屯市| 永吉县| 乌拉特前旗| 渭南市| 满洲里市| 新丰县| 靖安县| 岢岚县| 望都县| 从江县| 承德市| 涡阳县| 常州市| 绥芬河市| 沾益县| 澄江县| 兖州市| 习水县| 松滋市| 罗源县| 图们市| 郁南县| 山西省| 冷水江市| 宁河县| 仁化县| 新兴县| 驻马店市| 依安县| 重庆市| 金沙县| 长沙市| 资兴市| 盐津县| 鄂尔多斯市| 若羌县| 兴化市| 康保县| 治多县| 富蕴县|