diff --git a/contrib/pools/main.php b/contrib/pools/main.php index 1719fcaa..55fba97a 100644 --- a/contrib/pools/main.php +++ b/contrib/pools/main.php @@ -8,49 +8,48 @@ */ class Pools extends SimpleExtension { - public function onInitExt($event) { - global $config, $database; - - if ($config->get_int("ext_pools_version") < 1){ + global $config, $database; + + if ($config->get_int("ext_pools_version") < 1){ $database->create_table("pools", " - id SCORE_AIPK, - user_id INTEGER NOT NULL, - public SCORE_BOOL NOT NULL DEFAULT SCORE_BOOL_N, - title VARCHAR(255) NOT NULL, - description TEXT, - date DATETIME NOT NULL, - posts INTEGER NOT NULL DEFAULT 0, - INDEX (id) - "); + id SCORE_AIPK, + user_id INTEGER NOT NULL, + public SCORE_BOOL NOT NULL DEFAULT SCORE_BOOL_N, + title VARCHAR(255) NOT NULL, + description TEXT, + date DATETIME NOT NULL, + posts INTEGER NOT NULL DEFAULT 0, + INDEX (id) + "); $database->create_table("pool_images", " - pool_id INTEGER NOT NULL, - image_id INTEGER NOT NULL, - image_order INTEGER NOT NULL DEFAULT 0 - "); + pool_id INTEGER NOT NULL, + image_id INTEGER NOT NULL, + image_order INTEGER NOT NULL DEFAULT 0 + "); $database->create_table("pool_history", " - id SCORE_AIPK, - pool_id INTEGER NOT NULL, - user_id INTEGER NOT NULL, - action INTEGER NOT NULL, - images TEXT, - count INTEGER NOT NULL DEFAULT 0, - date DATETIME NOT NULL, - INDEX (id) - "); - + id SCORE_AIPK, + pool_id INTEGER NOT NULL, + user_id INTEGER NOT NULL, + action INTEGER NOT NULL, + images TEXT, + count INTEGER NOT NULL DEFAULT 0, + date DATETIME NOT NULL, + INDEX (id) + "); + $config->set_int("ext_pools_version", 1); - - $config->set_int("poolsMaxImportResults", 1000); - $config->set_int("poolsImagesPerPage", 20); + + $config->set_int("poolsMaxImportResults", 1000); + $config->set_int("poolsImagesPerPage", 20); $config->set_int("poolsListsPerPage", 20); $config->set_int("poolsUpdatedPerPage", 20); $config->set_bool("poolsInfoOnViewImage", "N"); - + log_info("pools", "extension installed"); } } - + public function onSetupBuilding(SetupBuildingEvent $event) { $sb = new SetupBlock("Pools"); $sb->add_int_option("poolsMaxImportResults", "Max results on import: "); @@ -60,10 +59,10 @@ class Pools extends SimpleExtension { $sb->add_bool_option("poolsInfoOnViewImage", "
Show pool info on image: "); $event->panel->add_block($sb); } - + public function onPageRequest($event) { global $config, $page, $user; - + if($event->page_matches("pool")) { switch($event->get_arg(0)) { case "list": //index @@ -84,12 +83,12 @@ class Pools extends SimpleExtension { case "create": // ADD _POST { if(!$user->is_anonymous()){ - $newPoolID = $this->add_pool(); - $page->set_mode("redirect"); - $page->set_redirect(make_link("pool/view/".$newPoolID."")); + $newPoolID = $this->add_pool(); + $page->set_mode("redirect"); + $page->set_redirect(make_link("pool/view/".$newPoolID."")); } else { - $this->theme->display_error("You must be registered and logged in to add a image."); - } + $this->theme->display_error("You must be registered and logged in to add a image."); + } break; } case "view": @@ -105,29 +104,29 @@ class Pools extends SimpleExtension { } case "revert": { - if(!$user->is_anonymous()) { - $historyID = $event->get_arg(1); - - $this->revert_history($historyID); - - $page->set_mode("redirect"); - $page->set_redirect(make_link("pool/updated")); - } - break; + if(!$user->is_anonymous()) { + $historyID = $event->get_arg(1); + + $this->revert_history($historyID); + + $page->set_mode("redirect"); + $page->set_redirect(make_link("pool/updated")); + } + break; } case "edit": { $poolID = $event->get_arg(1); $pools = $this->get_pool($poolID); - + foreach($pools as $pool) { - //if the pool is public and user is logged OR if the user is admin OR the user is the owner + //if the pool is public and user is logged OR if the user is admin OR the user is the owner if(($pool['public'] == "Y" && !$user->is_anonymous()) || $user->is_admin() || $user->id == $pool['user_id']) { - $this->theme->edit_pool($page, $this->get_pool($poolID), $this->edit_posts($poolID)); - } else { + $this->theme->edit_pool($page, $this->get_pool($poolID), $this->edit_posts($poolID)); + } else { $page->set_mode("redirect"); - $page->set_redirect(make_link("pool/view/".$poolID."")); - } + $page->set_redirect(make_link("pool/view/".$poolID."")); + } } break; } @@ -135,22 +134,22 @@ class Pools extends SimpleExtension { { $poolID = int_escape($_POST["pool_id"]); $page->set_mode("redirect"); - $page->set_redirect(make_link("pool/edit/".$poolID."")); + $page->set_redirect(make_link("pool/edit/".$poolID."")); break; } case "order": { $poolID = $event->get_arg(1); $pools = $this->get_pool($poolID); - + foreach($pools as $pool) { - //if the pool is public and user is logged OR if the user is admin - if(($pool['public'] == "Y" && !$user->is_anonymous()) || $user->is_admin() || $user->id == $pool['user_id']) { - $this->theme->edit_order($page, $this->get_pool($poolID), $this->edit_order($poolID)); - } else { - $page->set_mode("redirect"); - $page->set_redirect(make_link("pool/view/".$poolID."")); - } + //if the pool is public and user is logged OR if the user is admin + if(($pool['public'] == "Y" && !$user->is_anonymous()) || $user->is_admin() || $user->id == $pool['user_id']) { + $this->theme->edit_order($page, $this->get_pool($poolID), $this->edit_order($poolID)); + } else { + $page->set_mode("redirect"); + $page->set_redirect(make_link("pool/view/".$poolID."")); + } } break; } @@ -158,298 +157,298 @@ class Pools extends SimpleExtension { { $poolID = int_escape($_POST["pool_id"]); $page->set_mode("redirect"); - $page->set_redirect(make_link("pool/order/".$poolID."")); + $page->set_redirect(make_link("pool/order/".$poolID."")); break; } case "import": { - $pool_id = int_escape($_POST["pool_id"]); - $pool = $this->get_single_pool($pool_id); + $pool_id = int_escape($_POST["pool_id"]); + $pool = $this->get_single_pool($pool_id); - if(($pool['public'] == "Y" && !$user->is_anonymous()) || $user->is_admin() || $user->id == $pool['user_id']) { - $this->import_posts(); - } else { - $this->theme->display_error("Permssion denied."); - } + if(($pool['public'] == "Y" && !$user->is_anonymous()) || $user->is_admin() || $user->id == $pool['user_id']) { + $this->import_posts(); + } else { + $this->theme->display_error("Permssion denied."); + } break; } case "add_posts": { - $pool_id = int_escape($_POST["pool_id"]); - $pool = $this->get_single_pool($pool_id); + $pool_id = int_escape($_POST["pool_id"]); + $pool = $this->get_single_pool($pool_id); - if(($pool['public'] == "Y" && !$user->is_anonymous()) || $user->is_admin() || $user->id == $pool['user_id']) { - $this->add_posts(); - $page->set_mode("redirect"); - $page->set_redirect(make_link("pool/view/".$pool_id)); - } else { - $this->theme->display_error("Permssion denied."); - } - break; + if(($pool['public'] == "Y" && !$user->is_anonymous()) || $user->is_admin() || $user->id == $pool['user_id']) { + $this->add_posts(); + $page->set_mode("redirect"); + $page->set_redirect(make_link("pool/view/".$pool_id)); + } else { + $this->theme->display_error("Permssion denied."); + } + break; } case "order_posts": { - $pool_id = int_escape($_POST["pool_id"]); - $pool = $this->get_single_pool($pool_id); + $pool_id = int_escape($_POST["pool_id"]); + $pool = $this->get_single_pool($pool_id); - if(($pool['public'] == "Y" && !$user->is_anonymous()) || $user->is_admin() || $user->id == $pool['user_id']) { - $this->order_posts(); - $page->set_mode("redirect"); - $page->set_redirect(make_link("pool/view/".$pool_id)); - } else { - $this->theme->display_error("Permssion denied."); - } + if(($pool['public'] == "Y" && !$user->is_anonymous()) || $user->is_admin() || $user->id == $pool['user_id']) { + $this->order_posts(); + $page->set_mode("redirect"); + $page->set_redirect(make_link("pool/view/".$pool_id)); + } else { + $this->theme->display_error("Permssion denied."); + } break; } case "remove_posts": { - $pool_id = int_escape($_POST["pool_id"]); - $pool = $this->get_single_pool($pool_id); + $pool_id = int_escape($_POST["pool_id"]); + $pool = $this->get_single_pool($pool_id); + + if(($pool['public'] == "Y" && !$user->is_anonymous()) || $user->is_admin() || $user->id == $pool['user_id']) { + $this->remove_posts(); + $page->set_mode("redirect"); + $page->set_redirect(make_link("pool/view/".$pool_id )); + } else { + $this->theme->display_error("Permssion denied."); + } - if(($pool['public'] == "Y" && !$user->is_anonymous()) || $user->is_admin() || $user->id == $pool['user_id']) { - $this->remove_posts(); - $page->set_mode("redirect"); - $page->set_redirect(make_link("pool/view/".$pool_id )); - } else { - $this->theme->display_error("Permssion denied."); - } - break; } case "nuke": { $pool_id = $event->get_arg(1); - $pool = $this->get_single_pool($pool_id); + $pool = $this->get_single_pool($pool_id); - // only admins and owners may do this - if($user->is_admin() || $user->id == $pool['user_id']) { - $this->nuke_pool($pool_id); - $page->set_mode("redirect"); - $page->set_redirect(make_link("pool/list")); - } else { - $this->theme->display_error("Permssion denied."); - } + // only admins and owners may do this + if($user->is_admin() || $user->id == $pool['user_id']) { + $this->nuke_pool($pool_id); + $page->set_mode("redirect"); + $page->set_redirect(make_link("pool/list")); + } else { + $this->theme->display_error("Permssion denied."); + } break; } case "nuke_pool": { $poolID = int_escape($_POST["pool_id"]); $page->set_mode("redirect"); - $page->set_redirect(make_link("pool/nuke/".$poolID)); + $page->set_redirect(make_link("pool/nuke/".$poolID)); break; } default: - { - $page->set_mode("redirect"); - $page->set_redirect(make_link("pool/list")); - break; - } - } - } - } - - - + { + $page->set_mode("redirect"); + $page->set_redirect(make_link("pool/list")); + break; + } + } + } + } + + + /* - * HERE WE GET THE POOLS WHERE THE IMAGE APPEARS WHEN THE IMAGE IS DISPLAYED - */ + * HERE WE GET THE POOLS WHERE THE IMAGE APPEARS WHEN THE IMAGE IS DISPLAYED + */ public function onDisplayingImage($event) { global $page; - $imageID = $event->image->id; + $imageID = $event->image->id; $poolsIDs = $this->get_pool_id($imageID); $linksPools = ""; - foreach ($poolsIDs as $poolID){ - $pools = $this->get_pool($poolID['pool_id']); - foreach ($pools as $pool){ - $linksPools .= "".$pool['title'].", "; - } + foreach ($poolsIDs as $poolID){ + $pools = $this->get_pool($poolID['pool_id']); + foreach ($pools as $pool){ + $linksPools .= "".$pool['title'].", "; } + } $linksPools = substr($linksPools, 0, -2); $linksPools = $linksPools." "; $this->theme->pool_info($linksPools); } - - - + + + /* - * HERE WE GET THE LIST OF POOLS - */ + * HERE WE GET THE LIST OF POOLS + */ private function list_pools(Page $page, $event){ global $config, $database; - - $pageNumber = $event->get_arg(1); - if(is_null($pageNumber) || !is_numeric($pageNumber)) - $pageNumber = 0; - else if ($pageNumber <= 0) - $pageNumber = 0; - else - $pageNumber--; - $poolsPerPage = $config->get_int("poolsListsPerPage"); - + $pageNumber = $event->get_arg(1); + if(is_null($pageNumber) || !is_numeric($pageNumber)) + $pageNumber = 0; + else if ($pageNumber <= 0) + $pageNumber = 0; + else + $pageNumber--; + + $poolsPerPage = $config->get_int("poolsListsPerPage"); + $pools = $database->get_all( - "SELECT p.id, p.user_id, p.public, p.title, p.description, p.posts, u.name as user_name ". - "FROM pools AS p ". - "INNER JOIN users AS u ". - "ON p.user_id = u.id ". - "ORDER BY p.date DESC ". - "LIMIT ?, ?" - , array($pageNumber * $poolsPerPage, $poolsPerPage) - ); - + "SELECT p.id, p.user_id, p.public, p.title, p.description, p.posts, u.name as user_name ". + "FROM pools AS p ". + "INNER JOIN users AS u ". + "ON p.user_id = u.id ". + "ORDER BY p.date DESC ". + "LIMIT ?, ?" + , array($pageNumber * $poolsPerPage, $poolsPerPage) + ); + $totalPages = ceil($database->db->GetOne("SELECT COUNT(*) FROM pools") / $poolsPerPage); - - $this->theme->list_pools($page, $pools, $pageNumber + 1, $totalPages); + + $this->theme->list_pools($page, $pools, $pageNumber + 1, $totalPages); } - - - + + + /* - * HERE WE CREATE A NEW POOL - */ + * HERE WE CREATE A NEW POOL + */ private function add_pool(){ global $user, $database; - + $public = html_escape($_POST["public"]); $title = mysql_real_escape_string(html_escape($_POST["title"])); $description = mysql_real_escape_string(html_escape($_POST["description"])); - + if($public <> "Y"){ $public = "N"; } - + $database->execute(" - INSERT INTO pools + INSERT INTO pools (user_id, public, title, description, date) - VALUES + VALUES (?, ?, ?, ?, now())", - array($user->id, $public, $title, $description)); - + array($user->id, $public, $title, $description)); + $result = $database->get_row("SELECT LAST_INSERT_ID() AS poolID", array()); - + log_info("pools", "Pool {$result["poolID"]} created by {$user->name}"); - + return $result["poolID"]; } - + private function get_pool($poolID){ global $database; $poolID = int_escape($poolID); return $database->get_all("SELECT * FROM pools WHERE id=?", array($poolID)); } - + private function get_single_pool($poolID) - { + { global $database; $poolID = int_escape($poolID); return $database->get_row("SELECT * FROM pools WHERE id=?", array($poolID)); - } - + } + /* - * HERE WE GET THE ID OF THE POOL FROM AN IMAGE - */ + * HERE WE GET THE ID OF THE POOL FROM AN IMAGE + */ private function get_pool_id($imageID){ global $database; $imageID = int_escape($imageID); return $database->get_all("SELECT pool_id FROM pool_images WHERE image_id =?", array($imageID)); } - - - + + + /* - * HERE WE GET THE IMAGES FROM THE TAG ON IMPORT - */ + * HERE WE GET THE IMAGES FROM THE TAG ON IMPORT + */ private function import_posts(){ global $page, $config, $database; - + $pool_id = int_escape($_POST["pool_id"]); $pool_tag = mysql_real_escape_string(html_escape($_POST["pool_tag"])); - + $poolsMaxResults = $config->get_int("poolsMaxImportResults", 1000); - + $images = $images = Image::find_images(0, $poolsMaxResults, Tag::explode($pool_tag)); $this->theme->pool_result($page, $images, $pool_id); } - - - + + + /* - * HERE WE ADD CHECKED IMAGES FROM POOL AND UPDATE THE HISTORY - */ + * HERE WE ADD CHECKED IMAGES FROM POOL AND UPDATE THE HISTORY + */ private function add_posts(){ //ADD CHECKED POSTS global $database; - + $poolID = int_escape($_POST['pool_id']); $images = ""; - + foreach ($_POST['check'] as $imageID){ - + if(!$this->check_post($poolID, $imageID)){ $database->execute(" - INSERT INTO pool_images + INSERT INTO pool_images (pool_id, image_id) - VALUES + VALUES (?, ?)", - array($poolID, $imageID)); - - $images .= " ".$imageID; + array($poolID, $imageID)); + + $images .= " ".$imageID; } - + } - + if(!strlen($images) == 0){ $count = $database->db->GetOne("SELECT COUNT(*) FROM pool_images WHERE pool_id=?", array($poolID)); $this->add_history($poolID, 1, $images, $count); } - + $database->Execute("UPDATE pools SET posts=(SELECT COUNT(*) FROM pool_images WHERE pool_id=?) WHERE id=?", array($poolID, $poolID)); return $poolID; } - + private function order_posts(){ //ORDER POSTS global $database; - + $poolID = int_escape($_POST['pool_id']); - + foreach ($_POST['imgs'] as $data) { - list ($imageORDER, $imageID) = $data; - - $imageID = int_escape($imageID); - $database->Execute("UPDATE pool_images SET image_order = ? WHERE pool_id = ? AND image_id = ?", array($imageORDER, $poolID, $imageID)); + list ($imageORDER, $imageID) = $data; + + $imageID = int_escape($imageID); + $database->Execute("UPDATE pool_images SET image_order = ? WHERE pool_id = ? AND image_id = ?", array($imageORDER, $poolID, $imageID)); } - + return $poolID; } - - - + + + /* - * HERE WE REMOVE CHECKED IMAGES FROM POOL AND UPDATE THE HISTORY - */ + * HERE WE REMOVE CHECKED IMAGES FROM POOL AND UPDATE THE HISTORY + */ private function remove_posts(){ global $database; - + $poolID = int_escape($_POST['pool_id']); $images = ""; - + foreach ($_POST['check'] as $imageID){ $database->execute("DELETE FROM pool_images WHERE pool_id = ? AND image_id = ?", array($poolID, $imageID)); - + $images .= " ".$imageID; } - + $count = $database->db->GetOne("SELECT COUNT(*) FROM pool_images WHERE pool_id=?", array($poolID)); $this->add_history($poolID, 0, $images, $count); return $poolID; } - - - + + + /* - * HERE WE CHECK IF THE POST IS ALREADY ON POOL - * USED IN add_posts() - */ + * HERE WE CHECK IF THE POST IS ALREADY ON POOL + * USED IN add_posts() + */ private function check_post($poolID, $imageID){ global $database; $result = $database->db->GetOne("SELECT COUNT(*) FROM pool_images WHERE pool_id=? AND image_id=?", array($poolID, $imageID)); @@ -459,41 +458,41 @@ class Pools extends SimpleExtension { return TRUE; } } - - - + + + /* - * HERE WE GET ALL IMAGES FOR THE POOL - */ + * HERE WE GET ALL IMAGES FOR THE POOL + */ private function get_posts($event, $poolID){ global $config, $user, $database; - + $pageNumber = $event->get_arg(2); - if(is_null($pageNumber) || !is_numeric($pageNumber)) - $pageNumber = 0; - else if ($pageNumber <= 0) - $pageNumber = 0; - else - $pageNumber--; - + if(is_null($pageNumber) || !is_numeric($pageNumber)) + $pageNumber = 0; + else if ($pageNumber <= 0) + $pageNumber = 0; + else + $pageNumber--; + $poolID = int_escape($poolID); - + $imagesPerPage = $config->get_int("poolsImagesPerPage"); - + // WE CHECK IF THE EXTENSION RATING IS INSTALLED, WICH VERSION AND IF IT WORKS TO SHOW/HIDE SAFE, QUESTIONABLE, EXPLICIT AND UNRATED IMAGES FROM USER if($config->get_int("ext_ratings2_version") < 3) { $result = $database->get_all("SELECT image_id ". - "FROM pool_images ". - "WHERE pool_id=? ". - "ORDER BY image_order ASC ". - "LIMIT ?, ?" - , array($poolID, $pageNumber * $imagesPerPage, $imagesPerPage)); + "FROM pool_images ". + "WHERE pool_id=? ". + "ORDER BY image_order ASC ". + "LIMIT ?, ?" + , array($poolID, $pageNumber * $imagesPerPage, $imagesPerPage)); $totalPages = ceil($database->db->GetOne("SELECT COUNT(*) FROM pool_images WHERE pool_id=?",array($poolID)) / $imagesPerPage); } - + if($config->get_int("ext_ratings2_version") >= 3) { if($user->is_anonymous()) { - $sqes = $config->get_string("ext_rating_anon_privs"); + $sqes = $config->get_string("ext_rating_anon_privs"); } else if($user->is_admin()) { $sqes = $config->get_string("ext_rating_admin_privs"); @@ -506,97 +505,97 @@ class Pools extends SimpleExtension { $arr[] = "'" . $sqes[$i] . "'"; } $rating = join(', ', $arr); - + $result = $database->get_all("SELECT p.image_id ". - "FROM pool_images AS p ". - "INNER JOIN images AS i ". - "ON i.id = p.image_id ". - "WHERE p.pool_id = ? ". - "AND i.rating IN ($rating) ". - "ORDER BY p.image_order ASC ". - "LIMIT ?, ?" - , array($poolID, $pageNumber * $imagesPerPage, $imagesPerPage)); - + "FROM pool_images AS p ". + "INNER JOIN images AS i ". + "ON i.id = p.image_id ". + "WHERE p.pool_id = ? ". + "AND i.rating IN ($rating) ". + "ORDER BY p.image_order ASC ". + "LIMIT ?, ?" + , array($poolID, $pageNumber * $imagesPerPage, $imagesPerPage)); + $totalPages = ceil($database->db->GetOne("SELECT COUNT(*) ". - "FROM pool_images AS p ". - "INNER JOIN images AS i ". - "ON i.id = p.image_id ". - "WHERE pool_id=? ". - "AND i.rating IN ($rating) " - ,array($poolID)) / $imagesPerPage); + "FROM pool_images AS p ". + "INNER JOIN images AS i ". + "ON i.id = p.image_id ". + "WHERE pool_id=? ". + "AND i.rating IN ($rating) " + ,array($poolID)) / $imagesPerPage); } - + $images = array(); - foreach ($result as $singleResult) { - $image = Image::by_id($singleResult["image_id"]); - $images[] = array($image); - } - + foreach ($result as $singleResult) { + $image = Image::by_id($singleResult["image_id"]); + $images[] = array($image); + } + $pool = $this->get_pool($poolID); $this->theme->view_pool($pool, $images, $pageNumber + 1, $totalPages); } - - + + /* - * WE GET THE ORDER OF THE IMAGES - */ + * WE GET THE ORDER OF THE IMAGES + */ private function edit_posts($poolID){ global $database; $poolID = int_escape($poolID); - + $result = $database->Execute("SELECT image_id FROM pool_images WHERE pool_id=? ORDER BY image_order ASC", array($poolID)); - + $images = array(); while(!$result->EOF) { $image = Image::by_id($result->fields["image_id"]); $images[] = array($image); $result->MoveNext(); } - + return $images; } - - - + + + /* - * WE GET THE ORDER OF THE IMAGES BUT HERE WE SEND KEYS ADDED IN ARRAY TO GET THE ORDER IN THE INPUT VALUE - */ + * WE GET THE ORDER OF THE IMAGES BUT HERE WE SEND KEYS ADDED IN ARRAY TO GET THE ORDER IN THE INPUT VALUE + */ private function edit_order($poolID){ global $database; $poolID = int_escape($poolID); - + $result = $database->Execute("SELECT image_id FROM pool_images WHERE pool_id=? ORDER BY image_order ASC", array($poolID)); - + $images = array(); while(!$result->EOF) { $image = $database->get_row("SELECT * FROM images AS i ". - "INNER JOIN pool_images AS p ". - "ON i.id = p.image_id ". - "WHERE pool_id=? AND i.id=?" - , array($poolID, $result->fields["image_id"])); + "INNER JOIN pool_images AS p ". + "ON i.id = p.image_id ". + "WHERE pool_id=? AND i.id=?" + , array($poolID, $result->fields["image_id"])); $image = ($image ? new Image($image) : null); $images[] = array($image); $result->MoveNext(); } -// Original code -// -// $images = array(); -// while(!$result->EOF) { -// $image = Image::by_id($result->fields["image_id"]); -// $images[] = array($image); -// $result->MoveNext(); -// } + // Original code + // + // $images = array(); + // while(!$result->EOF) { + // $image = Image::by_id($result->fields["image_id"]); + // $images[] = array($image); + // $result->MoveNext(); + // } return $images; } - - - + + + /* - * HERE WE NUKE ENTIRE POOL. WE REMOVE POOLS AND POSTS FROM REMOVED POOL AND HISTORIES ENTRIES FROM REMOVED POOL - */ + * HERE WE NUKE ENTIRE POOL. WE REMOVE POOLS AND POSTS FROM REMOVED POOL AND HISTORIES ENTRIES FROM REMOVED POOL + */ private function nuke_pool($poolID){ global $user, $database; - + if($user->is_admin()){ $database->execute("DELETE FROM pool_history WHERE pool_id = ?", array($poolID)); $database->execute("DELETE FROM pool_images WHERE pool_id = ?", array($poolID)); @@ -608,82 +607,82 @@ class Pools extends SimpleExtension { $database->execute("DELETE FROM pools WHERE id = ? AND user_id = ?", array($poolID, $user->id)); } } - - - + + + /* - * HERE WE ADD A HISTORY ENTRY - * FOR $action 1 (one) MEANS ADDED, 0 (zero) MEANS REMOVED - */ + * HERE WE ADD A HISTORY ENTRY + * FOR $action 1 (one) MEANS ADDED, 0 (zero) MEANS REMOVED + */ private function add_history($poolID, $action, $images, $count){ global $user, $database; $user_id = $user->id; $database->execute(" - INSERT INTO pool_history - (pool_id, user_id, action, images, count, date) - VALUES - (?, ?, ?, ?, ?, now())", - array($poolID, $user_id, $action, $images, $count)); - + INSERT INTO pool_history + (pool_id, user_id, action, images, count, date) + VALUES + (?, ?, ?, ?, ?, now())", + array($poolID, $user_id, $action, $images, $count)); + } - - - + + + /* - * HERE WE GET THE HISTORY LIST - */ + * HERE WE GET THE HISTORY LIST + */ private function get_history($event){ global $config, $database; - + $pageNumber = $event->get_arg(1); - if(is_null($pageNumber) || !is_numeric($pageNumber)) - $pageNumber = 0; - else if ($pageNumber <= 0) - $pageNumber = 0; - else - $pageNumber--; - - + if(is_null($pageNumber) || !is_numeric($pageNumber)) + $pageNumber = 0; + else if ($pageNumber <= 0) + $pageNumber = 0; + else + $pageNumber--; + + $historiesPerPage = $config->get_int("poolsUpdatedPerPage"); - + $history = $database->get_all( - "SELECT h.id, h.pool_id, h.user_id, h.action, h.images, h.count, h.date, u.name as user_name, p.title as title ". - "FROM pool_history AS h ". - "INNER JOIN pools AS p ". - "ON p.id = h.pool_id ". - "INNER JOIN users AS u ". - "ON h.user_id = u.id ". - "ORDER BY h.date DESC ". - "LIMIT ?, ?" - , array($pageNumber * $historiesPerPage, $historiesPerPage)); - + "SELECT h.id, h.pool_id, h.user_id, h.action, h.images, h.count, h.date, u.name as user_name, p.title as title ". + "FROM pool_history AS h ". + "INNER JOIN pools AS p ". + "ON p.id = h.pool_id ". + "INNER JOIN users AS u ". + "ON h.user_id = u.id ". + "ORDER BY h.date DESC ". + "LIMIT ?, ?" + , array($pageNumber * $historiesPerPage, $historiesPerPage)); + $totalPages = ceil($database->db->GetOne("SELECT COUNT(*) FROM pool_history") / $historiesPerPage); - + $this->theme->show_history($history, $pageNumber + 1, $totalPages); } - - - + + + /* - * HERE GO BACK IN HISTORY AND ADD OR REMOVE POSTS TO POOL - */ + * HERE GO BACK IN HISTORY AND ADD OR REMOVE POSTS TO POOL + */ private function revert_history($historyID){ global $database; $status = $database->get_all("SELECT * FROM pool_history WHERE id=?", array($historyID)); - + foreach ($status as $entry) { $images = trim($entry['images']); $images = explode(" ", $images); $poolID = $entry['pool_id']; $imageArray = ""; - + if ($entry['action'] == 0) { // READD ENTRIES foreach ($images as $image) { $imageID = $image; $this->add_post($poolID, $imageID); - + $imageArray .= " ".$imageID; $newAction = 1; } @@ -692,50 +691,50 @@ class Pools extends SimpleExtension { foreach ($images as $image) { $imageID = $image; $this->delete_post($poolID, $imageID); - + $imageArray .= " ".$imageID; $newAction = 0; } } - + $count = $database->db->GetOne("SELECT COUNT(*) FROM pool_images WHERE pool_id=?", array($poolID)); $this->add_history($poolID, $newAction, $imageArray, $count); } } - - - + + + /* - * HERE WE ADD A SIMPLE POST FROM POOL - * USED WITH FOREACH IN revert_history() - */ + * HERE WE ADD A SIMPLE POST FROM POOL + * USED WITH FOREACH IN revert_history() + */ private function add_post($poolID, $imageID){ - global $database; - - if(!$this->check_post($poolID, $imageID)){ - $database->execute(" - INSERT INTO pool_images - (pool_id, image_id) - VALUES - (?, ?)", - array($poolID, $imageID)); + global $database; + + if(!$this->check_post($poolID, $imageID)){ + $database->execute(" + INSERT INTO pool_images + (pool_id, image_id) + VALUES + (?, ?)", + array($poolID, $imageID)); + } + + $database->execute("UPDATE pools SET posts=(SELECT COUNT(*) FROM pool_images WHERE pool_id=?) WHERE id=?", array($poolID, $poolID)); } - - $database->execute("UPDATE pools SET posts=(SELECT COUNT(*) FROM pool_images WHERE pool_id=?) WHERE id=?", array($poolID, $poolID)); - } - - - + + + /* - * HERE WE REMOVE A SIMPLE POST FROM POOL - * USED WITH FOREACH IN revert_history() - */ + * HERE WE REMOVE A SIMPLE POST FROM POOL + * USED WITH FOREACH IN revert_history() + */ private function delete_post($poolID, $imageID){ - global $database; - - $database->execute("DELETE FROM pool_images WHERE pool_id = ? AND image_id = ?", array($poolID, $imageID)); - $database->execute("UPDATE pools SET posts=(SELECT COUNT(*) FROM pool_images WHERE pool_id=?) WHERE id=?", array($poolID, $poolID)); + global $database; + + $database->execute("DELETE FROM pool_images WHERE pool_id = ? AND image_id = ?", array($poolID, $imageID)); + $database->execute("UPDATE pools SET posts=(SELECT COUNT(*) FROM pool_images WHERE pool_id=?) WHERE id=?", array($poolID, $poolID)); } - + } ?>