1*04fd306cSNickeau<?php 2*04fd306cSNickeau 3*04fd306cSNickeau 4*04fd306cSNickeaunamespace ComboStrap; 5*04fd306cSNickeau 6*04fd306cSNickeau 7*04fd306cSNickeauuse ComboStrap\Meta\Api\MetadataText; 8*04fd306cSNickeauuse ComboStrap\Meta\Field\PageH1; 9*04fd306cSNickeauuse ComboStrap\Meta\Store\MetadataDokuWikiStore; 10*04fd306cSNickeau 11*04fd306cSNickeauclass Label extends MetadataText 12*04fd306cSNickeau{ 13*04fd306cSNickeau 14*04fd306cSNickeau public const PROPERTY_NAME = 'label'; 15*04fd306cSNickeau 16*04fd306cSNickeau 17*04fd306cSNickeau public static function createForMarkup($page): Label 18*04fd306cSNickeau { 19*04fd306cSNickeau return (new Label()) 20*04fd306cSNickeau ->setResource($page); 21*04fd306cSNickeau } 22*04fd306cSNickeau 23*04fd306cSNickeau static public function getTab(): string 24*04fd306cSNickeau { 25*04fd306cSNickeau return MetaManagerForm::TAB_PAGE_VALUE; 26*04fd306cSNickeau } 27*04fd306cSNickeau 28*04fd306cSNickeau static public function getDescription(): string 29*04fd306cSNickeau { 30*04fd306cSNickeau return "A label is a short description of a couple of words used in a listing (table row)"; 31*04fd306cSNickeau } 32*04fd306cSNickeau 33*04fd306cSNickeau static public function getLabel(): string 34*04fd306cSNickeau { 35*04fd306cSNickeau return "Label"; 36*04fd306cSNickeau } 37*04fd306cSNickeau 38*04fd306cSNickeau static public function getName(): string 39*04fd306cSNickeau { 40*04fd306cSNickeau return self::PROPERTY_NAME; 41*04fd306cSNickeau } 42*04fd306cSNickeau 43*04fd306cSNickeau static public function getPersistenceType(): string 44*04fd306cSNickeau { 45*04fd306cSNickeau return MetadataDokuWikiStore::PERSISTENT_DOKUWIKI_KEY; 46*04fd306cSNickeau } 47*04fd306cSNickeau 48*04fd306cSNickeau static public function isMutable(): bool 49*04fd306cSNickeau { 50*04fd306cSNickeau return true; 51*04fd306cSNickeau } 52*04fd306cSNickeau 53*04fd306cSNickeau /** 54*04fd306cSNickeau * @return string 55*04fd306cSNickeau */ 56*04fd306cSNickeau public function getDefaultValue(): string 57*04fd306cSNickeau { 58*04fd306cSNickeau 59*04fd306cSNickeau return PageTitle::createForMarkup($this->getResource())->getValueOrDefault(); 60*04fd306cSNickeau 61*04fd306cSNickeau } 62*04fd306cSNickeau 63*04fd306cSNickeau /** 64*04fd306cSNickeau * @return string 65*04fd306cSNickeau */ 66*04fd306cSNickeau public function getValueOrDefault(): string 67*04fd306cSNickeau { 68*04fd306cSNickeau try { 69*04fd306cSNickeau return $this->getValue(); 70*04fd306cSNickeau } catch (ExceptionNotFound $e) { 71*04fd306cSNickeau return $this->getDefaultValue(); 72*04fd306cSNickeau } 73*04fd306cSNickeau } 74*04fd306cSNickeau 75*04fd306cSNickeau 76*04fd306cSNickeau static public function isOnForm(): bool 77*04fd306cSNickeau { 78*04fd306cSNickeau return true; 79*04fd306cSNickeau } 80*04fd306cSNickeau} 81