function facetapi_check_block_visibility in Facet API 6.3
Same name and namespace in other branches
- 7.2 facetapi.block.inc \facetapi_check_block_visibility()
- 7 facetapi.block.inc \facetapi_check_block_visibility()
Checks whether the block should be displayed.
In cases where modules like Context are being used, hook_block_list_alter() is not invoked and we get fatal errors. We have to test whether or not the hook has been invoked and call this function manually otherwise.
Parameters
$delta: The block delta.
Return value
A boolean flagging whether to display this block or not.
2 calls to facetapi_check_block_visibility()
- facetapi_block_list_alter in ./
facetapi.block.inc - Implements hook_block_list_alter().
- facetapi_block_view in ./
facetapi.block.inc - Implements hook_block_view().
File
- ./
facetapi.block.inc, line 127 - Block realm code and hook implementations.
Code
function facetapi_check_block_visibility($delta) {
$map = facetapi_get_delta_map();
// Store parsed deltas so we only calculate once. This also lets us know
// whether hook_block_list_alter() was called or not.
$parsed =& ctools_static('facetapi_parsed_deltas', array());
// Ensures the delta is mapped.
if (!isset($map[$delta])) {
$parsed[$delta] = FALSE;
return FALSE;
}
// Parses the raw delta, extracts variables for code readability.
$parsed[$delta] = facetapi_parse_delta($map[$delta]);
list($searcher, $realm_name, $facet_name) = $parsed[$delta];
// Checks whether block should be displayed.
if (!facetapi_is_active_searcher($searcher)) {
return FALSE;
}
if (!facetapi_facet_enabled($searcher, $realm_name, $facet_name)) {
return FALSE;
}
if (!($adapter = facetapi_adapter_load($searcher))) {
return FALSE;
}
if ($adapter
->suppressOutput($realm_name)) {
return FALSE;
}
// We have facets!
return TRUE;
}