框架发布

框架发布

最新版本发布信息
提问交流

提问交流

使用问题咨询
经验分享

经验分享

开发经验交流分享
功能建议

功能建议

官方开发功能建议
BUG反馈

BUG反馈

使用BUG反馈
模块&插件&数据包

模块&插件&数据包

模块插件数据包分享

求快递订单系统外包团队

回复

模块&插件tec2000 发起了问题 • 1 人关注 • 0 个回复 • 43 次浏览 • 2020-11-26 13:20 • 来自相关话题

想下载个插件,应用商店注册不了,获取验证码一直加载不出来

回复

模块&插件lxp 回复了问题 • 1 人关注 • 1 个回复 • 252 次浏览 • 2020-06-25 10:22 • 来自相关话题

呼叫系统crm出售

回复

模块&插件zgbuynow 发起了问题 • 1 人关注 • 0 个回复 • 348 次浏览 • 2020-05-27 18:21 • 来自相关话题

自制tp6版海豚完成

模块&插件yangweijie 发表了文章 • 9 个评论 • 660 次浏览 • 2020-04-07 09:13 • 来自相关话题

克隆 大家去github clone yangweijie/one_admin 
 
或者下载 yangweijie/one_admin/releases/tag/v1.0
因为官方一直没有出tp6版的,所以最近闲的时候学习tp6,做了一下移植。
帮助官方踩一下坑,希望官方能参考dev.md 看看变化
 
db model 助手函数都取消了,上传也不一样了。
 
喜欢的人可以尝鲜,顺便修修bug。官方内置模块、数据包 都测过了,钩子换成了事件。官方的插件也正常运行。
 
后面有空会把自己的博客升级这个版本,一些常见的扩展模块也会移植。 查看全部
克隆 大家去github clone yangweijie/one_admin 
 
或者下载 yangweijie/one_admin/releases/tag/v1.0
因为官方一直没有出tp6版的,所以最近闲的时候学习tp6,做了一下移植。
帮助官方踩一下坑,希望官方能参考dev.md 看看变化
 
db model 助手函数都取消了,上传也不一样了。
 
喜欢的人可以尝鲜,顺便修修bug。官方内置模块、数据包 都测过了,钩子换成了事件。官方的插件也正常运行。
 
后面有空会把自己的博客升级这个版本,一些常见的扩展模块也会移植。

创建模块时SQLSTATE报错:1364 Field 'description' doesn't have a default value

模块&插件陈永仁 回复了问题 • 2 人关注 • 1 个回复 • 309 次浏览 • 2020-03-26 14:49 • 来自相关话题

我想发布插件成为插件作者请问该如何申请?

模块&插件snailcn 回复了问题 • 2 人关注 • 1 个回复 • 345 次浏览 • 2020-03-09 16:55 • 来自相关话题

阿里云 云市场里面的 快递查询接口

模块&插件cooltea521 发表了文章 • 0 个评论 • 1074 次浏览 • 2019-06-11 16:33 • 来自相关话题

这个快递查询插件所涉及到的接口是收费的,
阿里云的云市场里的
【快递查询api,快递物流自动单号识别】可查询快递物流信息近500+家全国快递查询API,1个单号,自动识别,包括:顺丰、申通、圆通、韵达、中通、汇通、EMS、天天、国通、德邦、宅急送等几百家快递物流查询接口。
 
对这个接口进行的开发,我也是第一次用,不知道这个接口好用吗。
有喜欢的你们拿去 查看全部
这个快递查询插件所涉及到的接口是收费的,
阿里云的云市场里的
【快递查询api,快递物流自动单号识别】可查询快递物流信息近500+家全国快递查询API,1个单号,自动识别,包括:顺丰、申通、圆通、韵达、中通、汇通、EMS、天天、国通、德邦、宅急送等几百家快递物流查询接口。
 
对这个接口进行的开发,我也是第一次用,不知道这个接口好用吗。
有喜欢的你们拿去

商店不能传自定义的表单项扩展吗

回复

模块&插件cysen 发起了问题 • 1 人关注 • 0 个回复 • 555 次浏览 • 2019-06-06 18:29 • 来自相关话题

银行列表管理插件

模块&插件cooltea521 发表了文章 • 0 个评论 • 814 次浏览 • 2019-03-12 09:06 • 来自相关话题

