Показ сообщения для менеджера интернет магазина

При изменении статуса заказа происходят определенные действия (отправка СМС, письма), выполняемые плагинами повешенными на события, если выводить результат выполнения через $e->output, то он теряется где-то внизу и менеджер его не всегда может заметить.

Данный плагин выводит всплывающее сообщение используя стандартные методы админки без использования дополнительных скриптов.

//<?
/**
 * SHKshowAdminMessage
 *
 * Показ сообщения для менеджера интернет магазина
 *
 * @category  plugin
 * @package   modx 
 * @version   V 0.1
 * @internal  @events OnSHKmodRenderTopLinks
 * @internal  @legacy_names SHKshowAdminMessage
 * @internal  @installset base, sample
 * @internal  @properties 
 * @internal  @modx_category Shop
 * @internal  @installset base, sample
*/ 

$e = &$modx->Event;
$output = "";
$print = "";

if ($e->name == 'OnSHKmodRenderTopLinks') {
	if($_SESSION['SHKmessage']){
		if (is_array($_SESSION['SHKmessage'])) {
			foreach ($_SESSION['SHKmessage'] as $k => $message) {
				$print .= 'top.modx.popup({type:"'.$message['type'].'",title:"'.$message['title'].'",position:"top center",content:"'.preg_replace('/[\r\n]+/','<br />',$message['text']).'",wrap:"body",clickclose:1,hide:0,delay:50000});';
			}
		} else {
			$print .= 'top.modx.popup({type:"info",title:"MODX :: Shopkeeper",position:"top center",content:"'.preg_replace('/[\r\n]+/','<br />',$_SESSION['SHKmessage']).'",wrap:"body",clickclose:1});';
		}
		echo '<script type="text/javascript">'.$print.'</script>';
		unset($_SESSION['SHKmessage']);
	}
}
$e->output($output);


Плагин вешается на событие OnSHKmodRenderTopLinks.

В плагинах которые выполняют какие-то дайствия при изменении статуса заказа необходимо добавить:
$_SESSION['SHKmessage'][] = array('type' => $message_type, 'title' => $message_title, 'text' => $message_text);
где:
$message_type - тип сообщения (warning, success, info)
$message_title - заголовок сообщения
$message_text - текст сообщения

0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.