отправлять пользователю уведомление на рабочем столе, когда новые данные сохраняются или обновляются: php, Drupal7 - PullRequest
0 голосов
/ 18 октября 2018

У меня есть требование отправить настольное уведомление в режиме реального времени, если таблица базы данных обновляется без какого-либо события, например перезагрузки страницы или нажатия кнопки.Я ищу некоторые подсказки в php, Drupal 7,

Я написал скрипт, который даёт это, но ему нужно какое-то событие, чтобы вызвать уведомление Desktop.в то время как мне нужно что-то, что не нуждается в событии.

Любой ввод будет полезен

1 Ответ

0 голосов
/ 18 октября 2018

Насколько я знаю, такая функция не реализована.Попробуйте сделать это с помощью вызова 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');

  • create 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();
    

edit: assumig Этот скрипт находится за пределами drupal. Не используйте drupal_exit(), просто завершите скрипт с напечатанным JSON, если вам нужна функция drupal внутри скриптаэто более сложно, см. это для начала

Эти шаги должны позволить вам симулировать постоянную связь между загруженной страницей и бэкэндом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...