switch($_GET['mode']) {
case 'showpi':
if(isset($_GET['tags'])) {
- $_SESSION['selected_tags'] = split(',', $_GET['tags']);
+ $_SESSION['selected_tags'] = $this->extractTags($_GET['tags']);
}
- if(isset($_GET['from_date'])) {
- $_SESSION['from_date'] = $_GET['from_date'];
+ if(isset($_GET['from_date']) && $this->isValidDate($_GET['from_date'])) {
+ $_SESSION['from_date'] = strtotime($_GET['from_date']);
}
- if(isset($_GET['to_date'])) {
- $_SESSION['to_date'] = $_GET['to_date'];
+ if(isset($_GET['to_date']) && $this->isValidDate($_GET['to_date'])) {
+ $_SESSION['to_date'] = strtotime($_GET['to_date']);
}
break;
case 'showp':
if(isset($_GET['tags'])) {
- $_SESSION['selected_tags'] = split(',', $_GET['tags']);
+ $_SESSION['selected_tags'] = $this->extractTags($_GET['tags']);
$_SESSION['start_action'] = 'showp';
}
- if(isset($_GET['id'])) {
+ if(isset($_GET['id']) && is_numeric($_GET['id'])) {
$_SESSION['current_photo'] = $_GET['id'];
$_SESSION['start_action'] = 'showp';
}
- if(isset($_GET['from_date'])) {
- $_SESSION['from_date'] = $_GET['from_date'];
+ if(isset($_GET['from_date']) && $this->isValidDate($_GET['from_date'])) {
+ $_SESSION['from_date'] = strtotime($_GET['from_date']);
}
- if(isset($_GET['to_date'])) {
- $_SESSION['to_date'] = $_GET['to_date'];
+ if(isset($_GET['to_date']) && $this->isValidDate($_GET['to_date'])) {
+ $_SESSION['to_date'] = strtotime($_GET['to_date']);
}
break;
case 'export':
break;
}
+ if(isset($_SESSION['from_date']) && isset($_SESSION['to_date']))
+ $this->tmpl->assign('date_search_enabled', true);
+
$this->tmpl->assign('from_date', $this->get_calendar('from'));
$this->tmpl->assign('to_date', $this->get_calendar('to'));
$this->tmpl->assign('sort_field', $this->get_sort_field());
$this->tmpl->assign('content_page', 'welcome.tpl');
$this->tmpl->show("index.tpl");
-
} // show()
/**
$thumb_path = $this->cfg->base_path ."/thumbs/". $this->cfg->photo_width ."_". $this->getMD5($photo);
if(!file_exists($orig_path)) {
- $this->_warning("Photo ". $orig_path ." does not exist!<br />\n");
+ $this->_error("Photo ". $orig_path ." does not exist!<br />\n");
}
if(!is_readable($orig_path)) {
- $this->_warning("Photo ". $orig_path ." is not readable for user ". $this->getuid() ."<br />\n");
+ $this->_error("Photo ". $orig_path ." is not readable for user ". $this->getuid() ."<br />\n");
}
/* If the thumbnail doesn't exist yet, try to create it */
$extern_link.= "&tags=". $current_tags;
}
if(isset($_SESSION['from_date']) && isset($_SESSION['to_date'])) {
- $extern_link.= "&from_date=". $_SESSION['from_date'] ."&to_date=". $_SESSION['to_date'];
+ $extern_link.= "&from_date=". $this->ts2str($_SESSION['from_date']) ."&to_date=". $this->ts2str($_SESSION['to_date']);
}
$this->tmpl->assign('extern_link', $extern_link);
$this->tmpl->assign('current', $current);
}
else {
- $this->_warning("Can't open file ". $thumb_path ."\n");
+ $this->_error("Can't open file ". $thumb_path ."\n");
return;
}
$matched_photos = Array();
if(isset($_SESSION['from_date']) && isset($_SESSION['to_date'])) {
- $from_date = strtotime($_SESSION['from_date']);
- $to_date = strtotime($_SESSION['to_date']);
+ $from_date = $_SESSION['from_date'];
+ $to_date = $_SESSION['to_date'];
$additional_where_cond = "
p.time>='". $from_date ."'
AND
$this->tmpl->assign('searchfor', $_SESSION['searchfor']);
if(isset($_SESSION['from_date']) && isset($_SESSION['to_date'])) {
- $this->tmpl->assign('from_date', $_SESSION['from_date']);
- $this->tmpl->assign('to_date', $_SESSION['to_date']);
+ $this->tmpl->assign('from_date', $this->ts2str($_SESSION['from_date']));
+ $this->tmpl->assign('to_date', $this->ts2str($_SESSION['to_date']));
}
if(isset($_SESSION['selected_tags']) && !empty($_SESSION['selected_tags'])) {
for($i = 1; $i <= $last_page; $i++) {
if($current_page == $i)
- $style = "style=\"font-size: 125%;\"";
+ $style = "style=\"font-size: 125%; text-decoration: underline;\"";
elseif($current_page-1 == $i || $current_page+1 == $i)
$style = "style=\"font-size: 105%;\"";
elseif(($current_page-5 >= $i) && ($i != 1) ||
$extern_link.= "&tags=". $current_tags;
}
if(isset($_SESSION['from_date']) && isset($_SESSION['to_date'])) {
- $extern_link.= "&from_date=". $_SESSION['from_date'] ."&to_date=". $_SESSION['to_date'];
+ $extern_link.= "&from_date=". $this->ts2str($_SESSION['from_date']) ."&to_date=". $this->ts2str($_SESSION['to_date']);
}
$export_link = "index.php?mode=export";
$full_path = $this->translate_path($details['directory_path']) ."/". $details['name'];
if(!file_exists($full_path)) {
- $this->_warning("File ". $full_path ." does not exist\n");
+ $this->_error("File ". $full_path ." does not exist\n");
return;
}
if(!is_readable($full_path)) {
- $this->_warning("File ". $full_path ." is not readable for ". $this->getuid() ."\n");
+ $this->_error("File ". $full_path ." is not readable for ". $this->getuid() ."\n");
return;
}
* getPhotoSelection() will then only return the matching
* photos.
*/
- public function startSearch($searchfor, $from, $to, $sort_order)
+ public function startSearch($searchfor, $sort_order, $from = 0, $to = 0)
{
$_SESSION['searchfor'] = $searchfor;
- $_SESSION['from_date'] = $from;
- $_SESSION['to_date'] = $to;
$_SESSION['sort_order'] = $sort_order;
+ if($from != 0)
+ $_SESSION['from_date'] = strtotime($from);
+ else
+ unset($_SESSION['from_date']);
+ if($to != 0)
+ $_SESSION['to_date'] = strtotime($to);
+ else
+ unset($_SESSION['to_date']);
if($searchfor != "") {
/* new search, reset the current selected tags */
array_push($_SESSION['selected_tags'], $tag);
}
}
+
} // startSearch()
/**
} // checkifImageSupported()
- public function _warning($text)
+ public function _error($text)
{
- print "<img src=\"resources/green_info.png\" alt=\"warning\" />\n";
- print $text;
+ switch($this->cfg->logging) {
+ case 'display':
+ print "<img src=\"resources/green_info.png\" alt=\"warning\" />\n";
+ print $text;
+ break;
+ case 'errorlog':
+ error_log($text);
+ break;
+ case 'logfile':
+ error_log($text, 3, $his->cfg->log_file);
+ break;
+ }
- } // _warning()
+ } // _error()
/**
* output calendard input fields
break;
case 'MoinMoin':
- // [%pictureurl% %thumbnailurl%]
- print htmlspecialchars(" * [".$orig_url." ".$thumb_url."&fake=1.jpg]") ."<br />\n";
+ // "[%pictureurl% %thumbnailurl%]"
+ print htmlspecialchars("[".$orig_url." ".$thumb_url."&fake=1.jpg]") ."<br />\n";
+ break;
+
+ case 'MoinMoinList':
+ // " * [%pictureurl% %thumbnailurl%]"
+ print " " . htmlspecialchars("* [".$orig_url." ".$thumb_url."&fake=1.jpg]") ."<br />\n";
break;
}
");
while($row = $this->db->db_fetch_object($result)) {
- array_push($all, $row[0]);
+ array_push($all, $row['id']);
}
- return array_rand($all);
+ return $all[array_rand($all)];
} // get_random_photo()
+ /**
+ * validates provided date
+ *
+ * this function validates if the provided date
+ * contains a valid date and will return true
+ * if it is.
+ */
+ public function isValidDate($date_str)
+ {
+ $timestamp = strtotime($date_str);
+
+ if(is_numeric($timestamp))
+ return true;
+
+ return false;
+
+ } // isValidDate()
+
+ /**
+ * timestamp to string conversion
+ */
+ private function ts2str($timestamp)
+ {
+ return strftime("%Y-%m-%d", $timestamp);
+ } // ts2str()
+
+ private function extractTags($tags_str)
+ {
+ $not_validated = split(',', $_GET['tags']);
+ $validated = array();
+
+ foreach($not_validated as $tag) {
+ if(is_numeric($tag))
+ array_push($validated, $tag);
+ }
+
+ return $validated;
+
+ } // extractTags()
+
}
?>