搜索
首页后端开发php教程phpcms V9 添加模块(转),phpcmsv9_PHP教程

phpcms V9 添加模块(转),phpcmsv9

转自:http://www.cnblogs.com/Braveliu/p/5101345.html

为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++打开编辑内容为:

复制代码

 1 <?php
 2     defined('IN_PHPCMS') or exit('No permission resources.');
 3     class mytest 
 4     {
 5         function __construct(){}
 6         public function init() 
 7         {
 8             $myvar = 'hello world!';
 9             echo $myvar;
10         }
11         public function mylist() 
12         {
13             $myvar = 'hello world! This is an example!';
14             echo $myvar;
15         }
16     }
17 ?>

复制代码

其实,这个控制器的URL访问方法前面已经介绍过,请参见《phpcms V9 MVC模式与URL访问解析》

http://www.abcd.com.cn/phpcms/index.php?m=test&c=mytest等价于

http://www.abcd.com.cn/phpcms/index.php?m=test&c=mytest&a=init。

没有填写“a”值的情况下,默认调用init方法。

为什么这样子?请把《phpcms V9 MVC模式与URL访问解析》再读一遍。

2.后台管理(含权限控制),mytest_admin.php 控制器

后台控制器需要加载admin模块下的admin类,并继承该类。需要注意的是因为添加的控制器类继承了其它的类,要小心控制器类的方法名不要和该类中的方法名一样了,否则会造成影响,具体请查看admin类中有哪些方法。

在phpcms/modules/test 目录下,新建文本文件,命名为mytest_admin,修改文件类型为php, 用Notepad++打开编辑内容为:

复制代码

 1 <?php
 2     defined('IN_PHPCMS') or exit('No permission resources.');
 3     pc_base::load_app_class('admin','admin',0);
 4     class mytest_admin extends admin 
 5     {
 6         public function __construct() {}
 7         public function init() 
 8         {
 9             $myvar = 'oh,i am phpcmser';
10             echo $myvar;
11         }
12     }
13 ?>

复制代码

在控制器中增加模板调用

phpcms 可以实现完全的模板与程序分离,所以在我们的控制器程序中要加载模板,才可以更友好的显示出来。

1.加载前台模板

前台模板文件在phpcms\templates\default\模块名称的目录中,本示例也就在phpcms\templates\default\test中。

加载模板方法如下:

1 // 加载模板方法:
2 include template('test', 'mytest', 'default');

其中,test为模块名称,mytest为模板目录下模板名称,default为风格名称,默认为default。

在上面例子中如果要给mytest.php中init方法加载一个mytest的模板(可以拷贝content模块下的index.html作为替代),如下(所以模板名称为index):

1 public function init() 
2 {
3     $myvar = 'hello world!';
4     echo $myvar;
5     include template('test', 'index');
6 }

这时,当我们再通过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的模板,如下:

1 public function init() 
2 {
3     $myvar = 'oh,i am phpcmser';
4     echo $myvar;
5     include $this->admin_tpl('mytest_admin_list');
6 }

加载模板部分内容也可以参见系统框架源码content模块 phpcms\modules\content content.php文件的实现。

【3】创建数据库模型类

至此,已经明确,各模块的数据库模型位于:phpcms/model/ 目录下。

数据模型文件的命名规则建议为:数据表名称 + '_model.class.php'

如果在我们的创建的模块中我要使用一个数据库“test”,首先需要建立一个数据库模型文件,文件名称为'test_model.class.php'

内容如下:

复制代码

 1 <?php
 2 defined('IN_PHPCMS') or exit('No permission resources.');
 3 pc_base::load_sys_class('model', '', 0);
 4 class test_model extends model
 5 {
 6     public function __construct() 
 7     {
 8         $this->db_config = pc_base::load_config('database');
 9         $this->db_setting = 'default';
10         $this->table_name = 'test';
11         parent::__construct();
12     }
13  }
14 ?>

复制代码

书写数据库模型类注意一下几点:

1. 数据库模型类名称必须与文件名称相同。

2. 必须继承与数据库模型基类model。

3. $this->db_setting = 'default'为数据库配置文件中配置数据库链接池名称,默认为default,一般情况下不需要修改。

4. $this->table_name = 'test'为数据表名称。

