xref: /template/strap/ComboStrap/Label.php (revision 04fd306c7c155fa133ebb3669986875d65988276)
1*04fd306cSNickeau<?php
2*04fd306cSNickeau
3*04fd306cSNickeau
4*04fd306cSNickeaunamespace ComboStrap;
5*04fd306cSNickeau
6*04fd306cSNickeau
7*04fd306cSNickeauuse ComboStrap\Meta\Api\MetadataText;
8*04fd306cSNickeauuse ComboStrap\Meta\Field\PageH1;
9*04fd306cSNickeauuse ComboStrap\Meta\Store\MetadataDokuWikiStore;
10*04fd306cSNickeau
11*04fd306cSNickeauclass Label extends MetadataText
12*04fd306cSNickeau{
13*04fd306cSNickeau
14*04fd306cSNickeau    public const PROPERTY_NAME = 'label';
15*04fd306cSNickeau
16*04fd306cSNickeau
17*04fd306cSNickeau    public static function createForMarkup($page): Label
18*04fd306cSNickeau    {
19*04fd306cSNickeau        return (new Label())
20*04fd306cSNickeau            ->setResource($page);
21*04fd306cSNickeau    }
22*04fd306cSNickeau
23*04fd306cSNickeau    static public function getTab(): string
24*04fd306cSNickeau    {
25*04fd306cSNickeau        return MetaManagerForm::TAB_PAGE_VALUE;
26*04fd306cSNickeau    }
27*04fd306cSNickeau
28*04fd306cSNickeau    static public function getDescription(): string
29*04fd306cSNickeau    {
30*04fd306cSNickeau        return "A label is a short description of a couple of words used in a listing (table row)";
31*04fd306cSNickeau    }
32*04fd306cSNickeau
33*04fd306cSNickeau    static public function getLabel(): string
34*04fd306cSNickeau    {
35*04fd306cSNickeau        return "Label";
36*04fd306cSNickeau    }
37*04fd306cSNickeau
38*04fd306cSNickeau    static public function getName(): string
39*04fd306cSNickeau    {
40*04fd306cSNickeau        return self::PROPERTY_NAME;
41*04fd306cSNickeau    }
42*04fd306cSNickeau
43*04fd306cSNickeau    static public function getPersistenceType(): string
44*04fd306cSNickeau    {
45*04fd306cSNickeau        return MetadataDokuWikiStore::PERSISTENT_DOKUWIKI_KEY;
46*04fd306cSNickeau    }
47*04fd306cSNickeau
48*04fd306cSNickeau    static public function isMutable(): bool
49*04fd306cSNickeau    {
50*04fd306cSNickeau        return true;
51*04fd306cSNickeau    }
52*04fd306cSNickeau
53*04fd306cSNickeau    /**
54*04fd306cSNickeau     * @return string
55*04fd306cSNickeau     */
56*04fd306cSNickeau    public function getDefaultValue(): string
57*04fd306cSNickeau    {
58*04fd306cSNickeau
59*04fd306cSNickeau        return PageTitle::createForMarkup($this->getResource())->getValueOrDefault();
60*04fd306cSNickeau
61*04fd306cSNickeau    }
62*04fd306cSNickeau
63*04fd306cSNickeau    /**
64*04fd306cSNickeau     * @return string
65*04fd306cSNickeau     */
66*04fd306cSNickeau    public function getValueOrDefault(): string
67*04fd306cSNickeau    {
68*04fd306cSNickeau        try {
69*04fd306cSNickeau            return $this->getValue();
70*04fd306cSNickeau        } catch (ExceptionNotFound $e) {
71*04fd306cSNickeau            return $this->getDefaultValue();
72*04fd306cSNickeau        }
73*04fd306cSNickeau    }
74*04fd306cSNickeau
75*04fd306cSNickeau
76*04fd306cSNickeau    static public function isOnForm(): bool
77*04fd306cSNickeau    {
78*04fd306cSNickeau        return true;
79*04fd306cSNickeau    }
80*04fd306cSNickeau}
81