您现在的位置是:首页 > cms教程 > phpcms教程phpcms教程
phpcmsV9怎么添加模块
林包显2025-05-16phpcms教程已有人查阅
导读为phpcms创建一个模块的开发流程【1】创建模块目录通过前面的学习,我们已经知道phpcms V9框架中的模块位于phcms/modules目录中,每一个目录称之为一个模块。如果要创建一个
为phpcms创建一个模块的开发流程
【1】创建模块目录
通过前面的学习,我们已经知道phpcms V9框架中的模块位于phcms/modules目录中,每一个目录称之为一个模块。
如果要创建一个模块,只要在 phpcms/modules 目录下创建文件夹并放入你的控制器类就可以了。
例如我要开发一个叫做test的模块,那么首先在 phpcms/modules 目录下创建文件夹,并将其命名为test。
观察其他模块的结构,可知test模块的标准结构通常应该也是这样的:
classes 为模块类库包
functions 为模块函数库包
templates 为模块模板包,通常放置含有权限控制的控制器模板,也就是后台模板。
如果你的模板有自定义的前台模板,你需要在phpcms\templates\default目录下创建一个你的模块名目录来放置前台模板,“default”为你的风格包名称,我们默认是用default。
【2】创建模块控制器类
上一步,我们已经创建好了一个名为test的模块,接下来我们继续为这个模块添加两个控制器类。
phpcms V9 的控制器就是模块的类文件,位于phpcms/modules/模块名/目录下面。类文件名称就是控制器名+.php,例如一个名为mytest的控制器,那么它的命名为mytest.php即可。控制器类默认继承系统的函数库,可以直接使用。
控制器类的类名称与控制器文件名必须相同。
控制器类文件包含两种形式:
1.前台浏览(不含权限控制),mytest.php 控制器
在phpcms/modules/test 目录下,新建文本文件,命名为mytest,修改文件类型为php, 用Notepad++打开编辑内容为:
等价于。
没有填写“a”值的情况下,默认调用init方法。
为什么这样子?请把《phpcms V9 MVC模式与URL访问解析》再读一遍。
2.后台管理(含权限控制),mytest_admin.php 控制器
后台控制器需要加载admin模块下的admin类,并继承该类。需要注意的是因为添加的控制器类继承了其它的类,要小心控制器类的方法名不要和该类中的方法名一样了,否则会造成影响,具体请查看admin类中有哪些方法。
在phpcms/modules/test 目录下,新建文本文件,命名为mytest_admin,修改文件类型为php, 用Notepad++打开编辑内容为:
phpcms 可以实现完全的模板与程序分离,所以在我们的控制器程序中要加载模板,才可以更友好的显示出来。
1.加载前台模板
前台模板文件在phpcms\templates\default\模块名称的目录中,本示例也就在phpcms\templates\default\test中。
加载模板方法如下:
在上面例子中如果要给mytest.php中init方法加载一个mytest的模板(可以拷贝content模块下的index.html作为替代),如下(所以模板名称为index):
2.加载后台模板
后台模板文件在phpcms\modules\模块名称\templates 目录中,本示例也就在phpcms\modules\test\templates中
加载模板方法如下:
// 加载模板方法:
include $this->admin_tpl('mytest_admin_list');
其中mytest_admin_list为phpcms\modules\test\templates中mytest_admin_list.tpl.php。
注意:此处模板必须以.tpl.php 作为后缀
在上面例子中如果要给mytest_admin.php中init方法加载一个mytest_admin_list的模板,如下:
【3】创建数据库模型类
至此,已经明确,各模块的数据库模型位于:phpcms/model/ 目录下。
数据模型文件的命名规则建议为:数据表名称 + '_model.class.php'
如果在我们的创建的模块中我要使用一个数据库“test”,首先需要建立一个数据库模型文件,文件名称为'test_model.class.php'
内容如下:
1. 数据库模型类名称必须与文件名称相同。
2. 必须继承与数据库模型基类model。
3. $this->db_setting = 'default'为数据库配置文件中配置数据库链接池名称,默认为default,一般情况下不需要修改。
4. $this->table_name = 'test'为数据表名称。
这样我们就建立好一个数据库模型类。那么,怎么使用呢?
在模块的控制器中使用(加载方式):
Good Good Study, Day Day Up.
顺序 选择 循环 总结
【1】创建模块目录
通过前面的学习,我们已经知道phpcms V9框架中的模块位于phcms/modules目录中,每一个目录称之为一个模块。
如果要创建一个模块,只要在 phpcms/modules 目录下创建文件夹并放入你的控制器类就可以了。
例如我要开发一个叫做test的模块,那么首先在 phpcms/modules 目录下创建文件夹,并将其命名为test。
观察其他模块的结构,可知test模块的标准结构通常应该也是这样的:
classes 为模块类库包
functions 为模块函数库包
templates 为模块模板包,通常放置含有权限控制的控制器模板,也就是后台模板。
如果你的模板有自定义的前台模板,你需要在phpcms\templates\default目录下创建一个你的模块名目录来放置前台模板,“default”为你的风格包名称,我们默认是用default。
【2】创建模块控制器类
上一步,我们已经创建好了一个名为test的模块,接下来我们继续为这个模块添加两个控制器类。
phpcms V9 的控制器就是模块的类文件,位于phpcms/modules/模块名/目录下面。类文件名称就是控制器名+.php,例如一个名为mytest的控制器,那么它的命名为mytest.php即可。控制器类默认继承系统的函数库,可以直接使用。
控制器类的类名称与控制器文件名必须相同。
控制器类文件包含两种形式:
1.前台浏览(不含权限控制),mytest.php 控制器
在phpcms/modules/test 目录下,新建文本文件,命名为mytest,修改文件类型为php, 用Notepad++打开编辑内容为:
<?php
defined('IN_PHPCMS') or exit('No permission resources.');
class mytest
{
function __construct(){}
public function init()
{
$myvar = 'hello world!';
echo $myvar;
}
public function mylist()
{
$myvar = 'hello world! This is an example!';
echo $myvar;
}
}
?>
其实,这个控制器的URL访问方法前面已经介绍过,请参见《phpcms V9 MVC模式与URL访问解析》等价于。
没有填写“a”值的情况下,默认调用init方法。
为什么这样子?请把《phpcms V9 MVC模式与URL访问解析》再读一遍。
2.后台管理(含权限控制),mytest_admin.php 控制器
后台控制器需要加载admin模块下的admin类,并继承该类。需要注意的是因为添加的控制器类继承了其它的类,要小心控制器类的方法名不要和该类中的方法名一样了,否则会造成影响,具体请查看admin类中有哪些方法。
在phpcms/modules/test 目录下,新建文本文件,命名为mytest_admin,修改文件类型为php, 用Notepad++打开编辑内容为:
<?php
defined('IN_PHPCMS') or exit('No permission resources.');
pc_base::load_app_class('admin','admin',0);
class mytest_admin extends admin
{
public function __construct() {}
public function init()
{
$myvar = 'oh,i am phpcmser';
echo $myvar;
}
}
?>
在控制器中增加模板调用phpcms 可以实现完全的模板与程序分离,所以在我们的控制器程序中要加载模板,才可以更友好的显示出来。
1.加载前台模板
前台模板文件在phpcms\templates\default\模块名称的目录中,本示例也就在phpcms\templates\default\test中。
加载模板方法如下:
// 加载模板方法:
include template('test', 'mytest', 'default');
其中,test为模块名称,mytest为模板目录下模板名称,default为风格名称,默认为default。在上面例子中如果要给mytest.php中init方法加载一个mytest的模板(可以拷贝content模块下的index.html作为替代),如下(所以模板名称为index):
public function init()
{
$myvar = 'hello world!';
echo $myvar;
include template('test', 'index');
}
这时,当我们再通过URL访问该方法的时候也就加载了对应的模板。2.加载后台模板
后台模板文件在phpcms\modules\模块名称\templates 目录中,本示例也就在phpcms\modules\test\templates中
加载模板方法如下:
// 加载模板方法:
include $this->admin_tpl('mytest_admin_list');
其中mytest_admin_list为phpcms\modules\test\templates中mytest_admin_list.tpl.php。
注意:此处模板必须以.tpl.php 作为后缀
在上面例子中如果要给mytest_admin.php中init方法加载一个mytest_admin_list的模板,如下:
public function init()
{
$myvar = 'oh,i am phpcmser';
echo $myvar;
include $this->admin_tpl('mytest_admin_list');
}
加载模板部分内容也可以参见系统框架源码content模块 phpcms\modules\content content.php文件的实现。【3】创建数据库模型类
至此,已经明确,各模块的数据库模型位于:phpcms/model/ 目录下。
数据模型文件的命名规则建议为:数据表名称 + '_model.class.php'
如果在我们的创建的模块中我要使用一个数据库“test”,首先需要建立一个数据库模型文件,文件名称为'test_model.class.php'
内容如下:
<?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();
}
}
?>
书写数据库模型类注意一下几点:1. 数据库模型类名称必须与文件名称相同。
2. 必须继承与数据库模型基类model。
3. $this->db_setting = 'default'为数据库配置文件中配置数据库链接池名称,默认为default,一般情况下不需要修改。
4. $this->table_name = 'test'为数据表名称。
这样我们就建立好一个数据库模型类。那么,怎么使用呢?
在模块的控制器中使用(加载方式):
$this->db = pc_base::load_model('test_model');
具体如下:
<?php
defined('IN_PHPCMS') or exit('No permission resources.');
class mytest
{
private $db;
function __construct()
{
$this->db = pc_base::load_model('test_model'); // 加载数据库模型
}
public function init()
{
$myvar = 'hello world!';
echo $myvar;
include template('test', 'index');
$result = $this->db->select(); // 调用select方法
var_dump($result);
}
public function mylist()
{
$myvar = 'hello world! This is an example!';
echo $myvar;
}
}
?>
其中$this->db中所支持的方法请参照父类 phpcms/libs/classes/model.class.php 中方法。Good Good Study, Day Day Up.
顺序 选择 循环 总结
本文标签:
很赞哦! ()
上一篇:phpcmsV9栏目管理源码分析
下一篇:phpcms源码结构分析
相关教程
图文教程
phpcmsv9系统搭建wap网站及单页面的方法
如需要绑定域名为wap.ebingou.cn,作下如操作:一、把wap.ebingou.cn域名绑定到你的这个网站主机上。二、在网站后台--模块--手机门户域名里面填写“http://wap.ebingou.cn/”
phpcms搬家后需要修改的文件有哪些
不论是更换域名还是本地建站后搬家到主机空间上,网站搬家过程中都需要考虑修改域名和配置文件的问题。那么在phpcms v9中我们要进行哪些设置呢?
PHPCMS数据筛选功能实现方法代码示例
第一步:添加模型字段,这个模型可以是官方的,也可以是你自定义的模型,以单选字段形式添加就好了;第二步:就是添加栏目和内容;第三步:模板如下,照着改就好了。
PHPCMS扩展的位置和开启方法
PHPCMS扩展正常一般在顶部导航中,如果未在导航栏中,应该是扩展被关闭了,可以通过更改在数据库中的“v9_menu”表下的m等于admin并且c等于extend的数据
相关源码
-
响应式艺考培训学校机构pbootcms模板html5源码基于PbootCMS免费开源内核开发,为艺考培训学校与艺术机构设计,替换图文即可快速适配全行业需求。响应式布局兼容手机/PC端,数据实时同步,运维效率提升300%。查看源码 -
(自适应)pbootcms模板五金元件气缸气动系统源码下载基于PbootCMS核心开发的气缸气动系统网站模板,为五金元件、气动设备制造企业设计。采用响应式布局技术,自动适配手机、平板等移动设备,确保各类终端用户获得良好浏览体验。查看源码 -
(自适应响应式)房产合同知识产权企业管理pbootcms模板下载本模板基于PbootCMS系统开发,为知识产权服务、法律咨询及企业合同管理等行业设计。采用严谨专业的布局风格,突出法律文书与知识产权服务行业特色,适合展示各类法律服务和知识产权相关内容。查看源码 -
(自适应响应式)运动健身瑜伽俱乐部网站pbootcms源码下载为健身瑜伽俱乐部设计的响应式网站模板,采用PbootCMS内核开发,可快速搭建专业级企业官网。模板默认适配运动健身行业视觉风格,用户可通过替换图文内容灵活应用于其他服务行业。查看源码 -
(自适应响应式)APP应用程序软件介绍落地页源码免费下载该模板为营销技术从业者设计,提供专业的内容展示平台。采用响应式布局,适配软件介绍、APP推广等营销场景,通过可视化后台可快速搭建符合行业特性的展示网站。查看源码 -
(自适应)工业机械制造设备网站pbootcms模板下载为机械制造、工业设备类企业设计,特别适合各类机械设备、生产线、工业自动化产品展示。采用响应式技术,确保在不同设备上都能清晰展示机械产品的技术参数和细节特点。查看源码
| 分享笔记 (共有 篇笔记) |
