1*c3437056SNickeau<?php 2*c3437056SNickeau 3*c3437056SNickeau 4*c3437056SNickeaunamespace ComboStrap; 5*c3437056SNickeau 6*c3437056SNickeau 7*c3437056SNickeauclass PageTitle extends MetadataText 8*c3437056SNickeau{ 9*c3437056SNickeau 10*c3437056SNickeau public const PROPERTY_NAME = 'title'; 11*c3437056SNickeau public const TITLE = 'title'; 12*c3437056SNickeau 13*c3437056SNickeau public static function createForPage($page): PageTitle 14*c3437056SNickeau { 15*c3437056SNickeau return (new PageTitle()) 16*c3437056SNickeau ->setResource($page); 17*c3437056SNickeau } 18*c3437056SNickeau 19*c3437056SNickeau public function getTab(): string 20*c3437056SNickeau { 21*c3437056SNickeau return MetaManagerForm::TAB_PAGE_VALUE; 22*c3437056SNickeau } 23*c3437056SNickeau 24*c3437056SNickeau public function getDescription(): string 25*c3437056SNickeau { 26*c3437056SNickeau return "The page title is a description advertised to external application such as search engine and browser."; 27*c3437056SNickeau } 28*c3437056SNickeau 29*c3437056SNickeau public function getLabel(): string 30*c3437056SNickeau { 31*c3437056SNickeau return "Title"; 32*c3437056SNickeau } 33*c3437056SNickeau 34*c3437056SNickeau static public function getName(): string 35*c3437056SNickeau { 36*c3437056SNickeau return self::PROPERTY_NAME; 37*c3437056SNickeau } 38*c3437056SNickeau 39*c3437056SNickeau public function getPersistenceType(): string 40*c3437056SNickeau { 41*c3437056SNickeau return MetadataDokuWikiStore::PERSISTENT_METADATA; 42*c3437056SNickeau } 43*c3437056SNickeau 44*c3437056SNickeau public function getMutable(): bool 45*c3437056SNickeau { 46*c3437056SNickeau return true; 47*c3437056SNickeau } 48*c3437056SNickeau 49*c3437056SNickeau /** 50*c3437056SNickeau * `title` is created by DokuWiki 51*c3437056SNickeau * in current but not persistent 52*c3437056SNickeau * and hold the heading 1, see {@link p_get_first_heading} 53*c3437056SNickeau */ 54*c3437056SNickeau public function getDefaultValue(): ?string 55*c3437056SNickeau { 56*c3437056SNickeau 57*c3437056SNickeau $resource = $this->getResource(); 58*c3437056SNickeau if ($resource instanceof Page) { 59*c3437056SNickeau if ($resource->isRootHomePage() && !empty(Site::getTagLine())) { 60*c3437056SNickeau return Site::getTagLine(); 61*c3437056SNickeau } 62*c3437056SNickeau if (!empty($resource->getH1OrDefault())) { 63*c3437056SNickeau return $resource->getH1OrDefault(); 64*c3437056SNickeau } 65*c3437056SNickeau return $resource->getNameOrDefault(); 66*c3437056SNickeau } 67*c3437056SNickeau return null; 68*c3437056SNickeau 69*c3437056SNickeau } 70*c3437056SNickeau 71*c3437056SNickeau public function getCanonical(): string 72*c3437056SNickeau { 73*c3437056SNickeau return self::TITLE; 74*c3437056SNickeau } 75*c3437056SNickeau 76*c3437056SNickeau 77*c3437056SNickeau} 78