首页 > CMS > PhpCMS > 正文

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

2024-09-10 07:15:59
字体:
来源:转载
供稿:网友

一、做phpcms-v9二次开发时,我们经常需要用到如下代码,所以有必须在这里注释说明一下:

  1. defined('IN_PHPCMS'or exit('No permission resources.');   
  2. //第一步:获取模型缓存路径   
  3. define('CACHE_MODEL_PATH',CACHE_PATH.'caches_model'.DIRECTORY_SEPARATOR.'caches_data'.DIRECTORY_SEPARATOR);   
  4.    
  5. pc_base::load_app_func('util','content');   
  6. class index {   
  7.     private $db;   
  8.     function __construct() {   
  9.         //第二步:获取与数据库相关的配置信息,如:数据表前缀、数据库名、数据库用户名、数据库密码、数据库编码、数据库类型   
  10.         $this->db = pc_base::load_model('content_model');   
  11.    
  12.         $this->_userid = param::get_cookie('_userid');   
  13.         $this->_username = param::get_cookie('_username');   
  14.         $this->_groupid = param::get_cookie('_groupid');   
  15.     }   
  16.     //首页   
  17.     public function init() {   
  18.         if(isset($_GET['siteid'])) {   
  19.             $siteid = intval($_GET['siteid']);   
  20.         } else {   
  21.             $siteid = 1;//模型情况下siteid为1   
  22.         }   
  23.         $siteid = $GLOBALS['siteid'] = max($siteid,1);   
  24.         define('SITEID'$siteid);   
  25.         $_userid = $this->_userid;   
  26.         $_username = $this->_username;   
  27.         $_groupid = $this->_groupid;   
  28.         //SEO   
  29.         $SEO = seo($siteid);   
  30.         $sitelist  = getcache('sitelist','commons');   
  31.         $default_style = $sitelist[$siteid]['default_style'];   
  32.         $CATEGORYS = getcache('category_content_'.$siteid,'commons');   
  33.         include template('content','index',$default_style);   
  34.     }   
  35.     //内容页   
  36.     public function show() {   
  37.         $catid = intval($_GET['catid']);   
  38.         $id = intval($_GET['id']);   
  39.    
  40.         if(!$catid || !$id) showmessage(L('information_does_not_exist'),'blank');   
  41.         $_userid = $this->_userid;   
  42.         $_username = $this->_username;   
  43.         $_groupid = $this->_groupid;   
  44.    
  45.         $page = intval($_GET['page']);   
  46.         $page = max($page,1);   
  47.    
  48.         $siteids = getcache('category_content','commons');//获取各栏目所对应的站点id   
  49.    
  50.         $siteid = $siteids[$catid];//获取当前栏目所对应的站点id   
  51.    
  52.         $CATEGORYS = getcache('category_content_'.$siteid,'commons');//获取当前站点下所有栏目的配置信息   
  53.            
  54.         if(!isset($CATEGORYS[$catid]) || $CATEGORYS[$catid]['type']!=0) showmessage(L('information_does_not_exist'),'blank');   
  55.    
  56.         $this->category = $CAT = $CATEGORYS[$catid];//获取当前站点下当前栏目的配置信息   
  57.    
  58.         $this->category_setting = $CAT['setting'] = string2array($this->category['setting']);   
  59.    
  60.         $siteid = $GLOBALS['siteid'] = $CAT['siteid'];//获取当前站点下当前栏目所对应的站点id值   
  61.            
  62.         $MODEL = getcache('model','commons');//获取各个模型的配置信息   
  63.    
  64.         $modelid = $CAT['modelid'];//获取当前站点下当前栏目所属的模型id,找到了模型,也就找到了要查询的模型表(数据表)   
  65.    
  66.         //设置模型表:通过缓存文件获取modelid,然后再通过模型modelid获取对应的模型表及对应的模型附表   
  67.         $tablename = $this->db->table_name = $this->db->db_tablepre.$MODEL[$modelid]['tablename'];   
  68.    
  69.         //设置模型附表   
  70.         $r = $this->db->get_one(array('id'=>$id));   
  71.    
  72.         if(!$r || $r['status'] != 99) showmessage(L('info_does_not_exists'),'blank');   
  73.    
  74.         //下面代码获取的是当前模型附表中数据   
  75.         $this->db->table_name = $tablename.'_data';   
  76.    
  77.         //下面代码获取的是当前模型附表中数据   
  78.         $r2 = $this->db->get_one(array('id'=>$id));   
  79.    
  80.         //将模型表数据和模型附表中数据合并在一起   
  81.         $rs = $r2 ? array_merge($r,$r2) : $r;   
  82.    
  83.         //再次重新赋值,以数据库为准   
  84.         $catid = $CATEGORYS[$r['catid']]['catid'];   
  85.         $modelid = $CATEGORYS[$catid]['modelid'];   
  86.            
  87.         require_once CACHE_MODEL_PATH.'content_output.class.php';   
  88.         $content_output = new content_output($modelid,$catid,$CATEGORYS);    //开源软件:Vevb.com 
  89.            
  90.         //将查询出来的数据经模型处理函数处理后放入$data数据中   
  91.         $data = $content_output->get($rs);   
  92.    
  93.         //注意:这行代码非常之重要,主要用来将数组中各个元素转化为变量,数据元素的键名为变量名,数据元素的值为变量值   
  94.         extract($data);

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表