From 94c0ab0255646af96995d01e2ebb7f27d48e5889 Mon Sep 17 00:00:00 2001 From: Shish Date: Sat, 17 Jan 2009 17:07:06 -0800 Subject: [PATCH] make tag setting work --- core/imageboard.pack.php | 11 +++++++---- ext/view/main.php | 9 +++++---- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/core/imageboard.pack.php b/core/imageboard.pack.php index 7fa301c9..3b743802 100644 --- a/core/imageboard.pack.php +++ b/core/imageboard.pack.php @@ -238,14 +238,17 @@ class Image { public function set_tags($tags) { $tags = tag_explode($tags); - $tags = array_map(array($this, 'resolve_alias'), $tags); - $tags = array_map(array($this, 'sanitise'), $tags); + $tags = array_map(array('Tag', 'resolve_alias'), $tags); + $tags = array_map(array('Tag', 'sanitise'), $tags); $tags = array_iunique($tags); // remove any duplicate tags + assert(is_array($tags)); + assert(count($tags) > 0); + // delete old $this->delete_tags_from_image(); - // insert each new tag + // insert each new tags foreach($tags as $tag) { $this->database->execute( "INSERT IGNORE INTO tags(tag) VALUES (?)", @@ -253,7 +256,7 @@ class Image { $this->database->execute( "INSERT INTO image_tags(image_id, tag_id) ". "VALUES(?, (SELECT id FROM tags WHERE tag = ?))", - array($image_id, $tag)); + array($this->id, $tag)); $this->database->execute( "UPDATE tags SET count = count + 1 WHERE tag = ?", array($tag)); diff --git a/ext/view/main.php b/ext/view/main.php index 44324042..527e7562 100644 --- a/ext/view/main.php +++ b/ext/view/main.php @@ -38,10 +38,10 @@ class ImageInfoBoxBuildingEvent extends Event { } class ImageInfoSetEvent extends Event { - var $image_id; + var $image; - public function ImageInfoSetEvent($image_id) { - $this->image_id = int_escape($image_id); + public function ImageInfoSetEvent($image) { + $this->image = $image; } } @@ -86,9 +86,10 @@ class ViewImage implements Extension { } if(($event instanceof PageRequestEvent) && $event->page_matches("post/set")) { + global $config, $database; $image_id = int_escape($_POST['image_id']); - send_event(new ImageInfoSetEvent($image_id)); + send_event(new ImageInfoSetEvent(Image::by_id($config, $database, $image_id))); $query = $_POST['query']; $event->page->set_mode("redirect");