【phpcms-v9】专题模块前端控制器index.php文件分析

来源:互联网 发布:手机销售打印软件 编辑:程序博客网 时间:2024/04/29 04:41
<?php defined('IN_PHPCMS') or exit('No permission resources.');pc_base::load_app_func('global', 'special');//加载global.func.php文件class index {private $db;function __construct() {$this->db = pc_base::load_model('special_model');//table_name:special}/** * 专题列表  */public function special() {//站点id$siteid = $_GET['siteid'] ? intval($_GET['siteid']) : (get_siteid() ? get_siteid() : 1);//seo信息$SEO = seo($siteid);//加载专题列表页面include template('special', 'special_list');}/** * 专题首页 */public function init() {//专题id$specialid = $_GET['id'] ? $_GET['id'] : ($_GET['specialid'] ? $_GET['specialid'] : 0);if (!$specialid) showmessage(L('illegal_action'));//相当于:select * from gt_special where id='$specialid' and disabled=0$info = $this->db->get_one(array('id'=>$specialid, 'disabled'=>0));if(!$info) showmessage(L('special_not_exist'), 'back');//将当前专题id所对应的字段作为变量导入到当前的符号表extract($info);$css = get_css(unserialize($css));if(!$ispage) {//字段变量:如果不分页的话$type_db = pc_base::load_model('type_model');//类别表//查询当前专题下所有的类别$types = $type_db->select(array('module'=>'special', 'parentid'=>$specialid), '*', '', '`listorder` ASC, `typeid` ASC', '', 'listorder');}if ($pics) {//字段变量:专题导入的图片报道信息,如:1|65|周克华被警方击毙$pic_data = get_pic_content($pics);unset($pics);}if ($voteid) {//字段变量:投票信息,如:vote|1|你最爱吃的饭?$vote_info = explode('|', $voteid);$voteid = $vote_info[1];//投票id}$siteid =  $_GET['siteid'] ? $_GET['siteid'] : get_siteid();//站点id$SEO = seo($siteid, '', $title, $description);//seo信息//评论表commentid字段的组成$commentid = id_encode('special', $id, $siteid);//组成生成id号:urlencode($modules.'-'.$contentid.'-'.$siteid);$template = $info['index_template'] ? $info['index_template'] : 'index';//模板define('STYLE',$info['style']);include template('special', $template);}/** * 专题分类 */public function type() {$typeid = intval($_GET['typeid']);//分类id$specialid = intval($_GET['specialid']);//专题idif (!$specialid || !$typeid) showmessage(L('illegal_action'));//相当于:select * from gt_special where id='$special' and disabled=0  获取当前专题信息$info = $this->db->get_one(array('id'=>$specialid, 'disabled'=>0));if(!$info) showmessage(L('special_not_exist'), 'back');$page = max(intval($_GET['page']), 1);//当前专题信息extract($info);$css = get_css(unserialize($css));if(!$typeid) showmessage(L('illegal_action'));$type_db = pc_base::load_model('type_model');//类别表//相当于:select * from gt_type where typeid='$typeid'$info = $type_db->get_one(array('typeid'=>$_GET['typeid']));$SEO = seo($siteid, '', $info['typename'], '');//类别名称$template = $list_template ? $list_template : 'list';//类别对应的模板include template('special', $template);}/** * 专题展示 */public function show() {$id = intval($_GET['id']);//专题文章idif(!$id) showmessage(L('content_not_exist'),'blank');$page = max(intval($_GET['page']), 1);$c_db = pc_base::load_model('special_content_model');//专题文章主表$c_data_db = pc_base::load_model('special_c_data_model');//专题文章附表$rs = $c_db->get_one(array('id'=>$_GET['id']));//获取当前专题文章的主表内容if(!$rs) showmessage(L('content_checking'),'blank');//将当前专题文章主表中的字段转化为变量extract($rs);//是否用附表数据if ($isdata) {$arr_content = $c_data_db->get_one(array('id'=>$_GET['id']));//附表数据if (is_array($arr_content)) extract($arr_content);//将当前专题文章附表中的字段转化为变量}$siteid = get_siteid();//站点idif ($paginationtype) { //文章使用分页时:0-不分页  1-自动分页    2-手动分页if($paginationtype==1) {if (strpos($content, '[/page]')!==false) {$content = preg_replace("|\[page\](.*)\[/page\]|U", '', $content);}if (strpos($content, '[page]')!==false) {$content = str_replace('[page]', '', $content);}$contentpage = pc_base::load_app_class('contentpage', 'content'); //调用自动分页类$content = $contentpage->get_data($content, $maxcharperpage); //自动分页,自动添加上[page]} } else {//文章不使用分页的情况if (strpos($content, '[/page]')!==false) {$content = preg_replace("|\[page\](.*)\[/page\]|U", '', $content);}if (strpos($content, '[page]')!==false) {$content = str_replace('[page]', '', $content);}}$template = $show_template ? $show_template : 'show'; //调用模板$CONTENT_POS = strpos($content, '[page]');if ($CONTENT_POS !== false) {$contents = array_filter(explode('[page]', $content));$pagenumber = count($contents);$END_POS = strpos($content, '[/page]');if ($END_POS!==false && ($CONTENT_POS<7)) {$pagenumber--;}for ($i=1; $i<=$pagenumber; $i++) {$pageurls[$i] = content_url($_GET['id'], $i, $inputtime, 'php');}if ($END_POS !== false) {if($CONTENT_POS>7) {$content = '[page]'.$title.'[/page]'.$content;}if (preg_match_all("|\[page\](.*)\[/page\]|U", $content, $m, PREG_PATTERN_ORDER)) {foreach ($m[1] as $k=>$v) {$p = $k+1;$titles[$p]['title'] = strip_tags($v);$titles[$p]['url'] = $pageurls[$p][1];}}}//判断[page]出现的位置是否在第一位 if($CONTENT_POS<7) {$content = $contents[$page];} else {if ($page==1 && !empty($titles)) {$content = $title.'[/page]'.$contents[$page-1];} else {$content = $contents[$page-1];}}if($titles) {list($title, $content) = explode('[/page]', $content);$content = trim($content);if(strpos($content,'</p>')===0) {$content = '<p>'.$content;}if(stripos($content,'<p>')===0) {$content = $content.'</p>';}}pc_base::load_app_func('util', 'content');$title_pages = content_pages($pagenumber,$page, $pageurls);//分页代码}//当前专题的标题和url$_special = $this->db->get_one(array('id'=>$specialid), '`title`, `url`');pc_base::load_sys_class('format', '', 0);$inputtime = format::date($inputtime);//发布时间$SEO = seo($siteid, '', $title);$template = $show_template ? $show_template : 'show';$style = $style ? $style : 'default';include template('special', $template, $style);}public function comment_show() {$commentid = isset($_GET['commentid']) ? $_GET['commentid'] : 0;$url = isset($_GET['url']) ? $_GET['url'] : HTTP_REFERER;$id = isset($_GET['id']) ? intval($_GET['id']) : 0;$userid = param::get_cookie('_userid');include template('special', 'comment_show');}public function comment() {if (!$_GET['id']) return '0';$siteid =  $_GET['siteid'] ? $_GET['siteid'] : get_siteid();$id = intval($_GET['id']);$commentid = id_encode('special', $id, $siteid);$username = param::get_cookie('_username');$userid = param::get_cookie('_userid');if (!$userid) {showmessage(L('login_website'), APP_PATH.'index.php?m=member&c=index');}$date = date('m-d H:i', SYS_TIME);if ($_POST['dosubmit']) {$r = $this->db->get_one(array('id'=>$_POST['id']), '`title`, `url`');$comment = pc_base::load_app_class('comment', 'comment');if ($comment->add($commentid, $siteid, array('userid'=>$userid, 'username'=>$username, 'content'=>$_POST['content']), '', $r['title'], $r['url'])) {exit($username.'|'.SYS_TIME.'|'.$_POST['content']);} else {exit(0);}} else {pc_base::load_sys_class('form');include template('special', 'comment');}}}?>


原创粉丝点击