示例#1
0
/**
 * 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();
}
示例#2
0
 /**
  * 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;
 }