1*c3437056SNickeau<?php 2*c3437056SNickeau 3*c3437056SNickeau 4*c3437056SNickeaunamespace ComboStrap; 5*c3437056SNickeau 6*c3437056SNickeau 7*c3437056SNickeauclass References extends MetadataTabular 8*c3437056SNickeau{ 9*c3437056SNickeau 10*c3437056SNickeau 11*c3437056SNickeau public static function createFromResource(Page $page) 12*c3437056SNickeau { 13*c3437056SNickeau return (new References()) 14*c3437056SNickeau ->setResource($page); 15*c3437056SNickeau } 16*c3437056SNickeau 17*c3437056SNickeau public function getDescription(): string 18*c3437056SNickeau { 19*c3437056SNickeau return "The link of the page that references another resources"; 20*c3437056SNickeau } 21*c3437056SNickeau 22*c3437056SNickeau public function getLabel(): string 23*c3437056SNickeau { 24*c3437056SNickeau return "References"; 25*c3437056SNickeau } 26*c3437056SNickeau 27*c3437056SNickeau public static function getName(): string 28*c3437056SNickeau { 29*c3437056SNickeau return "references"; 30*c3437056SNickeau } 31*c3437056SNickeau 32*c3437056SNickeau public function getPersistenceType(): string 33*c3437056SNickeau { 34*c3437056SNickeau return Metadata::DERIVED_METADATA; 35*c3437056SNickeau } 36*c3437056SNickeau 37*c3437056SNickeau public function getMutable(): bool 38*c3437056SNickeau { 39*c3437056SNickeau return false; 40*c3437056SNickeau } 41*c3437056SNickeau 42*c3437056SNickeau public function getDefaultValue() 43*c3437056SNickeau { 44*c3437056SNickeau return null; 45*c3437056SNickeau } 46*c3437056SNickeau 47*c3437056SNickeau public function getUidClass(): ?string 48*c3437056SNickeau { 49*c3437056SNickeau return Reference::class; 50*c3437056SNickeau } 51*c3437056SNickeau 52*c3437056SNickeau public function getChildrenClass(): ?array 53*c3437056SNickeau { 54*c3437056SNickeau return [Reference::class]; 55*c3437056SNickeau } 56*c3437056SNickeau 57*c3437056SNickeau public function buildFromReadStore(): References 58*c3437056SNickeau { 59*c3437056SNickeau $metadataStore = $this->getReadStore(); 60*c3437056SNickeau if ($metadataStore === null) { 61*c3437056SNickeau LogUtility::msg("The metadata store is unknown. You need to define a resource or a store to build from it"); 62*c3437056SNickeau return $this; 63*c3437056SNickeau } 64*c3437056SNickeau if ($metadataStore instanceof MetadataDokuWikiStore) { 65*c3437056SNickeau 66*c3437056SNickeau $relation = $metadataStore->getCurrentFromName("relation"); 67*c3437056SNickeau if ($relation !== null) { 68*c3437056SNickeau 69*c3437056SNickeau $this->wasBuild = true; 70*c3437056SNickeau $referencesArray = $relation["references"]; 71*c3437056SNickeau if($referencesArray!==null) { 72*c3437056SNickeau $references = array_keys($referencesArray); 73*c3437056SNickeau } 74*c3437056SNickeau $this->buildFromStoreValue($references); 75*c3437056SNickeau return $this; 76*c3437056SNickeau 77*c3437056SNickeau } 78*c3437056SNickeau 79*c3437056SNickeau } 80*c3437056SNickeau 81*c3437056SNickeau return parent::buildFromReadStore(); 82*c3437056SNickeau } 83*c3437056SNickeau 84*c3437056SNickeau 85*c3437056SNickeau} 86