Add single photo pages, navigateable by arrow keys and touch gestures.
This commit is contained in:
138
templates/PhotoPage.php
Normal file
138
templates/PhotoPage.php
Normal file
@@ -0,0 +1,138 @@
|
||||
<?php
|
||||
/*****************************************************************************
|
||||
* PhotoPage.php
|
||||
* Contains the photo page template.
|
||||
*
|
||||
* Kabuki CMS (C) 2013-2016, Aaron van Geffen
|
||||
*****************************************************************************/
|
||||
|
||||
class PhotoPage extends SubTemplate
|
||||
{
|
||||
private $photo;
|
||||
private $exif;
|
||||
|
||||
public function __construct(Image $photo)
|
||||
{
|
||||
$this->photo = $photo;
|
||||
}
|
||||
|
||||
protected function html_content()
|
||||
{
|
||||
$this->photoNav();
|
||||
$this->photo();
|
||||
|
||||
echo '
|
||||
<div id="sub_photo">
|
||||
<h2 class="entry-title">', $this->photo->getTitle(), '</h2>';
|
||||
|
||||
$this->taggedPeople();
|
||||
|
||||
echo '
|
||||
</div>';
|
||||
|
||||
$this->photoMeta();
|
||||
|
||||
echo '
|
||||
<script type="text/javascript" src="', BASEURL, '/js/photonav.js"></script>';
|
||||
}
|
||||
|
||||
private function photo()
|
||||
{
|
||||
echo '
|
||||
<div id="photo_frame">
|
||||
<a href="', $this->photo->getUrl(), '">';
|
||||
|
||||
if ($this->photo->isPortrait())
|
||||
echo '
|
||||
<img src="', $this->photo->getThumbnailUrl(null, 960), '" alt="">';
|
||||
else
|
||||
echo '
|
||||
<img src="', $this->photo->getThumbnailUrl(1280, null), '" alt="">';
|
||||
|
||||
echo '
|
||||
</a>
|
||||
</div>';
|
||||
}
|
||||
|
||||
private function photoNav()
|
||||
{
|
||||
if (false) // $previous_post = $this->post->getPreviousPostUrl())
|
||||
echo '
|
||||
<a href="', $previous_post, '" id="previous_photo"><em>Previous photo</em></a>';
|
||||
else
|
||||
echo '
|
||||
<span id="previous_photo"><em>Previous photo</em></span>';
|
||||
|
||||
if (false) //$this->post->getNextPostUrl())
|
||||
echo '
|
||||
<a href="', $next_post, '" id="next_photo"><em>Next photo</em></a>';
|
||||
else
|
||||
echo '
|
||||
<span id="next_photo"><em>Next photo</em></span>';
|
||||
}
|
||||
|
||||
private function photoMeta()
|
||||
{
|
||||
echo '
|
||||
<div id="photo_exif_box">
|
||||
<h3>EXIF</h3>
|
||||
<dl class="photo_meta">';
|
||||
|
||||
if (!empty($this->exif->created_timestamp))
|
||||
echo '
|
||||
<dt>Date Taken</dt>
|
||||
<dd>', date("j M Y, H:i:s", $this->exif->created_timestamp), '</dd>';
|
||||
|
||||
if (!empty($this->exif->camera))
|
||||
echo '
|
||||
<dt>Model</dt>
|
||||
<dd>', $this->exif->camera, '</dd>';
|
||||
|
||||
if (!empty($this->exif->shutter_speed))
|
||||
echo '
|
||||
<dt>Shutter Speed</dt>
|
||||
<dd>', $this->exif->shutterSpeedFraction(), '</dd>';
|
||||
|
||||
if (!empty($this->exif->aperture))
|
||||
echo '
|
||||
<dt>Aperture</dt>
|
||||
<dd>f/', number_format($this->exif->aperture, 1), '</dd>';
|
||||
|
||||
if (!empty($this->exif->focal_length))
|
||||
echo '
|
||||
<dt>Focal Length</dt>
|
||||
<dd>', $this->exif->focal_length, ' mm</dd>';
|
||||
|
||||
if (!empty($this->exif->iso))
|
||||
echo '
|
||||
<dt>ISO Speed</dt>
|
||||
<dd>', $this->exif->iso, '</dd>';
|
||||
|
||||
echo '
|
||||
</dl>
|
||||
</div>';
|
||||
}
|
||||
|
||||
private function taggedPeople()
|
||||
{
|
||||
echo '
|
||||
<h3>Tags</h3>
|
||||
<ul>';
|
||||
|
||||
foreach ($this->photo->getTags() as $tag)
|
||||
{
|
||||
echo '
|
||||
<li>
|
||||
<a rel="tag" title="View all posts tagged ', $tag->tag, '" href="', $tag->getUrl(), '" class="entry-tag">', $tag->tag, '</a>
|
||||
</li>';
|
||||
}
|
||||
|
||||
echo '
|
||||
</ul>';
|
||||
}
|
||||
|
||||
public function setExif(EXIF $exif)
|
||||
{
|
||||
$this->exif = $exif;
|
||||
}
|
||||
}
|
||||
@@ -94,7 +94,7 @@ class PhotosIndex extends SubTemplate
|
||||
<a class="edit" href="', BASEURL, '/editasset/?id=', $image->getId(), '">Edit</a>';
|
||||
|
||||
echo '
|
||||
<a href="', $image->getUrl(), '">
|
||||
<a href="', $image->getPageUrl(), '">
|
||||
<img src="', $image->getThumbnailUrl($width, $height, $crop, $fit), '" alt="" title="', $image->getTitle(), '">';
|
||||
|
||||
if ($this->show_labels)
|
||||
|
||||
Reference in New Issue
Block a user