xref: /template/strap/ComboStrap/Meta/Field/PageImagePath.php (revision 04fd306c7c155fa133ebb3669986875d65988276)
1*04fd306cSNickeau<?php
2*04fd306cSNickeau
3*04fd306cSNickeau
4*04fd306cSNickeaunamespace ComboStrap\Meta\Field;
5*04fd306cSNickeau
6*04fd306cSNickeau
7*04fd306cSNickeauuse ComboStrap\ExceptionCompile;
8*04fd306cSNickeauuse ComboStrap\FileSystems;
9*04fd306cSNickeauuse ComboStrap\Meta\Api\Metadata;
10*04fd306cSNickeauuse ComboStrap\Meta\Api\MetadataWikiPath;
11*04fd306cSNickeauuse ComboStrap\WikiPath;
12*04fd306cSNickeau
13*04fd306cSNickeau/**
14*04fd306cSNickeau * @deprecated
15*04fd306cSNickeau */
16*04fd306cSNickeauclass PageImagePath extends MetadataWikiPath
17*04fd306cSNickeau{
18*04fd306cSNickeau
19*04fd306cSNickeau    public const PERSISTENT_NAME = "path";
20*04fd306cSNickeau    const PROPERTY_NAME = "image-path";
21*04fd306cSNickeau
22*04fd306cSNickeau
23*04fd306cSNickeau    public static function createFromParent(Metadata $metadata): PageImagePath
24*04fd306cSNickeau    {
25*04fd306cSNickeau        return (new PageImagePath($metadata));
26*04fd306cSNickeau    }
27*04fd306cSNickeau
28*04fd306cSNickeau
29*04fd306cSNickeau    static public function getDescription(): string
30*04fd306cSNickeau    {
31*04fd306cSNickeau        return "The path of the image";
32*04fd306cSNickeau    }
33*04fd306cSNickeau
34*04fd306cSNickeau    static public function getLabel(): string
35*04fd306cSNickeau    {
36*04fd306cSNickeau        return "Path";
37*04fd306cSNickeau    }
38*04fd306cSNickeau
39*04fd306cSNickeau    static public function getName(): string
40*04fd306cSNickeau    {
41*04fd306cSNickeau        return self::PROPERTY_NAME;
42*04fd306cSNickeau    }
43*04fd306cSNickeau
44*04fd306cSNickeau    static public function getPersistentName(): string
45*04fd306cSNickeau    {
46*04fd306cSNickeau        return self::PERSISTENT_NAME;
47*04fd306cSNickeau    }
48*04fd306cSNickeau
49*04fd306cSNickeau
50*04fd306cSNickeau    static public function getPersistenceType(): string
51*04fd306cSNickeau    {
52*04fd306cSNickeau        return Metadata::PERSISTENT_METADATA;
53*04fd306cSNickeau    }
54*04fd306cSNickeau
55*04fd306cSNickeau    static public function isMutable(): bool
56*04fd306cSNickeau    {
57*04fd306cSNickeau        return true;
58*04fd306cSNickeau    }
59*04fd306cSNickeau
60*04fd306cSNickeau    static public function getFormControlWidth(): int
61*04fd306cSNickeau    {
62*04fd306cSNickeau        return 8;
63*04fd306cSNickeau    }
64*04fd306cSNickeau
65*04fd306cSNickeau
66*04fd306cSNickeau    public function setFromStoreValue($value): Metadata
67*04fd306cSNickeau    {
68*04fd306cSNickeau        WikiPath::addRootSeparatorIfNotPresent($value);
69*04fd306cSNickeau        $path = WikiPath::createMediaPathFromPath($value);
70*04fd306cSNickeau        if (!FileSystems::exists($path)) {
71*04fd306cSNickeau            throw new ExceptionCompile("The image ($value) does not exists", $this->getCanonical());
72*04fd306cSNickeau        }
73*04fd306cSNickeau        return parent::setFromStoreValue($value);
74*04fd306cSNickeau    }
75*04fd306cSNickeau
76*04fd306cSNickeau
77*04fd306cSNickeau    static public function getDrive(): string
78*04fd306cSNickeau    {
79*04fd306cSNickeau        return WikiPath::MEDIA_DRIVE;
80*04fd306cSNickeau    }
81*04fd306cSNickeau}
82