Exemple #1
0
 /**
  * Build and return admin interface
  * 
  * Any module providing an admin interface is required to have this function, which
  * returns a string containing the (x)html of it's admin interface.
  * @return string
  */
 function getAdminInterface()
 {
     switch (@$_REQUEST['section']) {
         case 'lists':
             switch (@$_REQUEST['action']) {
                 case 'updateList':
                     $list = new MailList($_REQUEST['listId']);
                     $form = $list->getListUsersForm();
                     return;
                     break;
                 case 'delete':
                     $list = new MailList(@$_REQUEST['maillist_id']);
                     $list->delete();
                     break;
                 case 'addedit':
                     $list = new MailList(@$_REQUEST['maillist_id']);
                     $form = $list->getAddEditForm();
                     if (!$form->validate() || !$form->isSubmitted() || !isset($_REQUEST['maillist_submit'])) {
                         return $form->display();
                     }
                     break;
             }
             $this->addJS('/modules/Mail/js/list_edit.js');
             $lists = MailList::getAllMailLists();
             $this->smarty->assign('lists', $lists);
             return $this->smarty->fetch('admin/lists.tpl');
         case 'users':
             switch (@$_REQUEST['action']) {
                 case 'addedit':
                     $user = new MailUser(@$_REQUEST['mailuser_id']);
                     $form = $user->getAddEditForm();
                     if (!$form->validate() || !$form->isSubmitted() || !isset($_REQUEST['mailuser_submit'])) {
                         return $form->display();
                     }
                     break;
                 case 'delete':
                     $user = new MailUser(@$_REQUEST['mailuser_id']);
                     $user->delete();
                     break;
             }
             $users = MailUser::getAllMailUsers();
             $this->smarty->assign('users', $users);
             return $this->smarty->fetch('admin/users.tpl');
         case 'content':
         default:
             $this->addCSS('/modules/Mail/css/send.css');
             switch (@$_REQUEST['action']) {
                 case 'delete':
                     $content = new MailContent(@$_REQUEST['mailcontent_mail_id']);
                     $content->delete();
                     break;
                 case 'addedit':
                     $content = new MailContent(@$_REQUEST['mailcontent_mail_id']);
                     $form = $content->getAddEditForm();
                     if (!$form->validate() || !$form->isSubmitted() || !isset($_REQUEST['mailcontent_submit'])) {
                         return $form->display();
                     } else {
                         break;
                     }
                 case 'send':
                     $lists = MailList::getAllMailLists();
                     $content = new MailContent(@$_REQUEST['mailcontent_mail_id']);
                     $this->smarty->assign('content', $content);
                     $this->smarty->assign('lists', $lists);
                     return $this->smarty->fetch('admin/send.tpl');
                     break;
                 case 'queue':
                     $list = new MailList($_REQUEST['maillist_id']);
                     $content = new MailContent($_REQUEST['mailcontent_id']);
                     $sendout = new MailSendOut();
                     $sendout->accept($content);
                     $sendout->setTimestamp(date('Y-m-d H:i:s'));
                     $sendout->setListCount($list->getListCount());
                     $sendout->save();
                     $list->queueUsers($sendout);
                     break;
                 case 'iframe_preview':
                     $content = new MailContent(@$_REQUEST['mailcontent_mail_id']);
                     $this->smarty->assign('content', $content);
                     echo $this->smarty->fetch('admin/shell.tpl');
                     die;
                     break;
             }
             $contents = MailContent::getAllMailContents();
             $this->smarty->assign('contents', $contents);
             return $this->smarty->fetch('admin/contents.tpl');
         case 'reports':
             switch (@$_REQUEST['action']) {
                 case 'view':
                     $report = new MailReport($_REQUEST['rid']);
                     $this->smarty->assign('report', $report);
                     return $this->smarty->fetch('admin/report_detail.tpl');
                     break;
                 default:
                     break;
             }
             $this->addCSS('/modules/Mail/css/report.css');
             $this->addJS('/modules/Mail/js/report.js');
             $reports = MailReport::getAllReports();
             $this->smarty->assign('reports', $reports);
             return $this->smarty->fetch('admin/reports.tpl');
             break;
     }
 }
