require_once "phpfspot_tmpl.php";
$this->tmpl = new PHPFSPOT_TMPL($this);
+ /* check if all necessary indices exist */
+ $this->checkDbIndices();
+
$this->get_tags();
session_start();
if(isset($this->cfg->show_tags) && !empty($this->cfg->show_tags)) {
$query_str="
SELECT
- DISTINCT t1.id,t1.name
+ DISTINCT t1.id as id, t1.name as name
FROM
photo_tags pt1
INNER JOIN photo_tags
INNER JOIN tags t2
ON t2.id=pt2.tag_id
WHERE
- t2.name IN ('
- ".implode("','",$this->cfg->show_tags)."
- ')
+ t2.name IN ('".implode("','",$this->cfg->show_tags)."')
ORDER BY
t1.sort_priority ASC";
+
$result = $this->db->db_query($query_str);
}
else
} // check_readable()
+ /**
+ * check if all needed indices are present
+ *
+ * this function checks, if some needed indices are already
+ * present, or if not, create them on the fly. they are
+ * necessary to speed up some queries like that one look for
+ * all tags, when show_tags is specified in the configuration.
+ */
+ private function checkDbIndices()
+ {
+ $result = $this->db->db_exec("
+ CREATE INDEX IF NOT EXISTS
+ phototag
+ ON
+ photo_tags
+ (photo_id, tag_id)
+ ");
+
+ } // checkDbIndices()
+
}
?>