经常用到银行卡信息或第三方支付时候 就用到银行和银行代码
项目中涉及到我就弄了一个 请多多指教
 
用法呢:$bank_list = plugin_action('Bank','Bank','getBank');
经常用到银行卡信息或第三方支付时候 就用到银行和银行代码
项目中涉及到我就弄了一个 请多多指教
 
用法呢:
$bank_list = plugin_action('Bank','Bank','getBank');


【微信】开发模块发布

模块&插件caiaiqiu 回复了问题 • 23 人关注 • 11 个回复 • 5921 次浏览 • 2018-06-06 09:41 • 来自相关话题

阿里大鱼插件 前台发送验证码 怎么写呢!大神们

模块&插件ringback 回复了问题 • 4 人关注 • 4 个回复 • 1722 次浏览 • 2018-05-22 19:21 • 来自相关话题

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 72 bytes)

模块&插件打死as 回复了问题 • 2 人关注 • 3 个回复 • 1045 次浏览 • 2018-05-17 10:10 • 来自相关话题

如何在后台上传视频

模块&插件牧鸭人 回复了问题 • 3 人关注 • 2 个回复 • 2066 次浏览 • 2018-05-03 13:15 • 来自相关话题

分享一个又拍云上传插件

模块&插件zxc544 发表了文章 • 2 个评论 • 1164 次浏览 • 2018-02-08 14:27 • 来自相关话题

 
仓库地址:
  
ok写不了
 
 
GitHub搜索UpyunForDophinPHP
 
https://github.com/Lsido/UpyunForDophinPHP
 
仓库地址:
  
ok写不了
 
 
GitHub搜索UpyunForDophinPHP
 
https://github.com/Lsido/UpyunForDophinPHP

顶部模块从首页切换到其他模块会很慢

模块&插件dolphinphp 回复了问题 • 2 人关注 • 1 个回复 • 1035 次浏览 • 2018-02-02 09:54 • 来自相关话题

静态页面缓存

模块&插件dragonlhp 发表了文章 • 2 个评论 • 1045 次浏览 • 2018-01-18 16:39 • 来自相关话题

缓存必须要关闭调试模式才能生效
将behavior目录的文件放在common/behavior目录下 再在tags.php的文件中添加return [
// 应用初始化
'app_init' => [],
// 应用开始
'app_begin' => [
'app\\common\\behavior\\ReadHtmlCacheBehavior',// 读取静态缓存
],
// 模块初始化
'module_init' => [],
// 操作开始执行
'action_begin' => [],
// 视图内容过滤
'view_filter' => [
'app\\common\\behavior\\WriteHtmlCacheBehavior',// 写入静态缓存
],
// 日志写入
'log_write' => [],
// 应用结束
'app_end' => [],
];
config.php// +----------------------------------------------------------------------
// | 静态缓存设置
// +----------------------------------------------------------------------
//'配置值'
'html_cache_on' => true, // 开启静态缓存
'html_cache_time' => 7200, // 全局静态缓存有效期(秒)
'html_file_suffix' => '.html', // 设置静态缓存文件后缀
'html_cache_compile_type' => 'file',//缓存存储驱动
'html_cache_rules' => [
// 定义静态缓存规则
// // 定义格式1 数组方式
//'静态地址' => array('静态规则', '有效期', '附加规则'),
//1.任意控制器的任意操作都适用
'cms>' => array('{$_SERVER.REQUEST_URI|md5}', 0),
// //2.任意控制器的md5操作
// 'md5' => array('{:module}/{:controller}/{:action}_{id|md5}'),
// //3.Static控制器的所有操作
// 'Static:' => array('{:module}/{:controller}/{:action}', 50),//第一个参数是构造的字符串,后面是缓存50秒
// //4.Hmtl控制器的md5操作
// 'Html:md5' => array('{:module}/{:controller}/{:action}'),
], 查看全部
缓存必须要关闭调试模式才能生效
将behavior目录的文件放在common/behavior目录下 再在tags.php的文件中添加
return [
// 应用初始化
'app_init' => [],
// 应用开始
'app_begin' => [
'app\\common\\behavior\\ReadHtmlCacheBehavior',// 读取静态缓存
],
// 模块初始化
'module_init' => [],
// 操作开始执行
'action_begin' => [],
// 视图内容过滤
'view_filter' => [
'app\\common\\behavior\\WriteHtmlCacheBehavior',// 写入静态缓存
],
// 日志写入
'log_write' => [],
// 应用结束
'app_end' => [],
];

