找回密码
 立即注册
即日起,论坛关闭新用户注册和登录,论坛相关的贴子保留查阅和下载。获得授权后,有技术问题可联系微信 13199509559 一对一解决。 2024-3-12
查看: 2102|回复: 2
打印 上一主题 下一主题

为ourphp开发插件,ourphp插件开发指南及文档说明

209

主题

209

主题

209

主题

管理员

Rank: 9Rank: 9Rank: 9

积分
0
跳转到指定楼层
1#
admin 发表于 2023-1-2 13:04:22 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
为ourphp开发插件,ourphp插件开发指南及文档说明

ourphp从7.0开始,插件及模板分为“付费”和“免费”两种。免费的插件和模板可通过ourphp的论坛版块中下载安装使用,付费的插件模板需要通过ourphp的应用市场在线安装和使用。


您开发的插件扩展,可免费无私奉献给ourphp的普通使用者,也可通过ourphp的应用市场赚取拥金。
所有拥金都归开发者所有,官方不取收一分服务费。


成为插件开发者需要会 PHP+MYSQL 的基础开发技能。


准备好了,我们开始学习插件开发吧!


第一、开发前准备

1.  ourphp系统升级到7.0+ ,并进入后台-》运营-》开发者-》创建新插件2. 根据创建页面的提示输入插件的相关信息(具体后面有介绍)
3. 插件包创建成功后,系统会在 /client/plus/ 目录中生成已插件ID为名称的文件夹
4. 后续插件的所有功能开发,都在这个文件夹内完成。包括前后端的所有功能及页面
5. 插件前端页面的UI部份建议用YIQI-UI ,直达链接 https://www.ourphp.net/?cn-about-33.html
6. 开发插件需要用到ourphp的数据库文档,直达链接 https://www.ourphp.net/?cn-about-56.html
7. 开发插件需要用到ourphp的数据库操作类,直达链接 https://www.ourphp.net/?cn-about-58.html
8. 开发插件可能要用到smarty开发文档,直达链接 https://www.ourphp.net/?cn-about-57.html
9. 插件安装问题总汇 https://www.ourphp.net/club/forum.php?mod=viewthread&tid=17575 (新版本基本用不到了)
10.如果前端模板需要用到smarty标签调用动态数据,原始smarty标签为  例:{$smarty.get.id}那么在ourphp模板中需要这样使用 例:[.$smarty.get.id.]




第二、生成插件包

1. 进入后台-》运营-》开发者-》创建新插件(如图)
1)插件ID:每个插件都有一个唯一的身份ID,这个ID对比ourphp的数据库,不可重复。 并且插件文件夹(安装包),用到的调用文件都以ID命名。

2)插件信息:插件名称、版本、更新日期、作者、简介根据实际情况填写即可。

3)调用函数类型:共4个类型:function、block、modifier、modifiercompiler (后面有相关介绍)

4)插件后台地址:这个地址就是管理插件内容的地址,也是ourphp后台链接插件管理页面的地址。例:您可在插件文件夹内创建一个admin.php文件,并把这个文件名写到插件后台地址中,系统就会链接这个地址管理这个插件。你可通过admin.php来导向其它功能管理页面。(后面有相关介绍)

5)使用数据库:你开发的插件可以向ourphp的数据库中创建插件依赖的数据表和字段,可创建多个表。如果是纯工具类插件可选择不使用数据库。

6)使用后台列表:不使用后台列表,安装的插件会在“进入后台右侧展示”,“运营-》扩展中展示”。如果使用后台列表,你的插件就在ourphp后台的项部功能区列表中展示。

2. 插件创建成功
==> 插件创建成功后,系统会在/client/plus/目录内生成已“插件ID”为名称的文件夹。所有插件的功能及管理页面和前端页面都在这个文件夹内完成。
==> 例:插件ID为 aopai 系统自动在 /client/plus/目录内生成 /aopai/ 目录。即/client/plus/aopai/为你的插件开发包目录。
==> /aopai/ 目录内包含:Author.tpl(插件作者等简介),index.htm(默认目录首页),ourphp_aopai.php(插件安装文件),如果调用函数类型还会生成op_aopai.php(smarty插件文件)
==> 除以上系统自动生成的文件外,其它的文件(例:管理页面、前端页面等文件)都是由插件开发者自由创建。但必须在 /aopai/ 目录内。
==> 插件安装调试或调整可编辑 ourphp_aopai.php 文件。


第三、开始开发插件


