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 functionadd()    {        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 functionindex()    {        // 在非兼容模式接受地址第二参数值        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 functionindex()    {        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 | // 发送短信functionsendsms(array $config, $to, $content){    $statusStr = array(        "0"=> "短信发送成功",        "-1"=> "参数不全",        "-2"=> "服务器空间不支持,请确认支持curl或者fsocket,联系您的空间商解决或者更换空间!",        "30"=> "密码错误",        "40"=> "账号不存在",        "41"=> "余额不足",        "42"=> "帐户已过期",        "43"=> "IP地址限制",        "50"=> "内容含有敏感词"    );    if(! $to || ! $content) {        returnfalse;    }    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) {         returntrue;        } 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 functionaddform()    {        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类
微信类