Exemple #2
0
 public function save()
 {
     $result = false;
     $e_sql = "SELECT aut_id FROM auth WHERE aut_id = '" . Database::singleton()->escape($this->usr_id) . "'";
     $e_result = Database::singleton()->query_fetch($e_sql);
     if ($e_result) {
         $sql = "UPDATE auth SET \n\t\t\t\t\t\taut_username = '******',\n\t\t\t\t\t\taut_password = '******',\n\t\t\t\t\t\taut_salt     = '" . Database::singleton()->escape($this->salt) . "',\n\t\t\t\t\t\taut_agp_id   = '" . Database::singleton()->escape($this->auth_group) . "',\n\t\t\t\t\t\taut_name     = '" . Database::singleton()->escape($this->name) . "',\t\t\t\t\t\t\n\t\t\t\t\t\taut_email    = '" . Database::singleton()->escape($this->email) . "',\n\t\t\t\t\t\taut_phone    = '" . Database::singleton()->escape($this->phone) . "',\n\t\t\t\t\t\taut_status   = '" . Database::singleton()->escape($this->status) . "',\t\t\t\t\t\n\t\t\t\t\t\tauth_join_newsletter = '" . Database::singleton()->escape($this->join_newsletter) . "',\t\t\t\t\t\n\t\t\t\t\t\taut_last_touched = NOW()\n\t\t\t\t\t\twhere aut_id = '" . Database::singleton()->escape($this->usr_id) . "'";
         $result = Database::singleton()->query($sql);
     } else {
         $uniqueUserNameSQL = "SELECT aut_id FROM auth WHERE aut_username like '" . Database::singleton()->escape($this->username) . "'";
         $uniqueUserNameResult = Database::singleton()->query_fetch($uniqueUserNameSQL);
         if ($uniqueUserNameResult) {
             //Username already exists
             return false;
         }
         $sql = "INSERT INTO auth SET \n\t\t\t\t\t\taut_username = '******',\n\t\t\t\t\t\taut_password = '******',\n\t\t\t\t\t\taut_salt     = '" . Database::singleton()->escape($this->salt) . "',\n\t\t\t\t\t\taut_name     = '" . Database::singleton()->escape($this->name) . "',\t\t\t\t\t\t\n\t\t\t\t\t\taut_email    = '" . Database::singleton()->escape($this->email) . "',\n\t\t\t\t\t\taut_phone    = '" . Database::singleton()->escape($this->phone) . "',\n\t\t\t\t\t\taut_status   = '" . Database::singleton()->escape($this->status) . "',\t\t\t\t\n\t\t\t\t\t\tauth_join_newsletter = '" . Database::singleton()->escape($this->join_newsletter) . "',\t\t\t\t\t\n\t\t\t\t\t\taut_last_touched = NOW(),\n\t\t\t\t\t\taut_agp_id   = '" . Database::singleton()->escape($this->auth_group) . "'";
         $result = Database::singleton()->query($sql);
         //$e_result = Database::singleton()->query_fetch($e_sql);
         $this->setId(Database::singleton()->lastInsertedID());
         $headers = 'From: ' . SiteConfig::get("EComm::AdminEmail") . '\\r\\n';
         $smarty = new Smarty();
         $user = new User($this->getId());
         $smarty->assign('user', $user);
         $message = $smarty->fetch("create_new_account_email.tpl");
         mail($this->email, "Your account has been created", $message, $headers);
     }
     include_once SITE_ROOT . '/modules/Mail/include/MailUser.php';
     $nUser = new MailUser($this->email);
     if ($this->join_newsletter) {
         $name = explode(" ", trim($this->name));
         $nUser->setEmail($this->email);
         @$nUser->setFirstName($name[0]);
         @$nUser->setLastName($name[1]);
         $nUser->save();
     } else {
         $nUser->delete();
     }
     return $result;
 }