/** * 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; } }
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; }