1 | <?php |
||||||
2 | |||||||
3 | namespace ilateral\SilverStripe\Carousel\Model; |
||||||
4 | |||||||
5 | use SilverStripe\Assets\Image; |
||||||
6 | use gorriecoe\Link\Models\Link; |
||||||
7 | use SilverStripe\ORM\DataObject; |
||||||
8 | use gorriecoe\LinkField\LinkField; |
||||||
9 | use SilverStripe\CMS\Model\SiteTree; |
||||||
10 | |||||||
11 | /** |
||||||
12 | * Representation of a slide object that can be extended to add extra |
||||||
13 | * data (such as links, additional content, etc) |
||||||
14 | * |
||||||
15 | * @author i-lateral (http://www.i-lateral.com) |
||||||
16 | * @package carousel |
||||||
17 | */ |
||||||
18 | class CarouselSlide extends DataObject |
||||||
19 | { |
||||||
20 | |||||||
21 | private static $table_name = 'CarouselSlide'; |
||||||
0 ignored issues
–
show
introduced
by
![]() |
|||||||
22 | |||||||
23 | /** |
||||||
24 | * DB Columns |
||||||
25 | * |
||||||
26 | * @var array |
||||||
27 | * @config |
||||||
28 | */ |
||||||
29 | private static $db = [ |
||||||
0 ignored issues
–
show
|
|||||||
30 | 'Title' => 'Varchar(99)', |
||||||
31 | 'Sort' => 'Int' |
||||||
32 | ]; |
||||||
33 | |||||||
34 | /** |
||||||
35 | * Has One relations |
||||||
36 | * |
||||||
37 | * @var array |
||||||
38 | * @config |
||||||
39 | */ |
||||||
40 | private static $has_one = [ |
||||||
0 ignored issues
–
show
|
|||||||
41 | 'Parent' => SiteTree::class, |
||||||
42 | 'Image' => Image::class, |
||||||
43 | 'Link' => Link::class |
||||||
44 | ]; |
||||||
45 | |||||||
46 | /** |
||||||
47 | * Ownership of relations |
||||||
48 | * |
||||||
49 | * @var array |
||||||
50 | */ |
||||||
51 | private static $owns = [ |
||||||
0 ignored issues
–
show
|
|||||||
52 | 'Image', |
||||||
53 | 'Link' |
||||||
54 | ]; |
||||||
55 | |||||||
56 | /** |
||||||
57 | * Default casting for functions to templates |
||||||
58 | * |
||||||
59 | * @var array |
||||||
60 | * @config |
||||||
61 | */ |
||||||
62 | private static $casting = array( |
||||||
0 ignored issues
–
show
|
|||||||
63 | 'Thumbnail' => 'Varchar' |
||||||
64 | ); |
||||||
65 | |||||||
66 | /** |
||||||
67 | * Summary columns/fields for this object |
||||||
68 | * |
||||||
69 | * @var array |
||||||
70 | * @config |
||||||
71 | */ |
||||||
72 | private static $summary_fields = array( |
||||||
0 ignored issues
–
show
|
|||||||
73 | 'Thumbnail' => 'Image', |
||||||
74 | 'Title' => 'Title', |
||||||
75 | 'Link.Title'=> 'Link' |
||||||
76 | ); |
||||||
77 | |||||||
78 | /** |
||||||
79 | * Default sorting of this object |
||||||
80 | * |
||||||
81 | * @var string |
||||||
82 | * @config |
||||||
83 | */ |
||||||
84 | private static $default_sort = "Sort ASC"; |
||||||
0 ignored issues
–
show
|
|||||||
85 | |||||||
86 | /** |
||||||
87 | * Default image profile to use |
||||||
88 | * |
||||||
89 | * @var string |
||||||
90 | * @config |
||||||
91 | */ |
||||||
92 | private static $default_proile = 'ShortCarousel'; |
||||||
93 | |||||||
94 | /** |
||||||
95 | * Get fully rendered image for template |
||||||
96 | * |
||||||
97 | * @return HTMLText |
||||||
0 ignored issues
–
show
The type
ilateral\SilverStripe\Carousel\Model\HTMLText 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. filter:
dependency_paths: ["lib/*"]
For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths ![]() |
|||||||
98 | */ |
||||||
99 | public function getRenderedImage() |
||||||
100 | { |
||||||
101 | $parent = $this->Parent(); |
||||||
0 ignored issues
–
show
The method
Parent() does not exist on ilateral\SilverStripe\Carousel\Model\CarouselSlide . 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
![]() |
|||||||
102 | $profile = $parent->CarouselProfile; |
||||||
103 | if ($profile) { |
||||||
104 | return $this->Image->{$profile}(); |
||||||
0 ignored issues
–
show
The property
Image does not exist on ilateral\SilverStripe\Carousel\Model\CarouselSlide . Since you implemented __get , consider adding a @property annotation.
![]() |
|||||||
105 | } else { |
||||||
106 | $profile = $this->config()->default_proile; |
||||||
107 | } |
||||||
108 | |||||||
109 | return $this->Image->{$profile}(); |
||||||
110 | } |
||||||
111 | |||||||
112 | public function getCMSFields() |
||||||
113 | { |
||||||
114 | $fields = parent::getCMSFields(); |
||||||
115 | |||||||
116 | $fields->removeByName([ |
||||||
117 | 'ParentID', |
||||||
118 | 'Sort', |
||||||
119 | 'LinkID' |
||||||
120 | ]); |
||||||
121 | |||||||
122 | $fields->addFieldToTab( |
||||||
123 | 'Root.Main', |
||||||
124 | LinkField::create( |
||||||
125 | 'Link', |
||||||
126 | $this->fieldLabel('Link'), |
||||||
127 | $this |
||||||
128 | ) |
||||||
129 | ); |
||||||
130 | |||||||
131 | return $fields; |
||||||
132 | } |
||||||
133 | |||||||
134 | public function getThumbnail() |
||||||
135 | { |
||||||
136 | if($this->Image()) { |
||||||
0 ignored issues
–
show
The method
Image() does not exist on ilateral\SilverStripe\Carousel\Model\CarouselSlide . 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
![]() |
|||||||
137 | return $this->Image()->CMSThumbnail(); |
||||||
138 | } else { |
||||||
139 | return '(No Image)'; |
||||||
140 | } |
||||||
141 | } |
||||||
142 | |||||||
143 | /** |
||||||
144 | * Check parent permissions |
||||||
145 | * |
||||||
146 | * @return Boolean |
||||||
147 | */ |
||||||
148 | public function canView($member = null) { |
||||||
149 | $extended = $this->extend('canView', $member); |
||||||
150 | if($extended && $extended !== null) return $extended; |
||||||
151 | |||||||
152 | return $this->Parent()->canView($member); |
||||||
153 | } |
||||||
154 | |||||||
155 | /** |
||||||
156 | * Anyone can create a carousel slide |
||||||
157 | * |
||||||
158 | * @return Boolean |
||||||
159 | */ |
||||||
160 | public function canCreate($member = null, $context = []) { |
||||||
161 | $extended = $this->extend('canCreate', $member, $context); |
||||||
162 | if($extended && $extended !== null) return $extended; |
||||||
163 | |||||||
164 | return true; |
||||||
165 | } |
||||||
166 | |||||||
167 | /** |
||||||
168 | * Check parent permissions |
||||||
169 | * |
||||||
170 | * @return Boolean |
||||||
171 | */ |
||||||
172 | public function canEdit($member = null) { |
||||||
173 | $extended = $this->extend('canEdit', $member); |
||||||
174 | if($extended && $extended !== null) return $extended; |
||||||
175 | |||||||
176 | return $this->Parent()->canEdit($member); |
||||||
177 | } |
||||||
178 | |||||||
179 | /** |
||||||
180 | * Check parent permissions |
||||||
181 | * |
||||||
182 | * @return Boolean |
||||||
183 | */ |
||||||
184 | public function canDelete($member = null) { |
||||||
185 | $extended = $this->extend('canDelete', $member); |
||||||
186 | if($extended && $extended !== null) return $extended; |
||||||
187 | |||||||
188 | return $this->Parent()->canEdit($member); |
||||||
189 | } |
||||||
190 | } |
||||||
191 |