From 6a14360e7ace7dbe79a89faf1f2d7985fb5095fd Mon Sep 17 00:00:00 2001 From: Daku Date: Fri, 30 May 2014 13:12:34 +0100 Subject: [PATCH] option to use autoincrementing pool order when post is added rather than having everything default to 0 order --- ext/pools/main.php | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/ext/pools/main.php b/ext/pools/main.php index 66812ac4..0845e861 100644 --- a/ext/pools/main.php +++ b/ext/pools/main.php @@ -83,6 +83,7 @@ class Pools extends Extension { if ($config->get_int("ext_pools_version") < 3){ $config->set_bool("poolsShowNavLinks","N"); //A $config->rename() function would be nice here... + $config->set_bool("poolsAutoIncrementOrder","N"); $config->set_int("ext_pools_version", 3); } @@ -97,7 +98,9 @@ class Pools extends Extension { $sb->add_int_option("poolsUpdatedPerPage", "
Updated list items per page: "); $sb->add_bool_option("poolsInfoOnViewImage", "
Show pool info on image: "); $sb->add_bool_option("poolsShowNavLinks", "
Show 'Prev' & 'Next' links when viewing pool images: "); + $sb->add_bool_option("poolsAutoIncrementOrder", "
Autoincrement order when post is added to pool:"); //$sb->add_bool_option("poolsAdderOnViewImage", "
Show pool adder on image: "); + $event->panel->add_block($sb); } @@ -903,13 +906,23 @@ class Pools extends Extension { * @param bool $history */ private function add_post(/*int*/ $poolID, /*int*/ $imageID, $history=false) { - global $database; + global $database, $config; if(!$this->check_post($poolID, $imageID)) { + $imageOrder = 0; + + if($config->get_bool("poolsAutoIncrementOrder")){ + $imageOrder = $database->get_one(" + SELECT CASE WHEN image_order IS NOT NULL THEN MAX(image_order) + 1 ELSE 0 END + FROM pool_images + WHERE pool_id = :pid", + array("pid"=>$poolID)); + } + $database->execute(" - INSERT INTO pool_images (pool_id, image_id) - VALUES (:pid, :iid)", - array("pid"=>$poolID, "iid"=>$imageID)); + INSERT INTO pool_images (pool_id, image_id, image_order) + VALUES (:pid, :iid, :ord)", + array("pid"=>$poolID, "iid"=>$imageID, "ord"=>$imageOrder)); } $database->execute("UPDATE pools SET posts=(SELECT COUNT(*) FROM pool_images WHERE pool_id=:pid) WHERE id=:pid", array("pid"=>$poolID));