1*04fd306cSNickeau<?php 2*04fd306cSNickeau 3*04fd306cSNickeau 4*04fd306cSNickeaunamespace ComboStrap\Meta\Field; 5*04fd306cSNickeau 6*04fd306cSNickeau 7*04fd306cSNickeauuse ComboStrap\ExceptionCompile; 8*04fd306cSNickeauuse ComboStrap\FileSystems; 9*04fd306cSNickeauuse ComboStrap\Meta\Api\Metadata; 10*04fd306cSNickeauuse ComboStrap\Meta\Api\MetadataWikiPath; 11*04fd306cSNickeauuse ComboStrap\WikiPath; 12*04fd306cSNickeau 13*04fd306cSNickeau/** 14*04fd306cSNickeau * @deprecated 15*04fd306cSNickeau */ 16*04fd306cSNickeauclass PageImagePath extends MetadataWikiPath 17*04fd306cSNickeau{ 18*04fd306cSNickeau 19*04fd306cSNickeau public const PERSISTENT_NAME = "path"; 20*04fd306cSNickeau const PROPERTY_NAME = "image-path"; 21*04fd306cSNickeau 22*04fd306cSNickeau 23*04fd306cSNickeau public static function createFromParent(Metadata $metadata): PageImagePath 24*04fd306cSNickeau { 25*04fd306cSNickeau return (new PageImagePath($metadata)); 26*04fd306cSNickeau } 27*04fd306cSNickeau 28*04fd306cSNickeau 29*04fd306cSNickeau static public function getDescription(): string 30*04fd306cSNickeau { 31*04fd306cSNickeau return "The path of the image"; 32*04fd306cSNickeau } 33*04fd306cSNickeau 34*04fd306cSNickeau static public function getLabel(): string 35*04fd306cSNickeau { 36*04fd306cSNickeau return "Path"; 37*04fd306cSNickeau } 38*04fd306cSNickeau 39*04fd306cSNickeau static public function getName(): string 40*04fd306cSNickeau { 41*04fd306cSNickeau return self::PROPERTY_NAME; 42*04fd306cSNickeau } 43*04fd306cSNickeau 44*04fd306cSNickeau static public function getPersistentName(): string 45*04fd306cSNickeau { 46*04fd306cSNickeau return self::PERSISTENT_NAME; 47*04fd306cSNickeau } 48*04fd306cSNickeau 49*04fd306cSNickeau 50*04fd306cSNickeau static public function getPersistenceType(): string 51*04fd306cSNickeau { 52*04fd306cSNickeau return Metadata::PERSISTENT_METADATA; 53*04fd306cSNickeau } 54*04fd306cSNickeau 55*04fd306cSNickeau static public function isMutable(): bool 56*04fd306cSNickeau { 57*04fd306cSNickeau return true; 58*04fd306cSNickeau } 59*04fd306cSNickeau 60*04fd306cSNickeau static public function getFormControlWidth(): int 61*04fd306cSNickeau { 62*04fd306cSNickeau return 8; 63*04fd306cSNickeau } 64*04fd306cSNickeau 65*04fd306cSNickeau 66*04fd306cSNickeau public function setFromStoreValue($value): Metadata 67*04fd306cSNickeau { 68*04fd306cSNickeau WikiPath::addRootSeparatorIfNotPresent($value); 69*04fd306cSNickeau $path = WikiPath::createMediaPathFromPath($value); 70*04fd306cSNickeau if (!FileSystems::exists($path)) { 71*04fd306cSNickeau throw new ExceptionCompile("The image ($value) does not exists", $this->getCanonical()); 72*04fd306cSNickeau } 73*04fd306cSNickeau return parent::setFromStoreValue($value); 74*04fd306cSNickeau } 75*04fd306cSNickeau 76*04fd306cSNickeau 77*04fd306cSNickeau static public function getDrive(): string 78*04fd306cSNickeau { 79*04fd306cSNickeau return WikiPath::MEDIA_DRIVE; 80*04fd306cSNickeau } 81*04fd306cSNickeau} 82