Source of file SocialMediaPlatform.php
Size: 3,300 Bytes - Last Modified: 2021-12-24T06:33:51+00:00
/var/www/docs.ssmods.com/process/src/app/src/Models/SocialMediaPlatform.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 | <?php namespace XD\Basic\Models; use SilverStripe\Forms\DropdownField; use SilverStripe\Forms\FieldList; use SilverStripe\Forms\TextField; use SilverStripe\ORM\DataObject; use SilverStripe\SiteConfig\SiteConfig; /** * SocialMediaPlatform * * @author Bram de Leeuw * Date: 17/02/16 * * @property int Sort * @property string Title * @property string Link * @method SiteConfig SiteConfig() */ class SocialMediaPlatform extends DataObject { private static $table_name = 'SocialMediaPlatform'; private static $db = array( 'Sort' => 'Int', 'Title' => "Enum('Facebook, Twitter, Google+, Instagram, YouTube, LinkedIn, Pinterest, SoundCloud, Tumblr','Facebook')", 'Link' => 'Varchar(255)' ); private static $default_sort = 'Sort DESC'; private static $has_one = array( 'SiteConfig' => SiteConfig::class ); private static $summary_fields = array( 'Title' => 'Platform', 'Link' => 'Link' ); private static $translate = array( 'Link' ); public function getCMSFields() { $socialMediaPlatforms = self::singleton()->dbObject('Title')->enumValues(); $fields = FieldList::create(array( DropdownField::create('Title', _t(__CLASS__ . '.Platform', 'Platform'), $socialMediaPlatforms), TextField::create('Link', _t(__CLASS__ . '.Link', 'Link')) )); $this->extend('updateCMSFields', $fields); return $fields; } /** * Get the fontawesome icon for the chosen platform * * @return string */ public function Icon() { switch ($this->Title) { case 'Twitter': return 'fab fa-twitter-square'; break; case 'Google+': return 'fab fa-google-plus-square'; break; case 'Instagram': return 'fab fa-instagram'; break; case 'YouTube': return 'fab fa-youtube-square'; break; case 'LinkedIn': return 'fab fa-linkedin-square'; break; case 'Pinterest': return 'fab fa-pinterest-square'; break; case 'SoundCloud': return 'fab fa-soundcloud'; break; case 'Tumblr': return 'fab fa-tumblr-square'; break; default: case 'Facebook': return 'fab fa-facebook-square'; break; } } /** * Return a CSS String from the selected title * * @return string */ public function CSSClass() { return strtolower(preg_replace('/([a-zA-Z])(?=[A-Z])/', '$1-', $this->getField('Title'))); } public function canView($member = null) { return $this->SiteConfig()->canView($member); } public function canEdit($member = null) { return $this->SiteConfig()->canEdit($member); } public function canDelete($member = null) { return $this->SiteConfig()->canDelete($member); } public function canCreate($member = null, $context = []) { return $this->SiteConfig()->canCreate($member, $context); } } |