From 79fdc8c20f4c0babdc031b7b6e4e13d0a9a75742 Mon Sep 17 00:00:00 2001 From: Alex Cabal Date: Fri, 13 Dec 2024 23:21:04 -0600 Subject: [PATCH] Some type check fixes --- lib/Ebook.php | 2 +- templates/EbookGrid.php | 2 +- www/ebook-placeholders/get.php | 4 ++++ www/ebook-placeholders/new.php | 26 +++++++++++++++----------- 4 files changed, 21 insertions(+), 13 deletions(-) diff --git a/lib/Ebook.php b/lib/Ebook.php index 3b30bedd..8ac4c3da 100644 --- a/lib/Ebook.php +++ b/lib/Ebook.php @@ -41,7 +41,7 @@ use function Safe\shell_exec; * @property string $TextSinglePageUrl * @property string $TextSinglePageSizeFormatted * @property string $IndexableText - * @property EbookPlaceholder $EbookPlaceholder + * @property ?EbookPlaceholder $EbookPlaceholder */ class Ebook{ use Traits\Accessor; diff --git a/templates/EbookGrid.php b/templates/EbookGrid.php index 404cb98a..fb2b679a 100644 --- a/templates/EbookGrid.php +++ b/templates/EbookGrid.php @@ -12,7 +12,7 @@ $collection = $collection ?? null; -
  • resource="Url ?>" property="schema:hasPart"GetCollectionPosition($collection) !== null){ ?> value="GetCollectionPosition($collection) ?>" about="Url ?>"EbookPlaceholder?->IsWanted){ ?> class="ribbon EbookPlaceholder?->Status == \Enums\EbookPlaceholderStatus::InProgress){ ?>in-progresswanted"EbookPlaceholder !== null && !$ebook->EbookPlaceholder->IsPublicDomain){ ?> class="ribbon not-pd"> +
  • resource="Url ?>" property="schema:hasPart"GetCollectionPosition($collection) !== null){ ?> value="GetCollectionPosition($collection) ?>" about="Url ?>"EbookPlaceholder?->IsWanted){ ?> class="ribbon EbookPlaceholder->Status == \Enums\EbookPlaceholderStatus::InProgress){ ?>in-progresswanted"EbookPlaceholder !== null && !$ebook->EbookPlaceholder->IsPublicDomain){ ?> class="ribbon not-pd"> GetCollectionPosition($collection) !== null){ ?> diff --git a/www/ebook-placeholders/get.php b/www/ebook-placeholders/get.php index 92bd4155..ecf8f4ed 100644 --- a/www/ebook-placeholders/get.php +++ b/www/ebook-placeholders/get.php @@ -7,6 +7,10 @@ $ebook = null; try{ $ebook = Ebook::GetByIdentifier($identifier); + + if($ebook->EbookPlaceholder === null){ + throw new Exceptions\EbookNotFoundException(); + } } catch(Exceptions\EbookNotFoundException){ Template::Emit404(); diff --git a/www/ebook-placeholders/new.php b/www/ebook-placeholders/new.php index c2416c55..ac6fb2a0 100644 --- a/www/ebook-placeholders/new.php +++ b/www/ebook-placeholders/new.php @@ -19,19 +19,23 @@ try{ if($isCreated){ // We got here because an `Ebook` was successfully created. http_response_code(Enums\HttpCode::Created->value); - $createdEbook = clone $ebook; + if($ebook !== null){ + $createdEbook = clone $ebook; - if(sizeof($ebook->CollectionMemberships) > 0){ - // If the `EbookPlaceholder` we just added is part of a collection, prefill the form with the same data to make it easier to submit series. - unset($ebook->EbookId); - unset($ebook->Title); - $ebook->EbookPlaceholder->YearPublished = null; - foreach($ebook->CollectionMemberships as $collectionMembership){ - $collectionMembership->SequenceNumber++; + if(sizeof($ebook->CollectionMemberships) > 0){ + // If the `EbookPlaceholder` we just added is part of a collection, prefill the form with the same data to make it easier to submit series. + unset($ebook->EbookId); + unset($ebook->Title); + if($ebook->EbookPlaceholder !== null){ + $ebook->EbookPlaceholder->YearPublished = null; + } + foreach($ebook->CollectionMemberships as $collectionMembership){ + $collectionMembership->SequenceNumber++; + } + } + else{ + $ebook = null; } - } - else{ - $ebook = null; } session_unset();