function oa_toolbar_get_parent_list in Open Atrium Toolbar 7.2
Return a list of parent links to be shown in a toolbar widget
Parameters
$space_id:
string $space_type:
2 calls to oa_toolbar_get_parent_list()
- oa_toolbar_oa_space_nav_render in plugins/
content_types/ oa_space_nav.inc - Render callback.
- oa_toolbar_oa_space_structure_render in plugins/
content_types/ oa_space_structure.inc - Render callback.
File
- ./
oa_toolbar.module, line 686 - Provides hook implementations and functionality for oa_toolbar.
Code
function oa_toolbar_get_parent_list($space_id, $space_type = OA_SPACE_TYPE) {
$cache =& drupal_static(__FUNCTION__, array());
if (isset($cache[$space_id])) {
return $cache[$space_id];
}
// Can't just call oa_core_get_parents directly since it doesn't return results
// in the order needed for display.
$parents = array();
$parent_id = $space_id;
do {
$parent = oa_core_get_parents_with_titles($parent_id, $space_type, NODE_PUBLISHED);
if (!empty($parent)) {
$keys = array_keys($parent);
$parent_id = current($keys);
// Check if we have recursive relations between spaces.
if (in_array($parent_id, $parents) || $parent_id === $space_id) {
break;
}
$parents = array_merge($parents, $keys);
}
} while (!empty($parent));
$parents = array_reverse($parents);
$items = array();
if ($parents) {
$items = oa_core_get_titles($parents, $space_type, '');
}
$cache[$space_id] = $items;
return $items;
}