1*c3437056SNickeau<?php 2*c3437056SNickeau 3*c3437056SNickeau 4*c3437056SNickeaunamespace ComboStrap; 5*c3437056SNickeau 6*c3437056SNickeau 7*c3437056SNickeauuse DateTime; 8*c3437056SNickeau 9*c3437056SNickeau/** 10*c3437056SNickeau 11*c3437056SNickeau * @package ComboStrap 12*c3437056SNickeau * Represents the wiki path of the page resource 13*c3437056SNickeau */ 14*c3437056SNickeauclass PagePath extends MetadataWikiPath 15*c3437056SNickeau{ 16*c3437056SNickeau 17*c3437056SNickeau 18*c3437056SNickeau 19*c3437056SNickeau public const PROPERTY_NAME = "path"; 20*c3437056SNickeau 21*c3437056SNickeau 22*c3437056SNickeau public static function createForPage(ResourceCombo $page): CacheExpirationDate 23*c3437056SNickeau { 24*c3437056SNickeau return (new CacheExpirationDate()) 25*c3437056SNickeau ->setResource($page); 26*c3437056SNickeau } 27*c3437056SNickeau 28*c3437056SNickeau public function getDefaultValue(): ?DateTime 29*c3437056SNickeau { 30*c3437056SNickeau return null; 31*c3437056SNickeau } 32*c3437056SNickeau 33*c3437056SNickeau public function getValue(): ?string 34*c3437056SNickeau { 35*c3437056SNickeau return $this->getResource()->getPath()->toString(); 36*c3437056SNickeau } 37*c3437056SNickeau 38*c3437056SNickeau 39*c3437056SNickeau static public function getName(): string 40*c3437056SNickeau { 41*c3437056SNickeau return self::PROPERTY_NAME; 42*c3437056SNickeau } 43*c3437056SNickeau 44*c3437056SNickeau 45*c3437056SNickeau public function getPersistenceType(): string 46*c3437056SNickeau { 47*c3437056SNickeau return Metadata::DERIVED_METADATA; 48*c3437056SNickeau } 49*c3437056SNickeau 50*c3437056SNickeau 51*c3437056SNickeau public function getTab(): string 52*c3437056SNickeau { 53*c3437056SNickeau return MetaManagerForm::TAB_REDIRECTION_VALUE; 54*c3437056SNickeau } 55*c3437056SNickeau 56*c3437056SNickeau public function getDescription(): string 57*c3437056SNickeau { 58*c3437056SNickeau return "The path of the page on the file system (in wiki format with the colon `:` as path separator)"; 59*c3437056SNickeau } 60*c3437056SNickeau 61*c3437056SNickeau public function getLabel(): string 62*c3437056SNickeau { 63*c3437056SNickeau return "Page Path"; 64*c3437056SNickeau } 65*c3437056SNickeau 66*c3437056SNickeau public function getMutable(): bool 67*c3437056SNickeau { 68*c3437056SNickeau return false; 69*c3437056SNickeau } 70*c3437056SNickeau 71*c3437056SNickeau public function getCanonical(): string 72*c3437056SNickeau { 73*c3437056SNickeau return self::PROPERTY_NAME; 74*c3437056SNickeau } 75*c3437056SNickeau 76*c3437056SNickeau 77*c3437056SNickeau} 78