当任何新数据保存或更新时,向用户发送桌面通知:php,drupal7

fafcakar  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(327)

我有一个要求,发送一个实时桌面通知,如果数据库表得到更新没有任何事件,如页面重新加载或按钮点击。我在找php,Drupal7,
我已经写了一个脚本,DOW这个,但它需要一些事件来触发桌面通知。而我需要一些不需要事件的东西。
任何意见都会有帮助

3okqufwl

3okqufwl1#

据我所知,没有这样的功能实现。尝试使用ajax调用来实现这一点
创建 myModuleAjax.js 在模块的某个地方用ajax循环文件。

(function ($) {
  Drupal.behaviors.myModuleAjax = {      

    interval: null,

    attach: function (context, settings) {
      interval = setInterval(function() {
        //Place where your php script will be.
        $.getJSON(Drupal.settings.basePath + "ajax/ajaxEventCheck.php", {
            //Any data you need to pass to php script. For example table name.
            tableToCheck: "my_table"
          })
          .done(function(json) {
            //Success, got some data, notification logic here.
            alert("changes");
          })
          .fail(function(jqxhr, textStatus, error) {
            //Handle communication failing.
          });
      //Check each 5 seconds.
      }, 5000);
    },

  }

} (jQuery));

将此脚本添加到页面 drupal_add_js(drupal_get_path('module', 'myModule') . '/js/myModuleAjax.js'); 创建 ajaxEventCheck.php 脚本,它将检查您的事件(表更新)是否以json格式返回信息,它应该以

//Your output data is in $data

//End of function - send JSON data and exit.
header('Content-Type: application/json');
print json_encode($data);
die();

编辑:assumig这个脚本不在drupal使用范围内 drupal_exit() ,只需使用打印的json结束脚本,如果您需要在脚本中使用drupal功能,这将是一个更棘手的问题,请参阅下面的开始部分
这些步骤应该允许您模拟加载的页面和后端之间的持续通信。

相关问题