Source of file CustomYouTubeVideoPlaylistManager.php
Size: 1,754 Bytes - Last Modified: 2021-12-23T10:05:44+00:00
/var/www/docs.ssmods.com/process/src/code/extensions/CustomYouTubeVideoPlaylistManager.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 | <?php /** * Class CustomYouTubeVideoPlaylistManager */ class CustomYouTubeVideoPlaylistManager extends DataExtension { /** * @var array */ private static $many_many = [ 'CustomPlaylists' => 'YouTubeVideoPlaylist', ]; /** * @var array */ private static $many_many_extraFields = [ 'CustomPlaylists' => [ 'Sort' => 'Int', ], ]; /** * @var */ private $playlists; /** * @param FieldList $fields */ public function updateCMSFields(FieldList $fields) { if (!$this->owner->ID) { $fields->removeByName('CustomPlaylists'); } else { $config = GridFieldConfig_RelationEditor::create(); $config->removeComponentsByType('GridFieldAddExistingAutocompleter'); $config->addComponent(new GridFieldAddExistingSearchButton()); $config->addComponent(new GridFieldOrderableRows()); $grid = GridField::create('CustomPlaylists', 'Custom Playlists', $this->owner->CustomPlaylists()->sort('Sort'), $config); if ($fields->dataFieldByName('CustomPlaylists')) { $fields->replaceField('CustomPlaylists', $grid); } else { $fields->addFieldToTab('Root.CustomPlaylists', $grid); } } } /** * @return mixed */ public function getCustomPlaylistSet() { if (!$this->playlists) { $this->setCustomPlaylistSet(); } return $this->playlists; } /** * @return $this */ public function setCustomPlaylistSet() { $this->playlists = $this->owner->CustomPlaylists()->sort('Sort'); return $this; } } |