toastnz/youtubefield

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

Installs: 4 888

Dependents: 0

Suggesters: 0

Security: 0

Stars: 1

Watchers: 1

Forks: 15

Type:silverstripe-vendormodule

v2.0.2 2022-08-07 21:16 UTC

This package is auto-updated.

Last update: 2024-03-23 21:01:28 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

use EdgarIndustries\YouTubeField\YouTubeField;

class Page extends SiteTree
{

    private static $db = array(
        'VideoID' => 'Varchar(11)',
    );
    
    public function getCMSFields() {
        $fields = parent::getCMSFields();
        $fields->addFieldToTab('Root.Main', new 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);