邓_ Phpcms·二次开发
PHPCMS V9产品介绍
PHPCMS V9(简称V9)采用PHP5+MYSQL做为技术基础进行开发。V9采用OOP(面向对象)方式进行基础运行框架搭建。模块化开发方式做为功能开发形式。框架易于功能扩展,代码维护,优秀的二次开发能力,可满足所有网站的应用需求。
5年开发经验的优秀团队,在掌握了丰富的WEB开发经验和CMS产品开发经验的同时,勇于创新追求完美的设计理念,为全球多达10万网站提供助力,并被更多的政府机构、教育机构、事业单位、商业企业、个人站长所认可。
V9在保留2008版的特点的同时,对新版本作出重大的创新,以期待全新的PHPCMS系统服务更多的用户。
-----------------------------------①---------------------------------

-----------------------------------②---------------------------------

-----------------------------------③---------------------------------
根目录
| – api 结构文件目录
| – caches 缓存文件目录
| – configs 系统配置文件目录
| – caches_* 系统缓存目录
| – phpcms phpcms框架主目录
| – languages 框架语言包目录
| – libs 框架主类库、主函数库目录
| – model 框架数据库模型目录
| – modules 框架模块目录
| – templates 框架系统模板目录
| – phpsso_server phpsso主目录
| – statics 系统附件包
| – css 系统css包
| – images 系统图片包
| – js 系统js包
| – index.php 程序主入口
-----------------------------------④---------------------------------

<?php
define('PHPCMS_PATH',dirname(__FILE__).DIRECTORY_SEPARATOR);
include PHPCMS_PATH.'/phpcms/base.php';
pc_base::creat_app();
?>
-----------------------------------⑤---------------------------------

