photo = $photo; } public function setPreviousPhotoUrl($url) { $this->previous_photo_url = $url; } public function setNextPhotoUrl($url) { $this->next_photo_url = $url; } public function html_main() { $this->photoNav(); $this->photo(); echo '

', $this->photo->getTitle(), '

'; $this->printTags('Album', 'Album', false); $this->printTags('Tagged People', 'Person', true); echo '
'; $this->photoMeta(); $this->userActions(); echo '
'; } protected function photo() { echo '
'; if ($this->photo->isPortrait()) { echo '
', $this->photo->getInlineImage(null, 960, 'normal-photo'), $this->photo->getInlineImage(null, 960, 'blur-photo'), '
'; } else { $className = $this->photo->isPanorama() ? 'panorama-figure' : 'landscape-figure'; echo '
', $this->photo->getInlineImage(1280, null, 'normal-photo'), $this->photo->getInlineImage(1280, null, 'blur-photo'), '
'; } echo '
'; } private function photoNav() { if ($this->previous_photo_url) echo ' '; else echo ' '; if ($this->next_photo_url) echo ' '; else echo ' '; } private function photoMeta() { echo '

EXIF

'; if (!empty($this->exif->created_timestamp)) echo '
Date Taken
', date("j M Y, H:i:s", $this->exif->created_timestamp), '
'; echo '
Uploaded by
', $this->photo->getAuthor()->getfullName(), '
'; if (!empty($this->exif->camera)) echo '
Camera Model
', $this->exif->camera, '
'; if (!empty($this->exif->shutter_speed)) echo '
Shutter Speed
', $this->exif->shutterSpeedFraction(), '
'; if (!empty($this->exif->aperture)) echo '
Aperture
f/', number_format($this->exif->aperture, 1), '
'; if (!empty($this->exif->focal_length)) echo '
Focal Length
', $this->exif->focal_length, ' mm
'; if (!empty($this->exif->iso)) echo '
ISO Speed
', $this->exif->iso, '
'; if (!empty($this->exif->software)) echo '
Software
', $this->exif->software, '
'; echo '
'; } private function printTags($header, $tagKind, $allowLinkingNewTags) { static $nextTagListId = 1; $tagListId = 'tagList' . ($nextTagListId++); echo '

', $header, '

'; $this->printNewTagScript($tagKind, $tagListId, $newTagId); } private function printNewTagScript($tagKind, $tagListId, $newTagId) { echo ' '; } public function setExif(EXIF $exif) { $this->exif = $exif; } public function userActions() { if (!$this->photo->isOwnedBy(Registry::get('user'))) return; echo '

Actions

Edit photo Delete photo
'; } }