ActionSubscribe
Package | actions |
---|---|
Inheritance | class ActionSubscribe » Action » LsObject |
Since | 1.0 |
Source Code | /classes/actions/ActionSubscribe.class.php |
Экшен обработки подписок пользователей
Protected Properties
Property | Type | Description | Defined By |
---|---|---|---|
aParams | array | Список параметров из URL | Action |
aParamsEventMatch | array | Список совпадений по регулярному выражению для евента | Action |
aRegisterEvent | array | Список зарегистрированных евентов | Action |
oEngine | Engine|null | Объект ядра | Action |
oUserCurrent | ModuleUser_EntityUser|null | Текущий пользователь | ActionSubscribe |
sActionTemplate | string|null | Шаблон экшена | Action |
sCurrentAction | null|string | Текущий экшен | Action |
sCurrentEvent | string|null | Текущий евент | Action |
sCurrentEventName | string|null | Имя текущий евента | Action |
sDefaultEvent | string|null | Дефолтный евент | Action |
Public Methods
Method | Description | Defined By |
---|---|---|
EventShutdown() | Выполняется при завершение экшена, после вызова основного евента | Action |
ExecEvent() | Запускает евент на выполнение | Action |
GetActionClass() | Получить каталог с шаблонами экшена(совпадает с именем класса) | Action |
GetCurrentEventName() | Возвращает имя евента | Action |
GetDefaultEvent() | Получает евент по умолчанию | Action |
GetParam() | Получает параметр из URL по его номеру, если его нет то null | Action |
GetParams() | Получает список параметров из УРЛ | Action |
GetTemplate() | Получить шаблон | Action |
Init() | Инициализация | ActionSubscribe |
SetDefaultEvent() | Устанавливает евент по умолчанию | Action |
SetParam() | Установить значение параметра(эмуляция параметра в URL). | Action |
__call() | Ставим хук на вызов неизвестного метода и считаем что хотели вызвать метод какого либо модуля | Action |
__construct() | Конструктор | Action |
Protected Methods
Method | Description | Defined By |
---|---|---|
AddEvent() | Добавляет евент в экшен | Action |
AddEventPreg() | Добавляет евент в экшен, используя регулярное вырожение для евента и параметров | Action |
EventAjaxSubscribeToggle() | Изменение состояния подписки | ActionSubscribe |
EventNotFound() | Вызывается в том случаи если не найден евент который запросили через URL | Action |
EventUnsubscribe() | Отписка от подписки | ActionSubscribe |
GetEventMatch() | Возвращает элементы совпадения по регулярному выражению для евента | Action |
GetParamEventMatch() | Возвращает элементы совпадения по регулярному выражению для параметров евента | Action |
RegisterEvent() | Регистрация евентов | ActionSubscribe |
SetTemplate() | Устанавливает какой шаблон выводить | Action |
SetTemplateAction() | Устанавливает какой шаблон выводить | Action |
Property Details
oUserCurrent
property
protected ModuleUser_EntityUser|null $oUserCurrent;
Текущий пользователь
Method Details
EventAjaxSubscribeToggle()
method
protected void EventAjaxSubscribeToggle()
|
Source Code: /classes/actions/ActionSubscribe.class.php#83 (show)
protected function EventAjaxSubscribeToggle() {
/**
* Устанавливаем формат Ajax ответа
*/
$this->Viewer_SetResponseAjax('json');
/**
* Получаем емайл подписки и проверяем его на валидность
*/
$sMail=getRequest('mail');
if ($this->oUserCurrent) {
$sMail=$this->oUserCurrent->getMail();
}
if (!func_check($sMail,'mail')) {
$this->Message_AddError($this->Lang_Get('registration_mail_error'),$this->Lang_Get('error'));
return ;
}
/**
* Получаем тип объекта подписки
*/
$sTargetType=getRequest('target_type');
if (!$this->Subscribe_IsAllowTargetType($sTargetType)) {
$this->Message_AddError($this->Lang_Get('system_error'),$this->Lang_Get('error'));
return ;
}
$sTargetId=getRequest('target_id') ? getRequest('target_id') : null;
$iValue=getRequest('value') ? 1 : 0;
$oSubscribe=null;
/**
* Есть ли доступ к подписке гостям?
*/
if (!$this->oUserCurrent and !$this->Subscribe_IsAllowTargetForGuest($sTargetType)) {
$this->Message_AddError($this->Lang_Get('need_authorization'),$this->Lang_Get('error'));
return ;
}
/**
* Проверка объекта подписки
*/
if (!$this->Subscribe_CheckTarget($sTargetType,$sTargetId,$iValue)) {
$this->Message_AddError($this->Lang_Get('system_error'),$this->Lang_Get('error'));
return ;
}
/**
* Если подписка еще не существовала, то создаем её
*/
if ($oSubscribe=$this->Subscribe_AddSubscribeSimple($sTargetType,$sTargetId,$sMail)) {
$oSubscribe->setStatus($iValue);
$this->Subscribe_UpdateSubscribe($oSubscribe);
$this->Message_AddNotice($this->Lang_Get('subscribe_change_ok'),$this->Lang_Get('attention'));
return ;
}
$this->Message_AddError($this->Lang_Get('system_error'),$this->Lang_Get('error'));
return ;
}
Изменение состояния подписки
EventUnsubscribe()
method
protected void EventUnsubscribe()
|
Source Code: /classes/actions/ActionSubscribe.class.php#58 (show)
protected function EventUnsubscribe() {
/**
* Получаем подписку по ключу
*/
if ($oSubscribe=$this->Subscribe_GetSubscribeByKey($this->getParam(0)) and $oSubscribe->getStatus()==1) {
/**
* Отписываем пользователя
*/
$oSubscribe->setStatus(0);
$oSubscribe->setDateRemove(date("Y-m-d H:i:s"));
$this->Subscribe_UpdateSubscribe($oSubscribe);
$this->Message_AddNotice($this->Lang_Get('subscribe_change_ok'),null,true);
}
/**
* Получаем URL для редиректа
*/
if ((!$sUrl=$this->Subscribe_GetUrlTarget($oSubscribe->getTargetType(),$oSubscribe->getTargetId()))) {
$sUrl=Router::GetPath('index');
}
Router::Location($sUrl);
}
Отписка от подписки
Init()
method
public void Init()
|
Source Code: /classes/actions/ActionSubscribe.class.php#36 (show)
public function Init() {
$this->oUserCurrent=$this->User_GetUserCurrent();
}
Инициализация
RegisterEvent()
method
protected void RegisterEvent()
|
Source Code: /classes/actions/ActionSubscribe.class.php#43 (show)
protected function RegisterEvent() {
$this->AddEventPreg('/^unsubscribe$/i','/^\w{32}$/i','EventUnsubscribe');
$this->AddEvent('ajax-subscribe-toggle','EventAjaxSubscribeToggle');
}
Регистрация евентов