1
0
Fork 0
mirror of https://github.com/Oreolek/ifhub.club.git synced 2024-07-03 15:05:02 +03:00
ifhub.club/engine/modules/message/Message.class.php
Mzhelskiy Maxim b3ce5aed12 refactoring
2010-09-24 14:50:45 +00:00

188 lines
4.9 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
/*-------------------------------------------------------
*
* LiveStreet Engine Social Networking
* Copyright © 2008 Mzhelskiy Maxim
*
*--------------------------------------------------------
*
* Official site: www.livestreet.ru
* Contact e-mail: rus.engine@gmail.com
*
* GNU General Public License, version 2:
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
*
---------------------------------------------------------
*/
/**
* Модуль системных сообщений
*
*/
class ModuleMessage extends Module {
/**
* Массив сообщений со статусом ОШИБКА
*
* @var array
*/
protected $aMsgError=array();
/**
* Массив сообщений со статусом СООБЩЕНИЕ
*
* @var array
*/
protected $aMsgNotice=array();
/**
* Массив сообщений, который будут показаны на СЛЕДУЮЩЕЙ страничке
* @var array
*/
protected $aMsgNoticeSession=array();
/**
* Массив ошибок, который будут показаны на СЛЕДУЮЩЕЙ страничке
* @var array
*/
protected $aMsgErrorSession=array();
/**
* Инициализация модуля
*
*/
public function Init() {
/**
* Добавляем сообщения и ошибки, которые содержались в сессии
*/
$aNoticeSession = $this->Session_Get('message_notice_session');
if(is_array($aNoticeSession) and count($aNoticeSession)) {
$this->aMsgNotice = $aNoticeSession;
}
$aErrorSession = $this->Session_Get('message_error_session');
if(is_array($aErrorSession) and count($aErrorSession)) {
$this->aMsgError = $aErrorSession;
}
}
/**
* При завершении работы модуля передаем списки сообщений в шаблоны Smarty
*
*/
public function Shutdown() {
/**
* Добавляем в сессию те соощения, которые были отмечены для сессионого использования
*/
$this->Session_Set('message_notice_session', $this->GetNoticeSession());
$this->Session_Set('message_error_session', $this->GetErrorSession());
$this->Viewer_Assign('aMsgError',$this->GetError());
$this->Viewer_Assign('aMsgNotice',$this->GetNotice());
}
/**
* Добавляет новое сообщение об ошибке
*
* @param string $sMsg
* @param string $sTitle
* @param bool $bUseSession
*/
public function AddError($sMsg,$sTitle=null,$bUseSession=false) {
if(!$bUseSession) {
$this->aMsgError[]=array('msg'=>$sMsg,'title'=>$sTitle);
} else {
$this->aMsgErrorSession[]=array('msg'=>$sMsg,'title'=>$sTitle);
}
}
/**
* Создаёт идинственное сообщение об ошибке(т.е. очищает все предыдущие)
*
* @param string $sMsg
* @param string $sTitle
* @param bool $bUseSession
*/
public function AddErrorSingle($sMsg,$sTitle=null,$bUseSession=false) {
$this->ClearError();
$this->AddError($sMsg,$sTitle,$bUseSession);
}
/**
* Добавляет новое сообщение
*
* @param string $sMsg
* @param string $sTitle
* @param bool $bUseSession
*/
public function AddNotice($sMsg,$sTitle=null,$bUseSession=false) {
if(!$bUseSession) {
$this->aMsgNotice[]=array('msg'=>$sMsg,'title'=>$sTitle);
} else {
$this->aMsgNoticeSession[]=array('msg'=>$sMsg,'title'=>$sTitle);
}
}
/**
* Создаёт идинственное сообщение, удаляя предыдущие
*
* @param string $sMsg
* @param string $sTitle
* @param bool $bUseSession
*/
public function AddNoticeSingle($sMsg,$sTitle=null,$bUseSession=false) {
$this->ClearNotice();
$this->AddNotice($sMsg,$sTitle,$bUseSession);
}
/**
* Очищает стек сообщений
*
*/
public function ClearNotice() {
$this->aMsgNotice=array();
$this->aMsgNoticeSession=array();
}
/**
* Очищает стек ошибок
*
*/
public function ClearError() {
$this->aMsgError=array();
$this->aMsgErrorSession=array();
}
/**
* Получает список сообщений об ошибке
*
* @return array
*/
public function GetError() {
return $this->aMsgError;
}
/**
* Получает список сообщений
*
* @return array
*/
public function GetNotice() {
return $this->aMsgNotice;
}
/**
* Возвращает список сообщений,
* которые необходимо поместить в сессию
*
* @return array
*/
public function GetNoticeSession() {
return $this->aMsgNoticeSession;
}
/**
* Возвращает список ошибок,
* которые необходимо поместить в сессию
*
* @return array
*/
public function GetErrorSession() {
return $this->aMsgErrorSession;
}
}
?>