Example #1
0
/**
 * build the folder tree
 *
 * @param string         $hook        the name of the hook
 * @param string         $type        the type of the hook
 * @param ElggMenuItem[] $returnvalue current return value
 * @param array          $params      supplied params
 *
 * @return ElggMenuItem[]
 */
function file_tools_folder_sidebar_tree_hook($hook, $type, $returnvalue, $params)
{
    if (empty($params) || !is_array($params)) {
        return $returnvalue;
    }
    $container = elgg_extract("container", $params);
    if (empty($container) || !elgg_instanceof($container, "user") && !elgg_instanceof($container, "group")) {
        return $returnvalue;
    }
    $main_menu_item = ElggMenuItem::factory(array("name" => "root", "text" => elgg_echo("file_tools:list:folder:main"), "href" => "#", "id" => "0", "rel" => "root", "priority" => 0));
    if ($folders = file_tools_get_folders($container->getGUID())) {
        $main_menu_item->setChildren(file_tools_make_menu_items($folders));
    }
    $returnvalue[] = $main_menu_item;
    return $returnvalue;
}
Example #2
0
/**
 * Create a folder menu
 *
 * @param array $folders the folders to create the menu for
 *
 * @return bool|ElggMenuItem[]
 */
function file_tools_make_menu_items($folders)
{
    $result = false;
    if (!empty($folders) && is_array($folders)) {
        $result = array();
        foreach ($folders as $index => $level) {
            if ($folder = elgg_extract("folder", $level)) {
                $folder_title = $folder->title;
                if (empty($folder_title)) {
                    $folder_title = elgg_echo("untitled");
                }
                $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(file_tools_make_menu_items($children));
                }
                $result[] = $folder_menu;
            }
        }
    }
    return $result;
}