Skip to content

Instantly share code, notes, and snippets.

@but1head
Last active January 26, 2017 21:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save but1head/d7997501b066513281067617e4a21c7c to your computer and use it in GitHub Desktop.
Save but1head/d7997501b066513281067617e4a21c7c to your computer and use it in GitHub Desktop.
  1. Создаем плагин в modx. События: OnManagerPageBeforeRender, msOnCreateOrder
switch($modx->event->name) {
  // подключение js обработчика в менеджере
  case 'OnManagerPageBeforeRender':
    $modx->controller->addLastJavascript('/path/ms2-mgr-mnj.js');
    break;
  // отправка заказа в nodejs (nodejs отправит администраторам)
  case 'msOnCreateOrder':		
    $modnodejs = $modx->getService('modnodejs');		
    $modnodejs->emit('msOnCreateOrder', $msOrder->toArray());		
    break;
}
  1. Создаем файл /path/ms2-mgr-mnj.js, path должен быть указн в modx плагине
socket.on('msOnCreateOrder', function(data){		
  notify('Новый заказ', {		
  	body: data.num + ' на сумму ' + data.cost + ' руб.',		
  	icon: window.location.origin + '/assets/components/minishop2/img/mgr/ms2_thumb.png',		
  });		
});
 
function notify(title, options) {		
  if (!("Notification" in window)) {		
  	alert('Ваш браузер не поддерживает HTML Notifications, его необходимо обновить.');		
  } else if (Notification.permission === "granted") {		
  	var notification = new Notification(title, options);		
  } else if (Notification.permission !== 'denied') {		
  	Notification.requestPermission(function (permission) {		
      if (permission === "granted") {		
          var notification = new Notification(title, options);		
      } else {		
          // Юзер отклонил наш запрос на показ уведомлений		
      }		
  	});		
  }		
} 		
  1. Создаем файл /node_modules/modnodejs-server/plugins/ms2.js
module.exports = exports =  function(socket, io, onlineUsers){		
	socket.on('msOnCreateOrder', function(data){		
		var data = JSON.parse(data);		
		io.in('Administrator').emit('msOnCreateOrder', data);		
	});		
} 
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment