From 3e240fa78d8e24daf0088d5d723c7d8e6ed131fa Mon Sep 17 00:00:00 2001 From: Daku Date: Sun, 29 Dec 2013 22:24:34 +0000 Subject: [PATCH] return error when pool title exists + fix pool error reporting --- ext/pools/main.php | 34 +++++++++++++++++++++++----------- ext/pools/theme.php | 15 --------------- 2 files changed, 23 insertions(+), 26 deletions(-) diff --git a/ext/pools/main.php b/ext/pools/main.php index 42bbe2c9..e449ab1f 100644 --- a/ext/pools/main.php +++ b/ext/pools/main.php @@ -116,7 +116,7 @@ class Pools extends Extension { $this->theme->new_pool_composer($page); } else { $errMessage = "You must be registered and logged in to create a new pool."; - $this->theme->display_error($errMessage); + $this->theme->display_error(401, "Error", $errMessage); } break; @@ -127,7 +127,7 @@ class Pools extends Extension { $page->set_redirect(make_link("pool/view/".$newPoolID)); } catch(PoolCreationException $e) { - $this->theme->display_error($e->error); + $this->theme->display_error(400, "Error", $e->error); } break; @@ -173,7 +173,7 @@ class Pools extends Extension { $page->set_mode("redirect"); $page->set_redirect(make_link("pool/view/".$pool_id)); } else { - $this->theme->display_error("Permssion denied."); + $this->theme->display_error(403, "Permission Denied", "You do not have permission to access this page"); } } break; @@ -182,7 +182,7 @@ class Pools extends Extension { if ($this->have_permission($user, $pool)) { $this->import_posts($pool_id); } else { - $this->theme->display_error("Permssion denied."); + $this->theme->display_error(403, "Permission Denied", "You do not have permission to access this page"); } break; @@ -192,7 +192,7 @@ class Pools extends Extension { $page->set_mode("redirect"); $page->set_redirect(make_link("pool/view/".$pool_id)); } else { - $this->theme->display_error("Permssion denied."); + $this->theme->display_error(403, "Permission Denied", "You do not have permission to access this page"); } break; @@ -202,7 +202,7 @@ class Pools extends Extension { $page->set_mode("redirect"); $page->set_redirect(make_link("pool/view/".$pool_id)); } else { - $this->theme->display_error("Permssion denied."); + $this->theme->display_error(403, "Permission Denied", "You do not have permission to access this page"); } break; @@ -215,7 +215,7 @@ class Pools extends Extension { $page->set_mode("redirect"); $page->set_redirect(make_link("pool/list")); } else { - $this->theme->display_error("Permssion denied."); + $this->theme->display_error(403, "Permission Denied", "You do not have permission to access this page"); } break; @@ -336,14 +336,16 @@ class Pools extends Extension { */ private function add_pool() { global $user, $database; - + #throw new PoolCreationException("Pool needs a title"); if($user->is_anonymous()) { throw new PoolCreationException("You must be registered and logged in to add a image."); } if(empty($_POST["title"])) { - throw new PoolCreationException("Pool needs a title"); + throw new PoolCreationException("Pool title is empty."); + } + if($this->get_single_pool_from_title($_POST["title"])) { + throw new PoolCreationException("A pool using this title already exists."); } - $public = $_POST["public"] == "Y" ? "Y" : "N"; $database->execute(" INSERT INTO pools (user_id, public, title, description, date) @@ -366,7 +368,7 @@ class Pools extends Extension { global $database; return $database->get_all("SELECT * FROM pools WHERE id=:id", array("id"=>$poolID)); } - + /** * Retrieve information about a pool given a pool ID. * @param $poolID Integer @@ -377,6 +379,16 @@ class Pools extends Extension { return $database->get_row("SELECT * FROM pools WHERE id=:id", array("id"=>$poolID)); } + /** + * Retrieve information about a pool given a pool title. + * @param $poolTitle Integer + * @retval 2D array (with only 1 element in the one dimension) + */ + private function get_single_pool_from_title(/*string*/ $poolTitle) { + global $database; + return $database->get_row("SELECT * FROM pools WHERE title=:title", array("title"=>$poolTitle)); + } + /** * Get all of the pool IDs that an image is in, given an image ID. * @param $imageID Integer diff --git a/ext/pools/theme.php b/ext/pools/theme.php index d9c397c7..39c4318e 100644 --- a/ext/pools/theme.php +++ b/ext/pools/theme.php @@ -389,20 +389,5 @@ class PoolsTheme extends Themelet { $this->display_paginator($page, "pool/updated", null, $pageNumber, $totalPages); } - - - /** - * Display an error message to the user. - */ - public function display_error(/*int*/ $code, /*string*/ $title, /*string*/ $message) { - global $page; - - // Quick n' Dirty fix - $message = $code; - - $page->set_title("Error"); - $page->set_heading("Error"); - $page->add_block(new Block("Error", $errMessage, "main", 10)); - } } ?>