You are here

function _views_fetch_plugin_data in Views (for Drupal 7) 7.3

Same name and namespace in other branches
  1. 6.3 includes/cache.inc \_views_fetch_plugin_data()
  2. 6.2 includes/cache.inc \_views_fetch_plugin_data()

Fetch the plugin data from cache.

1 call to _views_fetch_plugin_data()
views_fetch_plugin_data in ./views.module
Fetch the plugin data from cache.

File

includes/cache.inc, line 129
Load Views' data so that it knows what is available to build queries from.

Code

function _views_fetch_plugin_data($type = NULL, $plugin = NULL, $reset = FALSE) {
  static $cache = NULL;
  if (!isset($cache) || $reset) {

    // Load necessary code once.
    if (!isset($cache)) {
      views_include('plugins');
      views_include_handlers();
    }

    // Because plugin data contains translated strings, and as such can be
    // expensive to build, the results are cached per language.
    global $language;
    $cache_key = 'views:plugin_data:' . $language->language;
    if (!$reset) {
      if ($cache = cache_get($cache_key)) {
        $cache = $cache->data;
      }
    }

    // If not available in the cache, build it and cache it.
    if (!$cache || $reset) {
      $cache = views_discover_plugins();
      cache_set($cache_key, $cache);
    }
  }
  if (!$type && !$plugin) {
    return $cache;
  }
  elseif (!$plugin) {

    // Not in the if above so the else below won't run.
    if (isset($cache[$type])) {
      return $cache[$type];
    }
  }
  elseif (isset($cache[$type][$plugin])) {
    return $cache[$type][$plugin];
  }

  // Return an empty array if there is no match.
  return array();
}