You are here

function _less_registry in Less CSS Preprocessor 7.2

Same name and namespace in other branches
  1. 8 less.module \_less_registry()
  2. 7.4 less.module \_less_registry()
  3. 7.3 less.module \_less_registry()
2 calls to _less_registry()
less_get_settings in ./less.module
_less_files in ./less.module

File

./less.module, line 403
Handles compiling of .less files.

Code

function _less_registry() {
  $static_stylesheets =& drupal_static('less_stylesheets');
  $static_defaults =& drupal_static('less_defaults');
  if (!isset($stylesheets_cache) || !isset($defaults_cache)) {
    if (($cache_stylesheets = cache_get('less:stylesheets')) && ($cache_defaults = cache_get('less:defaults'))) {
      $static_stylesheets = $cache_stylesheets->data;
      $static_defaults = $cache_defaults->data;
    }
    else {
      $system_types = array(
        'module_enabled',
        'theme',
      );
      foreach ($system_types as $system_type) {
        $system_items = system_list($system_type);
        foreach ($system_items as $system_item_name => $system_item) {
          if (!empty($system_item->info['stylesheets'])) {
            foreach ($system_item->info['stylesheets'] as $stylesheets) {
              foreach ($stylesheets as $stylesheet) {
                if (drupal_substr($stylesheet, -5) == '.less') {
                  $static_stylesheets[$stylesheet] = $system_item_name;
                }
              }
            }
          }

          // Grab variable defaults from module/theme .info file.
          if (!empty($system_item->info['less'])) {
            $static_defaults[$system_item_name] = $system_item->info['less'];
          }

          // Invoke hook_less_variables(), assume results are cacheable.
          if ($module_defaults = module_invoke($system_item_name, 'less_variables')) {
            $static_defaults[$system_item_name] = array_merge((array) $static_defaults[$system_item_name], array_filter($module_defaults));
          }
        }
      }
      cache_set('less:stylesheets', $static_stylesheets);
      cache_set('less:defaults', $static_defaults);
    }
  }
}