Block Caching

Constants that define each block's caching state.

Modules specify how their blocks can be cached in their hook_block_info() implementations. Caching can be turned off (DRUPAL_NO_CACHE), managed by the module declaring the block (DRUPAL_CACHE_CUSTOM), or managed by the core Block module. If the Block module is managing the cache, you can specify that the block is the same for every page and user (DRUPAL_CACHE_GLOBAL), or that it can change depending on the page (DRUPAL_CACHE_PER_PAGE) or by user (DRUPAL_CACHE_PER_ROLE or DRUPAL_CACHE_PER_USER). Page and user settings can be combined with a bitwise-binary or operator; for example, DRUPAL_CACHE_PER_ROLE | DRUPAL_CACHE_PER_PAGE means that the block can change depending on the user role or page it is on.

The block cache is cleared when the 'content' cache tag is invalidated, following the same pattern as the page cache (node, comment, user, taxonomy added or updated...).

Note that user 1 is excluded from block caching.

File

drupal/core/includes/common.inc, line 135
Common functions that many Drupal modules will need to reference.

Constants

Namesort descending Location Description
DRUPAL_CACHE_CUSTOM drupal/core/includes/common.inc The block is handling its own caching in its hook_block_view().
DRUPAL_CACHE_GLOBAL drupal/core/includes/common.inc The block or element is the same for every user and page that it is visible.
DRUPAL_CACHE_PER_PAGE drupal/core/includes/common.inc The block or element can change depending on the page being viewed.
DRUPAL_CACHE_PER_ROLE drupal/core/includes/common.inc The block or element can change depending on the user's roles.
DRUPAL_CACHE_PER_USER drupal/core/includes/common.inc The block or element can change depending on the user.
DRUPAL_NO_CACHE drupal/core/includes/common.inc The block should not get cached.