注:ourphp是一个框架载体,每一个的插件都是独立的(独立的管理页面和独立的用户前端使用页面等)。ourphp为你提供系统的基础功能和数据库。
1.  生成好插件包以后,在开发过程中。如需要更改数据库或插件类型等信息,可通过编辑ourphp_aopai.php 文件修改。(注:aopai 是你的插件ID)
2. 除工具类插件,其它插件带有管理地址的,请在创建插件时或编辑安装文件填写“插件后台地址” 例如:填写 admin.php 不需要加路径。
3. 所有插件后台管理页面的PHP文件顶部都要引入 :<?php include  "../ourphp_plus_admin.php";?>
4. 所有插件前端(用户使用)页面的PHP文件顶部都要引入 :<?php include  "../ourphp_plus_index.php";?>
5. 调用函数类型(可不用),ourphp系统整合了smarty,其中4个类型:function、block、modifier、modifiercompiler 为smarty中的插件。可用于ourphp中并提供给前端html页面中使用(可以理解把PHP代码转化为html标签)。 例如:我使用了function函数插件,系统在生成插件包时,在目录内生成了op_aopai.php(注:aopai 是你的插件ID)文件。此文件可把你的PHP代码逻辑转化为html标签,可在ourphp系统前端html文件中使用。文件内的代码如下:
  1. function smarty_function_aopai($params, &$smarty){
  2.         global $db,$ourphp;
  3.         extract($params);
  4. //你的逻辑代码
  5.         return ;
  6. }
复制代码
前端html页面中的调用标签为:[.aopai.]  可增加参数 例:[.aopai name="ourphp" tel="13888888888".] 等
那php代码中的接收参数如下:
  1. function smarty_function_aopai($params, &$smarty){
  2. global $db,$ourphp;
  3. extract($params);
  4. $name = isset($params['name'])?$params['name']:"ourphp";
  5. $tel= isset($params['tel'])?$params['tel']:"88888";
  6. }
复制代码


调用函数类型可参考smarty中的用法:
function(常用) :https://www.ourphp.net/smarty/language.function.function.html
block :https://www.ourphp.net/smarty/language.function.block.html
modifier :https://www.ourphp.net/smarty/language.modifiers.html
使用DEMO下载 :https://pan.baidu.com/s/1pM7YelRjBlUt9KJuuI3xng 提取码: sf7e

6. 使用数据库:在创建插件时,可为你的插件创建一个或多个数据库。用来储存你插件所需的相关数据。如果生成插件以后也可以通过编辑ourphp_aopai.php 文件修改。(注:aopai 是你的插件ID)工具类插件可不使用数据库。
==> 第一创建表名,表名输入英文字母即可。例:admin  那此插件表名全称为:ourphp_p_aopai_admin (注:aopai 是你的插件ID)总长度 < 64字符==> 第二填写字段,每个表下面对应字段,格式:name|varchar(255) (字段名|类型)。name|varchar(255) 字段类型: varchar(255)文本类型 text备注类型 int(10)数字类型 datetime时间类型 一行一个。
参考如图:


7. 使用后台列表:默认为不使用,在不使用的情况下安装好的插件可通过 1)后台首页右侧进入 2)后台-》运营-》扩展中进入插件管理页面。如果选择使用插件后台列表功能,系统把你设置的插件管理地址注册到后台顶部功能区中。
==> 有什么区别? 只有一个管理地址的插件不需要使用后台列表,当一个插件多个管理地址的,可使用后台列表。
参考如图:


8. 编写你自已的其它功能及页面:除以上系统自动生成的文件和功能之外,你的插件要实现在功能及页面需要自已进行编写了。但必须在 /aopai/ (注:aopai 是你的插件ID)插件包目录中完成所有插件的业务逻辑及前端用户展示页面等。除系统文件外,其它所有文件命名随意无要求。
==> 管理页面需引入 <?php include  "../ourphp_plus_admin.php";?>
==> 前端页面需引入 <?php include  "../ourphp_plus_index.php";?>
==> 读取数据库数据可使用ourphp数据库类,可参考 https://www.ourphp.net/?cn-about-58.html
==> 对用户提交的数据必须严格过滤,函数:dowith_sql();   例:dowith_sql($_POST['name']) ,数字用intval($_POST['id'])过滤。
==> 可调用的系统方法如下:
dowith_sql($str) 防注入newtime($str) 格式化时间 utf8_strcut($str, $start, $length=null)
string $str 被截取的字符串
nteger $start 起始位置
integer $length 截取长度(每个汉字为3字节)
ourphp_mb_substr($str = '',$s = 0, $e = '')
string $str 被截取的字符串
integer $s 起始位置
integer $e 截取长度
randomkeys(32)
随机生成一组32位字符,可用于验证
compress_html($str)
压缩html : 清除换行符,清除制表符,去掉注释标记
half_replace($str)
替换中间字符为 * 号
ourphp_sensitive($content = '')
处理敏感字



