diff options
Diffstat (limited to 'phpfspot.class.php')
-rw-r--r-- | phpfspot.class.php | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/phpfspot.class.php b/phpfspot.class.php new file mode 100644 index 0000000..d040f13 --- /dev/null +++ b/phpfspot.class.php @@ -0,0 +1,127 @@ +<?php + +require_once "phpfspot_cfg.php"; +require_once "phpfspot_db.php"; +require_once "phpfspot_tmpl.php"; + +class PHPFSPOT { + + var $cfg; + var $db; + var $tmpl; + var $tags; + var $avail_photos; + var $photos; + var $current_photo; + var $current_tags; + + public function __construct() + { + $this->cfg = new PHPFSPOT_CFG; + + $this->db = new PHPFSPOT_DB(&$this, $this->cfg->db); + $this->tmpl = new PHPFSPOT_TMPL(&$this); + + $this->get_tags(); + $this->get_photos(); + + if(isset($_GET['id']) && is_numeric($_GET['id'])) + $this->current_photo = $_GET['id']; + + } // __construct() + + public function __destruct() + { + + } // __destruct() + + public function show() + { + + if(isset($this->current_photo)) { + $this->tmpl->assign('image_url', 'phpfspot_img.php?idx='. $this->avail_photos[$this->current_photo] ."&width=". $this->cfg->photo_width); + } + + if($this->current_photo > 0) { + $this->tmpl->assign('previous_url', $_SERVER['PHP_SELF'] ."?mode=showphoto&id=". $this->avail_photos[$this->current_photo-1]); + } + + if($this->current_photo < count($this->avail_photos)) { + $this->tmpl->assign('next_url', $_SERVER['PHP_SELF'] ."?mode=showphoto&id=". $this->avail_photos[$this->current_photo+1]); + } + + $this->tmpl->assign('tags', $this->tags); + $this->tmpl->show("index.tpl"); + + + } // show() + + private function get_tags() + { + $result = $this->db->db_query(" + SELECT id,name + FROM tags + ORDER BY sort_priority ASC + "); + + while($row = $this->db->db_fetch_object($result)) { + + $tag_id = $row['id']; + $tag_name = $row['name']; + + $this->tags[$tag_id] = $tag_name; + + } + } // get_tags() + + private function get_photos() + { + $this->avail_photos = Array(); + $count = 0; + + $result = $this->db->db_query(" + SELECT id, name + FROM photos + ORDER BY time ASC + "); + + while($row = $this->db->db_fetch_object($result)) { + + $photo_id = $row['id']; + $photo_name = $row['name']; + + $this->photos[$photo_id] = $photo_name; + $this->avail_photos[$count] = $photo_id; + + if(!isset($this->current_photo)) + $this->current_photo = $count; + + $count++; + + } + + } // get_photos() + + public function get_photo_details($idx) + { + $result = $this->db->db_query(" + SELECT * + FROM photos + WHERE id='". $idx ."' + "); + + return $this->db->db_fetch_object($result); + + } // get_photo_details + + public function translate_path($path, $width = 0) + { + return str_replace($this->cfg->path_replace_from, $this->cfg->path_replace_to, $path); + + } // translate_path + + + +} + +?> |