function context_condition_map in Context 6.3
Same name and namespace in other branches
- 6 context.module \context_condition_map()
- 6.2 context.module \context_condition_map()
- 7.3 context.module \context_condition_map()
Loads an associative array of conditions => context identifiers to allow contexts to be set by different conditions.
2 calls to context_condition_map()
- context_condition::condition_used in plugins/
context_condition.inc - Check whether this condition is used by any contexts. Can be used to prevent expensive condition checks from being triggered when no contexts use this condition.
- context_condition::get_contexts in plugins/
context_condition.inc - Retrieve all contexts with the condition value provided.
File
- ./
context.module, line 383
Code
function context_condition_map($reset = FALSE) {
static $condition_map;
if (!isset($condition_map) || $reset) {
if (!$reset && ($cache = context_cache_get('condition_map'))) {
$condition_map = $cache;
}
else {
$condition_map = array();
foreach (array_keys(context_conditions()) as $condition) {
if ($plugin = context_get_plugin('condition', $condition)) {
foreach (context_enabled_contexts() as $context) {
$values = $plugin
->fetch_from_context($context, 'values');
foreach ($values as $value) {
if (!isset($condition_map[$condition][$value])) {
$condition_map[$condition][$value] = array();
}
$condition_map[$condition][$value][] = $context->name;
}
}
}
}
context_cache_set('condition_map', $condition_map);
}
}
return $condition_map;
}