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;
 }