diff options
Diffstat (limited to 'phpfspot.class.php')
-rw-r--r-- | phpfspot.class.php | 39 |
1 files changed, 38 insertions, 1 deletions
diff --git a/phpfspot.class.php b/phpfspot.class.php index 7bccc9e..b635b30 100644 --- a/phpfspot.class.php +++ b/phpfspot.class.php @@ -32,6 +32,9 @@ class PHPFSPOT { if(!isset($_SESSION['tag_condition'])) $_SESSION['tag_condition'] = 'or'; + if(!isset($_SESSION['searchfor'])) + $_SESSION['searchfor'] = ''; + } // __construct() public function __destruct() @@ -41,6 +44,7 @@ class PHPFSPOT { public function show() { + $this->tmpl->assign('searchfor', $_SESSION['searchfor']); $this->tmpl->assign('page_title', $this->cfg->page_title); $this->tmpl->assign('current_condition', $_SESSION['tag_condition']); $this->tmpl->show("index.tpl"); @@ -261,7 +265,11 @@ class PHPFSPOT { public function showPhotoIndex() { - $photos = $this->getAllTagPhotos(); + if($_SESSION['searchfor'] == '') + $photos = $this->getAllTagPhotos(); + else + $photos = $this->getSearchResult($_SESSION['searchfor']); + $count = count($photos); $rows = 0; @@ -480,6 +488,35 @@ class PHPFSPOT { } // setTagCondition() + public function startSearch($searchfor) + { + $_SESSION['searchfor'] = $searchfor; + + } // showSearchResult() + + public function getSearchResult($for) + { + $tagged_photos = Array(); + + $result = $this->db->db_query(" + SELECT DISTINCT photo_id + FROM photo_tags pt + INNER JOIN photos p + ON p.id=pt.photo_id + INNER JOIN tags t + ON pt.tag_id=t.id + WHERE t.name LIKE '%". $for ."%' + ORDER BY p.time ASC + "); + + while($row = $this->db->db_fetch_object($result)) { + array_push($tagged_photos, $row['photo_id']); + } + + return $tagged_photos; + + } // getSearchResult() + } ?> |