/* set application name and version information */
$this->cfg->product = "phpfspot";
- $this->cfg->version = "1.5";
+ $this->cfg->version = "1.6";
$this->sort_orders= array(
'date_asc' => 'Date ↑',
/* Check if database file is writeable */
if(!is_writeable($this->cfg->fspot_db)) {
- print $this->cfg->fspot_db ." is not writeable for user ". $this->getuid() ."\n";
+ print "Error: ". $this->cfg->fspot_db ." is not writeable for user ". $this->getuid() .".\n";
+ print "Please fix permissions so phpfspot can create indices within the F-Spot database to"
+ ." speed up some database operations.\n";
exit(1);
}
/* Check if directory where the database file is stored is writeable */
if(!is_writeable(dirname($this->cfg->phpfspot_db))) {
- print dirname($this->cfg->phpfspot_db) .": directory is not writeable for user ". $this->getuid() ."\n";
+ print "Error: ". dirname($this->cfg->phpfspot_db) .": directory is not writeable for user ". $this->getuid() .".\n";
+ print "Please fix permissions so phpfspot can create its own sqlite database to store some settings.\n";
exit(1);
}
/* Check if database file is writeable */
if(!is_writeable($this->cfg->phpfspot_db)) {
- print $this->cfg->phpfspot_db ." is not writeable for user ". $this->getuid() ."\n";
+ print "Error: ". $this->cfg->phpfspot_db ." is not writeable for user ". $this->getuid() .".\n";
+ print "Please fix permissions so phpfspot can create its own sqlite database to store some settings.\n";
exit(1);
}
}
$this->tmpl->register_function("sort_select_list", array(&$this, "smarty_sort_select_list"), false);
- $this->tmpl->assign('search_from_date', $this->get_calendar('from'));
- $this->tmpl->assign('search_to_date', $this->get_calendar('to'));
+ $this->tmpl->assign('search_from_date', $this->get_date_text_field('from'));
+ $this->tmpl->assign('search_to_date', $this->get_date_text_field('to'));
$this->tmpl->assign('preset_selected_tags', $this->getSelectedTags());
$this->tmpl->assign('preset_available_tags', $this->getAvailableTags());
if(!isset($content)) {
/* if tags are already selected, we can immediately display photo-index */
if((isset($_SESSION['selected_tags']) && !empty($_SESSION['selected_tags']) &&
- $_SESSION['start_action'] != 'showp') || $_SESSION['start_action'] == 'showpi')
+ isset($_SESSION['start_action']) && $_SESSION['start_action'] != 'showp') ||
+ (isset($_SESSION['start_action']) && $_SESSION['start_action'] == 'showpi'))
$this->tmpl->assign('initial_content', $this->showPhotoIndex());
else {
/* if a photo is already selected, we can immediately display single-photo */
$meta_res = $info[0] ."x". $info[1];
}
- $meta_date = isset($meta['FileDateTime']) ? strftime("%a %x %X", $meta['FileDateTime']) : "n/a";
$meta_make = isset($meta['Make']) ? $meta['Make'] ." / ". $meta['Model'] : "n/a";
$meta_size = isset($meta['FileSize']) ? round($meta['FileSize']/1024, 1) ."kbyte" : "n/a";
$this->tmpl->assign('width', $info_thumb[0]);
$this->tmpl->assign('height', $info_thumb[1]);
- $this->tmpl->assign('ExifMadeOn', $meta_date);
+ $this->tmpl->assign('ExifMadeOn', strftime("%a %x %X", $details['time']));
$this->tmpl->assign('ExifMadeWith', $meta_make);
$this->tmpl->assign('ExifOrigResolution', $meta_res);
$this->tmpl->assign('ExifFileSize', $meta_size);
public function startSearch()
{
/* date search */
- if(isset($_POST['from']) && $this->isValidDate($_POST['from'])) {
- $from = $_POST['from'];
+ if(isset($_POST['date_from']) && $this->isValidDate($_POST['date_from'])) {
+ $date_from = $_POST['date_from'];
}
- if(isset($_POST['to']) && $this->isValidDate($_POST['to'])) {
- $to = $_POST['to'];
+ if(isset($_POST['date_to']) && $this->isValidDate($_POST['date_to'])) {
+ $date_to = $_POST['date_to'];
}
/* tag-name search */
$this->get_tags();
- if(isset($from) && !empty($from))
- $_SESSION['from_date'] = strtotime($from ." 00:00:00");
+ if(isset($date_from) && !empty($date_from))
+ $_SESSION['from_date'] = strtotime($date_from ." 00:00:00");
else
unset($_SESSION['from_date']);
- if(isset($to) && !empty($to))
- $_SESSION['to_date'] = strtotime($to ." 23:59:59");
+ if(isset($date_to) && !empty($date_to))
+ $_SESSION['to_date'] = strtotime($date_to ." 23:59:59");
else
unset($_SESSION['to_date']);
} // _error()
/**
- * output calendard input fields
+ * get calendar input-text fields
+ *
+ * this function returns a text-field used for the data selection.
+ * Either it will be filled with the current date or, if available,
+ * filled with the date user entered previously.
+ *
* @param string $mode
* @return string
*/
- private function get_calendar($mode)
+ private function get_date_text_field($mode)
{
- $year = isset($_SESSION[$mode .'_date']) ? date("Y", $_SESSION[$mode .'_date']) : date("Y");
- $month = isset($_SESSION[$mode .'_date']) ? date("m", $_SESSION[$mode .'_date']) : date("m");
- $day = isset($_SESSION[$mode .'_date']) ? date("d", $_SESSION[$mode .'_date']) : date("d");
+ $date = isset($_SESSION[$mode .'_date']) ? date("Y", $_SESSION[$mode .'_date']) : date("Y");
+ $date.= "-";
+ $date.= isset($_SESSION[$mode .'_date']) ? date("m", $_SESSION[$mode .'_date']) : date("m");
+ $date.= "-";
+ $date.= isset($_SESSION[$mode .'_date']) ? date("d", $_SESSION[$mode .'_date']) : date("d");
- $output = "<input type=\"text\" size=\"3\" id=\"". $mode ."year\" value=\"". $year ."\"";
- if(!isset($_SESSION[$mode .'_date']))
- $output.= " disabled=\"disabled\"";
- $output.= " />\n";
- $output.= "<input type=\"text\" size=\"1\" id=\"". $mode ."month\" value=\"". $month ."\"";
- if(!isset($_SESSION[$mode .'_date']))
- $output.= " disabled=\"disabled\"";
- $output.= " />\n";
- $output.= "<input type=\"text\" size=\"1\" id=\"". $mode ."day\" value=\"". $day ."\"";
+ $output = "<input type=\"text\" size=\"15\" id=\"date_". $mode ."\" value=\"". $date ."\"";
if(!isset($_SESSION[$mode .'_date']))
$output.= " disabled=\"disabled\"";
$output.= " />\n";
return $output;
- } // get_calendar()
+ } // get_date_text_field()
/**
* output calendar matrix
$meta = $this->get_meta_informations($orig_path);
}
- $meta_date = isset($meta['FileDateTime']) ? $meta['FileDateTime'] : filemtime($orig_path);
-
?>
<item>
<title><?php print htmlspecialchars($this->parse_uri($details['uri'], 'filename')); ?></title>
<link><?php print htmlspecialchars($orig_url); ?></link>
<guid><?php print htmlspecialchars($orig_url); ?></guid>
- <dc:date.Taken><?php print strftime("%Y-%m-%dT%H:%M:%S+00:00", $meta_date); ?></dc:date.Taken>
+ <dc:date.Taken><?php print strftime("%Y-%m-%dT%H:%M:%S+00:00", $details['time']); ?></dc:date.Taken>
<description>
<?php print $thumb_html; ?>
</description>
- <pubDate><?php print strftime("%a, %d %b %Y %T %z", $meta_date); ?></pubDate>
+ <pubDate><?php print strftime("%a, %d %b %Y %T %z", $details['time']); ?></pubDate>
</item>
<?php
return " ORDER BY t.name DESC ,p.time ASC";
break;
case 'rate_asc':
- return " ORDER BY t.name ASC, p.rating ASC";
+ return " ORDER BY p.rating ASC, t.name ASC";
break;
case 'rate_desc':
- return " ORDER BY t.name DESC, p.rating DESC";
+ return " ORDER BY p.rating DESC, t.name DESC";
break;
}