id-based refine search
git-svn-id: file:///home/shish/svn/shimmie2/trunk@370 7f39781d-f577-437e-ae19-be835c7a54ca
This commit is contained in:
parent
5feb68f23a
commit
7fbacc7ffd
@ -218,9 +218,18 @@ class TagList extends Extension {
|
|||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
$tags = tag_explode($search);
|
$tags = tag_explode($search);
|
||||||
$s_tags = array_map("sql_escape", $tags);
|
|
||||||
$s_tag_list = join(',', $s_tags);
|
|
||||||
|
|
||||||
|
$tag_id_array = array();
|
||||||
|
$tags_ok = true;
|
||||||
|
foreach($tags as $tag) {
|
||||||
|
$tag_ids = $database->db->GetCol("SELECT id FROM tags WHERE tag LIKE ?", array($tag));
|
||||||
|
$tag_id_array = array_merge($tag_id_array, $tag_ids);
|
||||||
|
$tags_ok = count($tag_ids) > 0;
|
||||||
|
if(!$tags_ok) break;
|
||||||
|
}
|
||||||
|
$tag_id_list = join(', ', $tag_id_array);
|
||||||
|
|
||||||
|
if($tags_ok) {
|
||||||
$query = "
|
$query = "
|
||||||
SELECT t2.tag, COUNT(it2.image_id) AS count
|
SELECT t2.tag, COUNT(it2.image_id) AS count
|
||||||
FROM
|
FROM
|
||||||
@ -229,7 +238,7 @@ class TagList extends Extension {
|
|||||||
tags AS t1,
|
tags AS t1,
|
||||||
tags AS t2
|
tags AS t2
|
||||||
WHERE
|
WHERE
|
||||||
t1.tag IN($s_tag_list)
|
t1.id IN($tag_id_list)
|
||||||
AND it1.image_id=it2.image_id
|
AND it1.image_id=it2.image_id
|
||||||
AND it1.tag_id = t1.id
|
AND it1.tag_id = t1.id
|
||||||
AND it2.tag_id = t2.id
|
AND it2.tag_id = t2.id
|
||||||
@ -245,6 +254,7 @@ class TagList extends Extension {
|
|||||||
$this->theme->display_refine_block($page, $tags, $search);
|
$this->theme->display_refine_block($page, $tags, $search);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
// }}}
|
// }}}
|
||||||
}
|
}
|
||||||
add_event_listener(new TagList());
|
add_event_listener(new TagList());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user