/** * Retrieves a list of available CDN providers for the Bootstrap framework. * * @param string $provider * A specific provider data to return. * @param bool $reset * Toggle determining whether or not to reset the database cache. * * @return array|FALSE * An associative array of CDN providers, keyed by their machine name if * $provider is not set. If $provider is set and exists, it's individual * data array will be returned. If $provider is set and the data does not * exist then FALSE will be returned. * * @deprecated Will be removed in a future release. * * @code * // Before. * $providers = bootstrap_cdn_provider(); * $jsdelivr = bootstrap_cdn_provider('jsdelivr'); * * // After. * use Drupal\bootstrap\Bootstrap; * use Drupal\bootstrap\Plugin\ProviderManager; * * $theme = Bootstrap::getTheme(); * * // Get provider definitions, the "equivalent" for bootstrap_cdn_provider(). * $provider_manager = new ProviderManager($theme); * $providers = $provider_manager->getDefinitions(); * $jsdelivr = $provider_manager->getDefinition('jsdelivr'); * * // You should, however, use the the fully initialized classes made * // available through a theme instance. * $providers = $theme->getProviders(); * $jsdelivr = $theme->getProvider('jsdelivr'); * @endcode * * @see \Drupal\bootstrap\Plugin\ProviderManager * @see \Drupal\bootstrap\Theme::getProviders() * @see \Drupal\bootstrap\Theme::getProvider() */ function bootstrap_cdn_provider($provider = NULL, $reset = FALSE) { Bootstrap::deprecated(); $provider_manager = new ProviderManager(Bootstrap::getTheme()); if ($reset) { $provider_manager->clearCachedDefinitions(); } if (isset($provider)) { if ($provider_manager->hasDefinition($provider)) { return $provider_manager->getDefinition($provider); } return FALSE; } return $provider_manager->getDefinitions(); }
/** * Retrieves the CDN provider. * * @param string $provider * A CDN provider name. Defaults to the provider set in the theme settings. * * @return \Drupal\bootstrap\Plugin\Provider\ProviderInterface|FALSE * A provider instance or FALSE if there is no provider. */ public function getProvider($provider = NULL) { $provider = $provider ?: $this->getSetting('cdn_provider'); $provider_manager = new ProviderManager($this); if ($provider_manager->hasDefinition($provider)) { return $provider_manager->createInstance($provider, ['theme' => $this]); } return FALSE; }