1*04fd306cSNickeau<?php 2*04fd306cSNickeau 3*04fd306cSNickeaunamespace ComboStrap; 4*04fd306cSNickeau 5*04fd306cSNickeauuse ComboStrap\Meta\Api\Metadata; 6*04fd306cSNickeauuse ComboStrap\Meta\Api\MetadataImage; 7*04fd306cSNickeau 8*04fd306cSNickeau/** 9*04fd306cSNickeau * The first image used as blog image (ie svg first then raster) 10*04fd306cSNickeau * (Used to get feedback information to the user in the metadata manager) 11*04fd306cSNickeau */ 12*04fd306cSNickeauclass FirstImage extends MetadataImage 13*04fd306cSNickeau{ 14*04fd306cSNickeau 15*04fd306cSNickeau 16*04fd306cSNickeau public const PROPERTY_NAME = "first-image"; 17*04fd306cSNickeau 18*04fd306cSNickeau public static function createForPage(ResourceCombo $resource): FirstImage 19*04fd306cSNickeau { 20*04fd306cSNickeau return (new FirstImage()) 21*04fd306cSNickeau ->setResource($resource); 22*04fd306cSNickeau } 23*04fd306cSNickeau 24*04fd306cSNickeau static public function getDescription(): string 25*04fd306cSNickeau { 26*04fd306cSNickeau return "The first image"; 27*04fd306cSNickeau } 28*04fd306cSNickeau 29*04fd306cSNickeau static public function getLabel(): string 30*04fd306cSNickeau { 31*04fd306cSNickeau return "First Image"; 32*04fd306cSNickeau } 33*04fd306cSNickeau 34*04fd306cSNickeau public static function getName(): string 35*04fd306cSNickeau { 36*04fd306cSNickeau return self::PROPERTY_NAME; 37*04fd306cSNickeau } 38*04fd306cSNickeau 39*04fd306cSNickeau 40*04fd306cSNickeau static public function isMutable(): bool 41*04fd306cSNickeau { 42*04fd306cSNickeau return false; 43*04fd306cSNickeau } 44*04fd306cSNickeau 45*04fd306cSNickeau /** 46*04fd306cSNickeau * @return WikiPath 47*04fd306cSNickeau * @throws ExceptionNotFound 48*04fd306cSNickeau */ 49*04fd306cSNickeau public function getValue(): WikiPath 50*04fd306cSNickeau { 51*04fd306cSNickeau $contextPage = $this->getResource(); 52*04fd306cSNickeau try { 53*04fd306cSNickeau return FirstSvgIllustration::createForPage($contextPage)->getValue(); 54*04fd306cSNickeau } catch (ExceptionNotFound $e) { 55*04fd306cSNickeau return FirstRasterImage::createForPage($contextPage)->getValue(); 56*04fd306cSNickeau } 57*04fd306cSNickeau 58*04fd306cSNickeau } 59*04fd306cSNickeau 60*04fd306cSNickeau 61*04fd306cSNickeau static public function getPersistenceType(): string 62*04fd306cSNickeau { 63*04fd306cSNickeau return Metadata::DERIVED_METADATA; 64*04fd306cSNickeau } 65*04fd306cSNickeau 66*04fd306cSNickeau static public function getDrive(): string 67*04fd306cSNickeau { 68*04fd306cSNickeau return WikiPath::MEDIA_DRIVE; 69*04fd306cSNickeau } 70*04fd306cSNickeau 71*04fd306cSNickeau static public function isOnForm(): bool 72*04fd306cSNickeau { 73*04fd306cSNickeau return true; 74*04fd306cSNickeau } 75*04fd306cSNickeau} 76