public function updateCMSFields(FieldList $fields) { Requirements::javascript('silverstripe-video-embed/assests/javascript/PhotoItemExtension.js'); $typeField = new DropdownField('Type', 'Type', singleton('PhotoItem')->dbObject('Type')->enumValues()); $fields->insertBefore($typeField, 'Photo'); $videoField = new DropdownField("VideoItemID", "Video", VideoEmbed::get()->map("ID", "Title")); $fields->insertBefore($videoField, 'Caption'); }
/** * @example in template: $FlexSlider(2, 960, 450) */ public function VideoEmbed($ID = 1, $width = null, $height = null, $autoplay = null) { /* @var $VideoEmbed VideoEmbed */ $VideoEmbed = is_numeric($ID) ? VideoEmbed::get()->byID($ID) : VideoEmbed::get()->where("Title LIKE '" . $ID . "'")->First(); if ($width) { $VideoEmbed->setWidth($width); } if ($height) { $VideoEmbed->setHeight($height); } if (!is_null($autoplay)) { $VideoEmbed->setAutoPlay($autoplay); } return $VideoEmbed; }
public function viewfile($request) { $result = false; if ($origUrl = $request->getVar('FileURL')) { if (Director::is_site_url($origUrl) && VideoEmbed::GetByURL($origUrl)) { $video = VideoEmbed::GetByURL($origUrl); $result = $this->GetResultForVideo($video); } } else { if ($fileId = $request->getVar('ID')) { $video = VideoEmbed::get()->filter(array("HTML5VideoID" => $fileId))->first(); $result = $this->GetResultForVideo($video); } } return $result ? $result : parent::viewfile($request); }
/** * * @param string $url * @return VideoEmbed Description */ public static function GetByURL($url) { $result = false; $url = preg_replace('/_resampled\\/[^-]+-/', '', Director::makeRelative($url)); $file = File::get()->filter('Filename', $url)->first(); if ($file && $file->exists()) { $result = VideoEmbed::get()->filter('HTML5VideoID', $file->ID)->first(); } return $result && $result->exists() ? $result : false; }