setResource($page); } public function getTab(): string { return MetaManagerForm::TAB_TYPE_VALUE; } public function getDescription(): string { return "The type of page"; } public function getLabel(): string { return "Page Type"; } static public function getName(): string { return self::PROPERTY_NAME; } public function getPersistenceType(): string { return Metadata::PERSISTENT_METADATA; } public function getMutable(): bool { return true; } public function getDefaultValue(): ?string { $resource = $this->getResource(); if(!($resource instanceof Page)){ return null; } if ($resource->isRootHomePage()) { return PageType::WEBSITE_TYPE; } else if ($resource->isHomePage()) { return PageType::HOME_TYPE; } else { $defaultPageTypeConf = PluginUtility::getConfValue(PageType::CONF_DEFAULT_PAGE_TYPE, PageType::CONF_DEFAULT_PAGE_TYPE_DEFAULT); if (!empty($defaultPageTypeConf)) { return $defaultPageTypeConf; } else { return null; } } } /** * The canonical for page type */ public function getCanonical(): string { return "page:type"; } public function getPossibleValues(): ?array { $types = [ self::ORGANIZATION_TYPE, self::ARTICLE_TYPE, self::NEWS_TYPE, self::BLOG_TYPE, self::WEBSITE_TYPE, self::EVENT_TYPE, self::HOME_TYPE, self::WEB_PAGE_TYPE, self::OTHER_TYPE ]; sort($types); return $types; } }