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