1 | <?php |
||
2 | |||
3 | namespace LeKoala\CommonExtensions; |
||
4 | |||
5 | use SilverStripe\Forms\Tab; |
||
6 | use SilverStripe\Forms\FieldList; |
||
7 | use SilverStripe\Forms\TextField; |
||
8 | use SilverStripe\ORM\DataExtension; |
||
9 | |||
10 | /** |
||
11 | * A typical social networks to a record |
||
12 | * |
||
13 | * @property \SilverStripe\SiteConfig\SiteConfig|\LeKoala\CommonExtensions\SocialExtension $owner |
||
14 | * @property string $Facebook |
||
15 | * @property string $Twitter |
||
16 | * @property string $LinkedIn |
||
17 | * @property string $Youtube |
||
18 | * @property string $Vimeo |
||
19 | * @property string $Flickr |
||
20 | * @property string $Instagram |
||
21 | * @property string $Pinterest |
||
22 | */ |
||
23 | class SocialExtension extends DataExtension |
||
24 | { |
||
25 | //TODO: find a more flexible way to deal with various type of social networks |
||
26 | private static $db = [ |
||
27 | "Facebook" => "Varchar(59)", |
||
28 | "Twitter" => "Varchar(59)", |
||
29 | "LinkedIn" => "Varchar(59)", |
||
30 | "Youtube" => "Varchar(59)", |
||
31 | "Vimeo" => "Varchar(59)", |
||
32 | "Flickr" => "Varchar(59)", |
||
33 | "Instagram" => "Varchar(59)", |
||
34 | "Pinterest" => "Varchar(59)", |
||
35 | ]; |
||
36 | |||
37 | public function updateCMSFields(FieldList $fields) |
||
38 | { |
||
39 | $tab = new Tab('Social'); |
||
40 | $fields->addFieldToTab('Root', $tab); |
||
41 | $placeholders = [ |
||
42 | 'Facebook' => 'my_page_name', |
||
43 | 'LinkedIn' => 'company/my_company_name', |
||
44 | 'Youtube' => 'channel/my_channel_name' |
||
45 | ]; |
||
46 | foreach (self::$db as $name => $type) { |
||
47 | $field = new TextField($name, $this->owner->fieldLabel($name)); |
||
0 ignored issues
–
show
|
|||
48 | $placeholder = $placeholders[$name] ?? ''; |
||
49 | $field->setAttribute('placeholder', $placeholder); |
||
50 | $tab->push($field); |
||
51 | } |
||
52 | } |
||
53 | public function FacebookLink() |
||
54 | { |
||
55 | return 'https://www.facebook.com/' . $this->owner->Facebook; |
||
56 | } |
||
57 | |||
58 | public function TwitterLink() |
||
59 | { |
||
60 | return 'https://twitter.com/' . $this->owner->Twitter; |
||
61 | } |
||
62 | |||
63 | public function LinkedInLink() |
||
64 | { |
||
65 | return 'https://www.linkedin.com/' . $this->owner->LinkedIn; |
||
66 | } |
||
67 | |||
68 | public function YoutubeLink() |
||
69 | { |
||
70 | return 'https://www.youtube.com/' . $this->owner->Youtube; |
||
71 | } |
||
72 | |||
73 | public function VimeoLink() |
||
74 | { |
||
75 | return 'https://vimeo.com/' . $this->owner->Vimeo; |
||
76 | } |
||
77 | |||
78 | public function InstagramLink() |
||
79 | { |
||
80 | return 'https://www.instagram.com/' . $this->owner->Instagram; |
||
81 | } |
||
82 | |||
83 | public function FlickrLink() |
||
84 | { |
||
85 | return 'https://www.flickr.com/photos/' . $this->owner->Flickr; |
||
86 | } |
||
87 | |||
88 | public function PinterestLink() |
||
89 | { |
||
90 | return 'https://www.pinterest.com/' . $this->owner->Pinterest; |
||
91 | } |
||
92 | } |
||
93 |
This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.
This is most likely a typographical error or the method has been renamed.