summaryrefslogtreecommitdiffstats
path: root/phpfspot.class.php
diff options
context:
space:
mode:
authorAndreas Unterkircher <unki@netshadow.at>2008-01-13 17:28:30 +0100
committerAndreas Unterkircher <unki@netshadow.at>2008-01-13 17:28:30 +0100
commit213a12dbb00c60ff1873cfec86c9f9c35d86253f (patch)
tree8dc0e16fe168dced4d2d5e3145b01e847e118d3c /phpfspot.class.php
parentc1820df7b1f282211fc6554190b0aab600001ced (diff)
issue99, search for filename and photo description
Signed-off-by: Andreas Unterkircher <unki@netshadow.at>
Diffstat (limited to 'phpfspot.class.php')
-rw-r--r--phpfspot.class.php89
1 files changed, 69 insertions, 20 deletions
diff --git a/phpfspot.class.php b/phpfspot.class.php
index a0082dd..9a74a9a 100644
--- a/phpfspot.class.php
+++ b/phpfspot.class.php
@@ -118,8 +118,8 @@ class PHPFSPOT {
if(!isset($_SESSION['sort_order']))
$_SESSION['sort_order'] = 'date_asc';
- if(!isset($_SESSION['searchfor']))
- $_SESSION['searchfor'] = '';
+ if(!isset($_SESSION['searchfor_tag']))
+ $_SESSION['searchfor_tag'] = '';
// if begin_with is still set but thumbs_per_page is now 0, unset it
if(isset($_SESSION['begin_with']) && $this->cfg->thumbs_per_page == 0)
@@ -143,7 +143,7 @@ class PHPFSPOT {
*/
public function show()
{
- $this->tmpl->assign('searchfor', $_SESSION['searchfor']);
+ $this->tmpl->assign('searchfor_tag', $_SESSION['searchfor_tag']);
$this->tmpl->assign('page_title', $this->cfg->page_title);
$this->tmpl->assign('current_condition', $_SESSION['tag_condition']);
$this->tmpl->assign('template_path', 'themes/'. $this->cfg->theme_name);
@@ -638,8 +638,8 @@ class PHPFSPOT {
if(!isset($_SESSION['selected_tags']))
$_SESSION['selected_tags'] = Array();
- if(isset($_SESSION['searchfor']))
- unset($_SESSION['searchfor']);
+ if(isset($_SESSION['searchfor_tag']))
+ unset($_SESSION['searchfor_tag']);
if(!in_array($tag, $_SESSION['selected_tags']))
array_push($_SESSION['selected_tags'], $tag);
@@ -654,8 +654,8 @@ class PHPFSPOT {
*/
public function delTag($tag)
{
- if(isset($_SESSION['searchfor']))
- unset($_SESSION['searchfor']);
+ if(isset($_SESSION['searchfor_tag']))
+ unset($_SESSION['searchfor_tag']);
if(isset($_SESSION['selected_tags'])) {
$key = array_search($tag, $_SESSION['selected_tags']);
@@ -694,17 +694,28 @@ class PHPFSPOT {
/**
* reset tag search
*
- * if any tag search has taken place, reset
- * it now
+ * if any tag search has taken place, reset it now
*/
public function resetTagSearch()
{
- if(isset($_SESSION['searchfor']))
- unset($_SESSION['searchfor']);
+ if(isset($_SESSION['searchfor_tag']))
+ unset($_SESSION['searchfor_tag']);
} // resetTagSearch()
- /**
+ /**
+ * reset name search
+ *
+ * if any name search has taken place, reset it now
+ */
+ public function resetNameSearch()
+ {
+ if(isset($_SESSION['searchfor_name']))
+ unset($_SESSION['searchfor_name']);
+
+ } // resetNameSearch()
+
+ /**
* reset date search
*
* if any date search has taken place, reset
@@ -741,12 +752,33 @@ class PHPFSPOT {
";
}
+ if(isset($_SESSION['searchfor_name'])) {
+ if($this->dbver < 9) {
+ $additional_where_cond.= "
+ (
+ p.name LIKE '%". $_SESSION['searchfor_name'] ."%'
+ OR
+ p.description LIKE '%". $_SESSION['searchfor_name'] ."%'
+ )
+ ";
+ }
+ else {
+ $additional_where_cond.= "
+ (
+ basename(p.uri) LIKE '%". $_SESSION['searchfor_name'] ."%'
+ OR
+ p.description LIKE '%". $_SESSION['searchfor_name'] ."%'
+ )
+ ";
+ }
+ }
+
if(isset($_SESSION['sort_order'])) {
$order_str = $this->get_sort_order();
}
/* return a search result */
- if(isset($_SESSION['searchfor']) && $_SESSION['searchfor'] != '') {
+ if(isset($_SESSION['searchfor_tag']) && $_SESSION['searchfor_tag'] != '') {
$query_str = "
SELECT DISTINCT pt1.photo_id
FROM photo_tags pt1
@@ -758,7 +790,7 @@ class PHPFSPOT {
ON pt1.photo_id=p.id
INNER JOIN tags t2
ON pt2.tag_id=t2.id
- WHERE t.name LIKE '%". $_SESSION['searchfor'] ."%' ";
+ WHERE t.name LIKE '%". $_SESSION['searchfor_tag'] ."%' ";
if(isset($additional_where_cond))
$query_str.= "AND ". $additional_where_cond ." ";
@@ -967,8 +999,8 @@ class PHPFSPOT {
// +1 for for smarty's selection iteration
$thumbs++;
- if(isset($_SESSION['searchfor']) && $_SESSION['searchfor'] != '')
- $this->tmpl->assign('searchfor', $_SESSION['searchfor']);
+ if(isset($_SESSION['searchfor_tag']) && $_SESSION['searchfor_tag'] != '')
+ $this->tmpl->assign('searchfor_tag', $_SESSION['searchfor_tag']);
if(isset($_SESSION['from_date']) && isset($_SESSION['to_date'])) {
$this->tmpl->assign('from_date', $this->ts2str($_SESSION['from_date']));
@@ -1426,11 +1458,27 @@ class PHPFSPOT {
* getPhotoSelection() will then only return the matching
* photos.
*/
- public function startSearch($searchfor, $from = 0, $to = 0)
+ public function startSearch($searchfor_tag, $from = 0, $to = 0)
{
+ if(isset($_GET['from']) && $fspot->isValidDate($_GET['from'])) {
+ $from = $_GET['from'];
+ }
+ if(isset($_GET['to']) && $fspot->isValidDate($_GET['to'])) {
+ $to = $_GET['to'];
+ }
+
+ if(isset($_GET['for_tag']) && is_string($_GET['for_tag'])) {
+ $searchfor_tag = $_GET['for_tag'];
+ }
+
+ if(isset($_GET['for_name']) && is_string($_GET['for_name'])) {
+ $searchfor_name = $_GET['for_name'];
+ }
+
$this->get_tags();
- $_SESSION['searchfor'] = $searchfor;
+ $_SESSION['searchfor_tag'] = $searchfor_tag;
+ $_SESSION['searchfor_name'] = $searchfor_name;
if($from != 0)
$_SESSION['from_date'] = strtotime($from ." 00:00:00");
@@ -1442,11 +1490,11 @@ class PHPFSPOT {
else
unset($_SESSION['to_date']);
- if($searchfor != "") {
+ if($searchfor_tag != "") {
/* new search, reset the current selected tags */
$_SESSION['selected_tags'] = Array();
foreach($this->avail_tags as $tag) {
- if(preg_match('/'. $searchfor .'/i', $this->tags[$tag]))
+ if(preg_match('/'. $searchfor_tag .'/i', $this->tags[$tag]))
array_push($_SESSION['selected_tags'], $tag);
}
}
@@ -2086,6 +2134,7 @@ class PHPFSPOT {
{
if(isset($_SESSION['slideshow_img']))
unset($_SESSION['slideshow_img']);
+
} // resetSlideShow()
/***