function bookmark_tools_folder_sidebar_tree_hook($hook, $type, $returnvalue, $params) { $result = $returnvalue; if (!empty($params) && is_array($params)) { $container = elgg_extract("container", $params); if (!empty($container) && (elgg_instanceof($container, "user") || elgg_instanceof($container, "group"))) { $main_menu_item = ElggMenuItem::factory(array("name" => "root", "text" => elgg_echo("bookmark_tools:list:folder:main"), "href" => "#", "id" => "0", "rel" => "root", "priority" => 0)); if ($folders = bookmark_tools_get_folders($container->getGUID())) { $main_menu_item->setChildren(bookmark_tools_make_menu_items($folders)); } $result[] = $main_menu_item; } } return $result; }
function bookmark_tools_make_menu_items($folders) { $result = false; if (!empty($folders) && is_array($folders)) { $result = array(); foreach ($folders as $index => $level) { if ($folder = elgg_extract("bmfolder", $level)) { $folder_menu = ElggMenuItem::factory(array("name" => "folder_" . $folder->getGUID(), "text" => $folder->title, "href" => "#" . $folder->getGUID(), "priority" => $folder->order)); if ($children = elgg_extract("children", $level)) { $folder_menu->setChildren(bookmark_tools_make_menu_items($children)); } $result[] = $folder_menu; } } } return $result; }