config.php
// +----------------------------------------------------------------------
// | 静态缓存设置
// +----------------------------------------------------------------------
//'配置值'
'html_cache_on' => true, // 开启静态缓存
'html_cache_time' => 7200, // 全局静态缓存有效期(秒)
'html_file_suffix' => '.html', // 设置静态缓存文件后缀
'html_cache_compile_type' => 'file',//缓存存储驱动
'html_cache_rules' => [
// 定义静态缓存规则
// // 定义格式1 数组方式
//'静态地址' => array('静态规则', '有效期', '附加规则'),
//1.任意控制器的任意操作都适用
'cms>' => array('{$_SERVER.REQUEST_URI|md5}', 0),
// //2.任意控制器的md5操作
// 'md5' => array('{:module}/{:controller}/{:action}_{id|md5}'),
// //3.Static控制器的所有操作
// 'Static:' => array('{:module}/{:controller}/{:action}', 50),//第一个参数是构造的字符串,后面是缓存50秒
// //4.Hmtl控制器的md5操作
// 'Html:md5' => array('{:module}/{:controller}/{:action}'),
],

阿里短信

模块&插件simone 发表了文章 • 3 个评论 • 2122 次浏览 • 2017-10-27 10:08 • 来自相关话题

 
AccessKeyId 与 AccessKeySecret 在阿里云Access Key管理页面获取。
 
短信签名及短信模板 短信服务内申请
 
阿里短信系统升级 现更新源码。
 
使用:
plugin_action('AliyunSms','AliyunSms','sendSms',['phoneNumbers'=>18888888888,'templateParam'=>array('name'=>'test')]);
  查看全部
 
AccessKeyId 与 AccessKeySecret 在阿里云Access Key管理页面获取。
 
短信签名及短信模板 短信服务内申请
 
阿里短信系统升级 现更新源码。
 
使用:
plugin_action('AliyunSms','AliyunSms','sendSms',['phoneNumbers'=>18888888888,'templateParam'=>array('name'=>'test')]);
 

markdown插件

回复

模块&插件gyh9711 发起了问题 • 2 人关注 • 0 个回复 • 1392 次浏览 • 2017-10-26 11:43 • 来自相关话题

后台【两步验证】插件

模块&插件流风回雪 发表了文章 • 10 个评论 • 2485 次浏览 • 2017-10-20 14:39 • 来自相关话题

为了防止网站后台工作人员账号密码意外泄露带来的安全问题(如CSDN事件),可以考虑给后台登录加一个两步验证
 
