function workbench_access_get_active_tree in Workbench Access 7
Load the active tree.
33 calls to workbench_access_get_active_tree()
- WorkbenchAccessMenuTestCase::testWorkbenchAccessMenu in tests/
workbench_access.test - WorkbenchAccessRoleTestCase::testWorkbenchAccessRoles in tests/
workbench_access.test - WorkbenchAccessTaxonomyTestCase::testWorkbenchAccessTaxonomy in tests/
workbench_access.test - WorkbenchAccessTestCase::assertWorkbenchScheme in tests/
workbench_access.test - Any tests that can be abstracted should go here in a new method.
- workbench_access_active_options in ./
workbench_access.module - Build an array of form options for the currently active workbench access tree.
1 string reference to 'workbench_access_get_active_tree'
- workbench_access_reset_tree in ./
workbench_access.module - Reset tree data stored in statics.
File
- ./
workbench_access.module, line 550 - Workbench Access module file.
Code
function workbench_access_get_active_tree() {
$scheme = variable_get('workbench_access');
if (!$scheme) {
return FALSE;
}
workbench_access_load_include($scheme);
$access_tree =& drupal_static(__FUNCTION__);
if (!isset($access_tree)) {
// Now check the cache.
$cache = cache_get('workbench_access_tree', 'cache_bootstrap');
if (isset($cache->data)) {
$access_tree = $cache->data;
}
if (isset($access_tree['access_scheme'])) {
return $access_tree;
}
// Retrieve and cache data.
$func = $scheme . '_workbench_access_info';
$info = $func();
$data = $info[$scheme];
$stored = workbench_access_get_ids_by_scheme($data);
$tree = workbench_access_tree($data);
workbench_access_build_tree($tree);
// Ensure that we have no orphaned ids.
$active = array();
foreach ($stored as $access_id => $access_scheme) {
if (isset($tree[$access_id])) {
$active[$access_id] = $access_scheme;
}
}
$access_tree = array(
'access_scheme' => $data,
'tree' => $tree,
'active' => $active,
);
cache_set('workbench_access_tree', $access_tree, 'cache_bootstrap');
}
return $access_tree;
}