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.
Name | Location | Description |
---|---|---|
DRUPAL_CACHE_CUSTOM |
drupal/ |
The block is handling its own caching in its hook_block_view(). |
DRUPAL_CACHE_GLOBAL |
drupal/ |
The block or element is the same for every user and page that it is visible. |
DRUPAL_CACHE_PER_PAGE |
drupal/ |
The block or element can change depending on the page being viewed. |
DRUPAL_CACHE_PER_ROLE |
drupal/ |
The block or element can change depending on the user's roles. |
DRUPAL_CACHE_PER_USER |
drupal/ |
The block or element can change depending on the user. |
DRUPAL_NO_CACHE |
drupal/ |
The block should not get cached. |