这样我们就建立好一个数据库模型类。那么,怎么使用呢?

在模块的控制器中使用(加载方式):

$this->db = pc_base::load_model('test_model');

具体如下:

复制代码

 1 db->select(); // 调用select方法
16             var_dump($result);
17         }
18         public function mylist()
19         {
20             $myvar = 'hello world! This is an example!';
21             echo $myvar;
22         }
23     }
24 ?>

复制代码

其中$this->db中所支持的方法请参照父类 phpcms/libs/classes/model.class.php 中方法。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1137573.htmlTechArticlephpcms V9 添加模块(转),phpcmsv9 转自:http://www.cnblogs.com/Braveliu/p/5101345.html 为phpcms创建一个模块的开发流程 【1】创建模块目录 通过前面的学...
声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
phpcms是什么框架phpcms是什么框架Apr 20, 2024 pm 10:51 PM

PHP CMS 是一种基于 PHP 的开源内容管理系统,用于管理网站内容,其特点包括易用性、强大功能、可扩展性、安全性高和免费开源。它可以节省时间、提升网站质量、增强协作并降低开发成本,广泛应用于新闻网站、博客、企业网站、电子商务网站和社区论坛等各种网站。

phpcms怎么跳转到详情页phpcms怎么跳转到详情页Jul 27, 2023 pm 05:23 PM

phpcms跳转到详情页方法:1、使用header函数来生成跳转链接;2、循环遍历内容列表;3、获取内容的标题和详情页链接;4、生成跳转链接即可。

微信登录集成指南:PHPCMS实战微信登录集成指南:PHPCMS实战Mar 29, 2024 am 09:18 AM

标题:微信登录集成指南:PHPCMS实战在今天的互联网时代,社交化登录已经成为网站必备的功能之一。微信作为国内最流行的社交平台之一,其登录功能也被越来越多的网站所采用。本文将介绍如何在PHPCMS网站中集成微信登录功能,并提供具体的代码示例。第一步:注册微信开放平台账号首先,我们需要在微信开放平台上注册一个开发者账号,申请相应的开发权限。登录[微信开放平台]

2023年最新phpcms视频教程推荐(二次开发必学)2023年最新phpcms视频教程推荐(二次开发必学)Oct 25, 2019 pm 03:45 PM

很多站长使用PHPCMS进行二次开发建站,PHP中文网特意推出了phpcms视频教程,大家可以随时随地免费观看视频教程,不需要从百度网盘下载,非常方便。

phpcms用什么数据库phpcms用什么数据库Feb 21, 2023 pm 06:57 PM

phpcms用mysql数据库。phpcms是一个PHP开源网站管理系统,采用PHP+MYSQL做为技术基础进行开发。PHPCMS V9采用OOP方式进行基础运行框架搭建,支持的PHP版本是PHP5及以上、支持的MYSQL版本是MySql 4.1以上版本。

phpcms有评论功能吗phpcms有评论功能吗Feb 16, 2023 am 10:06 AM

phpcms有评论功能。phpcms内置评论模块,提供了让网站的浏览者发布自己见解的功能,使得浏览者可以互动,相互交流自己的看法,来增加网站人气。PHPCMS的评论用户留言的功能,同时还增加了审核功能,防止言论中出现违禁词汇等。对网站管理者而言,PHPCMS的评论模块可以方便的管理用户评论,可以根据时间、关键字、是否审核等条件查找并管理留言内容。

phpcms怎么实现微信登陆phpcms怎么实现微信登陆Mar 09, 2023 am 09:33 AM

phpcms实现微信登录的方法:1、在根目录新建“wechat.php”;2、在“\phpcms\modules\member\index.php”下增加“public function wechat() {...}”;3、在“foreground.class.php”文件中通过wechat函数判断用户是否登录即可。

phpcms是什么意思phpcms是什么意思Apr 20, 2024 pm 10:39 PM

PHPCMS 是一款免费开源的内容管理系统 (CMS),特点包括:开放源码、模块化、灵活、用户友好和社区支持。它可用于创建各种类型的网站,包括企业网站、电子商务网站、博客和社区论坛。技术要求包括:PHP 5.6 或更高版本、MySQL、MariaDB 或 PostgreSQL 数据库以及 Apache 或 Nginx Web 服务器。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),