diff options
author | Andreas Unterkircher <unki@netshadow.at> | 2008-10-04 09:43:22 +0200 |
---|---|---|
committer | Andreas Unterkircher <unki@netshadow.at> | 2008-10-04 09:43:22 +0200 |
commit | ad8f72f790097776757dfcd3eda84272fb17d142 (patch) | |
tree | d3b67f1a0d16a1fb0fb1cfa29f5ccbaedd218734 /phpfspot.class.php | |
parent | 7a065517afecaf0ca45df09c86c1ada201800a25 (diff) |
make get_random_tag_photo() behave correct when show_tags is set, fixes #81
Signed-off-by: Andreas Unterkircher <unki@netshadow.at>
Diffstat (limited to 'phpfspot.class.php')
-rw-r--r-- | phpfspot.class.php | 50 |
1 files changed, 28 insertions, 22 deletions
diff --git a/phpfspot.class.php b/phpfspot.class.php index 18c1c52..ba33c89 100644 --- a/phpfspot.class.php +++ b/phpfspot.class.php @@ -404,7 +404,7 @@ class PHPFSPOT { $query_str=" SELECT DISTINCT t1.id as id, t1.name as name - FROM + FROM photo_tags pt1 INNER JOIN photo_tags pt2 ON pt1.photo_id=pt2.photo_id @@ -3139,30 +3139,36 @@ class PHPFSPOT { { $all = Array(); - $query_str = " - SELECT p.id - FROM photos p - INNER JOIN photo_tags pt - ON p.id=pt.photo_id - "; - if(isset($this->cfg->show_tags) && !empty($this->cfg->show_tags)) { $query_str.= " - INNER JOIN tags t - ON pt.tag_id=t.id - "; + SELECT + DISTINCT pt1.photo_id as id + FROM + photo_tags pt1 + INNER JOIN photo_tags + pt2 ON pt1.photo_id=pt2.photo_id + INNER JOIN tags t1 + ON t1.id=pt1.tag_id + INNER JOIN tags t2 + ON t2.id=pt2.tag_id + WHERE + pt1.tag_id LIKE '". $tagidx ."' + AND + t2.name IN ('".implode("','",$this->cfg->show_tags)."') + ORDER BY + t1.sort_priority ASC"; + } + else { + $query_str = " + SELECT + p.id + FROM + photos p + INNER JOIN photo_tags pt + ON p.id=pt.photo_id + WHERE + pt.tag_id LIKE '". $tagidx ."'"; } - $query_str.= " - WHERE - pt.tag_id LIKE '". $tagidx ."' - "; - - /*if(isset($this->cfg->show_tags) && !empty($this->cfg->show_tags)) { - $query_str.= " - AND - t.name IN ('".implode("','",$this->cfg->show_tags)."') - "; - }*/ $result = $this->db->db_query($query_str); |