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

首頁 > CMS > PhpCMS > 正文

【phpcms-v9】如何在頻道頁面動態顯示當前頻道各個子欄目的

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

【phpcms-v9】如何在頻道頁面動態顯示當前頻道各個子欄目的部分信息.

1.案例:如何在當前頻道頁動態的顯示其子欄目部分內容,注意,當前頻道頁下的子欄目可能屬于不同的模型,如下:

難點:①需要在index.php控制器中獲取當前頻道下所有的子欄目②需要獲取當前子欄目的所對應的模型 ③根據模型查詢不同的模型表返回數據

注意:一個頻道頁可以有多個子欄目,每個子欄目又可以屬于不同的模型

  1. 奢侈品牌【頻道名稱】 
  2.       LV【子欄目名稱:品牌英文名稱】 
  3.                                  品牌簡介【子欄目名稱:品牌模型】 
  4.                                  品牌識別【子欄目名稱:文章模型】 
  5.                                  品牌圖片【子欄目名稱:圖片模型】 
  6.                                  品牌動態【子欄目名稱:文章模型】 
  7.                                 品牌視頻【子欄目名稱:視頻模型】 
  8.       BALLY【子欄目名稱:品牌英文名稱】 
  9.                                  品牌簡介【子欄目名稱:品牌模型】 
  10.                                  品牌識別【子欄目名稱:文章模型】 
  11.                                  品牌圖片【子欄目名稱:圖片模型】 
  12.                                  品牌動態【子欄目名稱:文章模型】 
  13.                                 品牌視頻【子欄目名稱:視頻模型】 
  14.        。。。 