第四、开发完成打包

         1. 插件开发调试完成以后,请打包为zip文件。
         例:你的插件ID为aopai  ,那么插件目录就为  /client/plus/aopai/  请把/aopai/目录及目录内的文件及文件夹打包成 aopai.zip



第五、发布

         1. 如果您的插件想免费给ourphp其它用户使用,请把插件zip包上传至百度或其它网盘,并在论坛发布您的模板说明及下载地址。
         注:插件下载版块 https://www.ourphp.net/club/forum.php?mod=forumdisplay&fid=37
      
         2. 如果您的插件是收费插件,请联系ourphp管理员(13199509559微信同步),发布到应用市场中。用户可通过应用市场购买及安装。





209

主题

209

主题

209

主题

管理员

Rank: 9Rank: 9Rank: 9

积分
0
2#
 楼主| admin 发表于 2023-1-16 20:32:23 | 只看该作者
插件开发 7.1+ 新增 【插件包zip解压】

如果你的插件需要修改ourphp其它的文件,例如后台或模板文件等。
可以把你的文件放到插件文件夹内并打包成zip


举例:
你的插件需要模板文件配合,例如你修改了 /templates/wap/cn/cn_foot.html 模板文件并想把修改的这个文件覆盖到默认ourphp的cn_foot.html的文件。
那么请在插件文件夹(插件ID命名的文件夹)内创建目录 /templates/wap/cn/ 并把你修改的模板文件cn_foot.html 放到 /templates/wap/cn/ 目录内,并把这个最顶层目录打包成zip 例: abc.zip
注:你修改过哪些OURPHP文件,就要在插件目录内创建对应的目录。 例如:你修改了 /client/wap/index.php 文件,那就需要在插件目录内创建 /client/wap/ 目录,并把你修改的index.php文件放到 插件目录的 /client/wap/ 目录内
注:打包zip需要在最顶层目录打包 比如:/templates/wap/cn/ 那需要把/templates/目录及/templates/内的所有目录都打包。 比如:你创建了两个或多个目录如: /client/wap/ 和 /templates/wap/cn/  那需要把所有创建的目录打包,即/templates/目录及/templates/内的所有目录和/client/目录及/client/内的所有目录打包。
注:打包成zip 名称不限, 例如 abc.zip

然后把 abc.zip 填写到插件包zip解压文本框里。


注意:
用户安装插件时,系统自动向OURPHP的根目录解压 abc.zip 并覆盖包内文件 (卸载插件时已覆盖的文件不可逆)







209

主题

209

主题

209

主题

管理员

Rank: 9Rank: 9Rank: 9

积分
0
3#
 楼主| admin 发表于 2023-9-20 18:04:01 | 只看该作者
接 一楼 第8条(ourphp8.0.0+以后版本对插件开发做了细化):

8. 编写你自已的其它功能及页面:除以上系统自动生成的文件和功能之外,你的插件要实现在功能及页面需要自已进行编写了。但必须在 /aopai/ (注:aopai 是你的插件ID)插件包目录中完成所有插件的业务逻辑及前端用户展示页面等。除系统文件外,其它所有文件命名随意无要求。
==> 管理页面需引入 <?php include  "../ourphp_plus_admin.php";?>
==> 前端页面需引入 <?php include  "../ourphp_plus_index.php";?>




在开发插件所需要用到的页面时,比如管理页面或数据列表页面。可快速创建html及调用js等依赖文件。
注:主要是节省开发成本,提高开发速度。


例如:在 /aopai/ 创建数据列表页面 list.php
可使用以下初始化代码:


list.php:




<?php


include '../ourphp_plus_index.php';


echo $plusfileclass -> plushtml("我是标题","head","YIQI-UI,jquery");

?>
<div>
其它代码逻辑
</div>
<?php
echo $plusfileclass -> plushtml("留空就行","bottom");


?>



代码解释:
$plusfileclass -> plushtml("网页的标题","head=html头部代码  bottom=html底部代码","调用所需要的依赖文件,多个用 , 隔开");


直接调用所需依赖文件:
$plusfileclass -> plushtmlfile("YIQI-UI"); 一次只能调用一个。



可调用的依赖文件列表:
YIQI-UI YIQI-UI 的CSS及图标文件
jquery jquery2.1.1.js
jquery1.8.3 jquery1.8.3.js
jquery1.7.2 jquery1.7.2.js
layer 弹出层插件 layer3.1.0
laydate 弹出日期控件 layer
lazyload 图片懒加载
Validform 表单验证
city 三级城市联动菜单
context 禁止浏览器右键
copyplus 复制
dragsort 不知道是啥,忘了。



















您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表