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

原文地址:http://blog.csdn.net/yanhui_wei/article/details/8680148

【phpcms-v9】phpcms-v9二次开发所必须知道的步骤(转载)的更多相关文章

  1. PHPCMS V9 简单的二次开发

    更多二次开发技巧,查看phpcms系统帮助 ,前台模板解析后的缓存 caches\caches_template\default 前台控制类index.php,前台标签类*_tag.class.php ...

  2. EcShop二次开发学习方法

    EcShop二次开发学习方法 (2012-03-08 11:10:08) 转载▼ 标签: 京东 公用函数库 二次开发 sql语言 数据库设计 杂谈 分类: ecshop 近年来,随着互联网的发展,电子 ...

  3. phpcms v9二次开发笔记

    phpcms是基于MVC结构的. 安装: 下载phpcms_v9.5.9_UTF8.zip:新建目录phpcms,将压缩包里install_package目录下所有文件复制到phpcms目录.浏览器输 ...

  4. phpcms v9版本二次开发四步曲

    今晚看了一下PHPCMS V9版本,做一个实例抛砖引玉,其实很简单,以下是二次开发的一个实例以旅游模块为例1.   在phpcms\modules目录下建立一个文件夹tour2.  在phpcms\m ...

  5. PHPCMS V9二次开发便捷自定义后台入口文件夹

    phpcms v9二次开发便捷自定义后台入口文件夹 最新发布的phpcms v9由于采用了mvc的设计模式,所以它的后台访问地址是固定的,虽然可以通过修改路由配置文件来实现修改,但每次都修改路由配置文 ...

  6. phpcms v9二次开发之模型类的应用(1)

    在<phpcms二次开发之模型类model.class.php>中讲到了模型类的建立方法,接下来我讲一下模型类的应用.      前段时间我基于phpcms v9开发了一个足球网.足球网是 ...

  7. phpcms v9二次开发之模型类的应用(2)

    二.模型操作方法select()--查询语句         //查询级别管理列表信息    public function levellists() { $lelists = $this->l ...

  8. phpcms v9二次开发之数据模型类

    系统模型类:model.class.php数据模型类的位置:/phpcms/libs/classes phpcms v9二次开发中,我们要经常需要对模块的数据表进行查询.添加.修改和删除数据等操作,所 ...

  9. PHPCMS V9 模块开发 二次开发实例 留言本

    鄙人实现了PHPCMS V9 产品开发权威指南(2011官方最新版).doc中的留言板实例,并加上模块安装和卸载功能, 程序可以运行,但只实现基本功能,目的是想让和我一样徘徊在PHPCMS门口不知道从 ...

随机推荐

  1. JS实现打印功能

    <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ t ...

  2. js-FCC算法-No repeats please字符串的全排列

    把一个字符串中的字符重新排列生成新的字符串,返回新生成的字符串里没有连续重复字符的字符串个数.连续重复只以单个字符为准 例如, aab 应该返回 2 因为它总共有6中排列 (aab, aab, aba ...

  3. jdbc实现事务

    //conn需要自己获取,这里我用的时springjdbcTemplate Connection conn = null; PreparedStatement pstm = null; try { c ...

  4. Android WebService

    Web Service简介 Web of Services refers to message-based design frequently found on the Web and in ente ...

  5. BackGroundWorker控件的使用注意

    该控件有三个事件: DoWork .ProgressChanged 和 RunWorkerCompleted 在程序中调用RunWorkerAsync方法则会启动DoWork事件的事件处理,当在事件处 ...

  6. ofo走出校园观察:市场定位导致产品错位?

    Ofo和摩拜单车虽然同样都是做单车共享,但实际上两者在最初的市场定位是有明显的差异的,因此提供的产品方案也存在巨大的差异. 市场定位不同,导致产品方案的巨大差异 摩拜单车一开始就定位于开放市场,充分的 ...

  7. RESTful的理解

    REST(Representational State Transfer ),有中文翻译为"具象状态传输"(也有:"代表性状态传输").是由 Roy Thoma ...

  8. PHP ServerPush (推送) 技术的探讨

    2016年11月29日17:51:03 转自:http://www.cnblogs.com/hnrainll/archive/2013/05/07/3064874.html 需求: 我想做个会员站内通 ...

  9. jsf primefaces note

    对应cdi,inject的变量,必须使用getter才能访问的值. @Inject DateView dateView; dateView.getFromDate1() 这样是娶不到的: dateVi ...

  10. Altium Designer 15 --- PCB 3D View

    press 3 key to swith to 3D view, and press shift key and dont' loose your grip, hold the right mouse ...