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

首頁 > CMS > PhpCMS > 正文

【phpcms-v9】如何通過{pc}標簽獲取全站文章內容?

2024-09-10 07:15:49
字體:
來源:轉載
供稿:網友

1.phpcms-v9默認情況下只能根據catid獲取當前欄目及子欄目下的文章,但是有時候我們需要如何通過{pc}標簽來獲取全站文章內容的需求,應該怎么做呢?

第一步:在content_tag.class.php文件中添加如下方法:

  1. /**  
  2.      * 列表頁標簽:主要返回的是主表中數據與附表中數據  
  3.      * @param $data  
  4.      */   
  5.     public function lists_all($data) {   
  6.         $this->db->set_model(1);//將模型手動指定為文章模型,為什么?因為根據源代碼的套路,模型id的是根據catid來設置的,但是現在獲取的是所有的文章,而不局限于某個欄目,所以只能手動將其設置為文章模型1  //根據模型id獲取當前模型所對應的模型表和數據表 1:文檔模型-news  3:圖片模型-picture   2:下載模型-download   
  7.         if(isset($data['where'])) {                                         //如果pc標簽中設置了where屬性,一般情況下不存在   
  8.             $sql = $data['where'];   
  9.         } else {                                                            //如果pc標簽中沒有設置where屬性   
  10.             $thumb = intval($data['thumb']) ? " AND thumb != ''" : '';      //如果有thumb屬性   
  11.             $sql = "status=99 ".$thumb;//去掉catid條件              //如果當前欄目下不存在子欄目   
  12.         }   
  13.         $order = $data['order'];                                            //pc標簽中order屬性   
  14.         //$sql作為一個條件出現,調用的是model.calss.php文件中的select方法,返回結果集數組,并按照鍵名'id'排序   
  15.         $return = $this->db->select($sql'*'$data['limit'], $order'''id');//從數據庫中獲取主表數據,使用的也是sql語句查詢   
  16.        
  17.         //如果需要在前臺顯示類別名稱,可添加如下代碼   
  18.        
  19.         $TYPES = getcache('type_content','commons');//獲取類別緩存文件,此文件緩存了所有與類別信息相關的信息   
  20.         foreach ($return as $key=>$v) {   
  21.             $return[$key][typename]=$TYPES[$v['typeid']][name];//給$return中的每篇文章追加一個類別字段   
  22.         }   
  23.         //echo "<pre>";   
  24.         //print_r($return);   
  25.        
  26.         //調用副表的數據   
  27.         if (isset($data['moreinfo']) && intval($data['moreinfo']) == 1) {   //如果pc標簽中設置了moreinfo屬性:是否調用附表數據   
  28.             $ids = array();   
  29.             //$return為返回的主表數據   
  30.             foreach ($return as $v) {                                       //循環主表中的記錄信息:$v-主表中的每條記錄   
  31.                 if (isset($v['id']) && !emptyempty($v['id'])) {   
  32.                     $ids[] = $v['id'];                                      //ids[]是主表中排序完成的文章id數組   
  33.                 } else {   
  34.                     continue;   
  35.                 }   
  36.             }   
  37.             if (!emptyempty($ids)) {   
  38.                 $this->db->table_name = $this->db->table_name.'_data';      //副表名   
  39.                 $ids = implode('/',/''$ids);                              //以逗號拼接成一個字符串   
  40.                 $r = $this->db->select("`id` IN ('$ids')"'*''''''''id');//查詢與主表中數據有關的副表中的數據   
  41.                 if (!emptyempty($r)) {   
  42.                     foreach ($r as $k=>$v) {                             //副表中的數據   
  43.                         //$return:返回的主表中的數據,主表中的id字段值與附表中的id字段值是對應的,也就是說一篇文章在主表中存儲的id跟在附表中存儲的id的值是相等的   
  44.                         if (isset($return[$k])) $return[$k] = array_merge($v$return[$k]);//主表中數據與副表中數據合并   
  45.                     }  //開源軟件:Vevb.com 
  46.                 }   
  47.             }   
  48.         }   
  49.         return $return;   
  50.     }   

第二步:在模板文件中調用:

  1. {pc:content action="lists_all" num="15" order="id DESC" page="$page"}   
  2.             {loop $data $r $val}   
  3.                 <a href="{$val[url]}">   
  4.                     <dl class="wenzhangliebiao">     
  5.                         <dt><img src="{$val[thumb]}" width="132" height="97" alt="盤點蘋果公司的生財之道"></dt>   
  6.                         <dd>   
  7.                             <h3>{$val[title]}</h3>   
  8.                             <p>{str_cut($val[description],220,'...')} </p>   
  9.                             <div><span>{date('Y年m月d日 H:i:s',$val[inputtime])}</span>     <span>{date('H:i',$val[updatetime])}更新</span></div>   
  10.                         </dd>   
  11.                     </dl>   
  12.                 </a>   
  13.             {/loop}   
  14.             {/pc}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 八宿县| 和平区| 江达县| 漾濞| 信丰县| 晋州市| 绵阳市| 临沧市| 武强县| 贵港市| 旅游| 武川县| 怀柔区| 江孜县| 双鸭山市| 文昌市| 德庆县| 昌邑市| 银川市| 阿合奇县| 长岭县| 周至县| 子洲县| 长垣县| 建瓯市| 西吉县| 茌平县| 焉耆| 莱芜市| 桑日县| 清苑县| 桃江县| 朔州市| 松溪县| 龙州县| 咸宁市| 仙桃市| 汉阴县| 调兵山市| 化隆| 龙山县|