• 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); 
  • 相关阅读:
    python经常使用的十进制、16进制、字符串、字节串之间的转换(长期更新帖)
    axis2开发webservice之编写Axis2模块(Module)
    Android中的动画具体解释系列【2】——飞舞的蝴蝶
    湘潭邀请赛——Alice and Bob
    ZOJ 2859 二维线段树
    jsp导出身份证到excel时候格式不正确
    Android 自己定义View须要重写ondraw()等方法
    聚合类新闻client产品功能点详情分析
    vi下对齐代码的操作
    最新研发的基于Java的高速开发平台
  • 原文地址:https://www.cnblogs.com/sunscheung/p/4738600.html
Copyright © 2020-2023  润新知