123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- <?php
- $page_owner = elgg_get_page_owner_entity();
- $folder_guid = (int) get_input("folder_guid", 0);
- $draw_page = get_input("draw_page", true);
- $sort_by = get_input("sort_by");
- $direction = get_input("direction");
- $limit = file_tools_get_list_length();
- $offset = (int) get_input("offset", 0);
- if (empty($page_owner) || (!elgg_instanceof($page_owner, "user") && !elgg_instanceof($page_owner, "group"))) {
- forward(REFERER);
- }
- elgg_group_gatekeeper();
- if ($page_owner->canEdit() || ($page_owner instanceof ElggGroup && $page_owner->isMember())) {
- elgg_require_js('file_tools/reorder');
- }
- if (empty($sort_by)) {
- $sort_value = "e.time_created";
- if (elgg_instanceof($page_owner, "group") && !empty($page_owner->file_tools_sort)) {
- $sort_value = $page_owner->file_tools_sort;
- } elseif ($site_sort_default = elgg_get_plugin_setting("sort", "file_tools")) {
- $sort_value = $site_sort_default;
- }
- $sort_by = $sort_value;
- }
- if (empty($direction)) {
- $sort_direction_value = "asc";
- if (elgg_instanceof($page_owner, "group") && !empty($page_owner->file_tools_sort_direction)) {
- $sort_direction_value = $page_owner->file_tools_sort_direction;
- } elseif ($site_sort_direction_default = elgg_get_plugin_setting("sort_direction", "file_tools")) {
- $sort_direction_value = $site_sort_direction_default;
- }
- $direction = $sort_direction_value;
- }
- $wheres = array();
- $wheres[] = "NOT EXISTS (
- SELECT 1 FROM " . elgg_get_config("dbprefix") . "entity_relationships r
- WHERE r.guid_two = e.guid AND
- r.relationship = '" . FILE_TOOLS_RELATIONSHIP . "')";
- $files_options = array(
- "type" => "object",
- "subtype" => "file",
- "limit" => $limit,
- "offset" => $offset,
- "container_guid" => $page_owner->getGUID()
- );
- $files_options["joins"][] = "JOIN " . elgg_get_config("dbprefix") . "objects_entity oe ON oe.guid = e.guid";
- if ($sort_by == "simpletype") {
- $files_options["order_by_metadata"] = array("name" => "mimetype", "direction" => $direction);
- } else {
- $files_options["order_by"] = $sort_by . " " . $direction;
- }
- $folder = false;
- if ($folder_guid !== false) {
- $folder = get_entity($folder_guid);
- if (!empty($folder) && elgg_instanceof($folder, "object", FILE_TOOLS_SUBTYPE) && ($folder->getContainerGUID() == $page_owner->getGUID())) {
- $files_options["relationship"] = FILE_TOOLS_RELATIONSHIP;
- $files_options["relationship_guid"] = $folder_guid;
- $files_options["inverse_relationship"] = false;
- } else {
- $folder = false; // just to be save
- $files_options["wheres"] = $wheres;
- }
- }
- // get the files
- $files = elgg_get_entities_from_relationship($files_options);
- // get count
- $files_options["count"] = true;
- $files_count = elgg_get_entities_from_relationship($files_options);
- // do we need a more button
- $show_more = false;
- if ($limit) {
- $show_more = $files_count > ($offset + $limit);
- }
- if (!$draw_page) {
- 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
- elgg_register_title_button();
-
- // 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");
- $sidebar .= elgg_view("file_tools/sidebar/info");
- $sidebar .= elgg_view("page/elements/tagcloud_block", array("subtypes" => "file", "owner_guid" => $page_owner->getGUID()));
-
- // build page params
- $params = array(
- "title" => $title_text,
- "content" => $body,
- "sidebar" => $sidebar
- );
-
- if (elgg_instanceof($page_owner, "user")) {
- if ($page_owner->getGUID() == elgg_get_logged_in_user_guid()) {
- $params["filter_context"] = "mine";
- } else {
- $params["filter_context"] = $page_owner->username;
- }
- } else {
- $params["filter"] = false;
- }
-
- echo elgg_view_page($title_text, elgg_view_layout("content", $params));
- }
|