Пример #1
0
 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');
 }
Пример #2
0
 /**
  * @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;
 }