- Создаем плагин в 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;
}
- Создаем файл /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 {
// Юзер отклонил наш запрос на показ уведомлений
}
});
}
}
- Создаем файл /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);
});
}