2009-05-10 10:50:39 +03:00
|
|
|
|
<?php
|
2008-10-21 07:58:03 +03:00
|
|
|
|
/*-------------------------------------------------------
|
|
|
|
|
*
|
|
|
|
|
* 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
|
|
|
|
|
*
|
|
|
|
|
---------------------------------------------------------
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Модуль рассылок уведомлений пользователям
|
|
|
|
|
*
|
|
|
|
|
*/
|
2010-05-27 17:02:43 +03:00
|
|
|
|
class ModuleNotify extends Module {
|
2009-09-09 20:39:26 +03:00
|
|
|
|
/**
|
|
|
|
|
* Статусы степени обработки заданий отложенной публикации в базе данных
|
|
|
|
|
*/
|
|
|
|
|
const NOTIFY_TASK_STATUS_NULL=1;
|
|
|
|
|
/**
|
|
|
|
|
* Объект локального вьювера для рендеринга сообщений
|
|
|
|
|
*
|
2010-05-27 17:02:43 +03:00
|
|
|
|
* @var ModuleViewer
|
2009-09-09 20:39:26 +03:00
|
|
|
|
*/
|
2008-10-21 07:58:03 +03:00
|
|
|
|
protected $oViewerLocal=null;
|
2009-09-09 20:39:26 +03:00
|
|
|
|
/**
|
|
|
|
|
* Массив заданий на удаленную публикацию
|
|
|
|
|
*
|
|
|
|
|
* @var array
|
|
|
|
|
*/
|
|
|
|
|
protected $aTask=array();
|
|
|
|
|
/**
|
|
|
|
|
* Меппер
|
|
|
|
|
*
|
|
|
|
|
* @var Mapper_Notify
|
|
|
|
|
*/
|
|
|
|
|
protected $oMapper=null;
|
2008-10-21 07:58:03 +03:00
|
|
|
|
/**
|
|
|
|
|
* Инициализация модуля
|
|
|
|
|
* Создаём локальный экземпляр модуля Viewer
|
|
|
|
|
* Момент довольно спорный, но позволяет избавить основной шаблон от мусора уведомлений
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
public function Init() {
|
2010-05-27 17:02:43 +03:00
|
|
|
|
if (!class_exists('ModuleViewer')) {
|
2009-09-10 21:51:58 +03:00
|
|
|
|
require_once(Config::Get('path.root.engine')."/modules/viewer/Viewer.class.php");
|
2008-10-25 23:31:29 +03:00
|
|
|
|
}
|
2009-12-14 22:25:30 +02:00
|
|
|
|
$this->oViewerLocal=$this->Viewer_GetLocalViewer();
|
2010-05-27 23:40:30 +03:00
|
|
|
|
$this->oMapper=Engine::GetMapper(__CLASS__);
|
2008-10-21 07:58:03 +03:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Отправляет юзеру уведомление о новом комментарии в его топике
|
|
|
|
|
*
|
2010-05-27 18:16:20 +03:00
|
|
|
|
* @param ModuleUser_EntityUser $oUserTo
|
|
|
|
|
* @param ModuleTopic_EntityTopic $oTopic
|
2008-10-21 07:58:03 +03:00
|
|
|
|
* @param CommentEntity_TopicComment $oComment
|
2010-05-27 18:16:20 +03:00
|
|
|
|
* @param ModuleUser_EntityUser $oUserComment
|
2008-10-21 07:58:03 +03:00
|
|
|
|
*/
|
2010-05-27 18:16:20 +03:00
|
|
|
|
public function SendCommentNewToAuthorTopic(ModuleUser_EntityUser $oUserTo, ModuleTopic_EntityTopic $oTopic, ModuleComment_EntityComment $oComment, ModuleUser_EntityUser $oUserComment) {
|
2008-10-21 07:58:03 +03:00
|
|
|
|
/**
|
|
|
|
|
* Проверяем можно ли юзеру рассылать уведомление
|
|
|
|
|
*/
|
|
|
|
|
if (!$oUserTo->getSettingsNoticeNewComment()) {
|
|
|
|
|
return ;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Передаём в шаблон переменные
|
|
|
|
|
*/
|
|
|
|
|
$this->oViewerLocal->Assign('oUserTo',$oUserTo);
|
|
|
|
|
$this->oViewerLocal->Assign('oTopic',$oTopic);
|
|
|
|
|
$this->oViewerLocal->Assign('oComment',$oComment);
|
|
|
|
|
$this->oViewerLocal->Assign('oUserComment',$oUserComment);
|
|
|
|
|
/**
|
|
|
|
|
* Формируем шаблон
|
|
|
|
|
*/
|
2009-12-19 13:02:42 +02:00
|
|
|
|
$sBody=$this->oViewerLocal->Fetch($this->GetTemplatePath('notify.comment_new.tpl'));
|
2009-09-09 20:39:26 +03:00
|
|
|
|
|
2008-10-21 07:58:03 +03:00
|
|
|
|
/**
|
2009-09-09 20:39:26 +03:00
|
|
|
|
* Если в конфигураторе указан отложенный метод отправки,
|
|
|
|
|
* то добавляем задание в массив. В противном случае,
|
|
|
|
|
* сразу отсылаем на email
|
|
|
|
|
*/
|
|
|
|
|
if(Config::Get('module.notify.delayed')) {
|
|
|
|
|
$oNotifyTask=Engine::GetEntity(
|
|
|
|
|
'Notify_Task',
|
|
|
|
|
array(
|
|
|
|
|
'user_mail' => $oUserTo->getMail(),
|
|
|
|
|
'user_login' => $oUserTo->getLogin(),
|
|
|
|
|
'notify_text' => $sBody,
|
|
|
|
|
'notify_subject' => $this->Lang_Get('notify_subject_comment_new'),
|
|
|
|
|
'date_created' => date("Y-m-d H:i:s"),
|
|
|
|
|
'notify_task_status' => self::NOTIFY_TASK_STATUS_NULL,
|
|
|
|
|
)
|
|
|
|
|
);
|
|
|
|
|
if(Config::Get('module.notify.insert_single')) {
|
|
|
|
|
$this->aTask[] = $oNotifyTask;
|
|
|
|
|
} else {
|
|
|
|
|
$this->oMapper->AddTask($oNotifyTask);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
/**
|
|
|
|
|
* Отправляем мыло
|
|
|
|
|
*/
|
|
|
|
|
$this->Mail_SetAdress($oUserTo->getMail(),$oUserTo->getLogin());
|
|
|
|
|
$this->Mail_SetSubject($this->Lang_Get('notify_subject_comment_new'));
|
|
|
|
|
$this->Mail_SetBody($sBody);
|
|
|
|
|
$this->Mail_setHTML();
|
|
|
|
|
$this->Mail_Send();
|
|
|
|
|
}
|
2008-10-21 07:58:03 +03:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Отправляет юзеру уведомление об ответе на его комментарий
|
|
|
|
|
*
|
2010-05-27 18:16:20 +03:00
|
|
|
|
* @param ModuleUser_EntityUser $oUserTo
|
|
|
|
|
* @param ModuleTopic_EntityTopic $oTopic
|
2008-10-21 07:58:03 +03:00
|
|
|
|
* @param CommentEntity_TopicComment $oComment
|
2010-05-27 18:16:20 +03:00
|
|
|
|
* @param ModuleUser_EntityUser $oUserComment
|
2008-10-21 07:58:03 +03:00
|
|
|
|
*/
|
2010-05-27 18:16:20 +03:00
|
|
|
|
public function SendCommentReplyToAuthorParentComment(ModuleUser_EntityUser $oUserTo, ModuleTopic_EntityTopic $oTopic, ModuleComment_EntityComment $oComment, ModuleUser_EntityUser $oUserComment) {
|
2008-10-21 07:58:03 +03:00
|
|
|
|
/**
|
|
|
|
|
* Проверяем можно ли юзеру рассылать уведомление
|
|
|
|
|
*/
|
|
|
|
|
if (!$oUserTo->getSettingsNoticeReplyComment()) {
|
|
|
|
|
return ;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Передаём в шаблон переменные
|
|
|
|
|
*/
|
|
|
|
|
$this->oViewerLocal->Assign('oUserTo',$oUserTo);
|
|
|
|
|
$this->oViewerLocal->Assign('oTopic',$oTopic);
|
|
|
|
|
$this->oViewerLocal->Assign('oComment',$oComment);
|
|
|
|
|
$this->oViewerLocal->Assign('oUserComment',$oUserComment);
|
|
|
|
|
/**
|
|
|
|
|
* Формируем шаблон
|
|
|
|
|
*/
|
2009-12-19 13:02:42 +02:00
|
|
|
|
$sBody=$this->oViewerLocal->Fetch($this->GetTemplatePath('notify.comment_reply.tpl'));
|
2008-10-21 07:58:03 +03:00
|
|
|
|
/**
|
2009-09-09 20:39:26 +03:00
|
|
|
|
* Если в конфигураторе указан отложенный метод отправки,
|
|
|
|
|
* то добавляем задание в массив. В противном случае,
|
|
|
|
|
* сразу отсылаем на email
|
|
|
|
|
*/
|
|
|
|
|
if(Config::Get('module.notify.delayed')) {
|
|
|
|
|
$oNotifyTask=Engine::GetEntity(
|
|
|
|
|
'Notify_Task',
|
|
|
|
|
array(
|
|
|
|
|
'user_mail' => $oUserTo->getMail(),
|
|
|
|
|
'user_login' => $oUserTo->getLogin(),
|
|
|
|
|
'notify_text' => $sBody,
|
|
|
|
|
'notify_subject' => $this->Lang_Get('notify_subject_comment_reply'),
|
|
|
|
|
'date_created' => date("Y-m-d H:i:s"),
|
|
|
|
|
'notify_task_status' => self::NOTIFY_TASK_STATUS_NULL,
|
|
|
|
|
)
|
|
|
|
|
);
|
|
|
|
|
if(Config::Get('module.notify.insert_single')) {
|
|
|
|
|
$this->aTask[] = $oNotifyTask;
|
|
|
|
|
} else {
|
|
|
|
|
$this->oMapper->AddTask($oNotifyTask);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
/**
|
|
|
|
|
* Отправляем мыло
|
|
|
|
|
*/
|
|
|
|
|
$this->Mail_SetAdress($oUserTo->getMail(),$oUserTo->getLogin());
|
|
|
|
|
$this->Mail_SetSubject($this->Lang_Get('notify_subject_comment_reply'));
|
|
|
|
|
$this->Mail_SetBody($sBody);
|
|
|
|
|
$this->Mail_setHTML();
|
|
|
|
|
$this->Mail_Send();
|
|
|
|
|
}
|
2008-10-21 07:58:03 +03:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Отправляет юзеру уведомление о новом топике в блоге, в котором он состоит
|
|
|
|
|
*
|
2010-05-27 18:16:20 +03:00
|
|
|
|
* @param ModuleUser_EntityUser $oUserTo
|
|
|
|
|
* @param ModuleTopic_EntityTopic $oTopic
|
|
|
|
|
* @param ModuleBlog_EntityBlog $oBlog
|
|
|
|
|
* @param ModuleUser_EntityUser $oUserTopic
|
2008-10-21 07:58:03 +03:00
|
|
|
|
*/
|
2010-05-27 18:16:20 +03:00
|
|
|
|
public function SendTopicNewToSubscribeBlog(ModuleUser_EntityUser $oUserTo, ModuleTopic_EntityTopic $oTopic, ModuleBlog_EntityBlog $oBlog, ModuleUser_EntityUser $oUserTopic) {
|
2008-10-21 07:58:03 +03:00
|
|
|
|
/**
|
|
|
|
|
* Проверяем можно ли юзеру рассылать уведомление
|
|
|
|
|
*/
|
2009-03-17 21:05:30 +02:00
|
|
|
|
if (!$oUserTo->getSettingsNoticeNewTopic()) {
|
2008-10-21 07:58:03 +03:00
|
|
|
|
return ;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Передаём в шаблон переменные
|
|
|
|
|
*/
|
2009-03-17 21:05:30 +02:00
|
|
|
|
$this->oViewerLocal->Assign('oUserTo',$oUserTo);
|
2008-10-21 07:58:03 +03:00
|
|
|
|
$this->oViewerLocal->Assign('oTopic',$oTopic);
|
|
|
|
|
$this->oViewerLocal->Assign('oBlog',$oBlog);
|
|
|
|
|
$this->oViewerLocal->Assign('oUserTopic',$oUserTopic);
|
|
|
|
|
/**
|
|
|
|
|
* Формируем шаблон
|
|
|
|
|
*/
|
2009-12-19 13:02:42 +02:00
|
|
|
|
$sBody=$this->oViewerLocal->Fetch($this->GetTemplatePath('notify.topic_new.tpl'));
|
2008-10-21 07:58:03 +03:00
|
|
|
|
/**
|
2009-09-09 20:39:26 +03:00
|
|
|
|
* Если в конфигураторе указан отложенный метод отправки,
|
|
|
|
|
* то добавляем задание в массив. В противном случае,
|
|
|
|
|
* сразу отсылаем на email
|
|
|
|
|
*/
|
|
|
|
|
if(Config::Get('module.notify.delayed')) {
|
|
|
|
|
$oNotifyTask=Engine::GetEntity(
|
|
|
|
|
'Notify_Task',
|
|
|
|
|
array(
|
|
|
|
|
'user_mail' => $oUserTo->getMail(),
|
|
|
|
|
'user_login' => $oUserTo->getLogin(),
|
|
|
|
|
'notify_text' => $sBody,
|
|
|
|
|
'notify_subject' => $this->Lang_Get('notify_subject_topic_new').' «'.htmlspecialchars($oBlog->getTitle()).'»',
|
|
|
|
|
'date_created' => date("Y-m-d H:i:s"),
|
|
|
|
|
'notify_task_status' => self::NOTIFY_TASK_STATUS_NULL,
|
|
|
|
|
)
|
|
|
|
|
);
|
|
|
|
|
if(Config::Get('module.notify.insert_single')) {
|
|
|
|
|
$this->aTask[] = $oNotifyTask;
|
|
|
|
|
} else {
|
|
|
|
|
$this->oMapper->AddTask($oNotifyTask);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
/**
|
|
|
|
|
* Отправляем мыло
|
|
|
|
|
*/
|
|
|
|
|
$this->Mail_SetAdress($oUserTo->getMail(),$oUserTo->getLogin());
|
|
|
|
|
$this->Mail_SetSubject($this->Lang_Get('notify_subject_topic_new').' «'.htmlspecialchars($oBlog->getTitle()).'»');
|
|
|
|
|
$this->Mail_SetBody($sBody);
|
|
|
|
|
$this->Mail_setHTML();
|
|
|
|
|
$this->Mail_Send();
|
|
|
|
|
}
|
2008-10-21 07:58:03 +03:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Отправляет уведомление при регистрации с активацией
|
|
|
|
|
*
|
2010-05-27 18:16:20 +03:00
|
|
|
|
* @param ModuleUser_EntityUser $oUser
|
2008-10-21 07:58:03 +03:00
|
|
|
|
* @param string $sPassword
|
|
|
|
|
*/
|
2010-05-27 18:16:20 +03:00
|
|
|
|
public function SendRegistrationActivate(ModuleUser_EntityUser $oUser,$sPassword) {
|
2008-10-21 07:58:03 +03:00
|
|
|
|
/**
|
|
|
|
|
* Передаём в шаблон переменные
|
|
|
|
|
*/
|
|
|
|
|
$this->oViewerLocal->Assign('oUser',$oUser);
|
|
|
|
|
$this->oViewerLocal->Assign('sPassword',$sPassword);
|
|
|
|
|
/**
|
|
|
|
|
* Формируем шаблон
|
|
|
|
|
*/
|
2009-12-19 13:02:42 +02:00
|
|
|
|
$sBody=$this->oViewerLocal->Fetch($this->GetTemplatePath('notify.registration_activate.tpl'));
|
2009-09-09 20:39:26 +03:00
|
|
|
|
|
2008-10-21 07:58:03 +03:00
|
|
|
|
/**
|
|
|
|
|
* Отправляем мыло
|
|
|
|
|
*/
|
|
|
|
|
$this->Mail_SetAdress($oUser->getMail(),$oUser->getLogin());
|
2009-04-26 19:44:42 +03:00
|
|
|
|
$this->Mail_SetSubject($this->Lang_Get('notify_subject_registration_activate'));
|
2008-10-21 07:58:03 +03:00
|
|
|
|
$this->Mail_SetBody($sBody);
|
|
|
|
|
$this->Mail_setHTML();
|
|
|
|
|
$this->Mail_Send();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Отправляет уведомление о регистрации
|
|
|
|
|
*
|
2010-05-27 18:16:20 +03:00
|
|
|
|
* @param ModuleUser_EntityUser $oUser
|
2008-10-21 07:58:03 +03:00
|
|
|
|
* @param string $sPassword
|
|
|
|
|
*/
|
2010-05-27 18:16:20 +03:00
|
|
|
|
public function SendRegistration(ModuleUser_EntityUser $oUser,$sPassword) {
|
2008-10-21 07:58:03 +03:00
|
|
|
|
/**
|
|
|
|
|
* Передаём в шаблон переменные
|
|
|
|
|
*/
|
|
|
|
|
$this->oViewerLocal->Assign('oUser',$oUser);
|
|
|
|
|
$this->oViewerLocal->Assign('sPassword',$sPassword);
|
|
|
|
|
/**
|
|
|
|
|
* Формируем шаблон
|
|
|
|
|
*/
|
2009-12-19 13:02:42 +02:00
|
|
|
|
$sBody=$this->oViewerLocal->Fetch($this->GetTemplatePath('notify.registration.tpl'));
|
2009-09-09 20:39:26 +03:00
|
|
|
|
|
2008-10-21 07:58:03 +03:00
|
|
|
|
/**
|
|
|
|
|
* Отправляем мыло
|
|
|
|
|
*/
|
|
|
|
|
$this->Mail_SetAdress($oUser->getMail(),$oUser->getLogin());
|
2009-04-26 19:44:42 +03:00
|
|
|
|
$this->Mail_SetSubject($this->Lang_Get('notify_subject_registration'));
|
2008-10-21 07:58:03 +03:00
|
|
|
|
$this->Mail_SetBody($sBody);
|
|
|
|
|
$this->Mail_setHTML();
|
|
|
|
|
$this->Mail_Send();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Отправляет инвайт
|
|
|
|
|
*
|
2010-05-27 18:16:20 +03:00
|
|
|
|
* @param ModuleUser_EntityUser $oUserFrom
|
2008-10-21 07:58:03 +03:00
|
|
|
|
* @param string $sMailTo
|
2010-05-27 18:16:20 +03:00
|
|
|
|
* @param ModuleUser_EntityInvite $oInvite
|
2008-10-21 07:58:03 +03:00
|
|
|
|
*/
|
2010-05-27 18:16:20 +03:00
|
|
|
|
public function SendInvite(ModuleUser_EntityUser $oUserFrom,$sMailTo,ModuleUser_EntityInvite $oInvite) {
|
2008-10-21 07:58:03 +03:00
|
|
|
|
/**
|
|
|
|
|
* Передаём в шаблон переменные
|
|
|
|
|
*/
|
|
|
|
|
$this->oViewerLocal->Assign('oUserFrom',$oUserFrom);
|
|
|
|
|
$this->oViewerLocal->Assign('sMailTo',$sMailTo);
|
|
|
|
|
$this->oViewerLocal->Assign('oInvite',$oInvite);
|
|
|
|
|
/**
|
|
|
|
|
* Формируем шаблон
|
|
|
|
|
*/
|
2009-04-26 19:44:42 +03:00
|
|
|
|
$sBody=$this->oViewerLocal->Fetch('notify/'.$this->Lang_GetLang()."/notify.invite.tpl");
|
2008-10-21 07:58:03 +03:00
|
|
|
|
/**
|
2009-09-09 20:39:26 +03:00
|
|
|
|
* Если в конфигураторе указан отложенный метод отправки,
|
|
|
|
|
* то добавляем задание в массив. В противном случае,
|
|
|
|
|
* сразу отсылаем на email
|
|
|
|
|
*/
|
|
|
|
|
if(Config::Get('module.notify.delayed')) {
|
|
|
|
|
$oNotifyTask=Engine::GetEntity(
|
|
|
|
|
'Notify_Task',
|
|
|
|
|
array(
|
|
|
|
|
'user_mail' => $sMailTo,
|
|
|
|
|
'user_login' => null,
|
|
|
|
|
'notify_text' => $sBody,
|
|
|
|
|
'notify_subject' => $this->Lang_Get('notify_subject_invite'),
|
|
|
|
|
'date_created' => date("Y-m-d H:i:s"),
|
|
|
|
|
'notify_task_status' => self::NOTIFY_TASK_STATUS_NULL,
|
|
|
|
|
)
|
|
|
|
|
);
|
|
|
|
|
if(Config::Get('module.notify.insert_single')) {
|
|
|
|
|
$this->aTask[] = $oNotifyTask;
|
|
|
|
|
} else {
|
|
|
|
|
$this->oMapper->AddTask($oNotifyTask);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
/**
|
|
|
|
|
* Отправляем мыло
|
|
|
|
|
*/
|
|
|
|
|
$this->Mail_SetAdress($sMailTo);
|
|
|
|
|
$this->Mail_SetSubject($this->Lang_Get('notify_subject_invite'));
|
|
|
|
|
$this->Mail_SetBody($sBody);
|
|
|
|
|
$this->Mail_setHTML();
|
|
|
|
|
$this->Mail_Send();
|
|
|
|
|
}
|
2008-10-21 07:58:03 +03:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Отправляет уведомление при новом личном сообщении
|
|
|
|
|
*
|
2010-05-27 18:16:20 +03:00
|
|
|
|
* @param ModuleUser_EntityUser $oUserTo
|
|
|
|
|
* @param ModuleUser_EntityUser $oUserFrom
|
|
|
|
|
* @param ModuleTalk_EntityTalk $oTalk
|
2008-10-21 07:58:03 +03:00
|
|
|
|
*/
|
2010-05-27 18:16:20 +03:00
|
|
|
|
public function SendTalkNew(ModuleUser_EntityUser $oUserTo,ModuleUser_EntityUser $oUserFrom,ModuleTalk_EntityTalk $oTalk) {
|
2008-10-21 07:58:03 +03:00
|
|
|
|
/**
|
|
|
|
|
* Проверяем можно ли юзеру рассылать уведомление
|
|
|
|
|
*/
|
|
|
|
|
if (!$oUserTo->getSettingsNoticeNewTalk()) {
|
|
|
|
|
return ;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Передаём в шаблон переменные
|
|
|
|
|
*/
|
|
|
|
|
$this->oViewerLocal->Assign('oUserTo',$oUserTo);
|
|
|
|
|
$this->oViewerLocal->Assign('oUserFrom',$oUserFrom);
|
|
|
|
|
$this->oViewerLocal->Assign('oTalk',$oTalk);
|
|
|
|
|
/**
|
|
|
|
|
* Формируем шаблон
|
|
|
|
|
*/
|
2009-12-19 13:02:42 +02:00
|
|
|
|
$sBody=$this->oViewerLocal->Fetch($this->GetTemplatePath('notify.talk_new.tpl'));
|
2008-10-21 07:58:03 +03:00
|
|
|
|
/**
|
2009-09-09 20:39:26 +03:00
|
|
|
|
* Если в конфигураторе указан отложенный метод отправки,
|
|
|
|
|
* то добавляем задание в массив. В противном случае,
|
|
|
|
|
* сразу отсылаем на email
|
|
|
|
|
*/
|
|
|
|
|
if(Config::Get('module.notify.delayed')) {
|
|
|
|
|
$oNotifyTask=Engine::GetEntity(
|
|
|
|
|
'Notify_Task',
|
|
|
|
|
array(
|
|
|
|
|
'user_mail' => $oUserTo->getMail(),
|
|
|
|
|
'user_login' => $oUserTo->getLogin(),
|
|
|
|
|
'notify_text' => $sBody,
|
|
|
|
|
'notify_subject' => $this->Lang_Get('notify_subject_talk_new'),
|
|
|
|
|
'date_created' => date("Y-m-d H:i:s"),
|
|
|
|
|
'notify_task_status' => self::NOTIFY_TASK_STATUS_NULL,
|
|
|
|
|
)
|
|
|
|
|
);
|
|
|
|
|
if(Config::Get('module.notify.insert_single')) {
|
|
|
|
|
$this->aTask[] = $oNotifyTask;
|
|
|
|
|
} else {
|
|
|
|
|
$this->oMapper->AddTask($oNotifyTask);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
/**
|
|
|
|
|
* Отправляем мыло
|
|
|
|
|
*/
|
|
|
|
|
$this->Mail_SetAdress($oUserTo->getMail(),$oUserTo->getLogin());
|
|
|
|
|
$this->Mail_SetSubject($this->Lang_Get('notify_subject_talk_new'));
|
|
|
|
|
$this->Mail_SetBody($sBody);
|
|
|
|
|
$this->Mail_setHTML();
|
|
|
|
|
$this->Mail_Send();
|
|
|
|
|
}
|
2008-10-21 07:58:03 +03:00
|
|
|
|
}
|
|
|
|
|
|
2010-05-27 18:16:20 +03:00
|
|
|
|
public function SendTalkCommentNew(ModuleUser_EntityUser $oUserTo,ModuleUser_EntityUser $oUserFrom,ModuleTalk_EntityTalk $oTalk,ModuleComment_EntityComment $oTalkComment) {
|
2008-10-21 07:58:03 +03:00
|
|
|
|
/**
|
|
|
|
|
* Проверяем можно ли юзеру рассылать уведомление
|
|
|
|
|
*/
|
|
|
|
|
if (!$oUserTo->getSettingsNoticeNewTalk()) {
|
|
|
|
|
return ;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Передаём в шаблон переменные
|
|
|
|
|
*/
|
|
|
|
|
$this->oViewerLocal->Assign('oUserTo',$oUserTo);
|
|
|
|
|
$this->oViewerLocal->Assign('oUserFrom',$oUserFrom);
|
|
|
|
|
$this->oViewerLocal->Assign('oTalk',$oTalk);
|
|
|
|
|
$this->oViewerLocal->Assign('oTalkComment',$oTalkComment);
|
|
|
|
|
/**
|
|
|
|
|
* Формируем шаблон
|
|
|
|
|
*/
|
2009-12-19 13:02:42 +02:00
|
|
|
|
$sBody=$this->oViewerLocal->Fetch($this->GetTemplatePath('notify.talk_comment_new.tpl'));
|
2008-10-21 07:58:03 +03:00
|
|
|
|
/**
|
2009-09-09 20:39:26 +03:00
|
|
|
|
* Если в конфигураторе указан отложенный метод отправки,
|
|
|
|
|
* то добавляем задание в массив. В противном случае,
|
|
|
|
|
* сразу отсылаем на email
|
|
|
|
|
*/
|
|
|
|
|
if(Config::Get('module.notify.delayed')) {
|
|
|
|
|
$oNotifyTask=Engine::GetEntity(
|
|
|
|
|
'Notify_Task',
|
|
|
|
|
array(
|
|
|
|
|
'user_mail' => $oUserTo->getMail(),
|
|
|
|
|
'user_login' => $oUserTo->getLogin(),
|
|
|
|
|
'notify_text' => $sBody,
|
|
|
|
|
'notify_subject' => $this->Lang_Get('notify_subject_talk_comment_new'),
|
|
|
|
|
'date_created' => date("Y-m-d H:i:s"),
|
|
|
|
|
'notify_task_status' => self::NOTIFY_TASK_STATUS_NULL,
|
|
|
|
|
)
|
|
|
|
|
);
|
|
|
|
|
if(Config::Get('module.notify.insert_single')) {
|
|
|
|
|
$this->aTask[] = $oNotifyTask;
|
|
|
|
|
} else {
|
|
|
|
|
$this->oMapper->AddTask($oNotifyTask);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
/**
|
|
|
|
|
* Отправляем мыло
|
|
|
|
|
*/
|
|
|
|
|
$this->Mail_SetAdress($oUserTo->getMail(),$oUserTo->getLogin());
|
|
|
|
|
$this->Mail_SetSubject($this->Lang_Get('notify_subject_talk_comment_new'));
|
|
|
|
|
$this->Mail_SetBody($sBody);
|
|
|
|
|
$this->Mail_setHTML();
|
|
|
|
|
$this->Mail_Send();
|
|
|
|
|
}
|
2008-10-21 07:58:03 +03:00
|
|
|
|
}
|
2008-10-25 23:31:29 +03:00
|
|
|
|
|
2009-09-02 23:36:44 +03:00
|
|
|
|
/**
|
|
|
|
|
* Отправляет пользователю сообщение о добавлении его в друзья
|
|
|
|
|
*
|
2010-05-27 18:16:20 +03:00
|
|
|
|
* @param ModuleUser_EntityUser $oUserTo
|
|
|
|
|
* @param ModuleUser_EntityUser $oUserFrom
|
2009-09-02 23:36:44 +03:00
|
|
|
|
*/
|
2010-05-27 18:16:20 +03:00
|
|
|
|
public function SendUserFriendNew(ModuleUser_EntityUser $oUserTo,ModuleUser_EntityUser $oUserFrom, $sText,$sPath) {
|
2008-10-28 21:24:35 +02:00
|
|
|
|
/**
|
|
|
|
|
* Проверяем можно ли юзеру рассылать уведомление
|
|
|
|
|
*/
|
|
|
|
|
if (!$oUserTo->getSettingsNoticeNewFriend()) {
|
|
|
|
|
return ;
|
|
|
|
|
}
|
2008-10-25 23:31:29 +03:00
|
|
|
|
/**
|
|
|
|
|
* Передаём в шаблон переменные
|
|
|
|
|
*/
|
|
|
|
|
$this->oViewerLocal->Assign('oUserTo',$oUserTo);
|
|
|
|
|
$this->oViewerLocal->Assign('oUserFrom',$oUserFrom);
|
2009-09-06 17:09:27 +03:00
|
|
|
|
$this->oViewerLocal->Assign('sText',$sText);
|
|
|
|
|
$this->oViewerLocal->Assign('sPath',$sPath);
|
|
|
|
|
|
2008-10-25 23:31:29 +03:00
|
|
|
|
/**
|
|
|
|
|
* Формируем шаблон
|
|
|
|
|
*/
|
2009-12-19 13:02:42 +02:00
|
|
|
|
$sBody=$this->oViewerLocal->Fetch($this->GetTemplatePath('notify.user_friend_new.tpl'));
|
2008-10-25 23:31:29 +03:00
|
|
|
|
/**
|
2009-09-09 20:39:26 +03:00
|
|
|
|
* Если в конфигураторе указан отложенный метод отправки,
|
|
|
|
|
* то добавляем задание в массив. В противном случае,
|
|
|
|
|
* сразу отсылаем на email
|
|
|
|
|
*/
|
|
|
|
|
if(Config::Get('module.notify.delayed')) {
|
|
|
|
|
$oNotifyTask=Engine::GetEntity(
|
|
|
|
|
'Notify_Task',
|
|
|
|
|
array(
|
|
|
|
|
'user_mail' => $oUserTo->getMail(),
|
|
|
|
|
'user_login' => $oUserTo->getLogin(),
|
|
|
|
|
'notify_text' => $sBody,
|
|
|
|
|
'notify_subject' => $this->Lang_Get('notify_subject_user_friend_new'),
|
|
|
|
|
'date_created' => date("Y-m-d H:i:s"),
|
|
|
|
|
'notify_task_status' => self::NOTIFY_TASK_STATUS_NULL,
|
|
|
|
|
)
|
|
|
|
|
);
|
|
|
|
|
if(Config::Get('module.notify.insert_single')) {
|
|
|
|
|
$this->aTask[] = $oNotifyTask;
|
|
|
|
|
} else {
|
|
|
|
|
$this->oMapper->AddTask($oNotifyTask);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
/**
|
|
|
|
|
* Отправляем мыло
|
|
|
|
|
*/
|
|
|
|
|
$this->Mail_SetAdress($oUserTo->getMail(),$oUserTo->getLogin());
|
|
|
|
|
$this->Mail_SetSubject($this->Lang_Get('notify_subject_user_friend_new'));
|
|
|
|
|
$this->Mail_SetBody($sBody);
|
|
|
|
|
$this->Mail_setHTML();
|
|
|
|
|
$this->Mail_Send();
|
|
|
|
|
}
|
2008-10-25 23:31:29 +03:00
|
|
|
|
}
|
2009-09-24 20:46:01 +03:00
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Отправляет пользователю сообщение о приглашение его в закрытый блог
|
|
|
|
|
*
|
2010-05-27 18:16:20 +03:00
|
|
|
|
* @param ModuleUser_EntityUser $oUserTo
|
|
|
|
|
* @param ModuleUser_EntityUser $oUserFrom
|
2009-09-24 20:46:01 +03:00
|
|
|
|
*/
|
2010-05-27 18:16:20 +03:00
|
|
|
|
public function SendBlogUserInvite(ModuleUser_EntityUser $oUserTo,ModuleUser_EntityUser $oUserFrom, ModuleBlog_EntityBlog $oBlog,$sPath) {
|
2009-09-24 20:46:01 +03:00
|
|
|
|
/**
|
|
|
|
|
* Передаём в шаблон переменные
|
|
|
|
|
*/
|
|
|
|
|
$this->oViewerLocal->Assign('oUserTo',$oUserTo);
|
|
|
|
|
$this->oViewerLocal->Assign('oUserFrom',$oUserFrom);
|
|
|
|
|
$this->oViewerLocal->Assign('oBlog',$oBlog);
|
|
|
|
|
$this->oViewerLocal->Assign('sPath',$sPath);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Формируем шаблон
|
|
|
|
|
*/
|
2009-12-19 13:02:42 +02:00
|
|
|
|
$sBody=$this->oViewerLocal->Fetch($this->GetTemplatePath('notify.blog_invite_new.tpl'));
|
2009-09-24 20:46:01 +03:00
|
|
|
|
/**
|
|
|
|
|
* Если в конфигураторе указан отложенный метод отправки,
|
|
|
|
|
* то добавляем задание в массив. В противном случае,
|
|
|
|
|
* сразу отсылаем на email
|
|
|
|
|
*/
|
|
|
|
|
if(Config::Get('module.notify.delayed')) {
|
|
|
|
|
$oNotifyTask=Engine::GetEntity(
|
|
|
|
|
'Notify_Task',
|
|
|
|
|
array(
|
|
|
|
|
'user_mail' => $oUserTo->getMail(),
|
|
|
|
|
'user_login' => $oUserTo->getLogin(),
|
|
|
|
|
'notify_text' => $sBody,
|
|
|
|
|
'notify_subject' => $this->Lang_Get('notify_subject_blog_invite_new'),
|
|
|
|
|
'date_created' => date("Y-m-d H:i:s"),
|
|
|
|
|
'notify_task_status' => self::NOTIFY_TASK_STATUS_NULL,
|
|
|
|
|
)
|
|
|
|
|
);
|
|
|
|
|
if(Config::Get('module.notify.insert_single')) {
|
|
|
|
|
$this->aTask[] = $oNotifyTask;
|
|
|
|
|
} else {
|
|
|
|
|
$this->oMapper->AddTask($oNotifyTask);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
/**
|
|
|
|
|
* Отправляем мыло
|
|
|
|
|
*/
|
|
|
|
|
$this->Mail_SetAdress($oUserTo->getMail(),$oUserTo->getLogin());
|
|
|
|
|
$this->Mail_SetSubject($this->Lang_Get('notify_subject_blog_invite_new'));
|
|
|
|
|
$this->Mail_SetBody($sBody);
|
|
|
|
|
$this->Mail_setHTML();
|
|
|
|
|
$this->Mail_Send();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2008-11-29 12:50:49 +02:00
|
|
|
|
/**
|
|
|
|
|
* Уведомление при восстановлении пароля
|
|
|
|
|
*
|
2010-05-27 18:16:20 +03:00
|
|
|
|
* @param ModuleUser_EntityUser $oUser
|
|
|
|
|
* @param ModuleUser_EntityReminder $oReminder
|
2008-11-29 12:50:49 +02:00
|
|
|
|
*/
|
2010-05-27 18:16:20 +03:00
|
|
|
|
public function SendReminderCode(ModuleUser_EntityUser $oUser,ModuleUser_EntityReminder $oReminder) {
|
2008-11-29 12:50:49 +02:00
|
|
|
|
/**
|
|
|
|
|
* Передаём в шаблон переменные
|
|
|
|
|
*/
|
|
|
|
|
$this->oViewerLocal->Assign('oUser',$oUser);
|
|
|
|
|
$this->oViewerLocal->Assign('oReminder',$oReminder);
|
|
|
|
|
/**
|
|
|
|
|
* Формируем шаблон
|
|
|
|
|
*/
|
2009-12-19 13:02:42 +02:00
|
|
|
|
$sBody=$this->oViewerLocal->Fetch($this->GetTemplatePath('notify.reminder_code.tpl'));
|
2009-09-09 20:39:26 +03:00
|
|
|
|
|
2008-11-29 12:50:49 +02:00
|
|
|
|
/**
|
|
|
|
|
* Отправляем мыло
|
|
|
|
|
*/
|
|
|
|
|
$this->Mail_SetAdress($oUser->getMail(),$oUser->getLogin());
|
2009-04-26 19:44:42 +03:00
|
|
|
|
$this->Mail_SetSubject($this->Lang_Get('notify_subject_reminder_code'));
|
2008-11-29 12:50:49 +02:00
|
|
|
|
$this->Mail_SetBody($sBody);
|
|
|
|
|
$this->Mail_setHTML();
|
|
|
|
|
$this->Mail_Send();
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Уведомление с новым паролем после его восставновления
|
|
|
|
|
*
|
2010-05-27 18:16:20 +03:00
|
|
|
|
* @param ModuleUser_EntityUser $oUser
|
2008-11-29 12:50:49 +02:00
|
|
|
|
* @param unknown_type $sNewPassword
|
|
|
|
|
*/
|
2010-05-27 18:16:20 +03:00
|
|
|
|
public function SendReminderPassword(ModuleUser_EntityUser $oUser,$sNewPassword) {
|
2008-11-29 12:50:49 +02:00
|
|
|
|
/**
|
|
|
|
|
* Передаём в шаблон переменные
|
|
|
|
|
*/
|
|
|
|
|
$this->oViewerLocal->Assign('oUser',$oUser);
|
|
|
|
|
$this->oViewerLocal->Assign('sNewPassword',$sNewPassword);
|
|
|
|
|
/**
|
|
|
|
|
* Формируем шаблон
|
|
|
|
|
*/
|
2009-12-19 13:02:42 +02:00
|
|
|
|
$sBody=$this->oViewerLocal->Fetch($this->GetTemplatePath('notify.reminder_password.tpl'));
|
2009-09-09 20:39:26 +03:00
|
|
|
|
|
2008-11-29 12:50:49 +02:00
|
|
|
|
/**
|
|
|
|
|
* Отправляем мыло
|
|
|
|
|
*/
|
|
|
|
|
$this->Mail_SetAdress($oUser->getMail(),$oUser->getLogin());
|
2009-04-26 19:44:42 +03:00
|
|
|
|
$this->Mail_SetSubject($this->Lang_Get('notify_subject_reminder_password'));
|
2008-11-29 12:50:49 +02:00
|
|
|
|
$this->Mail_SetBody($sBody);
|
|
|
|
|
$this->Mail_setHTML();
|
|
|
|
|
$this->Mail_Send();
|
|
|
|
|
}
|
2009-09-09 20:39:26 +03:00
|
|
|
|
|
2010-05-01 19:03:50 +03:00
|
|
|
|
/**
|
|
|
|
|
* Универсальный метод отправки уведомлений на email
|
|
|
|
|
*
|
2010-05-27 18:16:20 +03:00
|
|
|
|
* @param ModuleUser_EntityUser | string $oUserTo - кому отправляем (пользователь или email)
|
2010-05-01 19:03:50 +03:00
|
|
|
|
* @param unknown_type $sTemplate - шаблон для отправки
|
|
|
|
|
* @param unknown_type $sSubject - тема письма
|
|
|
|
|
* @param unknown_type $aAssign - ассоциативный массив для загрузки переменных в шаблон письма
|
|
|
|
|
* @param unknown_type $sPluginName - плагин из которого происходит отправка
|
|
|
|
|
*/
|
|
|
|
|
public function Send($oUserTo,$sTemplate,$sSubject,$aAssign=array(),$sPluginName=null) {
|
2010-05-27 18:16:20 +03:00
|
|
|
|
if ($oUserTo instanceof ModuleUser_EntityUser) {
|
2010-05-01 19:03:50 +03:00
|
|
|
|
$sMail=$oUserTo->getMail();
|
|
|
|
|
$sName=$oUserTo->getLogin();
|
|
|
|
|
} else {
|
|
|
|
|
$sMail=$oUserTo;
|
|
|
|
|
$sName='';
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Передаём в шаблон переменные
|
|
|
|
|
*/
|
|
|
|
|
foreach ($aAssign as $k=>$v) {
|
|
|
|
|
$this->oViewerLocal->Assign($k,$v);
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Формируем шаблон
|
|
|
|
|
*/
|
2010-05-01 19:07:56 +03:00
|
|
|
|
$sBody=$this->oViewerLocal->Fetch($this->GetTemplatePath($sTemplate,$sPluginName));
|
2010-05-01 19:03:50 +03:00
|
|
|
|
/**
|
|
|
|
|
* Если в конфигураторе указан отложенный метод отправки,
|
|
|
|
|
* то добавляем задание в массив. В противном случае,
|
|
|
|
|
* сразу отсылаем на email
|
|
|
|
|
*/
|
|
|
|
|
if(Config::Get('module.notify.delayed')) {
|
|
|
|
|
$oNotifyTask=Engine::GetEntity(
|
|
|
|
|
'Notify_Task',
|
|
|
|
|
array(
|
|
|
|
|
'user_mail' => $sMail,
|
|
|
|
|
'user_login' => $sName,
|
|
|
|
|
'notify_text' => $sBody,
|
|
|
|
|
'notify_subject' => $sSubject,
|
|
|
|
|
'date_created' => date("Y-m-d H:i:s"),
|
|
|
|
|
'notify_task_status' => self::NOTIFY_TASK_STATUS_NULL,
|
|
|
|
|
)
|
|
|
|
|
);
|
|
|
|
|
if(Config::Get('module.notify.insert_single')) {
|
|
|
|
|
$this->aTask[] = $oNotifyTask;
|
|
|
|
|
} else {
|
|
|
|
|
$this->oMapper->AddTask($oNotifyTask);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
/**
|
|
|
|
|
* Отправляем мыло
|
|
|
|
|
*/
|
|
|
|
|
$this->Mail_SetAdress($sMail,$sName);
|
|
|
|
|
$this->Mail_SetSubject($sSubject);
|
|
|
|
|
$this->Mail_SetBody($sBody);
|
|
|
|
|
$this->Mail_setHTML();
|
|
|
|
|
$this->Mail_Send();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2009-09-09 20:39:26 +03:00
|
|
|
|
/**
|
|
|
|
|
* При завершении работы модуля проверяем наличие
|
|
|
|
|
* отложенных заданий в массиве и при необходимости
|
|
|
|
|
* передаем их в меппер
|
|
|
|
|
*/
|
|
|
|
|
public function Shutdown() {
|
|
|
|
|
if(!empty($this->aTask) && Config::Get('module.notify.delayed')) {
|
|
|
|
|
$this->oMapper->AddTaskArray($this->aTask);
|
|
|
|
|
$this->aTask=array();
|
|
|
|
|
}
|
|
|
|
|
}
|
2009-09-10 21:51:58 +03:00
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Получает массив заданий на публикацию из базы
|
|
|
|
|
* с указанным количественным ограничением (выборка FIFO)
|
|
|
|
|
*
|
|
|
|
|
* @param int $iLimit
|
|
|
|
|
* @return array
|
|
|
|
|
*/
|
|
|
|
|
public function GetTasksDelayed($iLimit=10) {
|
|
|
|
|
return ($aResult=$this->oMapper->GetTasks($iLimit))
|
|
|
|
|
? $aResult
|
|
|
|
|
: array();
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Отправляет на e-mail
|
|
|
|
|
*
|
2010-05-27 18:16:20 +03:00
|
|
|
|
* @param ModuleNotify_EntityTask $oTask
|
2009-09-10 21:51:58 +03:00
|
|
|
|
*/
|
|
|
|
|
public function SendTask($oTask) {
|
|
|
|
|
$this->Mail_SetAdress($oTask->getUserMail(),$oTask->getUserLogin());
|
|
|
|
|
$this->Mail_SetSubject($oTask->getNotifySubject());
|
|
|
|
|
$this->Mail_SetBody($oTask->getNotifyText());
|
|
|
|
|
$this->Mail_setHTML();
|
|
|
|
|
$this->Mail_Send();
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Удаляет отложенное Notify-задание из базы
|
|
|
|
|
*
|
2010-05-27 18:16:20 +03:00
|
|
|
|
* @param ModuleNotify_EntityTask $oTask
|
2009-09-10 21:51:58 +03:00
|
|
|
|
* @return bool
|
|
|
|
|
*/
|
|
|
|
|
public function DeleteTask($oTask) {
|
|
|
|
|
return $this->oMapper->DeleteTask($oTask);
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Удаляет отложенные Notify-задания по списку идентификаторов
|
|
|
|
|
*
|
|
|
|
|
* @param array $aArrayId
|
|
|
|
|
* @return bool
|
|
|
|
|
*/
|
|
|
|
|
public function DeleteTaskByArrayId($aArrayId) {
|
|
|
|
|
return $this->oMapper->DeleteTaskByArrayId($aArrayId);
|
|
|
|
|
}
|
2009-12-19 13:02:42 +02:00
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Возвращает путь к шаблону по переданному имени
|
|
|
|
|
*
|
|
|
|
|
* @param string $sName
|
2010-05-01 19:03:50 +03:00
|
|
|
|
* @param string $sPluginName
|
2009-12-19 13:02:42 +02:00
|
|
|
|
* @return string
|
|
|
|
|
*/
|
2010-05-01 19:03:50 +03:00
|
|
|
|
public function GetTemplatePath($sName,$sPluginName=null) {
|
|
|
|
|
if ($sPluginName) {
|
|
|
|
|
$sPluginName = preg_match('/^Plugin([\w]+)(_[\w]+)?$/Ui',$sPluginName,$aMatches)
|
|
|
|
|
? strtolower($aMatches[1])
|
|
|
|
|
: strtolower($sPluginName);
|
|
|
|
|
|
|
|
|
|
$sLangDir=Plugin::GetTemplatePath($sPluginName).'notify/'.$this->Lang_GetLang();
|
|
|
|
|
if(is_dir($sLangDir)) {
|
|
|
|
|
return $sLangDir.'/'.$sName;
|
|
|
|
|
}
|
|
|
|
|
return Plugin::GetTemplatePath($sPluginName).'notify/'.$this->Lang_GetLangDefault().'/'.$sName;
|
|
|
|
|
} else {
|
|
|
|
|
$sLangDir = 'notify/'.$this->Lang_GetLang();
|
|
|
|
|
/**
|
|
|
|
|
* Если директория с сообщениями на текущем языке отсутствует,
|
|
|
|
|
* используем язык по умолчанию
|
|
|
|
|
*/
|
2010-08-08 20:53:05 +03:00
|
|
|
|
if(is_dir(rtrim(Config::Get('path.smarty.template'),'/').'/'.$sLangDir)) {
|
2010-05-01 19:03:50 +03:00
|
|
|
|
return $sLangDir.'/'.$sName;
|
|
|
|
|
}
|
|
|
|
|
return 'notify/'.$this->Lang_GetLangDefault().'/'.$sName;
|
2009-12-19 13:02:42 +02:00
|
|
|
|
}
|
|
|
|
|
}
|
2008-10-21 07:58:03 +03:00
|
|
|
|
}
|
|
|
|
|
?>
|