提问交流

提问交流

使用问题咨询
经验分享

经验分享

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

功能建议

官方开发功能建议
BUG反馈

BUG反馈

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

模块&插件&数据包

模块插件数据包分享
框架发布

框架发布

ZBuilder中表格里如何显示复选框显示内容

提问交流dolphinphp 回复了问题 • 2 人关注 • 1 个回复 • 224 次浏览 • 2017-10-31 09:40 • 来自相关话题

关于海豚php授权方式

功能建议dolphinphp 回复了问题 • 2 人关注 • 1 个回复 • 426 次浏览 • 2017-10-31 09:36 • 来自相关话题

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

模块&插件dolphinphp 回复了问题 • 3 人关注 • 3 个回复 • 279 次浏览 • 2017-10-31 09:31 • 来自相关话题

Ueditor多图上传里面的在线管理问题(已解决)

提问交流dolphinphp 回复了问题 • 2 人关注 • 1 个回复 • 139 次浏览 • 2017-10-31 09:29 • 来自相关话题

建议添加个腾讯地图

功能建议dolphinphp 回复了问题 • 2 人关注 • 1 个回复 • 155 次浏览 • 2017-10-31 09:26 • 来自相关话题

ZBuilder 有弹框样式吗?在弹框上可以进行选择操作?

提问交流dolphinphp 回复了问题 • 2 人关注 • 1 个回复 • 147 次浏览 • 2017-10-31 09:12 • 来自相关话题

1.0.8 用 ZBuilder 构建表格时 callback 加 raw() 出错

BUG反馈dolphinphp 回复了问题 • 2 人关注 • 1 个回复 • 201 次浏览 • 2017-10-31 09:10 • 来自相关话题

ueditor自动下载远程图片开启时报错

提问交流dolphinphp 回复了问题 • 2 人关注 • 1 个回复 • 90 次浏览 • 2017-10-31 09:09 • 来自相关话题

阿里短信

模块&插件simone 发表了文章 • 3 个评论 • 369 次浏览 • 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 发起了问题 • 1 人关注 • 0 个回复 • 188 次浏览 • 2017-10-26 11:43 • 来自相关话题

禁止操作当前账号

提问交流dolphinphp 回复了问题 • 2 人关注 • 2 个回复 • 208 次浏览 • 2017-10-24 16:51 • 来自相关话题

DolphinPHP V1.0.8发布

框架发布dolphinphp 发表了文章 • 9 个评论 • 619 次浏览 • 2017-10-24 13:00 • 来自相关话题

今天是10月24日,有人说这是程序员的节日,但是感觉不到有任何节日的气氛o(* ̄︶ ̄*)o
 
因DolphinPHP2正在开发中,加上其他因素,所以此次版本更新推迟了一些。此版本主要以消灭bug为主,但我们也深知bug是永远消灭不完的,所以您在使用过程中,如果发现任何bug,请毫不犹豫的发帖告知我们,感谢!
 
【修正】
修正自建模块报错的问题(感谢网友:夜OL 的反馈)
修正创建自定义表单项报错的问题(感谢网友:玄火真金 的反馈)
修正禁用和启用节点出错的问题(感谢网友:LY 的反馈)
修正图片无法添加水印的问题(感谢网友:寻 的反馈)
修正表单的select模板匹配选项错误的问题(感谢网友:Loving、流放者 的反馈)
修正表格顶部下拉菜单不支持select2以及样式问题(感谢网友:文静静的乖、゜碎念 的反馈)
修正角色无任何节点权限时,用户登录后一直提示“权限不足”的问题
修正aside侧栏站点开关无效的问题(感谢网友:lingeasy、ヾ遺莣濄呿℡ 的反馈)
修正表格自动添加和自动编辑不支持权限控制的问题(感谢网友:ylsopkok 的反馈)
修正表格无法使用模型获取器的问题(感谢网友:十三、流风回雪、Talent.Miao 的反馈)
改进ajax出错提示
修正表格右侧按钮启用、禁用操作无法自定义字段名的问题(感谢网友:云飞扬 的反馈)
修正用paginate()方法设置每页条数,页面上显示每页数量不正确的问题
修正设置节点权限页面,搜索节点权限按回车会提交表单的问题(感谢网友:゜碎念 的反馈)
修正addFilterList方法中,不同页面使用相同字段时,列表数据会被覆盖的问题(感谢网友:自由鸟~birdy 的反馈)
修正卸载cms模块时 内容模型附加表不会一并删除的问题(感谢网友:风 的反馈)
百度编辑器无法插入通用代码的问题(参考常见问题10)(感谢网友:LY 的反馈)
 
【升级指导】
请务必按指导升级
http://doc.dolphinphp.com/256445 
【下载】
官网下载:http://www.dolphinphp.com/download.html 
Coding.net仓库:https://coding.net/u/LoopMing/p/DolphinPHP/git
GitHub仓库:https://github.com/caiweiming/DolphinPHP.git 
码云仓库:https://git.oschina.net/caiweiming/DolphinPHP.git 查看全部
今天是10月24日,有人说这是程序员的节日,但是感觉不到有任何节日的气氛o(* ̄︶ ̄*)o
 
