From 0e49266a010edd773629c2aded43df0e6c7824a6 Mon Sep 17 00:00:00 2001 From: shish Date: Thu, 19 Jul 2007 12:08:42 +0000 Subject: [PATCH] admin page themed git-svn-id: file:///home/shish/svn/shimmie2/trunk@323 7f39781d-f577-437e-ae19-be835c7a54ca --- ext/admin/main.php | 45 ++++++++++++++------------------------------- ext/admin/theme.php | 28 ++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 31 deletions(-) create mode 100644 ext/admin/theme.php diff --git a/ext/admin/main.php b/ext/admin/main.php index 635c037e..e86d0838 100644 --- a/ext/admin/main.php +++ b/ext/admin/main.php @@ -4,21 +4,24 @@ * Sent when the admin page is ready to be added to */ class AdminBuildingEvent extends Event { - public function AdminBuildingEvent() { + var $page; + public function AdminBuildingEvent($page) { + $this->page = $page; } } // }}} + class AdminPage extends Extension { + var $theme; + // event handler {{{ public function receive_event($event) { + if(is_null($this->theme)) $this->theme = get_theme_object("admin", "AdminPageTheme"); + if(is_a($event, 'PageRequestEvent') && ($event->page_name == "admin")) { global $user; if(!$user->is_admin()) { - global $page; - $page->set_title("Error"); - $page->set_heading("Error"); - $page->add_block(new NavBlock()); - $page->add_block(new Block("Permission Denied", "This page is for admins only")); + $this->theme->display_not_admin($event->page); } else { if($event->get_arg(0) == "delete_image") { @@ -28,14 +31,13 @@ class AdminPage extends Extension { $image = $database->get_image($_POST['image_id']); if($image) { send_event(new ImageDeletionEvent($image)); - global $page; - $page->set_mode("redirect"); - $page->set_redirect(make_link("index")); + $event->page->set_mode("redirect"); + $event->page->set_redirect(make_link("index")); } } } else { - send_event(new AdminBuildingEvent()); + send_event(new AdminBuildingEvent($event->page)); } } } @@ -43,12 +45,12 @@ class AdminPage extends Extension { if(is_a($event, 'DisplayingImageEvent')) { global $user; if($user->is_admin()) { - $event->page->add_block(new Block("Admin", $this->build_del_block($event->image->id), "left")); + $this->theme->display_delete_block($event->page, $event->image->id); } } if(is_a($event, 'AdminBuildingEvent')) { - $this->build_page(); + $this->theme->display_page($event->page); } if(is_a($event, 'UserBlockBuildingEvent')) { @@ -58,25 +60,6 @@ class AdminPage extends Extension { } } // }}} -// block HTML {{{ - private function build_del_block($image_id) { - $i_image_id = int_escape($image_id); - return " -
- - -
- "; - } -// }}} -// admin page HTML {{{ - private function build_page() { - global $page; - $page->set_title("Admin Tools"); - $page->set_heading("Admin Tools"); - $page->add_block(new NavBlock()); - } -// }}} } add_event_listener(new AdminPage()); ?> diff --git a/ext/admin/theme.php b/ext/admin/theme.php new file mode 100644 index 00000000..30ac436e --- /dev/null +++ b/ext/admin/theme.php @@ -0,0 +1,28 @@ +set_title("Error"); + $page->set_heading("Error"); + $page->add_block(new NavBlock()); + $page->add_block(new Block("Permission Denied", "This page is for admins only")); + } + + public function display_page($page) { + $page->set_title("Admin Tools"); + $page->set_heading("Admin Tools"); + $page->add_block(new NavBlock()); + } + + public function display_delete_block($image_id) { + $i_image_id = int_escape($image_id); + $html = " +
+ + +
+ "; + $page->add_block(new Block("Admin", $html, "left")); + } +} +?>