一、安装
解压附件中的插件到 /plugins 目录修改 application/admin/controller/Admin.php 在 protected function _initialize() 方法的第一行添加代码 /** * 初始化 * @author 蔡伟明 <314013107@qq.com> */ protected function _initialize() { // 两步验证钩子 $hook_result = \think\Hook::listen('two_step'); if (!empty($hook_result) && true !== $hook_result[0]) { $current_url = request()->url(); // 当前 url if ( // 下面三个 URL 不跳转到两步验证页 strpos ( $current_url , plugin_url('TwoStep/Admin/verification') ) === false && // 两步验证页 strpos ( $current_url , plugin_url('TwoStep/Admin/signin') ) === false && // 验证两步验证码 strpos ( $current_url , url('user/publics/signout') ) === false // 登出账号 ){ $this->redirect(plugin_url('TwoStep/Admin/verification')); } } . . . . . }修改 application/admin/controller/Index.php 用下面代码覆盖 public function profile() 方法 /** * 个人设置 * @author 蔡伟明 <314013107@qq.com> */ public function profile() { // 保存数据 if ($this->request->isPost()) { $data = $this->request->post(); $data['nickname'] == '' && $this->error('昵称不能为空'); $data['id'] = UID; // 如果没有填写密码,则不更新密码 if ($data['password'] == '') { unset($data['password']); } $UserModel = new UserModel(); if ($user = $UserModel->allowField(['nickname', 'email', 'password', 'mobile', 'avatar'])->update($data)) { // 记录行为 action_log('user_edit', 'admin_user', UID, UID, get_nickname(UID)); $this->success('编辑成功'); } else { $this->error('编辑失败'); } } // 获取数据 $info = UserModel::where('id', UID)->field('password', true)->find(); // 开启两步验证功能 $generate_secret_url = plugin_url('TwoStep/Admin/generateSecret'); $js = <<<EOF <script type="text/javascript"> $(function(){ $("#is_two_step").change(function() { if($('#is_two_step').is(':checked')) { $.get("{$generate_secret_url}", function(res){ if(res.code == 0){ Dolphin.notify(res.msg, 'danger'); $("#is_two_step").removeAttr("checked"); } else { $("#two_step_secret").val(res.secret); $("#form_group_is_two_step > .col-sm-12").after("<img src='"+res.QRCode+"' id='QRCode' alt='QRCode'>"); } }); } else { $("#two_step_secret").val(''); $("#QRCode").remove(); } }); }); </script>EOF; $items = [ // 批量添加表单项 ['static', 'username', '用户名', '不可更改'], ['text', 'nickname', '昵称', '可以是中文'], ['text', 'email', '邮箱', ''], ['password', 'password', '密码', '必填,6-20位'], ['text', 'mobile', '手机号'], ['image', 'avatar', '头像'] ]; if (isset($info['two_step_secret'])){ // 两步验证插件已安装 if ($info['two_step_secret']){ array_push ( $items , ['switch', 'is_two_step', '两步验证', '关闭后再开启可重新生成二维码', 1] ); }else{ array_push ( $items , ['switch', 'is_two_step', '两步验证', '开启后用 <code>Google Authenticator</code> 扫描二维码', 0] ); } array_push ( $items , ['hidden', 'two_step_secret'] ); }else{ $js = ''; } // 使用ZBuilder快速创建表单 return ZBuilder::make('form') ->addFormItems($items) ->setFormData($info) // 设置表单数据 ->setExtraJs($js) ->fetch(); }到后台“扩展中心”安装“两步验证”插件安装后再“设置插件”,把主机名改成自己的


开启非“超级管理员”的插件运行权限


 PS: 如果插件设置和权限设置没生效,请清空缓存!二、使用打开“个人设置”页


拖到页面底部,开启两步验证


开启后立即用 Google Authenticator 扫描二维码(不过我还是推荐使用 Authy 这款APP,即使刷机也不怕验证码丢失)


确定扫描成功后再提交保存!退出后台重新登录,在系统验证完账号密码后,如果要登录的用户开启了两步验证,则会再要求输入验证码,验证成功后方可进入后台


三、关闭两步验证若要关闭两步验证只需要在“个人设置”页关闭并保存即可
 

本插件基于 DolphinPHP 1.0.7 开发
 
目前测试下来支持 DolphinPHP 1.1.0 !但如果你从低版本升级到 1.1.0 后发现无法登录后台,请先删除 runtime 目录;如果还使用了Redis缓存,需要清空下Redis缓存数据的内容!


TwoStep.zip 查看全部
为了防止网站后台工作人员账号密码意外泄露带来的安全问题(如CSDN事件),可以考虑给后台登录加一个两步验证
 
一、安装
  • 解压附件中的插件到 /plugins 目录
  • 修改 application/admin/controller/Admin.php 在 protected function _initialize() 方法的第一行添加代码
    /**     * 初始化     * @author 蔡伟明 <314013107@qq.com>     */    protected function _initialize()    {        // 两步验证钩子        $hook_result = \think\Hook::listen('two_step');        if (!empty($hook_result) && true !== $hook_result[0]) {            $current_url = request()->url();    // 当前 url            if (    // 下面三个 URL 不跳转到两步验证页                strpos ( $current_url ,  plugin_url('TwoStep/Admin/verification') ) === false &&    // 两步验证页                strpos ( $current_url ,  plugin_url('TwoStep/Admin/signin') ) === false &&  // 验证两步验证码                strpos ( $current_url ,  url('user/publics/signout') ) === false                    // 登出账号            ){                $this->redirect(plugin_url('TwoStep/Admin/verification'));            }        }        .        .        .        .        .    }
  • 修改 application/admin/controller/Index.php 用下面代码覆盖 public function profile() 方法
    /**     * 个人设置     * @author 蔡伟明 <314013107@qq.com>     */    public function profile()    {        // 保存数据        if ($this->request->isPost()) {            $data = $this->request->post();            $data['nickname'] == '' && $this->error('昵称不能为空');            $data['id'] = UID;            // 如果没有填写密码,则不更新密码            if ($data['password'] == '') {                unset($data['password']);            }            $UserModel = new UserModel();            if ($user = $UserModel->allowField(['nickname', 'email', 'password', 'mobile', 'avatar'])->update($data)) {                // 记录行为                action_log('user_edit', 'admin_user', UID, UID, get_nickname(UID));                $this->success('编辑成功');            } else {                $this->error('编辑失败');            }        }        // 获取数据        $info = UserModel::where('id', UID)->field('password', true)->find();        // 开启两步验证功能        $generate_secret_url = plugin_url('TwoStep/Admin/generateSecret');        $js = <<<EOF    <script type="text/javascript">        $(function(){            $("#is_two_step").change(function() {                 if($('#is_two_step').is(':checked')) {                    $.get("{$generate_secret_url}", function(res){                        if(res.code == 0){                            Dolphin.notify(res.msg, 'danger');                            $("#is_two_step").removeAttr("checked");                        } else {                            $("#two_step_secret").val(res.secret);                            $("#form_group_is_two_step > .col-sm-12").after("<img src='"+res.QRCode+"' id='QRCode' alt='QRCode'>");                        }                    });                } else {                    $("#two_step_secret").val('');                    $("#QRCode").remove();                }            });        });    </script>EOF;        $items = [ // 批量添加表单项            ['static', 'username', '用户名', '不可更改'],            ['text', 'nickname', '昵称', '可以是中文'],            ['text', 'email', '邮箱', ''],            ['password', 'password', '密码', '必填,6-20位'],            ['text', 'mobile', '手机号'],            ['image', 'avatar', '头像']        ];        if (isset($info['two_step_secret'])){   // 两步验证插件已安装            if ($info['two_step_secret']){                array_push ( $items ,  ['switch', 'is_two_step', '两步验证', '关闭后再开启可重新生成二维码', 1] );            }else{                array_push ( $items ,  ['switch', 'is_two_step', '两步验证', '开启后用 <code>Google Authenticator</code> 扫描二维码', 0] );            }            array_push ( $items ,  ['hidden', 'two_step_secret'] );        }else{            $js = '';        }        // 使用ZBuilder快速创建表单        return ZBuilder::make('form')            ->addFormItems($items)            ->setFormData($info) // 设置表单数据            ->setExtraJs($js)            ->fetch();    }
  • 到后台“扩展中心”安装“两步验证”插件
  • 安装后再“设置插件”,把主机名改成自己的
QQ截图20171020134353.png
  • 开启非“超级管理员”的插件运行权限
QQ截图20171020140227.png
 PS: 如果插件设置和权限设置没生效,请清空缓存!二、使用
  • 打开“个人设置”页
QQ截图20171020134456.png
  • 拖到页面底部,开启两步验证
QQ截图20171020134955.png
  • 开启后立即用 Google Authenticator 扫描二维码(不过我还是推荐使用 Authy 这款APP,即使刷机也不怕验证码丢失)
IMG_2652(20171020-143848).jpg
  • 确定扫描成功后再提交保存!
  • 退出后台重新登录,在系统验证完账号密码后,如果要登录的用户开启了两步验证,则会再要求输入验证码,验证成功后方可进入后台
QQ截图20171020135521.png
三、关闭两步验证
  • 若要关闭两步验证只需要在“个人设置”页关闭并保存即可

 

本插件基于 DolphinPHP 1.0.7 开发
 
目前测试下来支持 DolphinPHP 1.1.0 !但如果你从低版本升级到 1.1.0 后发现无法登录后台,请先删除 runtime 目录;如果还使用了Redis缓存,需要清空下Redis缓存数据的内容!

七牛上传错误

模块&插件流风回雪 回复了问题 • 2 人关注 • 2 个回复 • 1765 次浏览 • 2017-10-19 16:25 • 来自相关话题