ViewPhoto: use class state to store Image object

This commit is contained in:
Aaron van Geffen 2024-01-11 18:59:50 +01:00
parent bc08e867f0
commit 55c33c024e

View File

@ -8,6 +8,8 @@
class ViewPhoto extends HTMLController
{
private Image $photo;
public function __construct()
{
// Ensure we're logged in at this point.
@ -19,22 +21,24 @@ class ViewPhoto extends HTMLController
if (empty($photo))
throw new NotFoundException();
$this->photo = $photo->getImage();
Session::resetSessionToken();
parent::__construct($photo->getTitle() . ' - ' . SITE_TITLE);
parent::__construct($this->photo->getTitle() . ' - ' . SITE_TITLE);
if (!empty($_POST))
$this->handleTagging($photo->getImage());
$this->handleTagging();
else
$this->handleViewPhoto($photo);
$this->handleViewPhoto();
}
private function handleViewPhoto(Asset $photo)
private function handleViewPhoto()
{
$page = new PhotoPage($photo->getImage());
$page = new PhotoPage($this->photo);
// Exif data?
$exif = EXIF::fromFile($photo->getFullPath());
$exif = EXIF::fromFile($this->photo->getFullPath());
if ($exif)
$page->setExif($exif);
@ -44,10 +48,10 @@ class ViewPhoto extends HTMLController
$page->setTag($tag);
$this->page->adopt($page);
$this->page->setCanonicalUrl($photo->getPageUrl());
$this->page->setCanonicalUrl($this->photo->getPageUrl());
}
private function handleTagging(Image $photo)
private function handleTagging()
{
header('Content-Type: text/json; charset=utf-8');
@ -61,7 +65,7 @@ class ViewPhoto extends HTMLController
// We are!
if (!isset($_POST['delete']))
{
$photo->linkTags([(int) $_POST['id_tag']]);
$this->photo->linkTags([(int) $_POST['id_tag']]);
echo json_encode(['success' => true]);
exit;
}