- //路径:phpcms/modules/content/index.php控制器
 - //列表页:文章列表页、图片列表页、下载列表页执行的都是这段程序
 - public function lists() {
 - $catid = intval($_GET['catid']); //栏目id
 - $_priv_data = $this->_category_priv($catid); //检查阅读权限
 - if($_priv_data=='-1') { //请登录
 - $forward = urlencode(get_url());
 - showmessage(L('login_website'),APP_PATH.'index.php?m=member&c=index&a=login&forward='.$forward);
 - } elseif($_priv_data=='-2') { //没权限
 - showmessage(L('no_priv'));
 - }
 - $_userid = $this->_userid; //用户id
 - $_username = $this->_username; //用户名
 - $_groupid = $this->_groupid; //用户会员组id
 - if(!$catid) showmessage(L('category_not_exists'),'blank'); //栏目不存在
 - $siteids = getcache('category_content','commons'); //获取所有栏目对应的站点id
 - $siteid = $siteids[$catid]; //获取当前栏目对应的站点id
 - $CATEGORYS = getcache('category_content_'.$siteid,'commons'); //获取当前站点下所有栏目的详细配置信息
 - if(!isset($CATEGORYS[$catid])) showmessage(L('category_not_exists'),'blank');
 - $CAT = $CATEGORYS[$catid]; //获取当前栏目的详细配置信息
 - $siteid = $GLOBALS['siteid'] = $CAT['siteid']; //获取当前栏目的站点id
 - //这行代码很重要
 - extract($CAT); //从当前栏目详细配置信息的数组中将变量导入到当前的符号表
 - $setting = string2array($setting); //将设置信息转换为数组格式
 - //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']); //模板风格,默认为default
 - $page = $_GET['page']; //当前页码
 - $template = $setting['category_template'] ? $setting['category_template'] : 'category';//栏目首页模板
 - $template_list = $setting['list_template'] ? $setting['list_template'] : 'list';//栏目列表页模板
 - if($type==0) { //0-内部栏目 1-单网页 2-外部链接
 - $template = $child ? $template : $template_list;//$child,是否有子栏目: 1-有 0-没有
 - $arrparentid = explode(',', $arrparentid); //当前栏目所有的父栏目组成的父栏目id数组
 - $top_parentid = $arrparentid[1] ? $arrparentid[1] : $catid;//当前栏目的顶级栏目id
 - $array_child = array(); //当前栏目下一级栏目的id组成的数组
 - $self_array = explode(',', $arrchildid); //当前栏目的所有子栏目组成的id数组,包含当前栏目id自身
 - //获取一级栏目ids
 - foreach ($self_array as $arr) {
 - if($arr!=$catid && $CATEGORYS[$arr][parentid]==$catid) {
 - $array_child[] = $arr;//当前栏目下一级栏目id组成的数组,不包含当前栏目id
 - }
 - }
 - $arrchildid = implode(',', $array_child);//当前栏目下一级栏目id所组成的数组
 - //URL规则
 - $urlrules = getcache('urlrules','commons');//获取所有的url重写规则
 - //如: 1 => '{$categorydir}{$catdir}/index.html|{$categorydir}{$catdir}/{$page}.html'
 - $urlrules = str_replace('|', '~',$urlrules[$category_ruleid]);//当前栏目页的url重写规则id
 - $tmp_urls = explode('~',$urlrules);//当前栏目页的url重写规则数组
 - $tmp_urls = isset($tmp_urls[1]) ? $tmp_urls[1] : $tmp_urls[0];//如果是数组,采用第一个url
 - preg_match_all('/{/$([a-z0-9_]+)}/i',$tmp_urls,$_urls);//$_urls:正则匹配的结果赋值给此变量
 - /**
 - * print_r($_urls):匹配到的结果
 - * 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);//如果有子栏目-栏目首页模板 如果无子栏目-栏目列表页模板
 - } else {
 - //单网页
 - $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);
 - }
 - }
 
新闻热点
疑难解答