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