Issues (23)

src/Model/CarouselItem.php (10 issues)

1
<?php
2
3
namespace CWP\AgencyExtensions\Model;
4
5
use CWP\CWP\PageTypes\BaseHomePage;
6
use SilverStripe\Forms\HTMLEditor\HTMLEditorField;
7
use SilverStripe\Versioned\Versioned;
8
use SilverStripe\Core\Injector\Injector;
9
use SilverStripe\Assets\Image;
10
use SilverStripe\CMS\Model\SiteTree;
11
use SilverStripe\Forms\TextField;
12
use SilverStripe\AssetAdmin\Forms\UploadField;
0 ignored issues
show
The type SilverStripe\AssetAdmin\Forms\UploadField was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
13
use SilverStripe\Forms\TreeDropdownField;
14
use SilverStripe\Forms\LabelField;
15
use SilverStripe\Forms\CheckboxField;
16
use SilverStripe\Forms\CompositeField;
17
use SilverStripe\Forms\FieldList;
18
use SilverStripe\ORM\DataObject;
19
use SilverStripe\Forms\FileHandleField;
20
21
class CarouselItem extends DataObject
22
{
23
    private static $table_name = 'CarouselItem';
0 ignored issues
show
The private property $table_name is not used, and could be removed.
Loading history...
24
25
    private static $extensions = [
0 ignored issues
show
The private property $extensions is not used, and could be removed.
Loading history...
26
        Versioned::class
27
    ];
28
29
    private static $versioned_gridfield_extensions = true;
0 ignored issues
show
The private property $versioned_gridfield_extensions is not used, and could be removed.
Loading history...
30
31
    private static $db = [
0 ignored issues
show
The private property $db is not used, and could be removed.
Loading history...
32
        'Title' => 'Varchar(255)',
33
        'Content' => 'HTMLText',
34
        'SortOrder' => 'Int',
35
        'PrimaryCallToActionLabel' => 'Varchar(255)',
36
        'SecondaryCallToActionLabel' => 'Varchar(255)'
37
    ];
38
39
    private static $has_one = [
0 ignored issues
show
The private property $has_one is not used, and could be removed.
Loading history...
40
        'Parent' => BaseHomePage::class,
41
        'Image' => Image::class,
42
        'PrimaryCallToAction' => SiteTree::class,
43
        'SecondaryCallToAction' => SiteTree::class
44
    ];
45
46
    private static $owns = [
0 ignored issues
show
The private property $owns is not used, and could be removed.
Loading history...
47
        'Image'
48
    ];
49
50
    private static $summary_fields = [
0 ignored issues
show
The private property $summary_fields is not used, and could be removed.
Loading history...
51
        'Image.CMSThumbnail' => 'Image',
52
        'Title' => 'Title',
53
        'Content.FirstSentence' => 'Text',
54
        'PrimaryCallToAction.Title' => 'Primary CTA',
55
        'SecondaryCallToAction.Title' => 'Secondary CTA'
56
    ];
57
58
    private static $searchable_fields = [
0 ignored issues
show
The private property $searchable_fields is not used, and could be removed.
Loading history...
59
        'Title',
60
        'Content'
61
    ];
62
63
    public function getCMSFields()
64
    {
65
        $fields = new FieldList(
66
            // Set title
67
            TextField::create('Title', 'Title', null, 255),
68
            // Content
69
            HtmlEditorField::create('Content')
70
                ->setRows(5)
71
                ->setDescription(
72
                    _t(
73
                        __CLASS__ . '.CONTENT_HELPTIP',
74
                        'Recommended: Use less than 50 words. For carousel slides, use a similar amount of content ' .
75
                        'as other items to ensure carousel height does not vary.'
76
                    )
77
                ),
78
            // Image
79
            Injector::inst()->create(FileHandleField::class, 'Image', 'Image')
80
                ->setAllowedFileCategories('image')
81
                ->setDescription(
82
                    _t(
83
                        __CLASS__ . '.IMAGE_HELPTIP',
84
                        'Recommended: Use high resolution images greater than 1600x900px.'
85
                    )
86
                ),
87
            // Call to actions
88
            TextField::create('PrimaryCallToActionLabel'),
89
            TreeDropdownField::create(
90
                'PrimaryCallToActionID',
91
                _t(__CLASS__ . '.PRIMARYCALLTOACTION', 'Primary Call To Action Link'),
92
                SiteTree::class
93
            ),
94
            TextField::create('SecondaryCallToActionLabel'),
95
            TreeDropdownField::create(
96
                'SecondaryCallToActionID',
97
                _t(__CLASS__ . '.SECONDARYCALLTOACTION', 'Secondary Call To Action Link'),
98
                SiteTree::class
99
            )
100
        );
101
102
        $this->extend('updateCMSFields', $fields);
103
104
        return $fields;
105
    }
106
107
    public function canCreate($member = null, $context = array())
108
    {
109
        return $this->Parent()->canCreate($member);
0 ignored issues
show
The method Parent() does not exist on CWP\AgencyExtensions\Model\CarouselItem. Since you implemented __call, consider adding a @method annotation. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

109
        return $this->/** @scrutinizer ignore-call */ Parent()->canCreate($member);
Loading history...
110
    }
111
112
    public function canEdit($member = null)
113
    {
114
        return $this->Parent()->canEdit($member);
115
    }
116
117
    public function canDelete($member = null)
118
    {
119
        return $this->Parent()->canDelete($member);
120
    }
121
122
    public function canView($member = null)
123
    {
124
        return $this->Parent()->canView($member);
125
    }
126
}
127