| 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));
 
- }
 
 
  |