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;
 }
Пример #2
0
 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');
 }
Пример #3
0
         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':