关闭
> php教程 > php >

dedecms实现表单提交时语音提醒功能

来源:网络 文章列表 2018-12-10 8
dedecms里的表单提交,添加后台语音通知功能。采用的是socket。

近日有客户需要做dedecms的后台表单提交时,可以进行语音提示服务。

我就做了个workman的即时信息推送服务。

下面简单说明下搭建过程中的流程

第一步:

下载workman的socket安装包。https://www.workerman.net/web-sender。根据workman的相关说明,搭建好socket。

 

第二步:

语音提示   修改index2.html ,加入如下代码

<div style="position: fixed; bottom: 10px; width: 280px; padding: 10px 15px; border: 1px solid #ddd; display: none;right:0;z-index: 10000;background: #fff;" id="msg-wrap">
  <div style="overflow:hidden"><button class="msg-close-all" style="float: right;">关闭消息</button></div>
  
</div>
<audio controls="controls" style="" id="new_msg">
    <source src="" type="audio/mp3" />
    <source src="" type="audio/ogg" />
     Your browser does not support this audio format.
</audio>

在index2.html 底部  </body> 前加入 如下代码

<script src=' https://cdn.bootcss.com/socket.io/2.0.3/socket.io.js'></script>
<script>
    $(function () {
      var uid = "<?php $cuserLogin->userId;?>";
      // 连接服务端
      var socket = io(' http://'+document.domain+':2120');
      // 连接后登录
      socket.on('connect', function(){
        console.log('连接成功!')
        socket.emit('login', uid);
      });

      // 后端推送来消息时
      socket.on('new_msg', function(msg) {
        $('#msg-wrap').show();
        $('#new_msg').attr('src', '/my_socket/'+msg+'.mp3');
        if (msg == 'new-reg') {
           $('#msg-wrap').append('<p style="padding:5px 0;"><span style="margin-right:10px">'+getTime()+'</span>您有新用户注册<button class="msg-close" style="margin-left:10px;">关闭</button></p>');
        } else if (msg == 'qukuan') {
           $('#msg-wrap').append('<p style="padding:5px 0;"><span style="margin-right:10px">'+getTime()+'</span>您有新取款 <button class="msg-close" style="margin-left:10px;">关闭</button></p>');
        } 
        
        $('#new_msg')[0].play();
      });
      
      
      $('.msg-close-all').click(function () {
        $('#msg-wrap').hide();
      })

      $('.msg-close').live('click', function () {
        $(this).parent('p').remove();
        if ($('#msg-wrap p').size() == 0) {
          $('#msg-wrap').hide();
        }
      })

      function getTime () {
        var myDate = new Date();
        var year = myDate.getFullYear();
        var mon = myDate.getMonth()+1;
        var day = myDate.getDate();
        var hour = myDate.getHours();
        var min = myDate.getMinutes(); 
        var sec = myDate.getSeconds();
        return year + '.'+ mon + '.'+ day + ' '+  hour + ':'+  min + ':'+ sec;
      }
    })

    // console.log(' http://'+document.domain+':2121/?type=publish&content=ceshi')
</script> 

 

第三步:

表单提交时,实时推送语音

修改的文件路径为:plus/diy.php。

在diy.php里找到如下代码,添加上我们的代码段

$push_api_url = "http://dedecms.sj.com:2121/";
$post_data = array(
   "type" => "publish", // 这个不需要改
   "content" => 'new-reg',  // 如果是全款的就是  qukuan ,这里对应的是文件名,文件在my_socket里面。
   "to" => '', // 用户ID, 不填则给所有登录用户发送通知
);
$ch = curl_init ();
curl_setopt ( $ch, CURLOPT_URL, $push_api_url );
curl_setopt ( $ch, CURLOPT_POST, 1 );
curl_setopt ( $ch, CURLOPT_HEADER, 0 );
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_data );
curl_setopt ($ch, CURLOPT_HTTPHEADER, array("Expect:"));
$return = curl_exec( $ch );
curl_close ( $ch );

如果按照教程的过程中,存在问题,可以发个红包给站长()协助处理下!^_^

腾讯云限量秒杀

1核2G 5M 50元/年 2核4G 8M 74元/年 4核8G 5M 818元/年 CDN流量包 100GB 9元

版权声明

本站部分原创文章,部分文章整理自网络。如有转载的文章侵犯了您的版权,请联系站长删除处理。如果您有优质文章,欢迎发稿给我们!联系站长:
愿本站的内容能为您的学习、工作带来绵薄之力。

评论

  • 随机获取
点击刷新
精彩评论