当前位置:首页 > CMS教程 > phpcms > 正文

phpcms-v9二次开发所必须知道的步骤

  • defined('IN_PHPCMS')?or?exit('No?permission?resources.');??
  • //第一步:获取模型缓存路径??
  • define('CACHE_MODEL_PATH',CACHE_PATH.'caches_model'.DIRECTORY_SEPARATOR.'caches_data'.DIRECTORY_SEPARATOR);??
  • ??
  • pc_base::load_app_func('util','content');??
  • class?index?{??
  • ????private?$db;??
  • ????function?__construct()?{??
  • ????????//第二步:获取与数据库相关的配置信息,如:数据表前缀、数据库名、数据库用户名、数据库密码、数据库编码、数据库类型??
  • ????????$this->db?=?pc_base::load_model('content_model');??
  • ??
  • ????????$this->_userid?=?param::get_cookie('_userid');??
  • ????????$this->_username?=?param::get_cookie('_username');??
  • ????????$this->_groupid?=?param::get_cookie('_groupid');??
  • ????}??
  • ????//首页??
  • ????public?function?init()?{??
  • ????????if(isset($_GET['siteid']))?{??
  • ????????????$siteid?=?intval($_GET['siteid']);??
  • ????????}?else?{??
  • ????????????$siteid?=?1;//模型情况下siteid为1??
  • ????????}??
  • ????????$siteid?=?$GLOBALS['siteid']?=?max($siteid,1);??
  • ????????define('SITEID',?$siteid);??
  • ????????$_userid?=?$this->_userid;??
  • ????????$_username?=?$this->_username;??
  • ????????$_groupid?=?$this->_groupid;??
  • ????????//SEO??
  • ????????$SEO?=?seo($siteid);??
  • ????????$sitelist??=?getcache('sitelist','commons');??
  • ????????$default_style?=?$sitelist[$siteid]['default_style'];??
  • ????????$CATEGORYS?=?getcache('category_content_'.$siteid,'commons');??
  • ????????include?template('content','index',$default_style);??
  • ????}??
  • ????//内容页??
  • ????public?function?show()?{??
  • ????????$catid?=?intval($_GET['catid']);??
  • ????????$id?=?intval($_GET['id']);??
  • ??
  • ????????if(!$catid?||?!$id)?showmessage(L('information_does_not_exist'),'blank');??
  • ????????$_userid?=?$this->_userid;??
  • ????????$_username?=?$this->_username;??
  • ????????$_groupid?=?$this->_groupid;??
  • ??
  • ????????$page?=?intval($_GET['page']);??
  • ????????$page?=?max($page,1);??
  • ??
  • ????????$siteids?=?getcache('category_content','commons');//获取各栏目所对应的站点id??
  • ??
  • ????????$siteid?=?$siteids[$catid];//获取当前栏目所对应的站点id??
  • ??
  • ????????$CATEGORYS?=?getcache('category_content_'.$siteid,'commons');//获取当前站点下所有栏目的配置信息??
  • ??????????
  • ????????if(!isset($CATEGORYS[$catid])?||?$CATEGORYS[$catid]['type']!=0)?showmessage(L('information_does_not_exist'),'blank');??
  • ??
  • ????????$this->category?=?$CAT?=?$CATEGORYS[$catid];//获取当前站点下当前栏目的配置信息??
  • ??
  • ????????$this->category_setting?=?$CAT['setting']?=?string2array($this->category['setting']);??
  • ??
  • ????????$siteid?=?$GLOBALS['siteid']?=?$CAT['siteid'];//获取当前站点下当前栏目所对应的站点id值??
  • ??????????
  • ????????$MODEL?=?getcache('model','commons');//获取各个模型的配置信息??
  • ??
  • ????????$modelid?=?$CAT['modelid'];//获取当前站点下当前栏目所属的模型id,找到了模型,也就找到了要查询的模型表(数据表)??
  • ??
  • ????????//设置模型表:通过缓存文件获取modelid,然后再通过模型modelid获取对应的模型表及对应的模型附表??
  • ????????$tablename?=?$this->db->table_name?=?$this->db->db_tablepre.$MODEL[$modelid]['tablename'];??
  • ??
  • ????????//设置模型附表??
  • ????????$r?=?$this->db->get_one(array('id'=>$id));??
  • ??
  • ????????if(!$r?||?$r['status']?!=?99)?showmessage(L('info_does_not_exists'),'blank');??
  • ??
  • ????????//下面代码获取的是当前模型附表中数据??
  • ????????$this->db->table_name?=?$tablename.'_data';??
  • ??
  • ????????//下面代码获取的是当前模型附表中数据??
  • ????????$r2?=?$this->db->get_one(array('id'=>$id));??
  • ??
  • ????????//将模型表数据和模型附表中数据合并在一起??
  • ????????$rs?=?$r2???array_merge($r,$r2)?:?$r;??
  • ??
  • ????????//再次重新赋值,以数据库为准??
  • ????????$catid?=?$CATEGORYS[$r['catid']]['catid'];??
  • ????????$modelid?=?$CATEGORYS[$catid]['modelid'];??
  • ??????????
  • ????????require_once?CACHE_MODEL_PATH.'content_output.class.php';??
  • ????????$content_output?=?new?content_output($modelid,$catid,$CATEGORYS);??
  • ??????????
  • ????????//将查询出来的数据经模型处理函数处理后放入$data数据中??
  • ????????$data?=?$content_output->get($rs);??
  • ??
  • ????????//注意:这行代码非常之重要,主要用来将数组中各个元素转化为变量,数据元素的键名为变量名,数据元素的值为变量值??
  • ????????extract($data);??
上一篇:【phpcms-v9】详情文字教程【含各种函数注释】 下一篇:最后一页