You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

143 lines
5.0 KiB

<?php
class ShowPhoto
{
var $photo_data;
var $show_comments = 0;
var $photo_nr;
var $photo_size = 0;
function ShowPhoto($photo_id)
{
#global $settings, $db_settings, $pdo;
#if(empty($qsp[2])) $qsp[2]=0;
if(isset($_GET['get_3']) && $_GET['get_3']!=0) $photo_size = 1;
else $photo_size = 0;
if(isset($_GET['get_4'])) $this->show_comments = 1;
else $this->show_comments = 0;
$photo_id = intval($photo_id);
$photo_result = Database::$content->prepare('SELECT id, gallery, sequence, photo_thumbnail, photo_normal, photo_large, width, height, large_height, large_width, title, subtitle, description, description_formatting, template FROM '.Database::$db_settings['photo_table'].' WHERE id=:id LIMIT 1');
$photo_result->bindValue(':id', $photo_id, PDO::PARAM_INT);
$photo_result->execute();
$photo_data = $photo_result->fetch();
if(isset($photo_data['id']))
{
// get ids of photos of current gallery:
$gallery_result = Database::$content->prepare('SELECT id FROM '.Database::$db_settings['photo_table'].' WHERE gallery=:gallery ORDER BY sequence ASC');
$gallery_result->bindValue(':gallery', $photo_data['gallery'], PDO::PARAM_STR);
$gallery_result->execute();
while($gallery_data = $gallery_result->fetch())
{
$gallery_items[] = $gallery_data['id'];
}
$total_photos = count($gallery_items);
$current_photo_key = array_search($photo_data['id'], $gallery_items);
// get id of first, last, next and previous photo:
$first_photo = $gallery_items[0];
$last_photo = $gallery_items[$total_photos-1];
if(isset($gallery_items[$current_photo_key+1]))
{
$next_photo = $gallery_items[$current_photo_key+1];
}
else
{
$next_photo = $first_photo;
}
if(isset($gallery_items[$current_photo_key-1]))
{
$previous_photo = $gallery_items[$current_photo_key-1];
}
else
{
$previous_photo = $last_photo;
}
if($previous_photo==$photo_id)
{
$previous_photo = 0;
$next_photo = 0;
}
$this->photo_data['id'] = $photo_id;
$this->photo_data['gallery'] = $photo_data['gallery'];
$this->photo_data['gallery_items'] = $gallery_items;
$this->photo_data['previous_photo'] = $previous_photo;
$this->photo_data['next_photo'] = $next_photo;
$this->photo_data['total_photos'] = $total_photos;
$this->photo_data['photo_number'] = $current_photo_key+1;
$this->photo_data['photo_size'] = $photo_size;
if($photo_data['photo_large']!='') $this->photo_data['photo_large_available'] = 1;
if($photo_size==1 && $photo_data['photo_large']!='') $this->photo_data['photo'] = $photo_data['photo_large'];
else $this->photo_data['photo'] = $photo_data['photo_normal'];
$this->photo_data['photo_large'] = $photo_data['photo_large'];
$this->photo_data['thumbnail'] = $photo_data['photo_thumbnail'];
$this->photo_data['title'] = $photo_data['title'];
$this->photo_data['subtitle'] = $photo_data['subtitle'];
if($photo_data['description_formatting']==1)
{
$this->photo_data['description'] = auto_html($photo_data['description']);
}
else
{
$this->photo_data['description'] = $photo_data['description'];
}
if(substr(strtolower($this->photo_data['photo']), -4) == '.swf')
{
$this->photo_data['type'] = 'flash';
if($this->photo_data['photo_size']==1)
{
$this->photo_data['width'] = intval($photo_data['large_width']);
$this->photo_data['height'] = intval($photo_data['large_height']);
}
else
{
$this->photo_data['width'] = intval($photo_data['width']);
$this->photo_data['height'] = intval($photo_data['height']);
}
}
elseif(substr(strtolower($this->photo_data['photo']), -4) == '.flv')
{
$this->photo_data['type'] = 'flv';
if($this->photo_data['photo_size']==1)
{
$this->photo_data['width'] = intval($photo_data['large_width']);
$this->photo_data['height'] = intval($photo_data['large_height']);
}
else
{
$this->photo_data['width'] = intval($photo_data['width']);
$this->photo_data['height'] = intval($photo_data['height']);
}
}
else
{
$this->photo_data['type'] = 'image';
$photo_info = getimagesize(BASE_PATH.MEDIA_DIR.$this -> photo_data['photo']);
$this->photo_data['width'] = $photo_info[0];
$this->photo_data['height'] = $photo_info[1];
}
$this->photo_data['template'] = $photo_data['template'];
#$this -> photo_data['language_file'] = $photo_data['language_file'];
#$this -> photo_data['language_file'] = $language_file;
}
#return $this->photo_data;
}
function get_photo_data()
{
return $this->photo_data;
}
function show_comments()
{
return $this->show_comments;
}
}
?>