<?php
define('IN_PHPCMS', true);
define('PC_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR);
if(!defined('PHPCMS_PATH')) define('PHPCMS_PATH',
PC_PATH.'..'.DIRECTORY_SEPARATOR);
define('CACHE_PATH', PHPCMS_PATH.'caches'.DIRECTORY_SEPARATOR);
…
?>
-----------------------------------⑥---------------------------------

-----------------------------------⑦---------------------------------

-----------------------------------⑦---------------------------------

-----------------------------------⑧---------------------------------

-----------------------------------⑨---------------------------------

<?php
function new_addslashes($string){
if(!is_array($string)) return addslashes($string);
foreach($string as $key => $val) $string[$key] = new_addslashes($val);
return $string;
}
... … ... …
?>
-----------------------------------⑩---------------------------------

-----------------------------------十一---------------------------------

-----------------------------------十二---------------------------------

-----------------------------------十三---------------------------------

-----------------------------------十四---------------------------------

-----------------------------------十五---------------------------------

-----------------------------------十六---------------------------------

-----------------------------------十七---------------------------------

入口文件
pc_base::load_sys_func('global');
pc_base::load_sys_func('extention');
pc_base::auto_load_func();
pc_base::load_config('system','web_path')
pc_base:: load_sys_class($classname, $path = '', $initialize = 1)
pc_base:: load_app_class($classname, $m = '', $initialize = 1)
-----------------------------------十八---------------------------------

-----------------------------------十九---------------------------------

-----------------------------------二十---------------------------------

<?php
defined('IN_PHPCMS') or exit('No permission resources.');
pc_base::load_sys_class('model', '', 0);
class test_model extends model {
public function __construct() {
$this->db_config = pc_base::load_config('database');
$this->db_setting = ‘default';
$this->table_name = 'test';
parent::__construct();
}
}
?>
-----------------------------------二十一-------------------------------

-----------------------------------二十二-------------------------------

-----------------------------------二十三-------------------------------

<?php
defined('IN_PHPCMS') or exit('No permission resources');
class mytest
{
public function init() {
echo 'this is a init';
}
public function mylist() {
echo 'this is mylist<br>hello world';
}
}
?>
-----------------------------------二十四-------------------------------

create TABLE v9_test(
id int auto_increment primary key,
title char(20)
);
insert into v9_test values(null,'this is a test');
insert into v9_test values(null,'hello world')
-----------------------------------二十五-------------------------------

<?php
defined('IN_PHPCMS') or exit('No permission resources.');
pc_base::load_sys_class('model', '', 0);
class test_model extends model {
public function __construct() {
$this->db_config = pc_base::load_config('database');
$this->db_setting = 'default';
$this->table_name = 'test';
parent::__construct();
}
}
?>
-----------------------------------二十六-------------------------------

<?php
defined('IN_PHPCMS') or exit('No permission resources');
class mytest {
public function __construct() {
$this->db=pc_base::load_model('test_model','',1);
}
public function init() {
$arr=$this->db->select();
//var_dump($arr);
include template('test','mytest',‘default');
}
}
?>
-----------------------------------二十七-------------------------------

-----------------------------------二十八-------------------------------

1.调用数据库模型
$this->db = pc_base::load_model('test_model');
其中$this->db中所支持的方法请参照phpcms/libs/classes/model.class.php中方法
2.加载系统类 $http = pc_base::load_sys_class('http'); //实例化http类 pc_base::load_sys_class('format', '', 0);
//调用form类,不进行实例化操作3.加载系统函
3.加载系统函数库 pc_base::load_sys_func('mail');
调用mail函数包
4. 加载模块类 $test = pc_base::load_sys_class(‘classname‘,’test’);
//实例化test模块下 classname类
5.加载模块函数库 pc_base::load_sys_func(‘global‘,’test’);
调用test模块的global函数包
-----------------------------------二十九-------------------------------

6.加载前台模板
include template('test', 'mytest', 'default');
7.加载后台模板 include $this->admin_tpl('mytest_admin_list');
8.权限控制 后台控制控制器需要加载admin模块下的admin类,并继承该类
<?php
defined('IN_PHPCMS') or exit('No permission resources.');
pc_base::load_app_class('admin','admin',0);
class mytest_admin extends admin {
//这个控制器需要登录后台才可以访问
}
?>
--------------------------------------------------------------------------------------------------邓总随笔
邓_ Phpcms·二次开发的更多相关文章
- [PC]PHPCMS二次开发指南(上)
------------------------------------------------------------------------------------- PHPCMS本身功能已经很完 ...
- phpcms二次开发笔记
phpcms二次开发笔记 --soulsjie 以下载的全新的phpcms搭建一个新的站点为例,讲解如何利用phpcms进行二次开发 一.下载和安装phpcms http://www.phpcms.c ...
- PHPCMS二次开发教程(转)
转自:http://www.cnblogs.com/semcoding/p/3347600.html PHPCMS V9 结构设计 根目录 |–api 结构文件目录 |–caches 缓存文件目录 ...
- PHPCMS二次开发教程
PHPCMS V9 结构设计 根目录|–api 结构文件目录|–caches 缓存文件目录 |– configs 系统配置文件目录 |– caches_* 系统缓存目录|–phpcms p ...
- PHPCMS 使用图示和PHPCMS二次开发教程(转)
PHPCMS V9 核心文件说明 模块与控制器 模块: phpcms v9框架中的模块,位于phpcms/modules目录中 每一个目录称之为一个模块.即url访问中的m. 访问content模块示 ...
- phpcms二次开发步骤
文件目录结构 根目录 | – api 接口文件目录 | – caches 缓存文件目录 | – configs 系统配置文件目录 | – caches_* 系统缓存目录 | – phpcms phpc ...
- Phpcms·二次开发
PHPCMS V9产品介绍 PHPCMS V9(简称V9)采用PHP5+MYSQL做为技术基础进行开发.V9采用OOP(面向对象)方式进行基础运行框架搭建.模块化开发方式做为功能开发形式.框架易于功能 ...
- phpcms二次开发中无法获取SESSION的值
今天在在phpcms开发留言板用到验证码,提交数据,后台无法$_SESSION['code']无法获取验证码值,也无法打印var_dump($_SESSION)值,我们只需要在文件头部添加如下代码: ...
- phpcms 二次开发数据过滤的技巧
参数过滤 1,针对不能直接使用pdo进行参数绑定,可以使用sprintf模拟,并使用new_addslashes来过滤,然后使用query执行拼接的sql %% - 返回百分比符号 %b - 二进制数 ...
随机推荐
- 多级联动系列——ajax调用XML实现三级联动
ajax 使用起来特别的方便,再也不操心浏览器兼容问题了.用ajax调用XML页面中的内容,来生成三级联动,OK废话不多说,跟着我一步步写吧. 首先写一个XML文件.data.xml <?xml ...
- Extjs显示图片
1.首先做一个容器 xtype : 'container', // 第2行 anchor : '100%', layout : 'column', items : [{ columnWidth : 0 ...
- JNDI 笔记(一) 概述
很多地方都会用到JNDI,一大堆的缩写加上一大堆不清不楚的概念描述,使得在看到的时候都不认识,更不要说使用了. JNDI,Java Naming Directory Interface,J2EE的 ...
- P1850 换教室 概率dp
其实说是概率dp,本质上和dp没什么区别,就是把所有可能转移的情况全枚举一下就行了,不过dp方程确实有点长... ps:这个题的floyed我竟然之前写跪了... 题目: 题目描述 对于刚上大学的牛牛 ...
- js返回16位随机数
public string GetDataRandom() { string strData=DateTime.Now.ToString(); ...
- Android PopWindow的替代品BasePopup
版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/109 背景描述 最近一段时间,又看到了这个开源项目Base ...
- Jmeter - 服务器性能检测
在对系统做压力测试时,往往需要对服务的性能进行监控,包括CPU,Memory,IO,还有网络情况进行监控. Jemter有个一插件,能很好的支持这些性能监控.原理是服务器启动服务之后,测试机发起请求, ...
- 《CSS Mastery》读书笔记(3)
第三章 可视化格式模型 三个最重要的CSS概念需要掌握,浮动floating,定位positioning, 框模型(有些书翻译成盒子模型)box model. 这些概念控制了元素在页面中的安放和显示. ...
- Entity Framework -- 添加,删除,修改,关系依附,关系摘除,验证操作
数据库模型 这个基本上是浓缩 Jerry Tom博客的内容,作为参考http://www.cnblogs.com/mbailing/archive/2012/07/31/2616779.html 说明 ...
- Linux rsync配置用于服务器之间传输大量的数据
Linux的rsync 配置,用于服务器之间远程传大量的数据 [教程主题]:rsync [课程录制]: 创E [主要内容] [1] rsync介绍 Rsync(Remote Synchronize ...