| 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.