diff --git a/core/imageboard.pack.php b/core/imageboard.pack.php index a76428b2..517b5a5c 100644 --- a/core/imageboard.pack.php +++ b/core/imageboard.pack.php @@ -534,6 +534,11 @@ class Image { continue; } + if(mb_strlen($tag, 'UTF-8') > 255){ + flash_message("The tag below is longer than 255 characters, please use a shorter tag.\n$tag\n"); + continue; + } + $id = $database->get_one( $database->scoreql_to_sql( "SELECT id FROM tags WHERE SCORE_STRNORM(tag) = SCORE_STRNORM(:tag)" @@ -562,7 +567,7 @@ class Image { array("tag"=>$tag)); } - log_info("core_image", "Tags for Image #{$this->id} set to: ".implode(" ", $tags), false, array("image_id" => $this->id)); + log_info("core_image", "Tags for Image #{$this->id} set to: ".implode(" ", $tags), null, array("image_id" => $this->id)); $database->cache->delete("image-{$this->id}-tags"); } } diff --git a/ext/upgrade/main.php b/ext/upgrade/main.php index 7322eb33..ce92cd6b 100644 --- a/ext/upgrade/main.php +++ b/ext/upgrade/main.php @@ -107,6 +107,26 @@ class Upgrade extends Extension { log_info("upgrade", "Database at version 13"); $config->set_bool("in_upgrade", false); } + + if($config->get_int("db_version") < 14) { + $config->set_bool("in_upgrade", true); + $config->set_int("db_version", 14); + + log_info("upgrade", "Changing tag column to VARCHAR(255)"); + if($database->get_driver_name() == 'pgsql') { + $database->execute('ALTER TABLE tags ALTER COLUMN tag SET DATA TYPE VARCHAR(255)'); + $database->execute('ALTER TABLE aliases ALTER COLUMN oldtag SET DATA TYPE VARCHAR(255)'); + $database->execute('ALTER TABLE aliases ALTER COLUMN newtag SET DATA TYPE VARCHAR(255)'); + } + else if($database->get_driver_name() == 'mysql') { + $database->execute('ALTER TABLE tags MODIFY COLUMN tag VARCHAR(255) NOT NULL'); + $database->execute('ALTER TABLE aliases MODIFY COLUMN oldtag VARCHAR(255) NOT NULL'); + $database->execute('ALTER TABLE aliases MODIFY COLUMN newtag VARCHAR(255) NOT NULL'); + } + + log_info("upgrade", "Database at version 14"); + $config->set_bool("in_upgrade", false); + } } public function get_priority() {return 5;}