/** * Generate an array of all categories the user can navigate to */ public function get_tree() { $targets = array(); $level = 0; $root = array(0, get_lang('RootCat'), $level); $targets[] = $root; // course or platform admin if (api_is_allowed_to_edit()) { $user = api_is_platform_admin() ? null : api_get_user_id(); $cats = Category::get_root_categories_for_teacher($user); foreach ($cats as $cat) { $targets[] = array($cat->get_id(), $cat->get_name(), $level + 1); $targets = Category::add_subtree($targets, $level + 1, $cat->get_id(), null); } } else { // student $cats = Category::get_root_categories_for_student(api_get_user_id()); foreach ($cats as $cat) { $targets[] = array($cat->get_id(), $cat->get_name(), $level + 1); $targets = Category::add_subtree($targets, $level + 1, $cat->get_id(), 1); } } return $targets; }