move image deletion function to ImageIO

This commit is contained in:
Shish 2010-01-05 11:07:13 +00:00
parent f4a74c4d4c
commit f5122af7bd
4 changed files with 38 additions and 36 deletions

View File

@ -46,23 +46,10 @@ class AdminPage implements Extension {
if(!$user->is_admin()) {
$this->theme->display_permission_denied($page);
}
else {
if($event->get_arg(0) == "delete_image") {
// FIXME: missing lots of else {complain}
if(isset($_POST['image_id'])) {
$image = Image::by_id($_POST['image_id']);
if($image) {
send_event(new ImageDeletionEvent($image));
$page->set_mode("redirect");
$page->set_redirect(make_link("post/list"));
}
}
}
else {
send_event(new AdminBuildingEvent($page));
}
}
}
if(($event instanceof PageRequestEvent) && $event->page_matches("admin_utils")) {
if($user->is_admin()) {
@ -99,12 +86,6 @@ class AdminPage implements Extension {
}
}
if($event instanceof ImageAdminBlockBuildingEvent) {
if($user->is_admin()) {
$event->add_part($this->theme->get_deleter_html($event->image->id));
}
}
if($event instanceof AdminBuildingEvent) {
$this->theme->display_page($page);
$this->theme->display_form($page);

View File

@ -10,22 +10,6 @@ class AdminPageTheme extends Themelet {
$page->add_block(new NavBlock());
}
/*
* Display a link to delete an image
*
* $image_id = the image to delete
*/
public function get_deleter_html($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>
";
return $html;
}
/*
* Show a form which links to admin_utils with POST[action] set to one of:
* 'lowercase all tags'

View File

@ -115,6 +115,24 @@ class ImageIO extends SimpleExtension {
$this->send_file($num, "thumb");
}
}
if($event->page_matches("image_admin/delete")) {
global $page, $user;
if($user->is_admin() && isset($_POST['image_id'])) {
$image = Image::by_id($_POST['image_id']);
if($image) {
send_event(new ImageDeletionEvent($image));
$page->set_mode("redirect");
$page->set_redirect(make_link("post/list"));
}
}
}
}
public function onImageAdminBlockBuilding($event) {
global $user;
if($user->is_admin()) {
$event->add_part($this->theme->get_deleter_html($event->image->id));
}
}
public function onImageAddition($event) {

19
ext/image/theme.php Normal file
View File

@ -0,0 +1,19 @@
<?php
class ImageIOTheme {
/*
* Display a link to delete an image
*
* $image_id = the image to delete
*/
public function get_deleter_html($image_id) {
$i_image_id = int_escape($image_id);
$html = "
<form action='".make_link("image_admin/delete")."' method='POST'>
<input type='hidden' name='image_id' value='$i_image_id'>
<input type='submit' value='Delete'>
</form>
";
return $html;
}
}
?>