2.前臺控制器index.php中list()方法代碼:

  1. //列表頁   
  2.     public function lists() {   
  3.         $catid = intval($_GET['catid']);                                    //欄目id   
  4.         $_priv_data = $this->_category_priv($catid);                     //檢查閱讀權限   
  5.         if($_priv_data=='-1') {                                             //請登錄   
  6.             $forward = urlencode(get_url());   
  7.             showmessage(L('login_website'),APP_PATH.'index.php?m=member&c=index&a=login&forward='.$forward);   
  8.         } elseif($_priv_data=='-2') {                                       //沒權限   
  9.             showmessage(L('no_priv'));   
  10.         }   
  11.         $_userid = $this->_userid;                                           //用戶id   
  12.         $_username = $this->_username;                                       //用戶名   
  13.         $_groupid = $this->_groupid;                                     //用戶會員組id   
  14.    
  15.         if(!$catid) showmessage(L('category_not_exists'),'blank');          //欄目不存在   
  16.         $siteids = getcache('category_content','commons');                  //獲取所有欄目對應的站點id   
  17.         $siteid = $siteids[$catid];                                         //獲取當前欄目對應的站點id   
  18.         $CATEGORYS = getcache('category_content_'.$siteid,'commons');       //獲取當前站點下所有欄目的詳細配置信息   
  19.         if(!isset($CATEGORYS[$catid])) showmessage(L('category_not_exists'),'blank');   
  20.         $CAT = $CATEGORYS[$catid];                                          //獲取當前欄目的詳細配置信息   
  21.         $siteid = $GLOBALS['siteid'] = $CAT['siteid'];                      //獲取當前欄目的站點id   
  22.         //這行代碼很重要   
  23.         extract($CAT);                                                      //從當前欄目詳細配置信息的數組中將變量導入到當前的符號表   
  24.         $setting = string2array($setting);                                  //將設置信息轉換為數組格式   
  25.         //SEO   
  26.         if(!$setting['meta_title']) $setting['meta_title'] = $catname;      //title   
  27.         $SEO = seo($siteid'',$setting['meta_title'],$setting['meta_description'],$setting['meta_keywords']);//description   
  28.         define('STYLE',$setting['template_list']);                          //模板風格,默認為default   
  29.         $page = $_GET['page'];                                              //當前頁碼   
  30.    
  31.         $template = $setting['category_template'] ? $setting['category_template'] : 'category';//欄目首頁模板   
  32.         $template_list = $setting['list_template'] ? $setting['list_template'] : 'list';//欄目列表頁模板   
  33.            
  34.         if($type==0) {  //0-內部欄目  1-單網頁  2-外部鏈接   
  35.             $template = $child ? $template : $template_list;//$child,是否有子欄目: 1-有     0-沒有   
  36.             $arrparentid = explode(','$arrparentid);      //當前欄目所有的父欄目組成的父欄目id數組   
  37.             $top_parentid = $arrparentid[1] ? $arrparentid[1] : $catid;//當前欄目的頂級欄目id   
  38.             $array_child = array();                         //當前欄目下一級欄目的id組成的數組   
  39.             $self_array = explode(','$arrchildid);        //當前欄目的所有子欄目組成的id數組,包含當前欄目id自身   
  40.             //獲取一級欄目ids   
  41.             foreach ($self_array as $arr) {   
  42.                 if($arr!=$catid && $CATEGORYS[$arr][parentid]==$catid) {   
  43.                     $array_child[] = $arr;//當前欄目下一級欄目id組成的數組,不包含當前欄目id   
  44.                 }   
  45.             }   
  46.                
  47.             /*以下代碼為新添加代碼,如果出現問題,可立即將其注釋即可  
  48.              *將當前欄目下所有的子欄目數組打印出來   
  49.              echo "<pre>";  
  50.              print_r($array_child);  
  51.             */   
  52.             foreach($array_child as $cat_id){   
  53.                 if($CATEGORYS[$cat_id][catname] == "品牌動態"){   
  54.                     $pinpaidongtaiid=$cat_id;   
  55.                 }   
  56.                 if($CATEGORYS[$cat_id][catname] == "品牌識別"){   
  57.                     $pinpaishibieid=$cat_id;   
  58.                 }   
  59.                 if($CATEGORYS[$cat_id][catname] == "品牌視頻"){   
  60.                     $pinpaishipinid=$cat_id;   
  61.                 }   
  62.                 if($CATEGORYS[$cat_id][catname] == "品牌圖集"){   
  63.                     $pinpaitujiid=$cat_id;   
  64.                 }   
  65.                 if($CATEGORYS[$cat_id][catname] == "品牌知識"){   
  66.                     $pinpaizhishiid=$cat_id;   
  67.                     $modelid = $CATEGORYS[$cat_id]['modelid'];                                      //當前欄目所屬模型id   
  68.                     //當前模型id所對應的主表名稱:文章模型-news ,下載模型-download , 圖片模型-picture  品牌模型-pinpai   
  69.                     $tablename = $this->db->table_name = $this->db->db_tablepre."pinpai";//當前模型id對應的主表名   
  70.                     $r = $this->db->get_one();                        //返回的主表數據,條件:where id=$id   
  71.                     //當前模型id所對應的副表名   
  72.                     $this->db->table_name = $tablename.'_data';                       //當前模型id所對應的副表名-pinpai_data   
  73.                     $r2 = $this->db->get_one(array('id'=>$r['id']));                       //返回的副表數據,條件:where id=$id   
  74.                     $rs = $r2 ? array_merge($r,$r2) : $r;                           //如果有返回副表數據,則將主表數據與副表數據合并后再返回,否則返回主表數據   
  75.                     //再次重新賦值,以數據庫為準   
  76.                     $cat_id = $CATEGORYS[$r['catid']]['catid'];                     //欄目id   
  77.                     $modelid = $CATEGORYS[$r['catid']]['modelid'];                      //模型id   
  78.                     require_once CACHE_MODEL_PATH.'content_output.class.php';   
  79.                     $content_output = new content_output($modelid,$cat_id,$CATEGORYS);//主要用來對查詢到的記錄做一下過濾,僅此而已   
  80.                     $data_pinpaizhishi = $content_output->get($rs);  //定位模型為品牌模型,返回pinpai及附表中的數據     //參數:查詢到的數據   
  81.    
  82.                 }   
  83.             } 
  84.                
  85.             $arrchildid = implode(','$array_child);//當前欄目下一級欄目id所組成的數組   
  86.             //URL規則   
  87.             $urlrules = getcache('urlrules','commons');//獲取所有的url重寫規則   
  88.             //如: 1 => '{$categorydir}{$catdir}/index.html|{$categorydir}{$catdir}/{$page}.html'   
  89.             $urlrules = str_replace('|''~',$urlrules[$category_ruleid]);//當前欄目頁的url重寫規則id   
  90.             $tmp_urls = explode('~',$urlrules);//當前欄目頁的url重寫規則數組   
  91.             $tmp_urls = isset($tmp_urls[1]) ?  $tmp_urls[1] : $tmp_urls[0];//如果是數組,采用第一個url   
  92.             preg_match_all('/{/$([a-z0-9_]+)}/i',$tmp_urls,$_urls);//$_urls:正則匹配的結果賦值給此變量   
  93.             /**  
  94.              * print_r($_urls):匹配到的結果  
  95.              * Array  
  96.                 (  
  97.                     [0] => Array  
  98.                         (  
  99.                             [0] => {$catid}  
  100.                             [1] => {$page}  
  101.                         )  
  102.                   
  103.                     [1] => Array  
  104.                         (  
  105.                             [0] => catid  
  106.                             [1] => page  
  107.                         )  
  108.                   
  109.                 )  
  110.              */   
  111.             if(!emptyempty($_urls[1])) {   
  112.                 foreach($_urls[1] as $_v) {   
  113.                     $GLOBALS['URL_ARRAY'][$_v] = $_GET[$_v];   
  114.                 }   
  115.             }   
  116.             //如: 1 => '{$categorydir}{$catdir}/index.html|{$categorydir}{$catdir}/{$page}.html'   
  117.             define('URLRULE'$urlrules);   
  118.             $GLOBALS['URL_ARRAY']['categorydir'] = $categorydir;//   
  119.             $GLOBALS['URL_ARRAY']['catdir'] = $catdir;//英文欄目名稱   
  120.             $GLOBALS['URL_ARRAY']['catid'] = $catid;//欄目id   
  121.             include template('content',$template);//如果有子欄目-欄目首頁模板   如果無子欄目-欄目列表頁模板   
  122.         } else {   
  123.         //單網頁   
  124.             $this->page_db = pc_base::load_model('page_model');   
  125.             $r = $this->page_db->get_one(array('catid'=>$catid));   
  126.             if($r) extract($r);   
  127.             $template = $setting['page_template'] ? $setting['page_template'] : 'page';   
  128.             $arrchild_arr = $CATEGORYS[$parentid]['arrchildid'];   
  129.             if($arrchild_arr==''$arrchild_arr = $CATEGORYS[$catid]['arrchildid'];   //開源軟件:Vevb.com 
  130.             $arrchild_arr = explode(',',$arrchild_arr);   
  131.             array_shift($arrchild_arr);   
  132.             $keywords = $keywords ? $keywords : $setting['meta_keywords'];   
  133.             $SEO = seo($siteid, 0, $title,$setting['meta_description'],$keywords);   
  134.             include template('content',$template);   
  135.         }   
  136.     }   

3.頻道頁面對應的模板文件:

  1. <!-- 品牌右側 -->   
  2.         <div class="pinpai_right">   
  3.             <div class="pinpaixq_tabnav">   
  4.                 <img src="http://m.survivalescaperooms.com/statics/images/zhenpin/pinpai_detail_images/pinpaixq_tabnav.jpg" alt="a">   
  5.             </div>   
  6.             <!--品牌動態 -->   
  7.             <div class="pinpaidt">   
  8.                 <dl class="pinpaidt_top">   
  9.                     <dt class="pinpaidt_font"></dt>   
  10.                     <dd>   
  11.                         <a href="#">更多<span></span></a>   
  12.                     </dd>   
  13.                 </dl>   
  14.                 <!-- pc標簽會根據content_tag.class.php文件中接受到的catid參數的值重新定位模型及要查詢的模型表 -->   
  15.                 {pc:content action="lists" catid="$pinpaidongtaiid" num="3" order="id DESC"}   
  16.                 {loop $data $r}   
  17.                 <dl class="pinpaidt_c">   
  18.                     <dt>   
  19.                         <a href="{$r[url]}"><img src="{$r[thumb]}" width="141" height="106" alt="{$r[title]}"></a>   
  20.                     </dt>   
  21.                     <dd>   
  22.                         <h3><a href="{$r[url]}">{$r[title]}</a></h3>   
  23.                         <p>   
  24.                             {str_cut($r[description],400,'...')}   
  25.                         </p>   
  26.                     </dd>   
  27.                 </dl>   
  28.                 {/loop}   
  29.                 {/pc}   
  30.             </div>   
  31.    
  32.             <!--品牌識別 -->   
  33.             <div class="pinpaishibie">   
  34.                 <dl class="pinpaishibie_top">   
  35.                     <dt class="pinpaishibie_font"></dt>   
  36.                     <dd>   
  37.                         <a href="#">更多<span></span></a>   
  38.                     </dd>   
  39.                 </dl>   
  40.                 <!-- pc標簽會根據content_tag.class.php文件中接受到的catid參數的值重新定位模型及要查詢的模型表 -->   
  41.                 {pc:content action="lists" catid="$pinpaishibieid" num="4" order="id DESC"}   
  42.                 {loop $data $r}   
  43.                 <dl class="pinpaishibie_c">   
  44.                     <dt>   
  45.                         <a href="{$r[url]}"><img src="{$r[thumb]}" width="91" height="91" alt="{$r[title]}"></a>   
  46.                     </dt>   
  47.                     <dd>   
  48.                         <h3><a href="{$r[url]}">{$r[title]}</a></h3>   
  49.                         <p>   
  50.                             {str_cut($r[description],100,'...')}   
  51.                         </p>   
  52.                     </dd>   
  53.                 </dl>   
  54.                 {/loop}   
  55.                 {/pc}   
  56.             </div>   
  57.             <!-- 品牌圖片-->   
  58.             <div class="pinpaitupian">   
  59.                 <dl class="pinpaitupian_top">   
  60.                     <dt class="pinpaitupian_font"></dt>   
  61.                     <dd>   
  62.                         <a href="#">更多<span></span></a>   
  63.                     </dd>   
  64.                 </dl>   
  65.                 <ul class="pinpaitupian_c">   
  66.                     <!-- pc標簽會根據content_tag.class.php文件中接受到的catid參數的值重新定位模型及要查詢的模型表 -->   
  67.                     {pc:content action="lists" catid="$pinpaitujiid" num="8" order="id DESC"}   
  68.                     {loop $data $r}   
  69.                     <li>   
  70.                         <a href="{$r[url]}"><img src="{$r[thumb]}" width="141" height="141" alt="{$r[title]}"></a>   
  71.                         <p><a href="{$r[url]}">{$r[title]}</a></p>   
  72.                     </li>   
  73.                     {/loop}   
  74.                     {/pc}   
  75.                 </ul>   
  76.             </div>       
  77.             <!-- 品牌視頻 -->   
  78.             <div class="pinpaishipin">   
  79.                 <dl class="pinpaishipin_top">   
  80.                     <dt class="pinpaishipin_font"></dt>   
  81.                     <dd>   
  82.                         <a href="#">更多<span></span></a>   
  83.                     </dd>   
  84.                 </dl>   
  85.                 <div class="pinpaishipin_c">   
  86.                     <!-- pc標簽會根據content_tag.class.php文件中接受到的catid參數的值重新定位模型及要查詢的模型表 -->   
  87.                     {pc:content action="lists" catid="$pinpaishipinid" num="3" order="id DESC"}   
  88.                     {loop $data $r}   
  89.                     <a href="{$r[url]}"><img src="{$r[thumb]}" width="200" height="127" alt="{$r[title]}"></a>   
  90.                     {/loop}   
  91.                     {/pc}   
  92.                 </div>   
  93.             </div>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 于田县| 卓资县| 健康| 黔东| 迭部县| 湘阴县| 广饶县| 顺平县| 洞口县| 青川县| 和硕县| 三明市| 丰镇市| 虞城县| 金秀| 柏乡县| 新源县| 泾川县| 兴义市| 定兴县| 桐庐县| 尉犁县| 临清市| 铜川市| 南丰县| 都兰县| 通榆县| 兴义市| 九龙县| 大兴区| 金昌市| 合作市| 炎陵县| 崇阳县| 芦溪县| 博客| 盘锦市| 长宁县| 阜平县| 尚志市| 霍邱县|