xref: /plugin/combo/ComboStrap/PageImageUsage.php (revision c3437056399326d621a01da73b649707fbb0ae69)
1*c3437056SNickeau<?php
2*c3437056SNickeau
3*c3437056SNickeau
4*c3437056SNickeaunamespace ComboStrap;
5*c3437056SNickeau
6*c3437056SNickeau/**
7*c3437056SNickeau * Class PageImageUsage
8*c3437056SNickeau * @package ComboStrap
9*c3437056SNickeau * The usage for the image of a page
10*c3437056SNickeau */
11*c3437056SNickeauclass PageImageUsage extends MetadataMultiple
12*c3437056SNickeau{
13*c3437056SNickeau
14*c3437056SNickeau    public const PERSISTENT_NAME = "usage";  // storage name
15*c3437056SNickeau    const PROPERTY_NAME = "image-usage"; // unique property name
16*c3437056SNickeau
17*c3437056SNickeau    /**
18*c3437056SNickeau     * Constant values
19*c3437056SNickeau     */
20*c3437056SNickeau    public const ALL = "all";
21*c3437056SNickeau    public const FACEBOOK = "facebook";
22*c3437056SNickeau    public const SOCIAL = "social";
23*c3437056SNickeau    public const ICON = "icon";
24*c3437056SNickeau    public const TWITTER = "twitter";
25*c3437056SNickeau    public const GOOGLE = "google";
26*c3437056SNickeau    public const DEFAULT = PageImageUsage::ALL;
27*c3437056SNickeau
28*c3437056SNickeau
29*c3437056SNickeau    public static function getUsageValues(): array
30*c3437056SNickeau    {
31*c3437056SNickeau        return [
32*c3437056SNickeau            self::ALL,
33*c3437056SNickeau            self::FACEBOOK,
34*c3437056SNickeau            self::GOOGLE,
35*c3437056SNickeau            self::ICON,
36*c3437056SNickeau            PageImage::PAGE_IMAGE,
37*c3437056SNickeau            self::SOCIAL,
38*c3437056SNickeau            self::TWITTER,
39*c3437056SNickeau        ];
40*c3437056SNickeau
41*c3437056SNickeau    }
42*c3437056SNickeau
43*c3437056SNickeau    public static function createFromParent(PageImages $param): PageImageUsage
44*c3437056SNickeau    {
45*c3437056SNickeau        return new PageImageUsage($param);
46*c3437056SNickeau    }
47*c3437056SNickeau
48*c3437056SNickeau
49*c3437056SNickeau    public function getDescription(): string
50*c3437056SNickeau    {
51*c3437056SNickeau        return "The possible usages of the image";
52*c3437056SNickeau    }
53*c3437056SNickeau
54*c3437056SNickeau    public function getLabel(): string
55*c3437056SNickeau    {
56*c3437056SNickeau        return "Usages";
57*c3437056SNickeau    }
58*c3437056SNickeau
59*c3437056SNickeau    static public function getName(): string
60*c3437056SNickeau    {
61*c3437056SNickeau        return self::PROPERTY_NAME;
62*c3437056SNickeau    }
63*c3437056SNickeau
64*c3437056SNickeau    static public function getPersistentName(): string
65*c3437056SNickeau    {
66*c3437056SNickeau        return self::PERSISTENT_NAME;
67*c3437056SNickeau    }
68*c3437056SNickeau
69*c3437056SNickeau
70*c3437056SNickeau    public function getMutable(): bool
71*c3437056SNickeau    {
72*c3437056SNickeau        return true;
73*c3437056SNickeau    }
74*c3437056SNickeau
75*c3437056SNickeau
76*c3437056SNickeau    function getDefaultValue(): array
77*c3437056SNickeau    {
78*c3437056SNickeau        return [self::ALL];
79*c3437056SNickeau    }
80*c3437056SNickeau
81*c3437056SNickeau    public function getPersistenceType(): string
82*c3437056SNickeau    {
83*c3437056SNickeau        return Metadata::PERSISTENT_METADATA;
84*c3437056SNickeau    }
85*c3437056SNickeau
86*c3437056SNickeau    public function getFormControlWidth(): int
87*c3437056SNickeau    {
88*c3437056SNickeau        return 4;
89*c3437056SNickeau    }
90*c3437056SNickeau
91*c3437056SNickeau    public function getPossibleValues(): ?array
92*c3437056SNickeau    {
93*c3437056SNickeau        return static::getUsageValues();
94*c3437056SNickeau    }
95*c3437056SNickeau
96*c3437056SNickeau
97*c3437056SNickeau}
98