public function Send($users, $data = false, $templatetype = false, $subject = false, $message = false) { $nt = NotifyTemplate::getInstance(); //$ntdata = $nt->FetchData($templateid); $us = UserSettings::getInstance(); $setting = Settings::getInstance(); $nm = NotificationModule::getInstance(); $user = User::getInstance(); $lang = Lang::getInstance(); for ($i = 0; $i < count($users); $i++) { $usersettings = $us->Get($users[$i]['id']); if (@$usersettings[$templatetype] != "0") { if (is_numeric($usersettings['language'])) { $langdata = $lang->FetchData($usersettings['language']); $langcode = $langdata['code']; } else { $langcode = $setting->Get('system.lang.default'); } if (strlen($langcode) != 2) { throw new Exception("Lang code not found or in wrong format"); } if (is_array($data) && $templatetype != '' && $templatetype != false) { if (!is_numeric($templateid = $nt->GetID($templatetype, 'type', "`langcode` = '" . $langcode . "'")) && !is_numeric($templateid = $nt->GetID($templatetype, 'type', "`langcode` = 'en'"))) { throw new Exception("Notify Template not found with type " . $templatetype . " and language " . $langcode); } $ntdata = $nt->FetchData($templateid); if (!is_array($ntdata)) { continue; } $message = $this->prepare_template($ntdata['text'], $data); } elseif (is_string($subject) && is_string($message)) { $ntdata['subject'] = $subject; } else { throw new Exception("Wrong parameters specified"); } if (is_numeric($usersettings['notifymodule']) && is_string($usersettings['notifyaddress'])) { $moduleid = $usersettings['notifymodule']; $address = $usersettings['notifyaddress']; } else { $userdata = $user->FetchData($users[$i]['id']); $moduleid = $setting->Get('system.notifymodule.default'); $address = $userdata['email']; } if (strlen($address) < 2 || !is_numeric($moduleid)) { continue; } if ($nm->Send($moduleid, $address, $ntdata['subject'], $message)) { $status = 'Done'; } else { $status = 'Fail'; } $this->Create(array('userid' => $users[$i]['id'], 'moduleid' => $moduleid, 'subject' => $ntdata['subject'], 'text' => $message, 'address' => $address, 'status' => $status)); } else { return true; } } return true; }
public static function EditNotifyTemplate($ntid) { $xtpl = self::$xtpl; $xtpl->assign('NOTIFYCURR', 'current'); $xtpl->assign('NTEMPLATESCURR', 'current'); if (!is_numeric($ntid)) { $xtpl->parse('main.editnotifytemplate.wrongid'); } else { $nt = NotifyTemplate::getInstance(); $ntdata = $nt->FetchData($ntid); $xtpl->assign('NT', $ntdata); $xtpl->parse('main.editnotifytemplate.content'); } $xtpl->parse('main.editnotifytemplate'); $xtpl->parse('main'); $xtpl->out('main'); }
Page::message(); } Page::ManageCurrencies(); break; case 'addnotifytemplate': $nt = NotifyTemplate::getInstance(); $nt->Create($_POST); Page::ManageNotifyTemplates(); break; case 'editnotifytemplate': $nt = NotifyTemplate::getInstance(); $nt->BatchUpdate($_POST, $_REQUEST['ntid']); Page::EditNotifyTemplate($_REQUEST['ntid']); break; case 'delnotifytemplate': $nt = NotifyTemplate::getInstance(); $nt->Delete($_REQUEST['ntid']); Page::ManageNotifyTemplates(); break; case 'activatentmodule': $nm = NotificationModule::getInstance(); $name = $_POST['modulename'] . 'notifymodule'; if (!class_exists($name)) { throw new Exception("Module doesnt exists"); } $module = $name::getInstance(); $moduleinfo = $module->Info(); $nm->Create(array('name' => $_POST['modulename'], 'shortname' => $moduleinfo['shortname'])); Page::ManageNotifyModules(); break; case 'delntmodule':