summaryrefslogtreecommitdiffstats
path: root/phpfspot.class.php
diff options
context:
space:
mode:
authorAndreas Unterkircher <unki@netshadow.at>2008-10-04 09:43:22 +0200
committerAndreas Unterkircher <unki@netshadow.at>2008-10-04 09:43:22 +0200
commitad8f72f790097776757dfcd3eda84272fb17d142 (patch)
treed3b67f1a0d16a1fb0fb1cfa29f5ccbaedd218734 /phpfspot.class.php
parent7a065517afecaf0ca45df09c86c1ada201800a25 (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.php50
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);