aboutsummaryrefslogtreecommitdiff
path: root/mod/file
diff options
context:
space:
mode:
Diffstat (limited to 'mod/file')
-rw-r--r--mod/file/actions/file/upload.php52
-rw-r--r--mod/file/graphics/icons/application.gifbin2543 -> 2465 bytes
-rw-r--r--mod/file/graphics/icons/application_lrg.gifbin7916 -> 7781 bytes
-rw-r--r--mod/file/graphics/icons/archive.gifbin2479 -> 2419 bytes
-rw-r--r--mod/file/graphics/icons/archive_lrg.gifbin8080 -> 7918 bytes
-rw-r--r--mod/file/graphics/icons/excel.gifbin2632 -> 2509 bytes
-rw-r--r--mod/file/graphics/icons/excel_lrg.gifbin8098 -> 7571 bytes
-rw-r--r--mod/file/graphics/icons/general.gifbin1528 -> 1528 bytes
-rw-r--r--mod/file/graphics/icons/general_lrg.gifbin4731 -> 4594 bytes
-rw-r--r--mod/file/graphics/icons/music.gifbin2524 -> 2297 bytes
-rw-r--r--mod/file/graphics/icons/music_lrg.gifbin7397 -> 6748 bytes
-rw-r--r--mod/file/graphics/icons/openoffice.gifbin2502 -> 2313 bytes
-rw-r--r--mod/file/graphics/icons/openoffice_lrg.gifbin7265 -> 6617 bytes
-rw-r--r--mod/file/graphics/icons/pages.gifbin3098 -> 2766 bytes
-rw-r--r--mod/file/graphics/icons/pages_lrg.gifbin11394 -> 10234 bytes
-rw-r--r--mod/file/graphics/icons/pdf.gifbin2345 -> 2197 bytes
-rw-r--r--mod/file/graphics/icons/pdf_lrg.gifbin6770 -> 6014 bytes
-rw-r--r--mod/file/graphics/icons/ppt.gifbin2556 -> 2495 bytes
-rw-r--r--mod/file/graphics/icons/ppt_lrg.gifbin7964 -> 7423 bytes
-rw-r--r--mod/file/graphics/icons/text.gifbin2896 -> 2881 bytes
-rw-r--r--mod/file/graphics/icons/text_lrg.gifbin10928 -> 9855 bytes
-rw-r--r--mod/file/graphics/icons/vcard.gifbin2536 -> 2385 bytes
-rw-r--r--mod/file/graphics/icons/vcard_lrg.gifbin7504 -> 6798 bytes
-rw-r--r--mod/file/graphics/icons/video.gifbin2722 -> 2603 bytes
-rw-r--r--mod/file/graphics/icons/video_lrg.gifbin7868 -> 7319 bytes
-rw-r--r--mod/file/graphics/icons/word.gifbin2642 -> 2479 bytes
-rw-r--r--mod/file/graphics/icons/word_lrg.gifbin7925 -> 7350 bytes
-rw-r--r--mod/file/languages/en.php10
-rw-r--r--mod/file/pages/file/download.php2
-rw-r--r--mod/file/pages/file/friends.php2
-rw-r--r--mod/file/pages/file/owner.php7
-rw-r--r--mod/file/pages/file/search.php4
-rw-r--r--mod/file/pages/file/view.php5
-rw-r--r--mod/file/pages/file/world.php7
-rw-r--r--mod/file/start.php18
-rw-r--r--mod/file/thumbnail.php2
-rw-r--r--mod/file/views/default/object/file.php5
37 files changed, 85 insertions, 29 deletions
diff --git a/mod/file/actions/file/upload.php b/mod/file/actions/file/upload.php
index 5242cbda2..e20c4079f 100644
--- a/mod/file/actions/file/upload.php
+++ b/mod/file/actions/file/upload.php
@@ -6,7 +6,7 @@
*/
// Get variables
-$title = get_input("title");
+$title = htmlspecialchars(get_input('title', '', false), ENT_QUOTES, 'UTF-8');
$desc = get_input("description");
$access_id = (int) get_input("access_id");
$container_guid = (int) get_input('container_guid', 0);
@@ -44,7 +44,7 @@ if ($new_file) {
// if no title on new upload, grab filename
if (empty($title)) {
- $title = $_FILES['upload']['name'];
+ $title = htmlspecialchars($_FILES['upload']['name'], ENT_QUOTES, 'UTF-8');
}
} else {
@@ -71,9 +71,7 @@ $file->title = $title;
$file->description = $desc;
$file->access_id = $access_id;
$file->container_guid = $container_guid;
-
-$tags = explode(",", $tags);
-$file->tags = $tags;
+$file->tags = string_to_tag_array($tags);
// we have a file upload, so process it
if (isset($_FILES['upload']['name']) && !empty($_FILES['upload']['name'])) {
@@ -94,8 +92,31 @@ if (isset($_FILES['upload']['name']) && !empty($_FILES['upload']['name'])) {
$filestorename = elgg_strtolower(time().$_FILES['upload']['name']);
}
- $mime_type = $file->detectMimeType($_FILES['upload']['tmp_name'], $_FILES['upload']['type']);
$file->setFilename($prefix . $filestorename);
+ $mime_type = ElggFile::detectMimeType($_FILES['upload']['tmp_name'], $_FILES['upload']['type']);
+
+ // hack for Microsoft zipped formats
+ $info = pathinfo($_FILES['upload']['name']);
+ $office_formats = array('docx', 'xlsx', 'pptx');
+ if ($mime_type == "application/zip" && in_array($info['extension'], $office_formats)) {
+ switch ($info['extension']) {
+ case 'docx':
+ $mime_type = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
+ break;
+ case 'xlsx':
+ $mime_type = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
+ break;
+ case 'pptx':
+ $mime_type = "application/vnd.openxmlformats-officedocument.presentationml.presentation";
+ break;
+ }
+ }
+
+ // check for bad ppt detection
+ if ($mime_type == "application/vnd.ms-office" && $info['extension'] == "ppt") {
+ $mime_type = "application/vnd.ms-powerpoint";
+ }
+
$file->setMimeType($mime_type);
$file->originalfilename = $_FILES['upload']['name'];
$file->simpletype = file_get_simple_type($mime_type);
@@ -144,6 +165,23 @@ if (isset($_FILES['upload']['name']) && !empty($_FILES['upload']['name'])) {
$file->largethumb = $prefix."largethumb".$filestorename;
unset($thumblarge);
}
+ } elseif ($file->icontime) {
+ // if it is not an image, we do not need thumbnails
+ unset($file->icontime);
+
+ $thumb = new ElggFile();
+
+ $thumb->setFilename($prefix . "thumb" . $filestorename);
+ $thumb->delete();
+ unset($file->thumbnail);
+
+ $thumb->setFilename($prefix . "smallthumb" . $filestorename);
+ $thumb->delete();
+ unset($file->smallthumb);
+
+ $thumb->setFilename($prefix . "largethumb" . $filestorename);
+ $thumb->delete();
+ unset($file->largethumb);
}
} else {
// not saving a file but still need to save the entity to push attributes to database
@@ -181,4 +219,4 @@ if ($new_file) {
}
forward($file->getURL());
-}
+}
diff --git a/mod/file/graphics/icons/application.gif b/mod/file/graphics/icons/application.gif
index f78903c0a..bfba76a97 100644
--- a/mod/file/graphics/icons/application.gif
+++ b/mod/file/graphics/icons/application.gif
Binary files differ
diff --git a/mod/file/graphics/icons/application_lrg.gif b/mod/file/graphics/icons/application_lrg.gif
index c6955f749..65f8eadb4 100644
--- a/mod/file/graphics/icons/application_lrg.gif
+++ b/mod/file/graphics/icons/application_lrg.gif
Binary files differ
diff --git a/mod/file/graphics/icons/archive.gif b/mod/file/graphics/icons/archive.gif
index 044cd042a..2213cdadd 100644
--- a/mod/file/graphics/icons/archive.gif
+++ b/mod/file/graphics/icons/archive.gif
Binary files differ
diff --git a/mod/file/graphics/icons/archive_lrg.gif b/mod/file/graphics/icons/archive_lrg.gif
index 0d0856cdd..6e3df3fd4 100644
--- a/mod/file/graphics/icons/archive_lrg.gif
+++ b/mod/file/graphics/icons/archive_lrg.gif
Binary files differ
diff --git a/mod/file/graphics/icons/excel.gif b/mod/file/graphics/icons/excel.gif
index f74f74fd7..ecd1d57d2 100644
--- a/mod/file/graphics/icons/excel.gif
+++ b/mod/file/graphics/icons/excel.gif
Binary files differ
diff --git a/mod/file/graphics/icons/excel_lrg.gif b/mod/file/graphics/icons/excel_lrg.gif
index 9b53d6dc7..84d1375d5 100644
--- a/mod/file/graphics/icons/excel_lrg.gif
+++ b/mod/file/graphics/icons/excel_lrg.gif
Binary files differ
diff --git a/mod/file/graphics/icons/general.gif b/mod/file/graphics/icons/general.gif
index cd5cf467a..20958b9a4 100644
--- a/mod/file/graphics/icons/general.gif
+++ b/mod/file/graphics/icons/general.gif
Binary files differ
diff --git a/mod/file/graphics/icons/general_lrg.gif b/mod/file/graphics/icons/general_lrg.gif
index 7c7a3c80a..3458915e5 100644
--- a/mod/file/graphics/icons/general_lrg.gif
+++ b/mod/file/graphics/icons/general_lrg.gif
Binary files differ
diff --git a/mod/file/graphics/icons/music.gif b/mod/file/graphics/icons/music.gif
index c44d7c987..5e9df08bc 100644
--- a/mod/file/graphics/icons/music.gif
+++ b/mod/file/graphics/icons/music.gif
Binary files differ
diff --git a/mod/file/graphics/icons/music_lrg.gif b/mod/file/graphics/icons/music_lrg.gif
index 780a252d6..1c0792cc3 100644
--- a/mod/file/graphics/icons/music_lrg.gif
+++ b/mod/file/graphics/icons/music_lrg.gif
Binary files differ
diff --git a/mod/file/graphics/icons/openoffice.gif b/mod/file/graphics/icons/openoffice.gif
index 3cfdc7196..053ad5bb5 100644
--- a/mod/file/graphics/icons/openoffice.gif
+++ b/mod/file/graphics/icons/openoffice.gif
Binary files differ
diff --git a/mod/file/graphics/icons/openoffice_lrg.gif b/mod/file/graphics/icons/openoffice_lrg.gif
index 5cdb13353..da28607fa 100644
--- a/mod/file/graphics/icons/openoffice_lrg.gif
+++ b/mod/file/graphics/icons/openoffice_lrg.gif
Binary files differ
diff --git a/mod/file/graphics/icons/pages.gif b/mod/file/graphics/icons/pages.gif
index 2e4ee761a..7efcb7278 100644
--- a/mod/file/graphics/icons/pages.gif
+++ b/mod/file/graphics/icons/pages.gif
Binary files differ
diff --git a/mod/file/graphics/icons/pages_lrg.gif b/mod/file/graphics/icons/pages_lrg.gif
index 2e41e4739..234a52672 100644
--- a/mod/file/graphics/icons/pages_lrg.gif
+++ b/mod/file/graphics/icons/pages_lrg.gif
Binary files differ
diff --git a/mod/file/graphics/icons/pdf.gif b/mod/file/graphics/icons/pdf.gif
index e7854b1e0..94362a4f0 100644
--- a/mod/file/graphics/icons/pdf.gif
+++ b/mod/file/graphics/icons/pdf.gif
Binary files differ
diff --git a/mod/file/graphics/icons/pdf_lrg.gif b/mod/file/graphics/icons/pdf_lrg.gif
index 5cd62b69c..aff869d04 100644
--- a/mod/file/graphics/icons/pdf_lrg.gif
+++ b/mod/file/graphics/icons/pdf_lrg.gif
Binary files differ
diff --git a/mod/file/graphics/icons/ppt.gif b/mod/file/graphics/icons/ppt.gif
index 44aef679b..88ab26d5c 100644
--- a/mod/file/graphics/icons/ppt.gif
+++ b/mod/file/graphics/icons/ppt.gif
Binary files differ
diff --git a/mod/file/graphics/icons/ppt_lrg.gif b/mod/file/graphics/icons/ppt_lrg.gif
index 71965711d..075590fd8 100644
--- a/mod/file/graphics/icons/ppt_lrg.gif
+++ b/mod/file/graphics/icons/ppt_lrg.gif
Binary files differ
diff --git a/mod/file/graphics/icons/text.gif b/mod/file/graphics/icons/text.gif
index 107e7ca37..897aa77f9 100644
--- a/mod/file/graphics/icons/text.gif
+++ b/mod/file/graphics/icons/text.gif
Binary files differ
diff --git a/mod/file/graphics/icons/text_lrg.gif b/mod/file/graphics/icons/text_lrg.gif
index 5f7c95519..d42ea4de1 100644
--- a/mod/file/graphics/icons/text_lrg.gif
+++ b/mod/file/graphics/icons/text_lrg.gif
Binary files differ
diff --git a/mod/file/graphics/icons/vcard.gif b/mod/file/graphics/icons/vcard.gif
index f7fdda9c0..202df68dd 100644
--- a/mod/file/graphics/icons/vcard.gif
+++ b/mod/file/graphics/icons/vcard.gif
Binary files differ
diff --git a/mod/file/graphics/icons/vcard_lrg.gif b/mod/file/graphics/icons/vcard_lrg.gif
index 6cd4c45e0..68ced88d2 100644
--- a/mod/file/graphics/icons/vcard_lrg.gif
+++ b/mod/file/graphics/icons/vcard_lrg.gif
Binary files differ
diff --git a/mod/file/graphics/icons/video.gif b/mod/file/graphics/icons/video.gif
index 09abfad3b..56aca7589 100644
--- a/mod/file/graphics/icons/video.gif
+++ b/mod/file/graphics/icons/video.gif
Binary files differ
diff --git a/mod/file/graphics/icons/video_lrg.gif b/mod/file/graphics/icons/video_lrg.gif
index b23dbad91..69cc706d9 100644
--- a/mod/file/graphics/icons/video_lrg.gif
+++ b/mod/file/graphics/icons/video_lrg.gif
Binary files differ
diff --git a/mod/file/graphics/icons/word.gif b/mod/file/graphics/icons/word.gif
index f906c75bd..6f7dff340 100644
--- a/mod/file/graphics/icons/word.gif
+++ b/mod/file/graphics/icons/word.gif
Binary files differ
diff --git a/mod/file/graphics/icons/word_lrg.gif b/mod/file/graphics/icons/word_lrg.gif
index 018c8e334..4c39108de 100644
--- a/mod/file/graphics/icons/word_lrg.gif
+++ b/mod/file/graphics/icons/word_lrg.gif
Binary files differ
diff --git a/mod/file/languages/en.php b/mod/file/languages/en.php
index 278076927..b3344cb43 100644
--- a/mod/file/languages/en.php
+++ b/mod/file/languages/en.php
@@ -22,7 +22,6 @@ $english = array(
'file:gallery_list' => "Gallery or list view",
'file:num_files' => "Number of files to display",
'file:user:gallery'=>'View %s gallery',
- 'file:via' => 'via files',
'file:upload' => "Upload a file",
'file:replace' => 'Replace file content (leave blank to not change file)',
'file:list:title' => "%s's %s %s",
@@ -79,6 +78,15 @@ $english = array(
'item:object:file' => 'Files',
'file:newupload' => 'A new file has been uploaded',
+ 'file:notification' =>
+'%s uploaded a new file:
+
+%s
+%s
+
+View and comment on the new file:
+%s
+',
/**
* Embed media
diff --git a/mod/file/pages/file/download.php b/mod/file/pages/file/download.php
index 00e6d500e..76c1f1272 100644
--- a/mod/file/pages/file/download.php
+++ b/mod/file/pages/file/download.php
@@ -26,7 +26,7 @@ $filename = $file->originalfilename;
header("Pragma: public");
header("Content-type: $mime");
-if (strpos($mime, "image/") !== false) {
+if (strpos($mime, "image/") !== false || $mime == "application/pdf") {
header("Content-Disposition: inline; filename=\"$filename\"");
} else {
header("Content-Disposition: attachment; filename=\"$filename\"");
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 a571c9d68..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();
diff --git a/mod/file/pages/file/world.php b/mod/file/pages/file/world.php
index 770dfd6e8..96c8de785 100644
--- a/mod/file/pages/file/world.php
+++ b/mod/file/pages/file/world.php
@@ -9,14 +9,11 @@ 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) {
diff --git a/mod/file/start.php b/mod/file/start.php
index ad88469c8..7c0c216b2 100644
--- a/mod/file/start.php
+++ b/mod/file/start.php
@@ -121,6 +121,10 @@ function file_page_handler($page) {
file_register_toggle();
include "$file_dir/friends.php";
break;
+ case 'read': // Elgg 1.7 compatibility
+ register_error(elgg_echo("changebookmark"));
+ forward("file/view/{$page[1]}");
+ break;
case 'view':
set_input('guid', $page[1]);
include "$file_dir/view.php";
@@ -232,18 +236,22 @@ function file_owner_block_menu($hook, $type, $return, $params) {
* @return string The overall type
*/
function file_get_simple_type($mimetype) {
-
- if($type = elgg_trigger_plugin_hook('file_simple_type', 'object', $params, null)) {
- return $type;
+
+ if ($simpletype = elgg_trigger_plugin_hook('file:simpletype', $mimetype, null, null)) {
+ return $simpletype;
}
switch ($mimetype) {
case "application/msword":
+ case "application/vnd.openxmlformats-officedocument.wordprocessingml.document":
return "document";
break;
case "application/pdf":
return "document";
break;
+ case "application/ogg":
+ return "audio";
+ break;
}
if (substr_count($mimetype, 'text/')) {
@@ -356,11 +364,15 @@ function file_icon_url_override($hook, $type, $returnvalue, $params) {
$mapping = array(
'application/excel' => 'excel',
'application/msword' => 'word',
+ 'application/ogg' => 'music',
'application/pdf' => 'pdf',
'application/powerpoint' => 'ppt',
'application/vnd.ms-excel' => 'excel',
'application/vnd.ms-powerpoint' => 'ppt',
'application/vnd.oasis.opendocument.text' => 'openoffice',
+ 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' => 'word',
+ 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' => 'excel',
+ 'application/vnd.openxmlformats-officedocument.presentationml.presentation' => 'ppt',
'application/x-gzip' => 'archive',
'application/x-rar-compressed' => 'archive',
'application/x-stuffit' => 'archive',
diff --git a/mod/file/thumbnail.php b/mod/file/thumbnail.php
index 35bf8c7f7..851f13a8f 100644
--- a/mod/file/thumbnail.php
+++ b/mod/file/thumbnail.php
@@ -46,7 +46,7 @@ if ($simpletype == "image") {
// caching images for 10 days
header("Content-type: $mime");
- header('Expires: ' . date('r',time() + 864000));
+ header('Expires: ' . gmdate('D, d M Y H:i:s \G\M\T', strtotime("+10 days")), true);
header("Pragma: public", true);
header("Cache-Control: public", true);
header("Content-Length: " . strlen($contents));
diff --git a/mod/file/views/default/object/file.php b/mod/file/views/default/object/file.php
index 1db9863c9..64f19c483 100644
--- a/mod/file/views/default/object/file.php
+++ b/mod/file/views/default/object/file.php
@@ -28,7 +28,6 @@ $author_text = elgg_echo('byline', array($owner_link));
$file_icon = elgg_view_entity_icon($file, 'small');
-$tags = elgg_view('output/tags', array('tags' => $file->tags));
$date = elgg_view_friendly_time($file->time_created);
$comments_count = $file->countComments();
@@ -69,9 +68,9 @@ if ($full && !elgg_in_context('gallery')) {
$params = array(
'entity' => $file,
+ 'title' => false,
'metadata' => $metadata,
'subtitle' => $subtitle,
- 'tags' => $tags,
);
$params = $params + $vars;
$summary = elgg_view('object/elements/summary', $params);
@@ -81,7 +80,6 @@ if ($full && !elgg_in_context('gallery')) {
echo elgg_view('object/elements/full', array(
'entity' => $file,
- 'title' => false,
'icon' => $file_icon,
'summary' => $summary,
'body' => $body,
@@ -100,7 +98,6 @@ if ($full && !elgg_in_context('gallery')) {
'entity' => $file,
'metadata' => $metadata,
'subtitle' => $subtitle,
- 'tags' => $tags,
'content' => $excerpt,
);
$params = $params + $vars;