forked from Cavemanon/cavepaintings
PSR-2. I'm not a huge fan, but ugly consistency beats no consistency...
This commit is contained in:
@@ -6,22 +6,28 @@
|
||||
* License: GPLv2
|
||||
* Description: Allows admin to delete many images at once through Board Admin.
|
||||
* Documentation:
|
||||
*
|
||||
*
|
||||
*/
|
||||
//todo: removal by tag returns 1 less image in test for some reason, actually a combined search doesn't seem to work for shit either
|
||||
|
||||
class BulkRemove extends Extension {
|
||||
public function onPageRequest(PageRequestEvent $event) {
|
||||
global $user;
|
||||
if($event->page_matches("bulk_remove") && $user->is_admin() && $user->check_auth_token()) {
|
||||
if ($event->get_arg(0) == "confirm") $this->do_bulk_remove();
|
||||
else $this->show_confirm();
|
||||
}
|
||||
}
|
||||
class BulkRemove extends Extension
|
||||
{
|
||||
public function onPageRequest(PageRequestEvent $event)
|
||||
{
|
||||
global $user;
|
||||
if ($event->page_matches("bulk_remove") && $user->is_admin() && $user->check_auth_token()) {
|
||||
if ($event->get_arg(0) == "confirm") {
|
||||
$this->do_bulk_remove();
|
||||
} else {
|
||||
$this->show_confirm();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function onAdminBuilding(AdminBuildingEvent $event) {
|
||||
global $page;
|
||||
$html = "<b>Be extremely careful when using this!</b><br>
|
||||
public function onAdminBuilding(AdminBuildingEvent $event)
|
||||
{
|
||||
global $page;
|
||||
$html = "<b>Be extremely careful when using this!</b><br>
|
||||
Once an image is removed there is no way to recover it so it is recommended that
|
||||
you first take when removing a large amount of images.<br>
|
||||
<b>Note:</b> Entering both an ID range and tags will only remove images between the given ID's that have the given tags.
|
||||
@@ -40,94 +46,95 @@ class BulkRemove extends Extension {
|
||||
</table>
|
||||
</form>
|
||||
";
|
||||
$page->add_block(new Block("Bulk Remove", $html));
|
||||
}
|
||||
$page->add_block(new Block("Bulk Remove", $html));
|
||||
}
|
||||
|
||||
// returns a list of images to be removed
|
||||
private function determine_images()
|
||||
{
|
||||
// set vars
|
||||
$images_for_removal = array();
|
||||
$error = "";
|
||||
// returns a list of images to be removed
|
||||
private function determine_images()
|
||||
{
|
||||
// set vars
|
||||
$images_for_removal = [];
|
||||
$error = "";
|
||||
|
||||
$min_id = $_POST['remove_id_min'];
|
||||
$max_id = $_POST['remove_id_max'];
|
||||
$tags = $_POST['remove_tags'];
|
||||
$min_id = $_POST['remove_id_min'];
|
||||
$max_id = $_POST['remove_id_max'];
|
||||
$tags = $_POST['remove_tags'];
|
||||
|
||||
|
||||
// if using id range to remove (comined removal with tags)
|
||||
if ($min_id != "" && $max_id != "")
|
||||
{
|
||||
// error if values are not correctly entered
|
||||
if (!is_numeric($min_id) || !is_numeric($max_id) ||
|
||||
intval($max_id) < intval($min_id))
|
||||
$error = "Values not correctly entered for removal between id.";
|
||||
|
||||
else { // if min & max id are valid
|
||||
// if using id range to remove (comined removal with tags)
|
||||
if ($min_id != "" && $max_id != "") {
|
||||
// error if values are not correctly entered
|
||||
if (!is_numeric($min_id) || !is_numeric($max_id) ||
|
||||
intval($max_id) < intval($min_id)) {
|
||||
$error = "Values not correctly entered for removal between id.";
|
||||
} else { // if min & max id are valid
|
||||
|
||||
// Grab the list of images & place it in the removing array
|
||||
foreach (Image::find_images(intval($min_id), intval($max_id)) as $image)
|
||||
// Grab the list of images & place it in the removing array
|
||||
foreach (Image::find_images(intval($min_id), intval($max_id)) as $image) {
|
||||
array_push($images_for_removal, $image);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// refine previous results or create results from tags
|
||||
if ($tags != "")
|
||||
{
|
||||
$tags_arr = explode(" ", $_POST['remove_tags']);
|
||||
// refine previous results or create results from tags
|
||||
if ($tags != "") {
|
||||
$tags_arr = explode(" ", $_POST['remove_tags']);
|
||||
|
||||
// Search all images with the specified tags & add to list
|
||||
foreach (Image::find_images(1, 2147483647, $tags_arr) as $image)
|
||||
array_push($images_for_removal, $image);
|
||||
// Search all images with the specified tags & add to list
|
||||
foreach (Image::find_images(1, 2147483647, $tags_arr) as $image) {
|
||||
array_push($images_for_removal, $image);
|
||||
}
|
||||
|
||||
|
||||
// if no images were found with the given info
|
||||
if (count($images_for_removal) == 0)
|
||||
$error = "No images selected for removal";
|
||||
|
||||
//var_dump($tags_arr);
|
||||
return array(
|
||||
"error" => $error,
|
||||
"images_for_removal" => $images_for_removal);
|
||||
}
|
||||
|
||||
|
||||
// if no images were found with the given info
|
||||
if (count($images_for_removal) == 0) {
|
||||
$error = "No images selected for removal";
|
||||
}
|
||||
|
||||
//var_dump($tags_arr);
|
||||
return [
|
||||
"error" => $error,
|
||||
"images_for_removal" => $images_for_removal];
|
||||
}
|
||||
|
||||
// displays confirmation to admin before removal
|
||||
private function show_confirm()
|
||||
{
|
||||
global $page;
|
||||
// displays confirmation to admin before removal
|
||||
private function show_confirm()
|
||||
{
|
||||
global $page;
|
||||
|
||||
// set vars
|
||||
$determined_imgs = $this->determine_images();
|
||||
$error = $determined_imgs["error"];
|
||||
$images_for_removal = $determined_imgs["images_for_removal"];
|
||||
// set vars
|
||||
$determined_imgs = $this->determine_images();
|
||||
$error = $determined_imgs["error"];
|
||||
$images_for_removal = $determined_imgs["images_for_removal"];
|
||||
|
||||
// if there was an error in determine_images()
|
||||
if ($error != "") {
|
||||
$page->add_block(new Block("Cannot remove images", $error));
|
||||
return;
|
||||
}
|
||||
// generates the image array & places it in $_POST["bulk_remove_images"]
|
||||
$_POST["bulk_remove_images"] = $images_for_removal;
|
||||
// if there was an error in determine_images()
|
||||
if ($error != "") {
|
||||
$page->add_block(new Block("Cannot remove images", $error));
|
||||
return;
|
||||
}
|
||||
// generates the image array & places it in $_POST["bulk_remove_images"]
|
||||
$_POST["bulk_remove_images"] = $images_for_removal;
|
||||
|
||||
// Display confirmation message
|
||||
$html = make_form(make_link("bulk_remove")).
|
||||
"Are you sure you want to PERMANENTLY remove ".
|
||||
// Display confirmation message
|
||||
$html = make_form(make_link("bulk_remove")).
|
||||
"Are you sure you want to PERMANENTLY remove ".
|
||||
count($images_for_removal) ." images?<br></form>";
|
||||
$page->add_block(new Block("Confirm Removal", $html));
|
||||
}
|
||||
$page->add_block(new Block("Confirm Removal", $html));
|
||||
}
|
||||
|
||||
private function do_bulk_remove()
|
||||
{
|
||||
global $page;
|
||||
// display error if user didn't go through admin board
|
||||
if (!isset($_POST["bulk_remove_images"])) {
|
||||
$page->add_block(new Block("Bulk Remove Error",
|
||||
"Please use Board Admin to use bulk remove."));
|
||||
}
|
||||
|
||||
//
|
||||
$image_arr = $_POST["bulk_remove_images"];
|
||||
private function do_bulk_remove()
|
||||
{
|
||||
global $page;
|
||||
// display error if user didn't go through admin board
|
||||
if (!isset($_POST["bulk_remove_images"])) {
|
||||
$page->add_block(new Block(
|
||||
"Bulk Remove Error",
|
||||
"Please use Board Admin to use bulk remove."
|
||||
));
|
||||
}
|
||||
|
||||
//
|
||||
$image_arr = $_POST["bulk_remove_images"];
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user