public function testEmbedManager() { $embed = new EmbedManager(); $this->assertNull($embed->get('youtube')); $this->assertNull($embed->get('vimeo')); $this->assertNull($embed->getByType('youtube')); $this->assertNull($embed->getByType('embed/vimeo')); $embed->register(new \Directus\Embed\Provider\YoutubeProvider()); $this->assertNotNull($embed->get('youtube')); $this->assertNotNull($embed->getByType('embed/youtube')); $this->assertInstanceOf('\\Directus\\Embed\\Provider\\YoutubeProvider', $embed->get('youtube')); $this->assertInstanceOf('\\Directus\\Embed\\Provider\\YoutubeProvider', $embed->getByType('embed/youtube')); $embed->register(new \Directus\Embed\Provider\VimeoProvider()); $this->assertNotNull($embed->get('vimeo')); $this->assertNotNull($embed->getByType('embed/vimeo')); $this->assertInstanceOf('\\Directus\\Embed\\Provider\\VimeoProvider', $embed->get('vimeo')); $this->assertInstanceOf('\\Directus\\Embed\\Provider\\VimeoProvider', $embed->getByType('embed/vimeo')); $data = $embed->parse($this->youtubeURL); $this->assertInternalType('array', $data); $this->assertEquals($data['embed_id'], 'dQw4w9WgXcQ'); $this->assertEquals($data['type'], 'embed/youtube'); $data = $embed->parse($this->vimeoURL); $this->assertInternalType('array', $data); $this->assertEquals($data['embed_id'], '45196609'); $this->assertEquals($data['type'], 'embed/vimeo'); }
/** * @return \Directus\Embed\EmbedManager */ private static function embedManager() { $embedManager = new EmbedManager(); $acl = static::get('acl'); $adapter = static::get('ZendDb'); // Fetch files settings $SettingsTable = new DirectusSettingsTableGateway($acl, $adapter); try { $settings = $SettingsTable->fetchCollection('files', ['thumbnail_size', 'thumbnail_quality', 'thumbnail_crop_enabled']); } catch (\Exception $e) { $settings = []; $log = static::get('log'); $log->warn($e); } $providers = ['\\Directus\\Embed\\Provider\\VimeoProvider', '\\Directus\\Embed\\Provider\\YoutubeProvider']; $path = implode(DIRECTORY_SEPARATOR, [BASE_PATH, 'customs', 'embeds', '*.php']); foreach (glob($path) as $filename) { $providers[] = '\\Directus\\Embed\\Provider\\' . basename($filename, '.php'); } foreach ($providers as $providerClass) { $provider = new $providerClass($settings); $embedManager->register($provider); } return $embedManager; }