From 4940e3cd6f15441b90e9aef6c4f707c6f87120f6 Mon Sep 17 00:00:00 2001 From: shish Date: Tue, 12 Aug 2008 00:04:10 +0000 Subject: [PATCH] some changes from r34 git-svn-id: file:///home/shish/svn/shimmie2/trunk@979 7f39781d-f577-437e-ae19-be835c7a54ca --- ext/alias_editor/main.php | 22 ++++++++++++++++------ ext/tag_edit/main.php | 4 ++-- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/ext/alias_editor/main.php b/ext/alias_editor/main.php index 4bdbbc70..0f44fdcd 100644 --- a/ext/alias_editor/main.php +++ b/ext/alias_editor/main.php @@ -20,10 +20,15 @@ class AliasEditor extends Extension { if($event->get_arg(0) == "add") { if($event->user->is_admin()) { if(isset($_POST['oldtag']) && isset($_POST['newtag'])) { - send_event(new AddAliasEvent($_POST['oldtag'], $_POST['newtag'])); - - $event->page->set_mode("redirect"); - $event->page->set_redirect(make_link("alias/list")); + $aae = new AddAliasEvent($_POST['oldtag'], $_POST['newtag']); + send_event($aae); + if($aae->vetoed) { + $this->theme->display_error($event->page, "Error adding alias", $aae->veto_reason); + } + else { + $event->page->set_mode("redirect"); + $event->page->set_redirect(make_link("alias/list")); + } } } } @@ -73,8 +78,13 @@ class AliasEditor extends Extension { if(is_a($event, 'AddAliasEvent')) { global $database; - $database->Execute("INSERT INTO aliases(oldtag, newtag) VALUES(?, ?)", - array($event->oldtag, $event->newtag)); + $pair = array($event->oldtag, $event->newtag); + if($database->db->GetRow("SELECT * FROM aliases WHERE oldtag=? AND lower(newtag)=lower(?)", $pair)) { + $event->veto("That alias already exists"); + } + else { + $database->Execute("INSERT INTO aliases(oldtag, newtag) VALUES(?, ?)", $pair); + } } if(is_a($event, 'UserBlockBuildingEvent')) { diff --git a/ext/tag_edit/main.php b/ext/tag_edit/main.php index cae1e6de..71e619a1 100644 --- a/ext/tag_edit/main.php +++ b/ext/tag_edit/main.php @@ -99,8 +99,8 @@ class TagEdit extends Extension { $database->Execute(" UPDATE tags SET count=(SELECT COUNT(image_id) FROM image_tags WHERE tag_id=tags.id GROUP BY tag_id) - WHERE id=? - ", array($replace_id)); + WHERE id=? OR id=? + ", array($search_id, $replace_id)); } else if($search_id) { $database->Execute("UPDATE tags SET tag=? WHERE tag=?", Array($replace, $search));