PbootCMS是全新内核且永久开源免费的PHP企业网站开发建设管理系统,是一套高效、简洁、 强悍的可免费商用的PHP CMS源码,能够满足各类企业网站开发建设的需要。系统采用简单到想哭的模板标签,只要懂HTML就可快速开发企业网站。小编对他还是比较了解的,今天小编就以新增短信接口为例,给大家讲解一下如何进行二次开发,我们今天讲解的是v3.1.2版本,使用的短信接口是我们短信宝短信群发平台的短信接口,我们短信宝短信群发平台的接口非常稳定,发送速度快,注册就送测试短信,推荐大家使用
1:打开项目:\apps\admin\view\default\system\config.html 新增短信宝页面
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
<div class="layui-tab-item"> <form action="{url./admin/Config/index}" method="post" class="layui-form"> <input type="hidden" name="formcheck" value="{$formcheck}" > <div class="layui-form-item"> <label class="layui-form-label">是否开启</label> <div class="layui-input-block"> <input type="radio" name="sms_status" value="1" {if([$configs.sms_status.value]==1)} checked="checked" {/if} title="是"> <input type="radio" name="sms_status" value="0" {if([$configs.sms_status.value]==0)} checked="checked" {/if} title="否"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">短信宝账号</label> <div class="layui-input-inline"> <input type="text" name="sms_account" value="{$configs.sms_account.value}" placeholder="请输入短信宝账号" class="layui-input"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">短信宝密码</label> <div class="layui-input-inline"> <input type="password" name="sms_pwd" value="{$configs.sms_pwd.value}" placeholder="请输入短信宝密码" class="layui-input"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">短信宝签名</label> <div class="layui-input-inline"> <input type="text" name="sms_signid" value="{$configs.sms_signid.value}" placeholder="请输入短信宝签名" class="layui-input"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">留言发送短信</label> <div class="layui-input-block"> <input type="radio" name="message_send_sms" value="1" {if([$configs.message_send_sms.value]==1)} checked="checked" {/if} title="启用"> <input type="radio" name="message_send_sms" value="0" {if([$configs.message_send_sms.value]==0)} checked="checked" {/if} title="禁用"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">表单发送短信</label> <div class="layui-input-block"> <input type="radio" name="form_send_sms" value="1" {if([$configs.form_send_sms.value]==1)} checked="checked" {/if} title="启用"> <input type="radio" name="form_send_sms" value="0" {if([$configs.form_send_sms.value]==0)} checked="checked" {/if} title="禁用"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">评论发送短信</label> <div class="layui-input-block"> <input type="radio" name="comment_send_sms" value="1" {if([$configs.comment_send_sms.value]==1)} checked="checked" {/if} title="启用"> <input type="radio" name="comment_send_sms" value="0" {if([$configs.comment_send_sms.value]==0)} checked="checked" {/if} title="禁用"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">信息接收手机号</label> <div class="layui-input-inline"> <input type="text" name="sms_send_to" value="{$configs.sms_send_to.value}" placeholder="请输入信息接收手机号" class="layui-input"> </div> </div> <div class="layui-form-item"> <div class="layui-input-block"> <button class="layui-btn" lay-submit name="submit" value="sms">立即提交</button> <button type="reset" class="layui-btn layui-btn-primary">重置</button> </div> </div> </form> </div> |
2:打开项目:apps\home\controller\CommentController.php 修改评论短信发送
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
public function add() { if ($_POST) { if ($this->config('comment_status') === '0') { error('系统已经关闭评论功能,请到后台开启再试!'); } if (time() - session('lastsub') < 10) { alert_back('您提交太频繁了,请稍后再试!'); } if (! session('pboot_uid') && ! $this->config('comment_anonymous')) { if (! ! $backurl = $_SERVER['HTTP_REFERER']) { alert_location("请先注册登录后再评论!", Url::home('member/login', null, "backurl=" . urlencode($backurl))); } else { alert_location("请先注册登录后再评论!", Url::home('member/login')); } } // 验证码验证 $checkcode = strtolower(post('checkcode', 'var')); if ($this->config('comment_check_code') !== '0') { if (! $checkcode) { alert_back('验证码不能为空!'); } if ($checkcode != session('checkcode')) { alert_back('验证码错误!'); } } // 接收数据 $status = $this->config('comment_verify') === '0' ? 1 : 0; if (! $contentid = request('contentid', 'int')) { alert_back('文章ID未能正常获取,请使用POST或URL参数传递!'); } $comment = post('comment'); $data = array( 'pid' => request('pid', 'int') ?: 0, 'contentid' => $contentid, 'comment' => $comment, 'uid' => session('pboot_uid'), 'puid' => request('puid', 'int'), 'likes' => 0, 'oppose' => 0, 'status' => $status, 'user_ip' => ip2long(get_user_ip()), 'user_os' => get_user_os(), 'user_bs' => get_user_bs(), 'create_time' => get_datetime(), 'update_user' => '', 'update_time' => '' ); if ($this->model->addComment($data)) { session('lastsub', time()); // 记录最后提交时间 $this->log('文章' . $contentid . '评论提交成功!'); if ($this->config('sms_status')) { if ($this->config('comment_send_sms') && $this->config('sms_send_to')) { $sms_subject = "您有新的文章评论信息,请注意查收!"; sendsms($this->config(), $this->config('sms_send_to'), $sms_subject); } }else{ if ($this->config('comment_send_mail') && $this->config('message_send_to')) { $mail_subject = "【" . CMSNAME . "】您有新的文章评论信息,请注意查收!"; $mail_body = '评论内容:' . $comment . '<br>'; $mail_body .= '<br>来自网站 ' . get_http_url() . ' (' . date('Y-m-d H:i:s') . ')'; sendmail($this->config(), $this->config('message_send_to'), $mail_subject, $mail_body); } } if ($status) { alert_location('评论提交成功!', '-1', 1); } else { alert_location('评论提交成功,请等待管理员审核!', '-1', 1); } } else { $this->log('文章评论提交失败!'); alert_back('提交失败!'); } } else { alert_back('提交失败,请使用POST方式提交!'); } } |
3:打开项目:\apps\home\controller\FormController.php 修改表单短信发送
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
public function index() { // 在非兼容模式接受地址第二参数值 if (defined('RVAR')) { $_GET['fcode'] = RVAR; } if ($_POST) { if ($this->config('form_status') === '0') { error('系统已经关闭表单功能,请到后台开启再试!'); } if (time() - session('lastsub') < 10) { alert_back('您提交太频繁了,请稍后再试!'); } if (! $fcode = get('fcode', 'var')) { alert_back('传递的表单编码有误!'); } if ($fcode == 1) { alert_back('表单提交地址有误,留言提交请使用留言专用地址!'); } // 验证码验证 $checkcode = strtolower(post('checkcode', 'var')); if ($this->config('form_check_code') !== '0') { if (! $checkcode) { alert_back('验证码不能为空!'); } if ($checkcode != session('checkcode')) { alert_back('验证码错误!'); } } // 读取字段 if (! $form = $this->model->getFormField($fcode)) { alert_back('接收表单不存在任何字段,请核对后重试!'); } // 接收数据 $mail_body = ''; foreach ($form as $value) { $field_data = post($value->name); if (is_array($field_data)) { // 如果是多选等情况时转换 $field_data = implode(',', $field_data); } $field_data = preg_replace_r('/pboot:if/i', '', $field_data); if ($value->required && ! $field_data) { alert_back($value->description . '不能为空!'); } else { $data[$value->name] = $field_data; $mail_body .= $value->description . ':' . $field_data . '<br>'; } } // 设置创建时间 if ($data) { $data['create_time'] = get_datetime(); } // 写入数据 if ($this->model->addForm($value->table_name, $data)) { session('lastsub', time()); // 记录最后提交时间 $this->log('提交表单数据成功!'); if ($this->config('sms_status')) { if ($this->config('form_send_sms') && $this->config('sms_send_to')) { $sms_subject = "您有新的" . $value->form_name . "信息,请注意查收!"; sendsms($this->config(), $this->config('sms_send_to'), $sms_subject); } }else{ if ($this->config('form_send_mail') && $this->config('message_send_to')) { $mail_subject = "【" . CMSNAME . "】您有新的" . $value->form_name . "信息,请注意查收!"; $mail_body .= '<br>来自网站' . get_http_url() . '(' . date('Y-m-d H:i:s') . ')'; sendmail($this->config(), $this->config('message_send_to'), $mail_subject, $mail_body); } } alert_location('提交成功!', '-1', 1); } else { $this->log('提交表单数据失败!'); alert_back('提交失败!'); } } else { alert_back('提交失败,请使用POST方式提交!'); } } |
4:打开项目:apps\home\controller\MessageController.php 修改留言短信发送
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
public function index() { if ($_POST) { if ($this->config('message_status') === '0') { error('系统已经关闭留言功能,请到后台开启再试!'); } if (time() - session('lastsub') < 10) { alert_back('您提交太频繁了,请稍后再试!'); } // 需登录 if ($this->config('message_rqlogin') && ! session('pboot_uid')) { if (! ! $backurl = $_SERVER['HTTP_REFERER']) { alert_location("请先注册登录后再留言!", Url::home('member/login', null, "backurl=" . urlencode($backurl))); } else { alert_location("请先注册登录后再留言!", Url::home('member/login')); } } // 验证码验证 $checkcode = strtolower(post('checkcode', 'var')); if ($this->config('message_check_code') !== '0') { if (! $checkcode) { alert_back('验证码不能为空!'); } if ($checkcode != session('checkcode')) { alert_back('验证码错误!'); } } // 读取字段 if (! $form = $this->model->getFormField(1)) { alert_back('留言表单不存在任何字段,请核对后重试!'); } // 接收数据 $mail_body = ''; foreach ($form as $value) { $field_data = post($value->name); if (is_array($field_data)) { // 如果是多选等情况时转换 $field_data = implode(',', $field_data); } $field_data = preg_replace_r('/pboot:if/i', '', $field_data); if ($value->required && ! $field_data) { alert_back($value->description . '不能为空!'); } else { $data[$value->name] = $field_data; $mail_body .= $value->description . ':' . $field_data . '<br>'; } } $status = $this->config('message_verify') === '0' ? 1 : 0; // 设置额外数据 if ($data) { $data['acode'] = get_lg(); $data['user_ip'] = ip2long(get_user_ip()); $data['user_os'] = get_user_os(); $data['user_bs'] = get_user_bs(); $data['recontent'] = ''; $data['status'] = $status; $data['create_user'] = 'guest'; $data['update_user'] = 'guest'; $data['uid'] = session('pboot_uid'); } if ($this->model->addMessage($data)) { session('lastsub', time()); // 记录最后提交时间 $this->log('留言提交成功!'); if ($this->config('sms_status')) { if ($this->config('message_send_sms') && $this->config('sms_send_to')) { $sms_subject = "您有新的" . $value->form_name . "信息,请注意查收!"; sendsms($this->config(), $this->config('sms_send_to'), $sms_subject); } } else { if ($this->config('message_send_mail') && $this->config('message_send_to')) { $mail_subject = "【" . CMSNAME . "】您有新的" . $value->form_name . "信息,请注意查收!"; $mail_body .= '<br>来自网站 ' . get_http_url() . ' (' . date('Y-m-d H:i:s') . ')'; sendmail($this->config(), $this->config('message_send_to'), $mail_subject, $mail_body); } } alert_location('提交成功!', '-1', 1); } else { $this->log('留言提交失败!'); alert_back('提交失败!'); } } else { alert_back('提交失败,请使用POST方式提交!'); } } |
5:打开项目:\core\function\helper.php 修改短信发送函数
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
// 发送短信function sendsms(array $config, $to, $content){ $statusStr = array( "0" => "短信发送成功", "-1" => "参数不全", "-2" => "服务器空间不支持,请确认支持curl或者fsocket,联系您的空间商解决或者更换空间!", "30" => "密码错误", "40" => "账号不存在", "41" => "余额不足", "42" => "帐户已过期", "43" => "IP地址限制", "50" => "内容含有敏感词" ); if (! $to || ! $content) { return false; } if ($config['sms_account'] == 0){ alert_back('短信暂未开启'); } if (! isset($config['sms_account']) || ! isset($config['sms_pwd']) || ! isset($config['sms_signid'])) { alert_back('短信发送参数配置有误'); } $user = $config['sms_account']; $pass = md5($config['sms_pwd']); $content = "【" . $config['sms_signid'] . "】".$content; $phone = $to; // 替换空格 $sendurl = $smsapi."sms?u=".$user."&p=".$pass."&m=".$phone."&c=".urlencode($content); $res =file_get_contents($sendurl) ; if ($res == 0) { return true; } else { error('短信发送失败,' . $statusStr[$res]); }} |
6:打开项目:apps\api\controller\CmsController.php 修改Api表单短信发送
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
public function addform() { if ($_POST) { if (! $fcode = request('fcode', 'var')) { json(0, '传递的表单编码fcode有误!'); } if ($this->config('form_status') === '0') { json(0, '系统已经关闭表单功能,请到后台开启再试!'); } // 读取字段 if (! $form = $this->model->getFormField($fcode)) { json(0, '接收表单不存在任何字段,请核对后重试!'); } // 接收数据 $mail_body = ''; foreach ($form as $value) { $field_data = post($value->name); if (is_array($field_data)) { // 如果是多选等情况时转换 $field_data = implode(',', $field_data); } $field_data = str_replace('pboot:if', '', $field_data); if ($value->required && ! $field_data) { json(0, $value->description . '不能为空!'); } else { $data[$value->name] = $field_data; $mail_body .= $value->description . ':' . $field_data . '<br>'; } } // 设置创建时间 if ($data) { $data['create_time'] = get_datetime(); } // 写入数据 if ($this->model->addForm($value->table_name, $data)) { $this->log('API提交表单数据成功!'); if ($this->config('sms_status')) { if ($this->config('form_send_sms') && $this->config('sms_send_to')) { $sms_subject = "您有新的" . $value->form_name . "信息,请注意查收!"; sendsms($this->config(), $this->config('sms_send_to'), $sms_subject); } }else{ if ($this->config('form_send_mail') && $this->config('message_send_to')) { $mail_subject = "【" . CMSNAME . "】您有新的" . $value->form_name . "信息,请注意查收!"; $mail_body .= '<br>来自网站' . get_http_url() . '(' . date('Y-m-d H:i:s') . ')'; sendmail($this->config(), $this->config('message_send_to'), $mail_subject, $mail_body); } } json(1, '表单提交成功!'); } else { $this->log('API提交表单数据失败!'); json(0, '表单提交失败!'); } } else { json(0, '表单提交失败,请使用POST方式提交!'); } } |
经过上面的替换,短信宝的短信平台已经替换成功了,可以正常使用了。进行测试发送:
报备一下短信宝的VIP模板,这样就可以走短信宝的优质通道了,即便遇到敏感文字我们都不会人工审核,短信内容3~5秒就可送达。
另外:我们已经开发好完整的PbootCMS_V3.1.2系统短信宝插件,点击此链接 下载及查看安装流程。
最新更新
电商类
CMS类
微信类