/** * Универсальный метод отправки уведомлений на 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); } }
/** * Универсальный метод отправки уведомлений на 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; }
/** * Универсальный метод отправки уведомлений на 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(); } }
/** * Получает локальную копию модуля * * return ModuleViewer */ public function GetLocalViewer() { $oViewerLocal = new ModuleViewer(Engine::getInstance()); $oViewerLocal->Init(true); $oViewerLocal->VarAssign(); $oViewerLocal->Assign('aLang', $this->Lang_GetLangMsg()); return $oViewerLocal; }