edgarindustries/youtubefield

Field for selecting YouTube videos. Takes various URL formats as input and stores the YouTube ID.

Installs: 15 855

Dependents: 2

Suggesters: 0

Stars: 14

Watchers: 5

Forks: 10

Open Issues: 4

Type:silverstripe-vendormodule

2.0-beta1 2017-11-20 10:57 UTC

README

Introduction

This SilverStripe module provides a YouTube field for use in the CMS/ModelAdmin. It accepts input of various common YouTube URL formats and converts them for storage in database as the 11-character YouTube ID.

Once a valid ID is saved the field will display the video's thumbnail and title.

Optionally you can provide a key for the YouTube v3 API, which is used to display additional information (duration and view count) and provides information immediately (rather than after saving).

Screenshot of Video Information

Requirements

  • silverstripe/framework ^4.0 (See 1 branch for SilverStripe 3 compatibility)

Basic field

mysite/code/Page.php

<?php

class Page extends SiteTree
{

    private static $db = array(
        'VideoID' => 'Varchar(11)',
    );
    
    public function getCMSFields() {
        $fields = parent::getCMSFields();
        $fields->addFieldToTab('Root.Main', new \EdgarIndustries\YouTubeField\YouTubeField('VideoID', 'YouTube Video'));
        return $fields;
    }
    
}

mysite/_config/config.yml

EdgarIndustries\YouTubeField\YouTubeField:
  api_key: YOUR_API_KEY

URL Parser

There is a static function which can be called (without using the YouTubeField) to simply retrieve the YouTube ID from a supported URL format.

YouTubeField::url_parser($url);