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