mirror of
https://github.com/standardebooks/web.git
synced 2025-07-10 00:30:28 -04:00
Add a common template for Artwork creation and editing to share
This commit is contained in:
parent
813d4f601c
commit
ce4a28c675
4 changed files with 284 additions and 197 deletions
202
templates/ArtworkCreateEditFields.php
Normal file
202
templates/ArtworkCreateEditFields.php
Normal file
|
@ -0,0 +1,202 @@
|
|||
<?
|
||||
use Safe\DateTime;
|
||||
|
||||
$artwork = $artwork ?? null;
|
||||
$imageRequired = $imageRequired ?? true;
|
||||
$isAdminView = $isAdminView ?? false;
|
||||
|
||||
$now = new DateTime('now', new DateTimeZone('America/Juneau')); // Latest continental US time zone
|
||||
?>
|
||||
<fieldset>
|
||||
<legend>Artist details</legend>
|
||||
<label>
|
||||
<span>Name</span>
|
||||
<span>For existing artists, leave the year of death blank.</span>
|
||||
<datalist id="artist-names">
|
||||
<? foreach(Library::GetAllArtists() as $artist){ ?>
|
||||
<option value="<?= Formatter::ToPlainText($artist->Name) ?>"><?= Formatter::ToPlainText($artist->Name) ?>, d. <? if($artist->DeathYear !== null){ ?><?= $artist->DeathYear ?><? }else{ ?>unknown<? } ?></option>
|
||||
<? foreach($artist->AlternateSpellings as $alternateSpelling){ ?>
|
||||
<option value="<?= Formatter::ToPlainText($alternateSpelling) ?>"><?= Formatter::ToPlainText($alternateSpelling) ?>, d. <? if($artist->DeathYear !== null){ ?><?= $artist->DeathYear ?><? }else{ ?>unknown<? } ?></option>
|
||||
<? } ?>
|
||||
<? } ?>
|
||||
</datalist>
|
||||
<input
|
||||
type="text"
|
||||
name="artist-name"
|
||||
list="artist-names"
|
||||
required="required"
|
||||
autocomplete="off"
|
||||
value="<?= Formatter::ToPlainText($artwork->Artist->Name) ?>"
|
||||
/>
|
||||
</label>
|
||||
<label>
|
||||
<span>Year of death</span>
|
||||
<span>If circa or unknown, enter the latest possible year.</span>
|
||||
<? /* Not using <input type="number"> for now, see https://technology.blog.gov.uk/2020/02/24/why-the-gov-uk-design-system-team-changed-the-input-type-for-numbers/ */ ?>
|
||||
<input
|
||||
type="text"
|
||||
name="artist-year-of-death"
|
||||
inputmode="numeric"
|
||||
pattern="[0-9]+"
|
||||
value="<?= $artwork->Artist->DeathYear ?>"
|
||||
/>
|
||||
</label>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>Artwork details</legend>
|
||||
<label>
|
||||
Name
|
||||
<input type="text" name="artwork-name" required="required"
|
||||
value="<?= Formatter::ToPlainText($artwork->Name) ?>"/>
|
||||
</label>
|
||||
<fieldset>
|
||||
<label>
|
||||
Year of completion
|
||||
<input
|
||||
type="text"
|
||||
name="artwork-year"
|
||||
inputmode="numeric"
|
||||
pattern="[0-9]+"
|
||||
value="<?= $artwork->CompletedYear ?>"
|
||||
/>
|
||||
</label>
|
||||
<label>
|
||||
<input
|
||||
type="checkbox"
|
||||
name="artwork-year-is-circa"
|
||||
<? if($artwork->CompletedYearIsCirca){ ?>checked="checked"<? } ?>
|
||||
/> Year is circa
|
||||
</label>
|
||||
</fieldset>
|
||||
<label>
|
||||
<span>Tags</span>
|
||||
<span>A list of comma-separated tags.</span>
|
||||
<input
|
||||
type="text"
|
||||
name="artwork-tags"
|
||||
required="required"
|
||||
autocomplete="off"
|
||||
value="<?= Formatter::ToPlainText($artwork->ImplodeTags()) ?>"
|
||||
/>
|
||||
</label>
|
||||
<label>
|
||||
<span>High-resolution image</span>
|
||||
<span>jpg, bmp, png, and tiff are accepted; <?= number_format(ARTWORK_IMAGE_MINIMUM_WIDTH) ?> × <?= number_format(ARTWORK_IMAGE_MINIMUM_HEIGHT) ?> minimum; 32MB max.</span>
|
||||
<input
|
||||
type="file"
|
||||
name="artwork-image"
|
||||
<? if($imageRequired){ ?>required="required"<? } ?>
|
||||
accept="<?= implode(',', ImageMimeType::Values()) ?>"
|
||||
/>
|
||||
</label>
|
||||
</fieldset>
|
||||
<fieldset id="pd-proof">
|
||||
<legend>Proof of U.S. public domain status</legend>
|
||||
<p>See the <a href="/manual/latest/10-art-and-images#10.3.3.7">US-PD clearance section of the SEMoS</a> for details on this section.</p>
|
||||
<p>PD proof must take the form of <strong>either</strong>:</p>
|
||||
<fieldset>
|
||||
<label>
|
||||
URL of the artwork at an <a href="/manual/latest/10-art-and-images#10.3.3.7.4">approved museum</a>
|
||||
<input
|
||||
type="url"
|
||||
name="artwork-museum-url"
|
||||
autocomplete="off"
|
||||
value="<?= Formatter::ToPlainText($artwork->MuseumUrl) ?>"
|
||||
/>
|
||||
</label>
|
||||
</fieldset>
|
||||
<p><strong>or</strong> proof that the artwork was reproduced in a book published before <?= PD_STRING ?>, including the following:</p>
|
||||
<fieldset>
|
||||
<label>
|
||||
<input
|
||||
type="checkbox"
|
||||
name="artwork-is-published-in-us"
|
||||
value="true"
|
||||
<? if($artwork->IsPublishedInUs){ ?> checked="checked"<? } ?> />
|
||||
<span>This book was published in the U.S.</span>
|
||||
<span>Yes, if a U.S. city appears anywhere near the publication year or rights statement.</span>
|
||||
</label>
|
||||
<label>
|
||||
Year of publication
|
||||
<input
|
||||
type="text"
|
||||
name="artwork-publication-year"
|
||||
inputmode="numeric"
|
||||
pattern="[0-9]+"
|
||||
value="<?= $artwork->PublicationYear ?>"
|
||||
/>
|
||||
</label>
|
||||
<label>
|
||||
<span>URL of page with year of publication</span>
|
||||
<span>Roman numerals on the page scan are OK.</span>
|
||||
<input
|
||||
type="url"
|
||||
name="artwork-publication-year-page-url"
|
||||
autocomplete="off"
|
||||
value="<?= Formatter::ToPlainText($artwork->PublicationYearPageUrl) ?>"
|
||||
/>
|
||||
</label>
|
||||
<label>
|
||||
<span>URL of page with rights statement</span>
|
||||
<span><strong>This page must include a statement of rights, like the copyright symbol “©” or the words “copyright” or “all rights reserved.”</strong> If no such page exists, leave this blank. This page might be the same page as above. Non-English is OK; keywords in other languages include “<i>droits</i>” and “<i>rechte vorbehalten</i>.”</span>
|
||||
<input
|
||||
type="url"
|
||||
name="artwork-copyright-page-url"
|
||||
autocomplete="off"
|
||||
value="<?= Formatter::ToPlainText($artwork->CopyrightPageUrl) ?>"
|
||||
/>
|
||||
</label>
|
||||
<label>
|
||||
<span>URL of page with artwork</span>
|
||||
<span>Review the many <a href="/manual/latest/10-art-and-images#10.3.3.7.1.1">gotchas you may encounter</a> when confirming the reproduction is the exact same painting.</span>
|
||||
<input
|
||||
type="url"
|
||||
name="artwork-artwork-page-url"
|
||||
autocomplete="off"
|
||||
value="<?= Formatter::ToPlainText($artwork->ArtworkPageUrl) ?>"
|
||||
/>
|
||||
</label>
|
||||
</fieldset>
|
||||
<p><strong>or</strong> a reason for a special exception:</p>
|
||||
<fieldset>
|
||||
<label>
|
||||
<span>Public domain status exception reason</span>
|
||||
<span>Markdown accepted.</span>
|
||||
<textarea maxlength="1024" name="artwork-exception"><?= Formatter::ToPlainText($artwork->Exception) ?></textarea>
|
||||
</label>
|
||||
</fieldset>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>Other details</legend>
|
||||
<label>
|
||||
<span>Special notes</span>
|
||||
<span>Any notes to remember about this artwork. Markdown accepted.</span>
|
||||
<textarea maxlength="1024" name="artwork-notes"><?= Formatter::ToPlainText($artwork->Notes) ?></textarea>
|
||||
</label>
|
||||
</fieldset>
|
||||
<? if($isAdminView){ ?>
|
||||
<fieldset>
|
||||
<legend>Editor options</legend>
|
||||
<? if($GLOBALS['User']->Benefits->CanReviewOwnArtwork){ ?>
|
||||
<label class="select">
|
||||
<span>Artwork approval status</span>
|
||||
<span>
|
||||
<select name="artwork-status">
|
||||
<option value="<?= ArtworkStatus::Unverified->value ?>"<? if($artwork->Status == ArtworkStatus::Unverified){ ?> selected="selected"<? } ?>>Unverified</option>
|
||||
<option value="<?= ArtworkStatus::Declined->value ?>"<? if($artwork->Status == ArtworkStatus::Declined){ ?> selected="selected"<? } ?>>Declined</option>
|
||||
<option value="<?= ArtworkStatus::Approved->value ?>"<? if($artwork->Status == ArtworkStatus::Approved){ ?> selected="selected"<? } ?>>Approved</option>
|
||||
<option value="<?= ArtworkStatus::InUse->value ?>"<? if($artwork->Status == ArtworkStatus::InUse){ ?> selected="selected"<? } ?>>In use</option>
|
||||
</select>
|
||||
</span>
|
||||
</label>
|
||||
<? } ?>
|
||||
<label>
|
||||
<span>In use by</span>
|
||||
<span>Ebook file system slug, like <code>c-s-lewis_poetry</code>. If not in use, leave this blank.</span>
|
||||
<input type="text" name="artwork-ebook-www-filesystem-path" value="<?= Formatter::ToPlainText($artwork->EbookWwwFilesystemPath) ?>"/>
|
||||
</label>
|
||||
</fieldset>
|
||||
<? } ?>
|
||||
<div class="footer">
|
||||
<button>Submit</button>
|
||||
</div>
|
73
www/artworks/edit.php
Normal file
73
www/artworks/edit.php
Normal file
|
@ -0,0 +1,73 @@
|
|||
<?
|
||||
use function Safe\session_unset;
|
||||
|
||||
session_start();
|
||||
|
||||
$exception = $_SESSION['exception'] ?? null;
|
||||
|
||||
try{
|
||||
$artwork = Artwork::GetByUrl(HttpInput::Str(GET, 'artist-url-name') ?? '', HttpInput::Str(GET, 'artwork-url-name') ?? '');
|
||||
|
||||
if($GLOBALS['User'] === null){
|
||||
throw new Exceptions\LoginRequiredException();
|
||||
}
|
||||
|
||||
$isEditingAllowed = ($artwork->Status == ArtworkStatus::Unverified) && ($GLOBALS['User']->Benefits->CanReviewArtwork || ($artwork->SubmitterUserId == $GLOBALS['User']->UserId));
|
||||
if(!$isEditingAllowed){
|
||||
throw new Exceptions\InvalidPermissionsException();
|
||||
}
|
||||
|
||||
$isAdminView = $GLOBALS['User']->Benefits->CanReviewArtwork ?? false;
|
||||
|
||||
// We got here because an artwork update had errors and the user has to try again
|
||||
if($exception){
|
||||
http_response_code(422);
|
||||
session_unset();
|
||||
}
|
||||
}
|
||||
catch(Exceptions\ArtworkNotFoundException){
|
||||
Template::Emit404();
|
||||
}
|
||||
catch(Exceptions\LoginRequiredException){
|
||||
Template::RedirectToLogin();
|
||||
}
|
||||
catch(Exceptions\InvalidPermissionsException){
|
||||
Template::Emit403(); // No permissions to submit artwork
|
||||
}
|
||||
|
||||
?>
|
||||
<?= Template::Header(
|
||||
[
|
||||
'title' => 'Edit Artwork',
|
||||
'artwork' => true,
|
||||
'highlight' => '',
|
||||
'description' => 'Edit public domain artwork to the database for use as cover art.'
|
||||
]
|
||||
) ?>
|
||||
<main>
|
||||
<section class="narrow">
|
||||
<h1>Edit Artwork</h1>
|
||||
|
||||
<?= Template::Error(['exception' => $exception]) ?>
|
||||
|
||||
<a href="<?= $artwork->ImageUrl ?>">
|
||||
<picture>
|
||||
<source srcset="<?= $artwork->Thumb2xUrl ?> 2x, <?= $artwork->ThumbUrl ?> 1x" type="image/jpg"/>
|
||||
<img src="<?= $artwork->ThumbUrl ?>" alt="" property="schema:image"/>
|
||||
</picture>
|
||||
</a>
|
||||
|
||||
<form method="post" action="<?= $artwork->Url ?>" enctype="multipart/form-data">
|
||||
<input type="hidden" name="_method" value="PUT" />
|
||||
|
||||
<?= Template::ArtworkCreateEditFields(
|
||||
[
|
||||
'artwork' => $artwork,
|
||||
'imageRequired' => false,
|
||||
'isAdminView' => $isAdminView
|
||||
]
|
||||
) ?>
|
||||
</form>
|
||||
</section>
|
||||
</main>
|
||||
<?= Template::Footer() ?>
|
|
@ -12,8 +12,8 @@ try{
|
|||
$userId = $GLOBALS['User']->UserId ?? null;
|
||||
$isEditingAllowed = ($artwork->Status == ArtworkStatus::Unverified) && ($isAdminView || ($userId !== null && $userId == $artwork->SubmitterUserId));
|
||||
|
||||
// If the artwork is not approved, and we're not an admin, don't show it.
|
||||
if($artwork->Status != ArtworkStatus::Approved && $artwork->Status != ArtworkStatus::InUse && !$isAdminView){
|
||||
// If the artwork is not approved, and we're not an admin or the submitter when they can edit, don't show it.
|
||||
if($artwork->Status != ArtworkStatus::Approved && $artwork->Status != ArtworkStatus::InUse && !$isAdminView && !$isEditingAllowed){
|
||||
throw new Exceptions\ArtworkNotFoundException();
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
<?
|
||||
use Safe\DateTime;
|
||||
use function Safe\session_unset;
|
||||
|
||||
session_start();
|
||||
|
@ -8,7 +7,6 @@ $created = HttpInput::Bool(SESSION, 'artwork-created', false);
|
|||
$exception = $_SESSION['exception'] ?? null;
|
||||
/** @var Artwork $artwork */
|
||||
$artwork = $_SESSION['artwork'] ?? null;
|
||||
$now = new DateTime('now', new DateTimeZone('America/Juneau')); // Latest continental US time zone
|
||||
|
||||
try{
|
||||
if($GLOBALS['User'] === null){
|
||||
|
@ -70,199 +68,13 @@ catch(Exceptions\InvalidPermissionsException){
|
|||
<? } ?>
|
||||
|
||||
<form method="post" action="/artworks" enctype="multipart/form-data">
|
||||
<fieldset>
|
||||
<legend>Artist details</legend>
|
||||
<label>
|
||||
<span>Name</span>
|
||||
<span>For existing artists, leave the year of death blank.</span>
|
||||
<datalist id="artist-names">
|
||||
<? foreach(Library::GetAllArtists() as $artist){ ?>
|
||||
<option value="<?= Formatter::ToPlainText($artist->Name) ?>"><?= Formatter::ToPlainText($artist->Name) ?>, d. <? if($artist->DeathYear !== null){ ?><?= $artist->DeathYear ?><? }else{ ?>unknown<? } ?></option>
|
||||
<? foreach($artist->AlternateSpellings as $alternateSpelling){ ?>
|
||||
<option value="<?= Formatter::ToPlainText($alternateSpelling) ?>"><?= Formatter::ToPlainText($alternateSpelling) ?>, d. <? if($artist->DeathYear !== null){ ?><?= $artist->DeathYear ?><? }else{ ?>unknown<? } ?></option>
|
||||
<? } ?>
|
||||
<? } ?>
|
||||
</datalist>
|
||||
<input
|
||||
type="text"
|
||||
name="artist-name"
|
||||
list="artist-names"
|
||||
required="required"
|
||||
autocomplete="off"
|
||||
value="<?= Formatter::ToPlainText($artwork->Artist->Name) ?>"
|
||||
/>
|
||||
</label>
|
||||
<label>
|
||||
<span>Year of death</span>
|
||||
<span>If circa or unknown, enter the latest possible year.</span>
|
||||
<? /* Not using <input type="number"> for now, see https://technology.blog.gov.uk/2020/02/24/why-the-gov-uk-design-system-team-changed-the-input-type-for-numbers/ */ ?>
|
||||
<input
|
||||
type="text"
|
||||
name="artist-year-of-death"
|
||||
inputmode="numeric"
|
||||
pattern="[0-9]+"
|
||||
value="<?= $artwork->Artist->DeathYear ?>"
|
||||
/>
|
||||
</label>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>Artwork details</legend>
|
||||
<label>
|
||||
Name
|
||||
<input type="text" name="artwork-name" required="required"
|
||||
value="<?= Formatter::ToPlainText($artwork->Name) ?>"/>
|
||||
</label>
|
||||
<fieldset>
|
||||
<label>
|
||||
Year of completion
|
||||
<input
|
||||
type="text"
|
||||
name="artwork-year"
|
||||
inputmode="numeric"
|
||||
pattern="[0-9]+"
|
||||
value="<?= $artwork->CompletedYear ?>"
|
||||
/>
|
||||
</label>
|
||||
<label>
|
||||
<input
|
||||
type="checkbox"
|
||||
name="artwork-year-is-circa"
|
||||
<? if($artwork->CompletedYearIsCirca){ ?>checked="checked"<? } ?>
|
||||
/> Year is circa
|
||||
</label>
|
||||
</fieldset>
|
||||
<label>
|
||||
<span>Tags</span>
|
||||
<span>A list of comma-separated tags.</span>
|
||||
<input
|
||||
type="text"
|
||||
name="artwork-tags"
|
||||
required="required"
|
||||
autocomplete="off"
|
||||
value="<?= Formatter::ToPlainText($artwork->ImplodeTags()) ?>"
|
||||
/>
|
||||
</label>
|
||||
<label>
|
||||
<span>High-resolution image</span>
|
||||
<span>jpg, bmp, png, and tiff are accepted; <?= number_format(ARTWORK_IMAGE_MINIMUM_WIDTH) ?> × <?= number_format(ARTWORK_IMAGE_MINIMUM_HEIGHT) ?> minimum; 32MB max.</span>
|
||||
<input
|
||||
type="file"
|
||||
name="artwork-image"
|
||||
required="required"
|
||||
accept="<?= implode(',', ImageMimeType::Values()) ?>"
|
||||
/>
|
||||
</label>
|
||||
</fieldset>
|
||||
<fieldset id="pd-proof">
|
||||
<legend>Proof of U.S. public domain status</legend>
|
||||
<p>See the <a href="/manual/latest/10-art-and-images#10.3.3.7">US-PD clearance section of the SEMoS</a> for details on this section.</p>
|
||||
<p>PD proof must take the form of <strong>either</strong>:</p>
|
||||
<fieldset>
|
||||
<label>
|
||||
URL of the artwork at an <a href="/manual/latest/10-art-and-images#10.3.3.7.4">approved museum</a>
|
||||
<input
|
||||
type="url"
|
||||
name="artwork-museum-url"
|
||||
autocomplete="off"
|
||||
value="<?= Formatter::ToPlainText($artwork->MuseumUrl) ?>"
|
||||
/>
|
||||
</label>
|
||||
</fieldset>
|
||||
<p><strong>or</strong> proof that the artwork was reproduced in a book published before <?= PD_STRING ?>, including the following:</p>
|
||||
<fieldset>
|
||||
<label>
|
||||
<input
|
||||
type="checkbox"
|
||||
name="artwork-is-published-in-us"
|
||||
value="true"
|
||||
<? if($artwork->IsPublishedInUs){ ?> checked="checked"<? } ?> />
|
||||
<span>This book was published in the U.S.</span>
|
||||
<span>Yes, if a U.S. city appears anywhere near the publication year or rights statement.</span>
|
||||
</label>
|
||||
<label>
|
||||
Year of publication
|
||||
<input
|
||||
type="text"
|
||||
name="artwork-publication-year"
|
||||
inputmode="numeric"
|
||||
pattern="[0-9]+"
|
||||
value="<?= $artwork->PublicationYear ?>"
|
||||
/>
|
||||
</label>
|
||||
<label>
|
||||
<span>URL of page with year of publication</span>
|
||||
<span>Roman numerals on the page scan are OK.</span>
|
||||
<input
|
||||
type="url"
|
||||
name="artwork-publication-year-page-url"
|
||||
autocomplete="off"
|
||||
value="<?= Formatter::ToPlainText($artwork->PublicationYearPageUrl) ?>"
|
||||
/>
|
||||
</label>
|
||||
<label>
|
||||
<span>URL of page with rights statement</span>
|
||||
<span><strong>This page must include a statement of rights, like the copyright symbol “©” or the words “copyright” or “all rights reserved.”</strong> If no such page exists, leave this blank. This page might be the same page as above. Non-English is OK; keywords in other languages include “<i>droits</i>” and “<i>rechte vorbehalten</i>.”</span>
|
||||
<input
|
||||
type="url"
|
||||
name="artwork-copyright-page-url"
|
||||
autocomplete="off"
|
||||
value="<?= Formatter::ToPlainText($artwork->CopyrightPageUrl) ?>"
|
||||
/>
|
||||
</label>
|
||||
<label>
|
||||
<span>URL of page with artwork</span>
|
||||
<span>Review the many <a href="/manual/latest/10-art-and-images#10.3.3.7.1.1">gotchas you may encounter</a> when confirming the reproduction is the exact same painting.</span>
|
||||
<input
|
||||
type="url"
|
||||
name="artwork-artwork-page-url"
|
||||
autocomplete="off"
|
||||
value="<?= Formatter::ToPlainText($artwork->ArtworkPageUrl) ?>"
|
||||
/>
|
||||
</label>
|
||||
</fieldset>
|
||||
<p><strong>or</strong> a reason for a special exception:</p>
|
||||
<fieldset>
|
||||
<label>
|
||||
<span>Public domain status exception reason</span>
|
||||
<span>Markdown accepted.</span>
|
||||
<textarea maxlength="1024" name="artwork-exception"><?= Formatter::ToPlainText($artwork->Exception) ?></textarea>
|
||||
</label>
|
||||
</fieldset>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>Other details</legend>
|
||||
<label>
|
||||
<span>Special notes</span>
|
||||
<span>Any notes to remember about this artwork. Markdown accepted.</span>
|
||||
<textarea maxlength="1024" name="artwork-notes"><?= Formatter::ToPlainText($artwork->Notes) ?></textarea>
|
||||
</label>
|
||||
</fieldset>
|
||||
<? if($isAdminView){ ?>
|
||||
<fieldset>
|
||||
<legend>Editor options</legend>
|
||||
<? if($GLOBALS['User']->Benefits->CanReviewOwnArtwork){ ?>
|
||||
<label class="select">
|
||||
<span>Artwork approval status</span>
|
||||
<span>
|
||||
<select name="artwork-status">
|
||||
<option value="<?= ArtworkStatus::Unverified->value ?>"<? if($artwork->Status == ArtworkStatus::Unverified){ ?> selected="selected"<? } ?>>Unverified</option>
|
||||
<option value="<?= ArtworkStatus::Declined->value ?>"<? if($artwork->Status == ArtworkStatus::Declined){ ?> selected="selected"<? } ?>>Declined</option>
|
||||
<option value="<?= ArtworkStatus::Approved->value ?>"<? if($artwork->Status == ArtworkStatus::Approved){ ?> selected="selected"<? } ?>>Approved</option>
|
||||
<option value="<?= ArtworkStatus::InUse->value ?>"<? if($artwork->Status == ArtworkStatus::InUse){ ?> selected="selected"<? } ?>>In use</option>
|
||||
</select>
|
||||
</span>
|
||||
</label>
|
||||
<? } ?>
|
||||
<label>
|
||||
<span>In use by</span>
|
||||
<span>Ebook file system slug, like <code>c-s-lewis_poetry</code>. If not in use, leave this blank.</span>
|
||||
<input type="text" name="artwork-ebook-www-filesystem-path" value="<?= Formatter::ToPlainText($artwork->EbookWwwFilesystemPath) ?>"/>
|
||||
</label>
|
||||
</fieldset>
|
||||
<? } ?>
|
||||
<div class="footer">
|
||||
<button>Submit</button>
|
||||
</div>
|
||||
<?= Template::ArtworkCreateEditFields(
|
||||
[
|
||||
'artwork' => $artwork,
|
||||
'imageRequired' => true,
|
||||
'isAdminView' => $isAdminView
|
||||
]
|
||||
) ?>
|
||||
</form>
|
||||
</section>
|
||||
</main>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue