}
$this->cfg_db = new PHPFSPOT_DB(&$this, $this->cfg->phpfspot_db);
+ if(!is_writeable($this->cfg->phpfspot_db)) {
+ print $this->cfg->phpfspot_db ." is not writeable for user ". $this->getuid() ."\n";
+ exit(1);
+ }
$this->check_config_table();
+
$this->tmpl = new PHPFSPOT_TMPL($this);
$this->get_tags();
$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('template_path', 'themes/'. $this->cfg->theme_name);
$_SESSION['start_action'] = $_GET['mode'];
$this->tmpl->show("export.tpl");
return;
break;
+ case 'slideshow':
+ $this->tmpl->show("slideshow.tpl");
+ return;
+ break;
}
$this->tmpl->assign('from_date', $this->get_calendar('from'));
$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 */
$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;
}
$this->tmpl->assign('next_img', $next_img);
}
$this->tmpl->assign('mini_width', $this->cfg->mini_width);
+ $this->tmpl->assign('photo_number', $i);
+ $this->tmpl->assign('photo_count', count($all_photos));
$this->tmpl->show("single_photo.tpl");
ON pt1.photo_id=pt". ($i+2) .".photo_id
";
}
+ $query_str.= "
+ INNER JOIN photos p
+ ON pt1.photo_id=p.id
+ ";
$query_str.= "WHERE pt1.tag_id=". $_SESSION['selected_tags'][0];
for($i = 1; $i < count($_SESSION['selected_tags']); $i++) {
$query_str.= "
}
$export_link = "index.php?mode=export";
+ $slideshow_link = "index.php?mode=slideshow";
$this->tmpl->assign('extern_link', $extern_link);
+ $this->tmpl->assign('slideshow_link', $slideshow_link);
$this->tmpl->assign('export_link', $export_link);
$this->tmpl->assign('count', $count);
$this->tmpl->assign('width', $this->cfg->thumb_width);
$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;
}
} // 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;
}
{
switch($_SESSION['sort_order']) {
case 'date_asc':
- return "ORDER BY p.time ASC";
+ return " ORDER BY p.time ASC";
break;
case 'date_desc':
- return "ORDER BY p.time DESC";
+ return " ORDER BY p.time DESC";
break;
case 'name_asc':
- return "ORDER BY p.name ASC";
+ return " ORDER BY p.name ASC";
break;
case 'name_desc':
- return "ORDER BY p.name DESC";
+ return " ORDER BY p.name DESC";
break;
}
- return $_SESSION['sort_order'];
-
} // get_sort_order()
+
+ /***
+ * return the next to be shown slide show image
+ *
+ * this function returns the URL of the next image
+ * in the slideshow sequence.
+ */
+ public function getNextSlideShowImage()
+ {
+ $all_photos = $this->getPhotoSelection();
+
+ if(!isset($_SESSION['slideshow_img']) || $_SESSION['slideshow_img'] == count($all_photos)-1)
+ $_SESSION['slideshow_img'] = 0;
+ else
+ $_SESSION['slideshow_img']++;
+
+ $server_name = $_SERVER['SERVER_NAME'];
+ if(!isset($_SERVER['HTTPS'])) $protocol = "http";
+ else $protocol = "https";
+
+ return $protocol ."://". $server_name . $this->cfg->web_path ."phpfspot_img.php?idx=". $all_photos[$_SESSION['slideshow_img']] ."&width=". $this->cfg->photo_width;
+
+ } // getNextSlideShowImage()
+
+ /***
+ * return the previous to be shown slide show image
+ *
+ * this function returns the URL of the previous image
+ * in the slideshow sequence.
+ */
+ public function getPrevSlideShowImage()
+ {
+ $all_photos = $this->getPhotoSelection();
+
+ if(!isset($_SESSION['slideshow_img']) || $_SESSION['slideshow_img'] == 0)
+ $_SESSION['slideshow_img'] = 0;
+ else
+ $_SESSION['slideshow_img']--;
+
+ $server_name = $_SERVER['SERVER_NAME'];
+ if(!isset($_SERVER['HTTPS'])) $protocol = "http";
+ else $protocol = "https";
+
+ return $protocol ."://". $server_name . $this->cfg->web_path ."phpfspot_img.php?idx=". $all_photos[$_SESSION['slideshow_img']] ."&width=". $this->cfg->photo_width;
+
+ } // getPrevSlideShowImage()
+
+ public function resetSlideShow()
+ {
+ if(isset($_SESSION['slideshow_img']))
+ unset($_SESSION['slideshow_img']);
+ } // resetSlideShow()
+
+ /***
+ * get random photo
+ *
+ * this function will get all photos from the fspot
+ * database and randomly return ONE entry
+ *
+ * saddly there is yet no sqlite3 function which returns
+ * the bulk result in array, so we have to fill up our
+ * own here.
+ */
+ public function get_random_photo()
+ {
+ $all = Array();
+
+ $result = $this->db->db_query("
+ SELECT id
+ FROM photos
+ ");
+
+ while($row = $this->db->db_fetch_object($result)) {
+ array_push($all, $row['id']);
+ }
+
+ return $all[array_rand($all)];
+
+ } // get_random_photo()
+
}
?>