diff options
Diffstat (limited to 'mod/file/pages')
| -rw-r--r-- | mod/file/pages/file/download.php | 38 | ||||
| -rw-r--r-- | mod/file/pages/file/friends.php | 2 | ||||
| -rw-r--r-- | mod/file/pages/file/owner.php | 7 | ||||
| -rw-r--r-- | mod/file/pages/file/search.php | 4 | ||||
| -rw-r--r-- | mod/file/pages/file/view.php | 7 | ||||
| -rw-r--r-- | mod/file/pages/file/world.php | 10 |
6 files changed, 55 insertions, 13 deletions
diff --git a/mod/file/pages/file/download.php b/mod/file/pages/file/download.php new file mode 100644 index 000000000..76c1f1272 --- /dev/null +++ b/mod/file/pages/file/download.php @@ -0,0 +1,38 @@ +<?php +/** + * Elgg file download. + * + * @package ElggFile + */ + +// Get the guid +$file_guid = get_input("guid"); + +// Get the file +$file = get_entity($file_guid); +if (!$file) { + register_error(elgg_echo("file:downloadfailed")); + forward(); +} + +$mime = $file->getMimeType(); +if (!$mime) { + $mime = "application/octet-stream"; +} + +$filename = $file->originalfilename; + +// fix for IE https issue +header("Pragma: public"); + +header("Content-type: $mime"); +if (strpos($mime, "image/") !== false || $mime == "application/pdf") { + header("Content-Disposition: inline; filename=\"$filename\""); +} else { + header("Content-Disposition: attachment; filename=\"$filename\""); +} + +ob_clean(); +flush(); +readfile($file->getFilenameOnFilestore()); +exit; diff --git a/mod/file/pages/file/friends.php b/mod/file/pages/file/friends.php index f504bdc1f..d55c1e62b 100644 --- a/mod/file/pages/file/friends.php +++ b/mod/file/pages/file/friends.php @@ -7,7 +7,7 @@ $owner = elgg_get_page_owner_entity(); if (!$owner) { - forward('file/all'); + forward('', '404'); } elgg_push_breadcrumb(elgg_echo('file'), "file/all"); diff --git a/mod/file/pages/file/owner.php b/mod/file/pages/file/owner.php index fb87af1b2..99cf62714 100644 --- a/mod/file/pages/file/owner.php +++ b/mod/file/pages/file/owner.php @@ -10,7 +10,7 @@ group_gatekeeper(); $owner = elgg_get_page_owner_entity(); if (!$owner) { - forward('file/all'); + forward('', '404'); } elgg_push_breadcrumb(elgg_echo('file'), "file/all"); @@ -36,10 +36,9 @@ $title = elgg_echo("file:user", array($owner->name)); // List files $content = elgg_list_entities(array( - 'types' => 'object', - 'subtypes' => 'file', + 'type' => 'object', + 'subtype' => 'file', 'container_guid' => $owner->guid, - 'limit' => 10, 'full_view' => FALSE, )); if (!$content) { diff --git a/mod/file/pages/file/search.php b/mod/file/pages/file/search.php index 402a28933..d60dfb755 100644 --- a/mod/file/pages/file/search.php +++ b/mod/file/pages/file/search.php @@ -74,8 +74,8 @@ if ($listtype == "gallery") { } $params = array( - 'types' => 'object', - 'subtypes' => 'file', + 'type' => 'object', + 'subtype' => 'file', 'container_guid' => $page_owner_guid, 'limit' => $limit, 'full_view' => false, diff --git a/mod/file/pages/file/view.php b/mod/file/pages/file/view.php index 50c55a74f..6c9566a89 100644 --- a/mod/file/pages/file/view.php +++ b/mod/file/pages/file/view.php @@ -6,6 +6,11 @@ */ $file = get_entity(get_input('guid')); +if (!$file) { + register_error(elgg_echo('noaccess')); + $_SESSION['last_forward_from'] = current_page_url(); + forward(''); +} $owner = elgg_get_page_owner_entity(); @@ -28,7 +33,7 @@ $content .= elgg_view_comments($file); elgg_register_menu_item('title', array( 'name' => 'download', 'text' => elgg_echo('file:download'), - 'href' => "mod/file/download.php?file_guid=$file->guid", + 'href' => "file/download/$file->guid", 'link_class' => 'elgg-button elgg-button-action', )); diff --git a/mod/file/pages/file/world.php b/mod/file/pages/file/world.php index e438ca2f0..96c8de785 100644 --- a/mod/file/pages/file/world.php +++ b/mod/file/pages/file/world.php @@ -9,16 +9,16 @@ elgg_push_breadcrumb(elgg_echo('file')); elgg_register_title_button(); -$limit = get_input("limit", 10); - $title = elgg_echo('file:all'); $content = elgg_list_entities(array( - 'types' => 'object', - 'subtypes' => 'file', - 'limit' => $limit, + 'type' => 'object', + 'subtype' => 'file', 'full_view' => FALSE )); +if (!$content) { + $content = elgg_echo('file:none'); +} $sidebar = file_get_type_cloud(); $sidebar = elgg_view('file/sidebar'); |
