echo elgg_view("file_tools/list/files", array("folder" => $folder, "files" => $files, "sort_by" => $sort_by, "direction" => $direction, "show_more" => $show_more, "limit" => $limit, "offset" => $offset)); } else { // build breadcrumb elgg_push_breadcrumb(elgg_echo("file"), "file/all"); elgg_push_breadcrumb($page_owner->name); // register title button to add a new file if (elgg_is_logged_in()) { $owner = elgg_get_page_owner_entity(); if ($owner && $owner->canWriteToContainer()) { $guid = $owner->getGUID(); elgg_register_menu_item('title', array('name' => 'file_tools:upload:file', 'text' => elgg_echo("file:upload"), 'id' => 'file_tools_list_upload_file_toggle', 'link_class' => 'elgg-button elgg-button-action')); elgg_register_menu_item('title', array('name' => 'file_tools:new:title', 'text' => elgg_echo("file_tools:new:title"), 'id' => 'file_tools_list_new_folder_toggle', 'link_class' => 'elgg-button elgg-button-action')); } } // get data for tree $folders = file_tools_get_folders($page_owner->getGUID()); // build page elements $title_text = elgg_echo("file:user", array($page_owner->name)); $body = "<div id='file_tools_list_files_container' class='elgg-content'>" . elgg_view("graphics/ajax_loader", array("hidden" => false)) . "</div>"; // make sidebar $sidebar = elgg_view("file_tools/list/tree", array("folder" => $folder, "folders" => $folders)); $sidebar .= elgg_view("file_tools/sidebar/sort_options"); // filter/tabs $filter = ""; if (elgg_instanceof($page_owner, "user")) { if ($page_owner->getGUID() == elgg_get_logged_in_user_guid()) { $filter = elgg_view('page/layouts/content/filter', array('filter_context' => "mine")); } else { $filter = elgg_view('page/layouts/content/filter', array('filter_context' => $page_owner->username)); } }
/** * 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; }
<?php $folder_guid = (int) get_input('folder_guid'); $container_guid = elgg_extract("container_guid", $vars, elgg_get_page_owner_guid()); $current_folder = elgg_extract("folder", $vars, $folder_guid); $type = elgg_extract("type", $vars); unset($vars["folder"]); unset($vars["type"]); unset($vars["container_guid"]); if ($type == 'folder') { if (!elgg_extract("value", $vars)) { if (!empty($current_folder)) { $vars["value"] = get_entity($current_folder)->parent_guid; } } } elseif (!elgg_extract("value", $vars)) { $vars["value"] = $current_folder; } $folders = file_tools_get_folders($container_guid); $options = array(0 => elgg_echo("file_tools:input:folder_select:main")); if (!empty($folders)) { $options = $options + file_tools_build_select_options($folders, 1); } $vars["options_values"] = $options; echo elgg_view("input/dropdown", $vars);
<?php $widget = elgg_extract("entity", $vars); if ($folders = file_tools_get_folders($widget->owner_guid)) { $selected_folders = $widget->folder_guids; if (!empty($selected_folders) && !is_array($selected_folders)) { $selected_folders = array($selected_folders); } elseif (empty($selected_folders)) { $selected_folders = array(); } // select folder(s) to display echo elgg_echo("widgets:file_tree:edit:select"); echo "<div>"; echo elgg_view("input/hidden", array("name" => "params[folder_guids][]", "value" => "")); // needed to be able to empty the list echo file_tools_build_widget_options($folders, "params[folder_guids][]", $selected_folders); echo "</div>"; // display folder or folder content $checkbox_options = array("name" => "params[show_content]", "value" => "1"); if (!empty($widget->show_content)) { $checkbox_options["checked"] = "checked"; } echo "<div>"; echo elgg_view("input/checkbox", $checkbox_options); echo elgg_echo("widgets:file_tree:edit:show_content"); echo "</div>"; }