admin page themed
git-svn-id: file:///home/shish/svn/shimmie2/trunk@323 7f39781d-f577-437e-ae19-be835c7a54ca
This commit is contained in:
		
							parent
							
								
									a09a7aa1b0
								
							
						
					
					
						commit
						0e49266a01
					
				| @ -4,21 +4,24 @@ | |||||||
|  * Sent when the admin page is ready to be added to |  * Sent when the admin page is ready to be added to | ||||||
|  */ |  */ | ||||||
| class AdminBuildingEvent extends Event { | class AdminBuildingEvent extends Event { | ||||||
| 	public function AdminBuildingEvent() { | 	var $page; | ||||||
|  | 	public function AdminBuildingEvent($page) { | ||||||
|  | 		$this->page = $page; | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| // }}}
 | // }}}
 | ||||||
|  | 
 | ||||||
| class AdminPage extends Extension { | class AdminPage extends Extension { | ||||||
|  | 	var $theme; | ||||||
|  | 	 | ||||||
| // event handler {{{
 | // event handler {{{
 | ||||||
| 	public function receive_event($event) { | 	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")) { | 		if(is_a($event, 'PageRequestEvent') && ($event->page_name == "admin")) { | ||||||
| 			global $user; | 			global $user; | ||||||
| 			if(!$user->is_admin()) { | 			if(!$user->is_admin()) { | ||||||
| 				global $page; | 				$this->theme->display_not_admin($event->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")); |  | ||||||
| 			} | 			} | ||||||
| 			else { | 			else { | ||||||
| 				if($event->get_arg(0) == "delete_image") { | 				if($event->get_arg(0) == "delete_image") { | ||||||
| @ -28,14 +31,13 @@ class AdminPage extends Extension { | |||||||
| 						$image = $database->get_image($_POST['image_id']); | 						$image = $database->get_image($_POST['image_id']); | ||||||
| 						if($image) { | 						if($image) { | ||||||
| 							send_event(new ImageDeletionEvent($image)); | 							send_event(new ImageDeletionEvent($image)); | ||||||
| 							global $page; | 							$event->page->set_mode("redirect"); | ||||||
| 							$page->set_mode("redirect"); | 							$event->page->set_redirect(make_link("index")); | ||||||
| 							$page->set_redirect(make_link("index")); |  | ||||||
| 						} | 						} | ||||||
| 					} | 					} | ||||||
| 				} | 				} | ||||||
| 				else { | 				else { | ||||||
| 					send_event(new AdminBuildingEvent()); | 					send_event(new AdminBuildingEvent($event->page)); | ||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| @ -43,12 +45,12 @@ class AdminPage extends Extension { | |||||||
| 		if(is_a($event, 'DisplayingImageEvent')) { | 		if(is_a($event, 'DisplayingImageEvent')) { | ||||||
| 			global $user; | 			global $user; | ||||||
| 			if($user->is_admin()) { | 			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')) { | 		if(is_a($event, 'AdminBuildingEvent')) { | ||||||
| 			$this->build_page(); | 			$this->theme->display_page($event->page); | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		if(is_a($event, 'UserBlockBuildingEvent')) { | 		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 " |  | ||||||
| 			<form action='".make_link("admin/delete_image")."' method='POST'> |  | ||||||
| 				<input type='hidden' name='image_id' value='$i_image_id'> |  | ||||||
| 				<input type='submit' value='Delete'> |  | ||||||
| 			</form> |  | ||||||
| 		";
 |  | ||||||
| 	} |  | ||||||
| // }}}
 |  | ||||||
| // 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()); | add_event_listener(new AdminPage()); | ||||||
| ?>
 | ?>
 | ||||||
|  | |||||||
							
								
								
									
										28
									
								
								ext/admin/theme.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								ext/admin/theme.php
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,28 @@ | |||||||
|  | <?php | ||||||
|  | 
 | ||||||
|  | class AdminPageTheme extends Themelet { | ||||||
|  | 	public function display_not_admin($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")); | ||||||
|  | 	} | ||||||
|  | 	 | ||||||
|  | 	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 = " | ||||||
|  | 			<form action='".make_link("admin/delete_image")."' method='POST'> | ||||||
|  | 				<input type='hidden' name='image_id' value='$i_image_id'> | ||||||
|  | 				<input type='submit' value='Delete'> | ||||||
|  | 			</form> | ||||||
|  | 		";
 | ||||||
|  | 		$page->add_block(new Block("Admin", $html, "left")); | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | ?>
 | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user