You are here

public function VideoFilterCore::loadPlugins in Video Filter 8

Load Video Filter plugins.

File

src/VideoFilterCore.php, line 21

Class

VideoFilterCore
Core class for Video Fitler module.

Namespace

Drupal\video_filter

Code

public function loadPlugins($url = '') {
  $result = [];
  $manager = \Drupal::service('plugin.manager.video_filter');
  $plugins = [];
  foreach ($manager
    ->getDefinitions() as $plugin_info) {
    $plugin = $manager
      ->createInstance($plugin_info['id']);

    // Plugin options.
    $options = $plugin
      ->options();

    // Check if URL is supported.
    $regexp = $plugin
      ->getRegexp();
    $_regexp = !is_array($regexp) ? [
      $regexp,
    ] : $regexp;
    foreach ($_regexp as $regexp) {
      if (preg_match($regexp, $url, $matches) && !empty($options)) {
        $result['id'] = $plugin_info['id'];
        $result['options'] = $options;
        $result['plugin'] = $plugin;
      }
    }
    $plugins[$plugin_info['id']] = [
      'options' => $options,
      'regexp' => $_regexp,
    ];
  }
  $result['plugins'] = $plugins;
  return $result;
}