/**
  * Универсальный метод отправки уведомлений на email
  *
  * @param ModuleUser_EntityUser|string $oUserTo Кому отправляем (пользователь или email)
  * @param string $sTemplate Шаблон для отправки
  * @param string $sSubject Тема письма
  * @param array $aAssign Ассоциативный массив для загрузки переменных в шаблон письма
  * @param string|null $sPluginName Плагин из которого происходит отправка
  * @param bool $bForceSend Отправлять сразу, даже при опции module.notify.delayed = true
  */
 public function Send($oUserTo, $sTemplate, $sSubject, $aAssign = array(), $sPluginName = null, $bForceSend = false)
 {
     if ($oUserTo instanceof ModuleUser_EntityUser) {
         $sMail = $oUserTo->getMail();
         $sName = $oUserTo->getLogin();
     } else {
         $sMail = $oUserTo;
         $sName = '';
     }
     /**
      * Передаём в шаблон переменные
      */
     foreach ($aAssign as $k => $v) {
         $this->oViewerLocal->Assign($k, $v);
     }
     /**
      * Формируем шаблон
      */
     $sBody = $this->oViewerLocal->Fetch($this->GetTemplatePath($sTemplate, $sPluginName));
     /**
      * Если в конфигураторе указан отложенный метод отправки,
      * то добавляем задание в массив. В противном случае,
      * сразу отсылаем на email
      */
     $oNotifyTask = Engine::GetEntity('Notify_Task');
     $oNotifyTask->setUserMail($sMail);
     $oNotifyTask->setUserLogin($sName);
     $oNotifyTask->setNotifyText($sBody);
     $oNotifyTask->setNotifySubject($sSubject);
     $oNotifyTask->setDateCreated(date("Y-m-d H:i:s"));
     $oNotifyTask->setNotifyTaskStatus(self::NOTIFY_TASK_STATUS_NULL);
     if (Config::Get('module.notify.delayed') and !$bForceSend) {
         if (Config::Get('module.notify.insert_single')) {
             $this->aTask[] = $oNotifyTask;
         } else {
             $this->oMapper->AddTask($oNotifyTask);
         }
     } else {
         /**
          * Отправляем мыло
          */
         $this->SendTask($oNotifyTask);
     }
 }
Esempio n. 2
0
 /**
  * Универсальный метод отправки уведомлений на email
  *
  * @param ModuleUser_EntityUser|string $xUserTo     Кому отправляем (пользователь или email)
  * @param string                       $sTemplate   Шаблон для отправки
  * @param string                       $sSubject    Тема письма
  * @param array                        $aAssign     Ассоциативный массив для загрузки переменных в шаблон письма
  * @param string|null                  $sPluginName Плагин из которого происходит отправка
  * @param bool                         $bForceSend  Отправлять сразу, даже при опции module.notify.delayed = true
  *
  * @return bool
  */
 public function Send($xUserTo, $sTemplate, $sSubject, $aAssign = array(), $sPluginName = null, $bForceSend = false)
 {
     if ($xUserTo instanceof ModuleUser_EntityUser) {
         $sMail = $xUserTo->getMail();
         $sName = $xUserTo->getLogin();
     } else {
         $sMail = $xUserTo;
         $sName = '';
     }
     /**
      * Передаём в шаблон переменные
      */
     foreach ($aAssign as $sVarName => $sValue) {
         $this->oViewerLocal->Assign($sVarName, $sValue);
     }
     /**
      * Формируем шаблон
      */
     $sTemplate = $this->sPrefix . $sTemplate;
     $sBody = $this->oViewerLocal->Fetch($this->GetTemplatePath($sTemplate, $sPluginName));
     /**
      * Если в конфигураторе указан отложенный метод отправки,
      * то добавляем задание в массив. В противном случае,
      * сразу отсылаем на email
      */
     if (Config::Get('module.notify.delayed') && !$bForceSend) {
         $oNotifyTask = E::GetEntity('Notify_Task', array('user_mail' => $sMail, 'user_login' => $sName, 'notify_text' => $sBody, 'notify_subject' => $sSubject, 'date_created' => F::Now(), 'notify_task_status' => self::NOTIFY_TASK_STATUS_NULL));
         if (Config::Get('module.notify.insert_single')) {
             $this->aTask[] = $oNotifyTask;
             $bResult = true;
         } else {
             $bResult = $this->oMapper->AddTask($oNotifyTask);
         }
     } else {
         // * Отправляем e-mail
         E::ModuleMail()->SetAdress($sMail, $sName);
         E::ModuleMail()->SetSubject($sSubject);
         E::ModuleMail()->SetBody($sBody);
         E::ModuleMail()->SetHTML();
         $bResult = E::ModuleMail()->Send();
     }
     return $bResult;
 }
Esempio n. 3
0
 /**
  * Универсальный метод отправки уведомлений на email
  *
  * @param ModuleUser_EntityUser|string $oUserTo Кому отправляем (пользователь или email)
  * @param string $sTemplate Шаблон для отправки
  * @param string $sSubject Тема письма
  * @param array $aAssign Ассоциативный массив для загрузки переменных в шаблон письма
  * @param string|null $sPluginName Плагин из которого происходит отправка
  */
 public function Send($oUserTo, $sTemplate, $sSubject, $aAssign = array(), $sPluginName = null)
 {
     if ($oUserTo instanceof ModuleUser_EntityUser) {
         $sMail = $oUserTo->getMail();
         $sName = $oUserTo->getLogin();
     } else {
         $sMail = $oUserTo;
         $sName = '';
     }
     /**
      * Передаём в шаблон переменные
      */
     foreach ($aAssign as $k => $v) {
         $this->oViewerLocal->Assign($k, $v);
     }
     /**
      * Формируем шаблон
      */
     $sBody = $this->oViewerLocal->Fetch($this->GetTemplatePath($sTemplate, $sPluginName));
     /**
      * Если в конфигураторе указан отложенный метод отправки,
      * то добавляем задание в массив. В противном случае,
      * сразу отсылаем на 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();
     }
 }
Esempio n. 4
0
 /**
  * Получает локальную копию модуля
  *
  * return ModuleViewer
  */
 public function GetLocalViewer()
 {
     $oViewerLocal = new ModuleViewer(Engine::getInstance());
     $oViewerLocal->Init(true);
     $oViewerLocal->VarAssign();
     $oViewerLocal->Assign('aLang', $this->Lang_GetLangMsg());
     return $oViewerLocal;
 }