您现在的位置是:首页 > cms教程 > phpcms教程phpcms教程
phpcms插件制作使用方法教程
听寒2025-05-16phpcms教程已有4人查阅
导读最近在研究PHP,学了一段时间后感觉想自己写点东西,但是又不知道写什么,之后把目标对准了PHPCMS的插件,从网上找了一下,大部分教程都只是教怎么写插件的具体代码
最近在研究PHP,学了一段时间后感觉想自己写点东西,但是又不知道写什么,之后把目标对准了PHPCMS的插件,从网上找了一下,大部分教程都只是教怎么写插件的具体代码,而没有教怎么把插件打成安装包,特别是官方,只字未提!这里鄙视一下~好了下面把我知道的一些东西写下来,希望能帮到新手~
下面我们先来看一下插件包的具体结构
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文件夹下面写的那个文件。 第一行的作用是确定是不是在phpcms的运行框架内.
第二行加载系统的model类,后面的参数0 的意思是并不实例化.
之后一行调用了父类的构造方法.可以在phpcms/libs/classes/model.class.php中找到
而这个model类里面定义了很多对数据的操作方法 最基本的增删改查。以后我再详细说说model基本的一些方法。
接着来看看modules 里面的东东
我们一个个往下面看 第一个language 是用来支持多语言菜单的。
然后是config.ini.php,这个里面写的是一些关于模块安装时候的信息。
文件里面是这个结构的 里面标注的很清楚了
接着是extention.inc.php 这个文件是用来创建后台管理菜单的目录结构的,也是用来控制权限的 文件之后应该有一个数组,这个数组是用来插入系统的languagezh-cnsystem_menu.lang.php里面的 格式如下 这里我分别解释一下:
$id:这个是你这个插件的菜单ID号,主要是用与下级菜单(如果有的话)挂载用的,就是从属于它下面的菜单会通过这个id变量挂到它的下面;
$menu_db->insert():这个是PHPCMS提供的一个方法,具体在集成的系统modul里可以自己去查,这句就是向数据库插入数据用的,里面的参数分别为:数组(要插入的内容),布尔变量(是否返回ID号),布尔变量(是否采用 replace into的方式添加数据);
数组的变量也分别解释一下:
name:这里写着操作名称
parentid:这个变量是父级的ID,就是说你想要让这个菜单显示在什么位置,
m:模块,就是你想调用的模块下面的控制器c和动作a都一样不一一解释了,
data:这个应该是附加数据,具体怎么用暂时不知道,
listorder:排序,主要是用在菜单比较多的时候用来决定排放位置先后顺序的,
display:就是说是不是让这个菜单显示出来,用1和0表示,1代表显示,0代表不显示千万别用例子中的方法啊!
之后只得一说的是parentid这个变量,它不是决定菜单放到什么位置吗?那该如何确定呢?看图:
1位置的"parentid"=>0
2位置的"parentid"=>29
这样就可以把菜单放到需要的位置了~
然后是model.php 这个就是你使用了哪些数据模型 可以理解为使用了哪些表 然后是model.sql 这个是用来向系统的模型表里面插入数据用的 然后是mytest.sql 建立你数据库表的语句应该写在这个文件里面
接着就是你所使用的模板 应该放在templates里面 命名的规则应该是 mytest_add.tpl.php
之后是你的控制器 这个有的研究了.控制器里面是针对你每个url传递过来的action也就是a=?的动作.默认动作是init
下面我们先来看一下插件包的具体结构
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文件夹下面写的那个文件。 第一行的作用是确定是不是在phpcms的运行框架内.
第二行加载系统的model类,后面的参数0 的意思是并不实例化.
之后一行调用了父类的构造方法.可以在phpcms/libs/classes/model.class.php中找到
而这个model类里面定义了很多对数据的操作方法 最基本的增删改查。以后我再详细说说model基本的一些方法。
接着来看看modules 里面的东东
我们一个个往下面看 第一个language 是用来支持多语言菜单的。
然后是config.ini.php,这个里面写的是一些关于模块安装时候的信息。
文件里面是这个结构的 里面标注的很清楚了
接着是extention.inc.php 这个文件是用来创建后台管理菜单的目录结构的,也是用来控制权限的 文件之后应该有一个数组,这个数组是用来插入系统的languagezh-cnsystem_menu.lang.php里面的 格式如下 这里我分别解释一下:
$id:这个是你这个插件的菜单ID号,主要是用与下级菜单(如果有的话)挂载用的,就是从属于它下面的菜单会通过这个id变量挂到它的下面;
$menu_db->insert():这个是PHPCMS提供的一个方法,具体在集成的系统modul里可以自己去查,这句就是向数据库插入数据用的,里面的参数分别为:数组(要插入的内容),布尔变量(是否返回ID号),布尔变量(是否采用 replace into的方式添加数据);
数组的变量也分别解释一下:
name:这里写着操作名称
parentid:这个变量是父级的ID,就是说你想要让这个菜单显示在什么位置,
m:模块,就是你想调用的模块下面的控制器c和动作a都一样不一一解释了,
data:这个应该是附加数据,具体怎么用暂时不知道,
listorder:排序,主要是用在菜单比较多的时候用来决定排放位置先后顺序的,
display:就是说是不是让这个菜单显示出来,用1和0表示,1代表显示,0代表不显示千万别用例子中的方法啊!
之后只得一说的是parentid这个变量,它不是决定菜单放到什么位置吗?那该如何确定呢?看图:
1位置的"parentid"=>0
2位置的"parentid"=>29
这样就可以把菜单放到需要的位置了~
然后是model.php 这个就是你使用了哪些数据模型 可以理解为使用了哪些表 然后是model.sql 这个是用来向系统的模型表里面插入数据用的 然后是mytest.sql 建立你数据库表的语句应该写在这个文件里面
接着就是你所使用的模板 应该放在templates里面 命名的规则应该是 mytest_add.tpl.php
之后是你的控制器 这个有的研究了.控制器里面是针对你每个url传递过来的action也就是a=?的动作.默认动作是init
本文标签:
很赞哦! (2)
上一篇:phpcms替换首页的方法示例
暂无内容 |
暂无内容 |
相关源码
-
pbootcms网站网络公司个人作品展示类网站源码(自适应)为网站建设公司、网络服务企业打造的响应式门户解决方案,基于PbootCMS内核深度开发。采用前沿自适应架构,无缝适配手机端交互与PC端展示需求。查看源码
-
(PC+WAP)铝合金门窗定制pbootcms网站模板源码为铝合金门窗、定制门窗企业打造的高性能网站模板,基于PbootCMS开源内核开发,采用HTML5自适应架构,PC与手机端数据实时同步,覆盖全终端用户交互场景。查看源码
-
pbootcms模板(PC+WAP)APP应用软件下载类官网源码为APP应用软件官网打造的响应式解决方案,PC端与移动端(WAP)数据实时同步,一次更新全网生效,满足多终端用户无缝体验需求。查看源码
-
pbootcms模板PC+WAP娱乐新闻资讯类博客网站源码该模板基于PbootCMS内核开发,专为娱乐新闻、健康生活类资讯网站设计,同时支持快速适配其他行业(如企业官网、博客门户等),仅需替换图文内容即可完成转型。查看源码
-
自适应APP应用程序介绍推广落地页pbootcms网站源码下载移动应用开发商设计的营销型落地页模板,基于PbootCMS内核深度开发采用前沿响应式架构,无缝适配手机端操作习惯与PC端展示需求。查看源码
-
pbootcms模板(自适应)花店鲜花花卉园艺网站源码一款基于PbootCMS内核开发的花店鲜花配送与花卉园艺企业网站模板。该模板采用响应式设计,自动适配手机、平板等移动设备,确保用户在任何设备上都能获得优质浏览体验。查看源码
暂无内容 |
暂无内容 |
图文教程
phpcms取消后台登录验证码的方法
网站后台验证码,一直是大部分开源程序自带的一个加强后台安全的功能,此功能可以防止后台被程序暴力破解等一些不安全的情况发生。但是我们也都知道,验证码大部分是以图片形式展示的PHPCMSV9任意文件下载漏洞分析
先来看看PHPCMS V9.6.0的任意下载还是和上次的注入一样,是个由parse_str() 函数引发的变量覆盖。PHPCMS和帝国CMS的缓存机制有什么不同,对比
1.phpcms使用文件和数据库缓存,适合小型到中型网站,易于管理但高并发时性能可能受限。2.帝国cms采用静态页面、数据库查询和内存缓存,适用于高并发和大流量,性能优越但维护成本高。phpcms标签参数使用说明
内容模块:content可用操作:lists 内容数据列表relation 内容相关文章hits 内容数据点击排行榜category 内容栏目列表
分享笔记 (共有 0 篇笔记) |