drupal_render_cid_parts

Versions
mediamosa-21
drupal_render_cid_parts($granularity = NULL)

/** Helper function for building cache ids.

Parameters

$granularity One or more cache granularity constants, e.g. DRUPAL_CACHE_PER_USER to cache for each user separately or DRUPAL_CACHE_PER_PAGE | DRUPAL_CACHE_PER_ROLE to cache separately for each page and role.

Return value

An array of cache ID parts, always containing the active theme. If the locale module is enabled it also contains the active language. If $granularity was passed in, more parts are added.

▾ 3 functions call drupal_render_cid_parts()

drupal_render_cache_by_query in includes/common.inc
Prepare an element for caching based on a query. This smart caching strategy saves Drupal from querying and rendering to HTML when the underlying query is unchanged.
drupal_render_cid_create in includes/common.inc
Create the cache ID for a renderable element.
_block_get_cache_id in modules/block/block.module
Assemble the cache_id to use for a given block.

Code

includes/common.inc, line 5174

<?php
function drupal_render_cid_parts($granularity = NULL) {
  global $theme, $base_root, $user;

  $cid_parts[] = $theme;
  if (module_exists('locale')) {
    global $language;
    $cid_parts[] = $language->language;
  }

  if (!empty($granularity)) {
    // 'PER_ROLE' and 'PER_USER' are mutually exclusive. 'PER_USER' can be a
    // resource drag for sites with many users, so when a module is being
    // equivocal, we favor the less expensive 'PER_ROLE' pattern.
    if ($granularity & DRUPAL_CACHE_PER_ROLE) {
      $cid_parts[] = 'r.' . implode(',', array_keys($user->roles));
    }
    elseif ($granularity & DRUPAL_CACHE_PER_USER) {
      $cid_parts[] = "u.$user->uid";
    }

    if ($granularity & DRUPAL_CACHE_PER_PAGE) {
      $cid_parts[] = $base_root . request_uri();
    }
  }

  return $cid_parts;
}
?>