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