summaryrefslogtreecommitdiffstats
path: root/phpfspot.class.php
diff options
context:
space:
mode:
authorAndreas Unterkircher <unki@netshadow.at>2007-07-14 12:06:42 +0000
committerAndreas Unterkircher <unki@netshadow.at>2007-07-14 12:06:42 +0000
commit4a0b6f6114f19cebd796b3b1c6e5253edc3267c3 (patch)
tree6a42f880704f41d632c473c8d48545680a77bd58 /phpfspot.class.php
parent856af471b7a6025f1438f09ff0d701dd78fd99ea (diff)
issue24, first trial of date search is now included
git-svn-id: file:///var/lib/svn/phpfspot/trunk@198 fa6a889d-dae6-447d-9e79-4ba9a3039384
Diffstat (limited to 'phpfspot.class.php')
-rw-r--r--phpfspot.class.php163
1 files changed, 128 insertions, 35 deletions
diff --git a/phpfspot.class.php b/phpfspot.class.php
index 8fe0f77..31a3952 100644
--- a/phpfspot.class.php
+++ b/phpfspot.class.php
@@ -54,8 +54,8 @@ class PHPFSPOT {
$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->assign('from_date', $this->get_calendar());
- $this->tmpl->assign('to_date', $this->get_calendar());
+ $this->tmpl->assign('from_date', $this->get_calendar('from'));
+ $this->tmpl->assign('to_date', $this->get_calendar('to'));
switch($_GET['mode']) {
case 'showpi':
@@ -339,25 +339,37 @@ class PHPFSPOT {
public function resetTags()
{
- unset($_SESSION['selected_tags']);
+ if(isset($_SESSION['selected_tags']))
+ unset($_SESSION['selected_tags']);
} // resetTags()
public function resetPhotoView()
{
- unset($_SESSION['current_photo']);
+ if(isset($_SESSION['current_photo']))
+ unset($_SESSION['current_photo']);
} // resetPhotoView();
public function resetTagSearch()
{
- unset($_SESSION['searchfor']);
+ if(isset($_SESSION['searchfor']))
+ unset($_SESSION['searchfor']);
} // resetTagSearch()
+ public function resetDateSearch()
+ {
+ if(isset($_SESSION['from_date']))
+ unset($_SESSION['from_date']);
+ if(isset($_SESSION['to_date']))
+ unset($_SESSION['to_date']);
+
+ } // resetDateSearch();
+
public function getPhotoSelection()
{
- $tagged_photos = Array();
+ $matched_photos = Array();
/* return a search result */
if(isset($_SESSION['searchfor']) && $_SESSION['searchfor'] != '') {
@@ -372,9 +384,9 @@ class PHPFSPOT {
ORDER BY p.time ASC
");
while($row = $this->db->db_fetch_object($result)) {
- array_push($tagged_photos, $row['photo_id']);
+ array_push($matched_photos, $row['photo_id']);
}
- return $tagged_photos;
+ return $matched_photos;
}
/* return according the selected tags */
@@ -432,11 +444,31 @@ class PHPFSPOT {
}
while($row = $this->db->db_fetch_object($result)) {
- array_push($tagged_photos, $row['photo_id']);
+ array_push($matched_photos, $row['photo_id']);
}
- return $tagged_photos;
+ return $matched_photos;
}
+ if(isset($_SESSION['from_date']) && isset($_SESSION['to_date'])) {
+ $from_date = strtotime($_SESSION['from_date']);
+ $to_date = strtotime($_SESSION['to_date']);
+ $result = $this->db->db_query("
+ SELECT DISTINCT photo_id
+ FROM photo_tags pt
+ INNER JOIN photos p
+ ON p.id=pt.photo_id
+ WHERE
+ time>='". $from_date ."'
+ AND
+ time<='". $to_date ."'
+ ORDER BY p.time ASC
+ ");
+ while($row = $this->db->db_fetch_object($result)) {
+ array_push($matched_photos, $row['photo_id']);
+ }
+ return $matched_photos;
+ }
+
/* return all available photos */
$result = $this->db->db_query("
SELECT DISTINCT photo_id
@@ -446,9 +478,9 @@ class PHPFSPOT {
ORDER BY p.time ASC
");
while($row = $this->db->db_fetch_object($result)) {
- array_push($tagged_photos, $row['photo_id']);
+ array_push($matched_photos, $row['photo_id']);
}
- return $tagged_photos;
+ return $matched_photos;
} // getPhotoSelection()
@@ -908,8 +940,16 @@ class PHPFSPOT {
array_push($_SESSION['selected_tags'], $tag);
}
+ $this->resetDateSearch();
+
} // startTagSearch()
+ public function startDateSearch($from, $to)
+ {
+ $_SESSION['from_date'] = $from;
+ $_SESSION['to_date'] = $to;
+ }
+
private function rotateImage($img, $degrees)
{
if(function_exists("imagerotate"))
@@ -1082,37 +1122,90 @@ class PHPFSPOT {
} // _warning()
- private function get_calendar()
+ private function get_calendar($mode)
{
-// require_once CALENDAR_ROOT.'Year.php';
-// require_once CALENDAR_ROOT.'Month.php';
-// require_once CALENDAR_ROOT.'Day.php';
+ $output = "<input type=\"text\" size=\"3\" id=\"". $mode ."year\" value=\"". date("Y") ."\" />\n";
+ $output.= "<input type=\"text\" size=\"1\" id=\"". $mode ."month\" value=\"". date("m") ."\" />\n";
+ $output.= "<input type=\"text\" size=\"1\" id=\"". $mode ."day\" value=\"". date("d") ."\" />\n";
+ return $output;
-// $Year = new Calendar_Year();
-// $Month = new Calendar_Month();
-// $Day = new Calendar_Day();
+ } // get_calendar()
- $output = "<select name=\"year\">\n";
- for($year = 1990; $year <= date("Y"); $year++) {
- $output.= "<option value=\"". $year ."\">". $year ."</option>\n";
- }
- $output.= "</select>\n";
+ public function get_calendar_matrix($year = 0, $month = 0, $day = 0)
+ {
+ if (!isset($year)) $year = date('Y');
+ if (!isset($month)) $month = date('m');
+ if (!isset($day)) $day = date('d');
+ $rows = 1;
+ $cols = 1;
+ $matrix = Array();
+
+ require_once CALENDAR_ROOT.'Month/Weekdays.php';
+ require_once CALENDAR_ROOT.'Day.php';
- $output.= "<select name=\"month\">\n";
- for($month = 1; $month <= 12; $month++) {
- $output.= "<option value=\"". $month ."\">". $month ."</option>\n";
- }
- $output.= "</select>\n";
- $output.= "<select name=\"day\">\n";
- for($day = 1; $day <= 31; $day++) {
- $output.= "<option value=\"". $day ."\">". $day ."</option>\n";
+ // Build the month
+ $month = new Calendar_Month_Weekdays($year,$month);
+
+ // Create links
+ $prevStamp = $month->prevMonth(true);
+ $prev = "javascript:setMonth(". date('Y',$prevStamp) .", ". date('n',$prevStamp) .", ". date('j',$prevStamp) .");";
+ $nextStamp = $month->nextMonth(true);
+ $next = "javascript:setMonth(". date('Y',$nextStamp) .", ". date('n',$nextStamp) .", ". date('j',$nextStamp) .");";
+
+ $selectedDays = array (
+ new Calendar_Day($year,$month,$day),
+ new Calendar_Day($year,12,25),
+ );
+
+ // Build the days in the month
+ $month->build($selectedDays);
+
+ $this->tmpl->assign('current_month', date('F Y',$month->getTimeStamp()));
+ $this->tmpl->assign('prev_month', $prev);
+ $this->tmpl->assign('next_month', $next);
+
+ while ( $day = $month->fetch() ) {
+
+ if(!isset($matrix[$rows]))
+ $matrix[$rows] = Array();
+
+ $string = "";
+
+ $dayStamp = $day->thisDay(true);
+ $link = "javascript:setCalendarDate(". date('Y',$dayStamp) .", ". date('n',$dayStamp).", ". date('j',$dayStamp) .");";
+
+ // isFirst() to find start of week
+ if ( $day->isFirst() )
+ $string.= "<tr>\n";
+
+ if ( $day->isSelected() ) {
+ $string.= "<td class=\"selected\">".$day->thisDay()."</td>\n";
+ } else if ( $day->isEmpty() ) {
+ $string.= "<td>&nbsp;</td>\n";
+ } else {
+ $string.= "<td><a class=\"calendar\" href=\"".$link."\">".$day->thisDay()."</a></td>\n";
+ }
+
+ // isLast() to find end of week
+ if ( $day->isLast() )
+ $string.= "</tr>\n";
+
+ $matrix[$rows][$cols] = $string;
+
+ $cols++;
+
+ if($cols > 7) {
+ $cols = 1;
+ $rows++;
+ }
}
- $output.= "</select>\n";
- return $output;
+ $this->tmpl->assign('matrix', $matrix);
+ $this->tmpl->assign('rows', $rows);
+ $this->tmpl->show("calendar.tpl");
- } // get_calendar()
+ } // get_calendar_matrix()
public function getExport($mode)
{