您现在的位置是:首页 > cms教程 > phpcms教程phpcms教程
PHPcms模块开发教程
谭满铿2025-05-20phpcms教程已有人查阅
导读由于工作关系,只能暂时放弃对mongodb的研究了,开始研究PHPcms,目前为止我已经基本完成了模块的开发,趁着周末来这里做个总结。我发现phpcms写的还不错
由于工作关系,只能暂时放弃对mongodb的研究了,开始研究PHPcms,目前为止我已经基本完成了模块的开发,趁着周末来这里做个总结。我发现phpcms写的还不错。不过文档什么的确实不多.
不说废话了.对于phpcms的模块开发.首先要了解模块的目录结构.
找到他的目录结构 我们要开发的东东(也就是模块)就在/phpcms/modules/下面
如果没有什么特别的 在开发一个模块之前先要按照目录结构建立好相关目录并且设计好数据库表结构 比方说 我们建立一个模块叫做我的模块 my_test
下面应该是mytest下的目录结构
mytest
--class //这个是mytest模块会用到的类
--function//mytest模块用到的函数
--install//安装此模块需要的一些配置文件和建立数据表myslq语句什么的在这里
--language//多语言的时候会用到
--config.ini.php//这个配置文件是用来描述整个模块的一些信息
--extention.inc.php//这个是创建目录结构 .这个文件也用来控制权限
--model.php//模块使用了哪些数据模型.(可以理解为使用了哪些表.)
--model.sql//这个向数据库里面插入模型的记录
--my_test.sql//这个文件在安装的时候会被执行,把建立数据库表的sql放进来
--templates //,mytest模块用到的模板文件
--uninstall //卸载模块时候用到的配置和文件
这个里面的文件我没研究 回头研究了补上.
my_test.php //这个是mytest模块的后台控制器文件`
index.php//这个是前台的控制器,这个我没写东西.
建立完一个这样的结构后 我们还需要在/phpcms/model/下面建立我们的数据模型
例如 my_test_model.class.php (这个使用了很典型的工厂模式)
具体每个文件里面写了些什么.我们一个一个来看 .首先来看我们在model文件夹下面写的那个文件.
第二行加载系统的model类,后面的参数0 的意思是并不实例化.
之后一行调用了父类的构造方法.可以在phpcms/libs/classes/model.class.php中找到
而这个model类里面定义了很多对数据的操作方法 最基本的增删改查。以后我再详细说说model基本的一些方法。
接着来看看modules 里面的东东
我们一个个往下面看 第一个language 是用来支持多语言菜单的。
然后是config.ini.php,这个里面写的是一些关于模块安装时候的信息。
文件里面是这个结构的
接着是extention.inc.php 这个文件是用来创建后台管理菜单的目录结构的,也是用来控制权限的
$id= $menu_db->insert(array('name'=>'这里写着操作名称', 'parentid'=>父ID, 'm'=>'模块', 'c'=>'控制器', 'a'=>'动作', 'data'=>'', 'listorder'=>排序, 'display'=>'是否显示'),true);//之后的true是用来返回ID的
文件之后应该有一个数组,这个数组是用来插入系统的\language\zh-cn\system_menu.lang.php里面的 格式如下
return array('mytest','my_test_artcle');
然后是model.sql 这个是用来向系统的模型表里面插入数据用的
INSERT INTO `phpcms_module` (`module`, `name`, `url`, `iscore`, `version`, `description`, `setting`, `listorder`, `disabled`, `installdate`, `updatedate`) VALUES ();
然后是mytest.sql 建立你数据库表的语句应该写在这个文件里面
接着就是你所使用的模板 应该放在templates里面 命名的规则应该是 mytest_add.tpl.php
之后是你的控制器 这个有的研究了.控制器里面是针对你每个url传递过来的action也就是a=?的动作.默认动作是init
写这个博客的时候我已经基本完成了我的模块的开发。回头还有很多东西要写上来。这次过程收获了不少。这个博客是我刚刚开始这个项目的时候打的草稿。
不说废话了.对于phpcms的模块开发.首先要了解模块的目录结构.
找到他的目录结构 我们要开发的东东(也就是模块)就在/phpcms/modules/下面
如果没有什么特别的 在开发一个模块之前先要按照目录结构建立好相关目录并且设计好数据库表结构 比方说 我们建立一个模块叫做我的模块 my_test
下面应该是mytest下的目录结构
mytest
--class //这个是mytest模块会用到的类
--function//mytest模块用到的函数
--install//安装此模块需要的一些配置文件和建立数据表myslq语句什么的在这里
--language//多语言的时候会用到
--config.ini.php//这个配置文件是用来描述整个模块的一些信息
--extention.inc.php//这个是创建目录结构 .这个文件也用来控制权限
--model.php//模块使用了哪些数据模型.(可以理解为使用了哪些表.)
--model.sql//这个向数据库里面插入模型的记录
--my_test.sql//这个文件在安装的时候会被执行,把建立数据库表的sql放进来
--templates //,mytest模块用到的模板文件
--uninstall //卸载模块时候用到的配置和文件
这个里面的文件我没研究 回头研究了补上.
my_test.php //这个是mytest模块的后台控制器文件`
index.php//这个是前台的控制器,这个我没写东西.
建立完一个这样的结构后 我们还需要在/phpcms/model/下面建立我们的数据模型
例如 my_test_model.class.php (这个使用了很典型的工厂模式)
具体每个文件里面写了些什么.我们一个一个来看 .首先来看我们在model文件夹下面写的那个文件.
<?php
defined('IN_PHPCMS') or exit('No permission resources.');
pc_base::load_sys_class('model', '', 0);
class my_test_model extends model {
public function __construct() {
$this->db_config = pc_base::load_config('database');
$this->db_setting = 'default';//默认的数据库配置.//多个库的话可以在这里选库
$this->table_name = 'my_test';//这个就是表名称,不用加表前缀
parent::__construct();
}
}
?>
第一行的作用是确定是不是在phpcms的运行框架内.第二行加载系统的model类,后面的参数0 的意思是并不实例化.
之后一行调用了父类的构造方法.可以在phpcms/libs/classes/model.class.php中找到
而这个model类里面定义了很多对数据的操作方法 最基本的增删改查。以后我再详细说说model基本的一些方法。
接着来看看modules 里面的东东
我们一个个往下面看 第一个language 是用来支持多语言菜单的。
然后是config.ini.php,这个里面写的是一些关于模块安装时候的信息。
文件里面是这个结构的
$module = 'mytest';//使用的model
$modulename = '这里是模块的名称';
$introduce = '模块的描述信息';
$author = '作者';
$authorsite = '作者网站';
$authoremail = '作者email';
里面标注的很清楚了接着是extention.inc.php 这个文件是用来创建后台管理菜单的目录结构的,也是用来控制权限的
$id= $menu_db->insert(array('name'=>'这里写着操作名称', 'parentid'=>父ID, 'm'=>'模块', 'c'=>'控制器', 'a'=>'动作', 'data'=>'', 'listorder'=>排序, 'display'=>'是否显示'),true);//之后的true是用来返回ID的
文件之后应该有一个数组,这个数组是用来插入系统的\language\zh-cn\system_menu.lang.php里面的 格式如下
$language = array(
'这里是你起的操作名称'=>'这里是操作的中文翻译',
类似:'mytest_init'=>'显示列表'
);
然后是model.php 这个就是你使用了哪些数据模型 可以理解为使用了哪些表return array('mytest','my_test_artcle');
然后是model.sql 这个是用来向系统的模型表里面插入数据用的
INSERT INTO `phpcms_module` (`module`, `name`, `url`, `iscore`, `version`, `description`, `setting`, `listorder`, `disabled`, `installdate`, `updatedate`) VALUES ();
然后是mytest.sql 建立你数据库表的语句应该写在这个文件里面
接着就是你所使用的模板 应该放在templates里面 命名的规则应该是 mytest_add.tpl.php
之后是你的控制器 这个有的研究了.控制器里面是针对你每个url传递过来的action也就是a=?的动作.默认动作是init
<?php
defined('IN_PHPCMS') or exit('No permission resources.');
pc_base::load_app_class('admin','admin',0);
class mytest extends admin(){
public function __construct(){
parent::__construct;//调用父类的构造函数
}
public function init(){
echo "这里是默认的操作方法";
}
public function add(){
include $this->admin_tpl('mytest_add');//使用模板的方法
}
}
控制器里面写好了 我们把上面的文件都写完了就可以安装我们的模块了 。写这个博客的时候我已经基本完成了我的模块的开发。回头还有很多东西要写上来。这次过程收获了不少。这个博客是我刚刚开始这个项目的时候打的草稿。
本文标签:
很赞哦! ()
上一篇:phpcms路由配置教程
图文教程
phpcms前台任意代码执行漏洞的方法实例
phpcms v9 中 string2array()函数使用了eval函数,在多个地方可能造成代码执行漏洞/phpsso_server/phpcms/libs/functions/global.func.php
phpcms有get代码乱的解决方法
phpcms有get代码乱怎么办?PHP接收GET中文参数乱码的原因及解决方案。
PHPCMS与帝国CMS在多语言支持功能对比
在今天这个全球化的时代,多语言支持对于内容管理系统(CMS)来说至关重要。无论是面向全球用户的网站,还是需要多语言版本的企业网站,多语言支持都是一个不可忽视的功能。
phpcms替换类列表页内容页主页的方法
利用phpcms制作企业站,首先要将静态的企业主页替换成后台可编辑的动态主页。在phpcms/install_package/phpcms/templates新建一个英文文件夹
相关源码
-
(PC+WAP)红色厨具厨房用品设备pbootcms模板源码下载为厨具设备企业设计的响应式网站模板,采用PbootCMS内核开发,适用于商用厨房设备、家用厨具、厨房用品等企业展示。模板包含产品展示、新闻动态、案例中心等标准模块,助您快速搭建专业级行业网站。查看源码 -
(PC+WAP)玻璃钢不锈钢钢材环保设备pbootcms网站模板采用PbootCMS内核开发的响应式网站模板,为玻璃钢环保设备制造、不锈钢钢材贸易企业设计,适配产品展示及企业服务场景。通过自适应技术实现PC与WAP端数据实时同步查看源码 -
(自适应响应式)蓝色勘察设计院机构单位商会协会pbootcms模板下载本模板基于PbootCMS系统开发,为勘察设计院所、工程咨询单位设计,特别适合展示设计成果、技术服务和项目案例。采用响应式技术,确保设计图纸和方案以及文案在不同设备上都能清晰展示。查看源码 -
WordPress主题模板JustNews资讯博客类源码V5.2.2JustNews主题针对博客创作、自媒体运营及资讯发布类网站的需求而设计,提供专业的内容展示与管理方案。该主题集成前端用户中心功能,支持用户在前端界面发布和投稿文章,操作流程简洁高效。查看源码 -
(自适应)平面设计网络工作室个人作品展示网站模板免费下载基于PbootCMS内核开发的响应式网站模板,为设计工作室、创意机构打造的作品展示解决方案。通过模块化布局与极简交互设计,呈现设计作品的视觉细节,支持作品分类、案例解析等多维度展示方式。查看源码 -
(自适应响应式)法律咨询律师事务所法务pbootcms源码下载为律师事务所、法律咨询机构设计,特别适合展示法律服务、律师团队和成功案例。采用响应式技术,确保在不同设备上都能提供专业的法律信息展示和咨询服务。查看源码
| 分享笔记 (共有 篇笔记) |