因DolphinPHP2正在开发中,加上其他因素,所以此次版本更新推迟了一些。此版本主要以消灭bug为主,但我们也深知bug是永远消灭不完的,所以您在使用过程中,如果发现任何bug,请毫不犹豫的发帖告知我们,感谢!
 
【修正】
修正自建模块报错的问题(感谢网友:夜OL 的反馈)
修正创建自定义表单项报错的问题(感谢网友:玄火真金 的反馈)
修正禁用和启用节点出错的问题(感谢网友:LY 的反馈)
修正图片无法添加水印的问题(感谢网友:寻 的反馈)
修正表单的select模板匹配选项错误的问题(感谢网友:Loving、流放者 的反馈)
修正表格顶部下拉菜单不支持select2以及样式问题(感谢网友:文静静的乖、゜碎念 的反馈)
修正角色无任何节点权限时,用户登录后一直提示“权限不足”的问题
修正aside侧栏站点开关无效的问题(感谢网友:lingeasy、ヾ遺莣濄呿℡ 的反馈)
修正表格自动添加和自动编辑不支持权限控制的问题(感谢网友:ylsopkok 的反馈)
修正表格无法使用模型获取器的问题(感谢网友:十三、流风回雪、Talent.Miao 的反馈)
改进ajax出错提示
修正表格右侧按钮启用、禁用操作无法自定义字段名的问题(感谢网友:云飞扬 的反馈)
修正用paginate()方法设置每页条数,页面上显示每页数量不正确的问题
修正设置节点权限页面,搜索节点权限按回车会提交表单的问题(感谢网友:゜碎念 的反馈)
修正addFilterList方法中,不同页面使用相同字段时,列表数据会被覆盖的问题(感谢网友:自由鸟~birdy 的反馈)
修正卸载cms模块时 内容模型附加表不会一并删除的问题(感谢网友:风 的反馈)
百度编辑器无法插入通用代码的问题(参考常见问题10)(感谢网友:LY 的反馈)
 
【升级指导】
请务必按指导升级
http://doc.dolphinphp.com/256445 
【下载】
官网下载:http://www.dolphinphp.com/download.html 
Coding.net仓库:https://coding.net/u/LoopMing/p/DolphinPHP/git
GitHub仓库:https://github.com/caiweiming/DolphinPHP.git 
码云仓库:https://git.oschina.net/caiweiming/DolphinPHP.git

之前在线购买的商业版不是说v1.0.7发布的时候要送一个插件给购买用户吗?

提问交流dolphinphp 回复了问题 • 2 人关注 • 1 个回复 • 230 次浏览 • 2017-10-23 16:38 • 来自相关话题

关于用户权限多级

经验分享dolphinphp 回复了问题 • 2 人关注 • 1 个回复 • 163 次浏览 • 2017-10-23 16:36 • 来自相关话题

关于linkages标签 三个选项框不能对应三层结构数据的问题

经验分享chhnang 发表了文章 • 0 个评论 • 89 次浏览 • 2017-10-23 16:13 • 来自相关话题

在做省市县三个选项框时, 经常出现 直辖市: 两级结构;  省: 四级结构(市多一个市辖区)  ,导致linkages标签不能愉快的使用, 在下做了一个数据调整,供大家参考!
在做省市县三个选项框时, 经常出现 直辖市: 两级结构;  省: 四级结构(市多一个市辖区)  ,导致linkages标签不能愉快的使用, 在下做了一个数据调整,供大家参考!

后台【两步验证】插件

模块&插件流风回雪 发表了文章 • 10 个评论 • 384 次浏览 • 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 扫描二维码(不过iOS上我还是推荐使用 Authy 这款APP,即使刷机也不怕验证码丢失)




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





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

本插件基于 DolphinPHP 1.0.7 开发


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 扫描二维码(不过iOS上我还是推荐使用 Authy 这款APP,即使刷机也不怕验证码丢失)

IMG_2652(20171020-143848).jpg

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

QQ截图20171020135521.png


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

 

本插件基于 DolphinPHP 1.0.7 开发


 

V1.0.7 的 setRowList() 方法导致模型的获取器无法调用

BUG反馈dolphinphp 回复了问题 • 2 人关注 • 1 个回复 • 93 次浏览 • 2017-10-20 09:34 • 来自相关话题

如何在表格末行实现汇总整列数据的功能

提问交流dolphinphp 回复了问题 • 2 人关注 • 1 个回复 • 121 次浏览 • 2017-10-20 09:31 • 来自相关话题

setTableName有问题

BUG反馈dolphinphp 回复了问题 • 2 人关注 • 1 个回复 • 103 次浏览 • 2017-10-20 09:18 • 来自相关话题

怎么上传的图片压缩成缩略图

提问交流dolphinphp 回复了问题 • 2 人关注 • 1 个回复 • 130 次浏览 • 2017-10-20 09:17 • 来自相关话题