have Tag::resolve_list always take an array

This commit is contained in:
Shish 2013-08-04 18:11:02 +01:00
parent 9c70d1bd3f
commit 7e89481105
3 changed files with 11 additions and 8 deletions

View File

@ -460,6 +460,8 @@ class Image {
public function set_tags($tags) { public function set_tags($tags) {
global $database; global $database;
assert(is_array($tags));
$tags = Tag::resolve_list($tags); $tags = Tag::resolve_list($tags);
assert(is_array($tags)); assert(is_array($tags));
@ -965,11 +967,11 @@ class Tag {
/** /**
* Turn any string or array into a valid tag array * Turn any string or array into a valid tag array
*/ */
public static function explode($tags) { public static function explode($tags, $tagme=true) {
assert(is_string($tags) || is_array($tags)); assert(is_string($tags) || is_array($tags));
if(is_string($tags)) { if(is_string($tags)) {
$tags = explode(' ', $tags); $tags = explode(' ', trim($tags));
} }
//else if(is_array($tags)) { //else if(is_array($tags)) {
// do nothing // do nothing
@ -983,7 +985,7 @@ class Tag {
} }
} }
if(count($tag_array) == 0) { if(count($tag_array) == 0 && $tagme) {
$tag_array = array("tagme"); $tag_array = array("tagme");
} }
@ -1053,8 +1055,8 @@ class Tag {
* @return Array of tags * @return Array of tags
*/ */
public static function resolve_list($tags) { public static function resolve_list($tags) {
$tags = Tag::explode($tags); assert(is_array($tags));
reset($tags); // rewind array to the first element.
$new = array(); $new = array();
foreach($tags as $tag) { foreach($tags as $tag) {
$new_set = explode(' ', Tag::resolve_alias($tag)); $new_set = explode(' ', Tag::resolve_alias($tag));
@ -1062,6 +1064,7 @@ class Tag {
$new[] = $new_one; $new[] = $new_one;
} }
} }
$new = array_map(array('Tag', 'sanitise'), $new); $new = array_map(array('Tag', 'sanitise'), $new);
$new = array_iunique($new); // remove any duplicate tags $new = array_iunique($new); // remove any duplicate tags
return $new; return $new;

View File

@ -147,7 +147,7 @@ class Index extends Extension {
global $config, $database, $page, $user; global $config, $database, $page, $user;
if($event->page_matches("post/list")) { if($event->page_matches("post/list")) {
if(isset($_GET['search'])) { if(isset($_GET['search'])) {
$search = url_escape(implode(" ", Tag::resolve_list(trim($_GET['search'])))); $search = url_escape(Tag::implode(Tag::resolve_list(Tag::explode($_GET['search'], false))));
if(empty($search)) { if(empty($search)) {
$page->set_mode("redirect"); $page->set_mode("redirect");
$page->set_redirect(make_link("post/list/1")); $page->set_redirect(make_link("post/list/1"));

View File

@ -42,13 +42,13 @@ class MassTagger extends Extension {
$_POST['setadd'] == 'set') $_POST['setadd'] == 'set')
{ {
foreach($images as $image) { foreach($images as $image) {
$image->set_tags($tag); $image->set_tags(Tag::explode($tag));
} }
} }
else else
{ {
foreach($images as $image) { foreach($images as $image) {
$image->set_tags($tag . " " . $image->get_tag_list()); $image->set_tags(Tag::explode($tag . " " . $image->get_tag_list()));
} }
} }