您当前的位置: 站长圈 > 技术文章 > 后端教程 > phpcms-v9二次开发所必须知道的步骤

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

来源:blog.csdn.net 作者:网页狗 点击: 0

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

 

  1. defined('IN_PHPCMS'orexit('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. publicfunction 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. publicfunction 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);  
  89.  
  90. //将查询出来的数据经模型处理函数处理后放入$data数据中
  91. $data = $content_output->get($rs);  
  92.  
  93. //注意:这行代码非常之重要,主要用来将数组中各个元素转化为变量,数据元素的键名为变量名,数据元素的值为变量值
  94.         extract($data);