xref: /plugin/combo/ComboStrap/LowQualityPageOverwrite.php (revision 04fd306c7c155fa133ebb3669986875d65988276)
1c3437056SNickeau<?php
2c3437056SNickeau
3c3437056SNickeau
4c3437056SNickeaunamespace ComboStrap;
5c3437056SNickeau
6*04fd306cSNickeauuse ComboStrap\Meta\Api\Metadata;
7*04fd306cSNickeauuse ComboStrap\Meta\Api\MetadataBoolean;
8*04fd306cSNickeau
9c3437056SNickeau/**
10c3437056SNickeau * Class LowQualityPageIndicator
11c3437056SNickeau * @package ComboStrap
12c3437056SNickeau * Tells if the page can be of low quality or not
13c3437056SNickeau * By default, it can
14c3437056SNickeau */
15c3437056SNickeauclass LowQualityPageOverwrite extends MetadataBoolean
16c3437056SNickeau{
17c3437056SNickeau
18c3437056SNickeau    /**
19c3437056SNickeau     * An indicator in the meta
20c3437056SNickeau     * that set a boolean to true or false
21c3437056SNickeau     * to tell if a page may be of low quality
22c3437056SNickeau     */
23c3437056SNickeau    public const PROPERTY_NAME = 'low_quality_page';
24c3437056SNickeau    public const CAN_BE_LOW_QUALITY_PAGE_DEFAULT = true;
25c3437056SNickeau
26*04fd306cSNickeau    public static function createForPage(MarkupPath $page)
27c3437056SNickeau    {
28c3437056SNickeau        return (new LowQualityPageOverwrite())
29c3437056SNickeau            ->setResource($page);
30c3437056SNickeau    }
31c3437056SNickeau
32*04fd306cSNickeau    static public function getTab(): string
33c3437056SNickeau    {
34c3437056SNickeau        return MetaManagerForm::TAB_QUALITY_VALUE;
35c3437056SNickeau    }
36c3437056SNickeau
37*04fd306cSNickeau    static public function getDescription(): string
38c3437056SNickeau    {
39c3437056SNickeau        return "If checked, this page will never be a low quality page";
40c3437056SNickeau    }
41c3437056SNickeau
42*04fd306cSNickeau    static public function getLabel(): string
43c3437056SNickeau    {
44c3437056SNickeau        return "Prevent this page to become a low quality page";
45c3437056SNickeau    }
46c3437056SNickeau
47c3437056SNickeau    public static function getName(): string
48c3437056SNickeau    {
49c3437056SNickeau        return self::PROPERTY_NAME;
50c3437056SNickeau    }
51c3437056SNickeau
52*04fd306cSNickeau    static public function getPersistenceType(): string
53c3437056SNickeau    {
54c3437056SNickeau        return Metadata::PERSISTENT_METADATA;
55c3437056SNickeau    }
56c3437056SNickeau
57*04fd306cSNickeau    static public function isMutable(): bool
58c3437056SNickeau    {
59c3437056SNickeau        return true;
60c3437056SNickeau    }
61c3437056SNickeau
62*04fd306cSNickeau    /**
63*04fd306cSNickeau     * @return bool
64*04fd306cSNickeau     */
65*04fd306cSNickeau    public function getValueOrDefault(): bool
66*04fd306cSNickeau    {
67*04fd306cSNickeau        try {
68*04fd306cSNickeau            return $this->getValue();
69*04fd306cSNickeau        } catch (ExceptionNotFound $e) {
70*04fd306cSNickeau            return $this->getDefaultValue();
71*04fd306cSNickeau        }
72*04fd306cSNickeau    }
73*04fd306cSNickeau
74*04fd306cSNickeau
75*04fd306cSNickeau    /**
76*04fd306cSNickeau     * @return bool
77*04fd306cSNickeau     */
78c3437056SNickeau    public function getDefaultValue(): bool
79c3437056SNickeau    {
80c3437056SNickeau        /**
81c3437056SNickeau         * A page can be of low quality by default
82c3437056SNickeau         */
83c3437056SNickeau        return self::CAN_BE_LOW_QUALITY_PAGE_DEFAULT;
84c3437056SNickeau    }
85c3437056SNickeau
86*04fd306cSNickeau    static public function getCanonical(): string
87c3437056SNickeau    {
88c3437056SNickeau        return "low_quality_page";
89c3437056SNickeau    }
90c3437056SNickeau
91c3437056SNickeau
92*04fd306cSNickeau    static public function isOnForm(): bool
93*04fd306cSNickeau    {
94*04fd306cSNickeau        return true;
95*04fd306cSNickeau    }
96*04fd306cSNickeau
97c3437056SNickeau}
98