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

一、做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);


  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值