- //路徑:phpcms/modules/content/index.php控制器
- //列表頁(yè):文章列表頁(yè)、圖片列表頁(yè)、下載列表頁(yè)執(zhí)行的都是這段程序
- public function lists() {
- $catid = intval($_GET['catid']); //欄目id
- $_priv_data = $this->_category_priv($catid); //檢查閱讀權(quán)限
- if($_priv_data=='-1') { //請(qǐng)登錄
- $forward = urlencode(get_url());
- showmessage(L('login_website'),APP_PATH.'index.php?m=member&c=index&a=login&forward='.$forward);
- } elseif($_priv_data=='-2') { //沒權(quán)限
- showmessage(L('no_priv'));
- }
- $_userid = $this->_userid; //用戶id
- $_username = $this->_username; //用戶名
- $_groupid = $this->_groupid; //用戶會(huì)員組id
- if(!$catid) showmessage(L('category_not_exists'),'blank'); //欄目不存在
- $siteids = getcache('category_content','commons'); //獲取所有欄目對(duì)應(yīng)的站點(diǎn)id
- $siteid = $siteids[$catid]; //獲取當(dāng)前欄目對(duì)應(yīng)的站點(diǎn)id
- $CATEGORYS = getcache('category_content_'.$siteid,'commons'); //獲取當(dāng)前站點(diǎn)下所有欄目的詳細(xì)配置信息
- if(!isset($CATEGORYS[$catid])) showmessage(L('category_not_exists'),'blank');
- $CAT = $CATEGORYS[$catid]; //獲取當(dāng)前欄目的詳細(xì)配置信息
- $siteid = $GLOBALS['siteid'] = $CAT['siteid']; //獲取當(dāng)前欄目的站點(diǎn)id
- //這行代碼很重要
- extract($CAT); //從當(dāng)前欄目詳細(xì)配置信息的數(shù)組中將變量導(dǎo)入到當(dāng)前的符號(hào)表
- $setting = string2array($setting); //將設(shè)置信息轉(zhuǎn)換為數(shù)組格式
- //SEO
- if(!$setting['meta_title']) $setting['meta_title'] = $catname; //title
- $SEO = seo($siteid, '',$setting['meta_title'],$setting['meta_description'],$setting['meta_keywords']);//description
- define('STYLE',$setting['template_list']); //模板風(fēng)格,默認(rèn)為default
- $page = $_GET['page']; //當(dāng)前頁(yè)碼
- $template = $setting['category_template'] ? $setting['category_template'] : 'category';//欄目首頁(yè)模板
- $template_list = $setting['list_template'] ? $setting['list_template'] : 'list';//欄目列表頁(yè)模板
- if($type==0) { //0-內(nèi)部欄目 1-單網(wǎng)頁(yè) 2-外部鏈接
- $template = $child ? $template : $template_list;//$child,是否有子欄目: 1-有 0-沒有
- $arrparentid = explode(',', $arrparentid); //當(dāng)前欄目所有的父欄目組成的父欄目id數(shù)組
- $top_parentid = $arrparentid[1] ? $arrparentid[1] : $catid;//當(dāng)前欄目的頂級(jí)欄目id
- $array_child = array(); //當(dāng)前欄目下一級(jí)欄目的id組成的數(shù)組
- $self_array = explode(',', $arrchildid); //當(dāng)前欄目的所有子欄目組成的id數(shù)組,包含當(dāng)前欄目id自身
- //獲取一級(jí)欄目ids
- foreach ($self_array as $arr) {
- if($arr!=$catid && $CATEGORYS[$arr][parentid]==$catid) {
- $array_child[] = $arr;//當(dāng)前欄目下一級(jí)欄目id組成的數(shù)組,不包含當(dāng)前欄目id
- }
- }
- $arrchildid = implode(',', $array_child);//當(dāng)前欄目下一級(jí)欄目id所組成的數(shù)組
- //URL規(guī)則
- $urlrules = getcache('urlrules','commons');//獲取所有的url重寫規(guī)則
- //如: 1 => '{$categorydir}{$catdir}/index.html|{$categorydir}{$catdir}/{$page}.html'
- $urlrules = str_replace('|', '~',$urlrules[$category_ruleid]);//當(dāng)前欄目頁(yè)的url重寫規(guī)則id
- $tmp_urls = explode('~',$urlrules);//當(dāng)前欄目頁(yè)的url重寫規(guī)則數(shù)組
- $tmp_urls = isset($tmp_urls[1]) ? $tmp_urls[1] : $tmp_urls[0];//如果是數(shù)組,采用第一個(gè)url
- preg_match_all('/{/$([a-z0-9_]+)}/i',$tmp_urls,$_urls);//$_urls:正則匹配的結(jié)果賦值給此變量
- /**
- * print_r($_urls):匹配到的結(jié)果
- * Array
- (
- [0] => Array
- (
- [0] => {$catid}
- [1] => {$page}
- )
- [1] => Array
- (
- [0] => catid
- [1] => page
- )
- )
- */
- if(!emptyempty($_urls[1])) {
- foreach($_urls[1] as $_v) {
- $GLOBALS['URL_ARRAY'][$_v] = $_GET[$_v];
- }
- }
- //如: 1 => '{$categorydir}{$catdir}/index.html|{$categorydir}{$catdir}/{$page}.html'
- define('URLRULE', $urlrules);
- $GLOBALS['URL_ARRAY']['categorydir'] = $categorydir;//
- $GLOBALS['URL_ARRAY']['catdir'] = $catdir;//英文欄目名稱
- $GLOBALS['URL_ARRAY']['catid'] = $catid;//欄目id
- //此行代碼可參照上一篇文章
- include template('content',$template);//如果有子欄目-欄目首頁(yè)模板 如果無子欄目-欄目列表頁(yè)模板
- } else {
- //單網(wǎng)頁(yè)
- $this->page_db = pc_base::load_model('page_model');
- $r = $this->page_db->get_one(array('catid'=>$catid));
- if($r) extract($r);
- $template = $setting['page_template'] ? $setting['page_template'] : 'page';
- $arrchild_arr = $CATEGORYS[$parentid]['arrchildid'];
- if($arrchild_arr=='') $arrchild_arr = $CATEGORYS[$catid]['arrchildid']; //Vevb.com
- $arrchild_arr = explode(',',$arrchild_arr);
- array_shift($arrchild_arr);
- $keywords = $keywords ? $keywords : $setting['meta_keywords'];
- $SEO = seo($siteid, 0, $title,$setting['meta_description'],$keywords);
- include template('content',$template);
- }
- }
新聞熱點(diǎn)
疑難解答
圖片精選