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

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

219

主题

219

主题

219

主题

管理员

Rank: 9Rank: 9Rank: 9

积分
0
跳转到指定楼层
#
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微信同步),发布到应用市场中。用户可通过应用市场购买及安装。





219

主题

219

主题

219

主题

管理员

Rank: 9Rank: 9Rank: 9

积分
0
2#
 楼主| 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 不知道是啥,忘了。



















219

主题

219

主题

219

主题

管理员

Rank: 9Rank: 9Rank: 9

积分
0
1#
 楼主| 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 并覆盖包内文件 (卸载插件时已覆盖的文件不可逆)







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

本版积分规则

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