diff --git a/contrib/admin/main.php b/contrib/admin/main.php index 5a34a376..23e0d179 100644 --- a/contrib/admin/main.php +++ b/contrib/admin/main.php @@ -58,6 +58,10 @@ class AdminPage implements Extension { $redirect = false; switch($_POST['action']) { + case 'delete by query': + $this->delete_by_query($_POST['query']); + $redirect = true; + break; case 'lowercase all tags': $this->lowercase_all_tags(); $redirect = true; @@ -98,6 +102,14 @@ class AdminPage implements Extension { } } + private function delete_by_query($query) { + global $page, $user; + assert(strlen($query) > 1); + foreach(Image::find_images(0, 1000000, Tag::explode($query)) as $image) { + send_event(new ImageDeletionEvent($image)); + } + } + private function lowercase_all_tags() { global $database; $database->execute("UPDATE tags SET tag=lower(tag)"); diff --git a/contrib/admin/theme.php b/contrib/admin/theme.php index d79c5c5f..65358e3f 100644 --- a/contrib/admin/theme.php +++ b/contrib/admin/theme.php @@ -32,6 +32,15 @@ class AdminPageTheme extends Themelet { "; $page->add_block(new Block("Misc Admin Tools", $html)); + + $html = " + ".make_form(make_link("admin_utils"))." + + + + + "; + $page->add_block(new Block("Delete by Query", $html)); } } ?>