aboutsummaryrefslogtreecommitdiff
path: root/mod/file
diff options
context:
space:
mode:
Diffstat (limited to 'mod/file')
-rw-r--r--mod/file/actions/delete.php68
-rw-r--r--mod/file/actions/download.php40
-rw-r--r--mod/file/actions/file/delete.php33
-rw-r--r--mod/file/actions/file/download.php11
-rw-r--r--mod/file/actions/file/upload.php222
-rw-r--r--mod/file/actions/save.php51
-rw-r--r--mod/file/actions/upload.php171
-rw-r--r--mod/file/classes/FilePluginFile.php31
-rw-r--r--mod/file/download.php50
-rw-r--r--mod/file/edit.php41
-rw-r--r--mod/file/friends.php42
-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/index.php48
-rw-r--r--mod/file/languages/en.php219
-rw-r--r--mod/file/lib/file.php45
-rw-r--r--mod/file/manifest.xml24
-rw-r--r--mod/file/pages/file/download.php38
-rw-r--r--mod/file/pages/file/edit.php40
-rw-r--r--mod/file/pages/file/friends.php36
-rw-r--r--mod/file/pages/file/owner.php57
-rw-r--r--mod/file/pages/file/search.php99
-rw-r--r--mod/file/pages/file/upload.php37
-rw-r--r--mod/file/pages/file/view.php46
-rw-r--r--mod/file/pages/file/world.php33
-rw-r--r--mod/file/search.php95
-rw-r--r--mod/file/start.php618
-rw-r--r--mod/file/thumbnail.php90
-rw-r--r--mod/file/upload.php27
-rw-r--r--mod/file/views/default/embed/file_upload/content.php17
-rw-r--r--mod/file/views/default/file/css.php124
-rw-r--r--mod/file/views/default/file/group_module.php45
-rw-r--r--mod/file/views/default/file/groupprofile_files.php59
-rw-r--r--mod/file/views/default/file/icon.php65
-rw-r--r--mod/file/views/default/file/icon/application/default.php10
-rw-r--r--mod/file/views/default/file/icon/application/excel.php10
-rw-r--r--mod/file/views/default/file/icon/application/msword.php10
-rw-r--r--mod/file/views/default/file/icon/application/pdf.php10
-rw-r--r--mod/file/views/default/file/icon/application/powerpoint.php10
-rw-r--r--mod/file/views/default/file/icon/application/vnd.ms-excel.php10
-rw-r--r--mod/file/views/default/file/icon/application/vnd.ms-powerpoint.php10
-rw-r--r--mod/file/views/default/file/icon/application/vnd.oasis.opendocument.text.php10
-rw-r--r--mod/file/views/default/file/icon/application/x-gzip.php5
-rw-r--r--mod/file/views/default/file/icon/application/x-rar-compressed.php5
-rw-r--r--mod/file/views/default/file/icon/application/x-stuffit.php5
-rw-r--r--mod/file/views/default/file/icon/application/zip.php5
-rw-r--r--mod/file/views/default/file/icon/archive.php10
-rw-r--r--mod/file/views/default/file/icon/audio.php10
-rw-r--r--mod/file/views/default/file/icon/audio/default.php5
-rw-r--r--mod/file/views/default/file/icon/default.php10
-rw-r--r--mod/file/views/default/file/icon/document.php10
-rw-r--r--mod/file/views/default/file/icon/text/default.php5
-rw-r--r--mod/file/views/default/file/icon/text/directory.php10
-rw-r--r--mod/file/views/default/file/icon/text/v-card.php5
-rw-r--r--mod/file/views/default/file/icon/video.php10
-rw-r--r--mod/file/views/default/file/icon/video/default.php5
-rw-r--r--mod/file/views/default/file/sidebar.php14
-rw-r--r--mod/file/views/default/file/specialcontent/audio/mid.php4
-rw-r--r--mod/file/views/default/file/specialcontent/audio/mp3.php4
-rw-r--r--mod/file/views/default/file/specialcontent/audio/mpeg.php4
-rw-r--r--mod/file/views/default/file/specialcontent/audio/x-wav.php4
-rw-r--r--mod/file/views/default/file/specialcontent/image/default.php23
-rw-r--r--mod/file/views/default/file/typecloud.php95
-rw-r--r--mod/file/views/default/file/upload.php131
-rw-r--r--mod/file/views/default/forms/file/upload.php68
-rw-r--r--mod/file/views/default/icon/object/file.php54
-rw-r--r--mod/file/views/default/object/file.php289
-rw-r--r--mod/file/views/default/river/object/file/create.php24
-rw-r--r--mod/file/views/default/widgets/filerepo/content.php33
-rw-r--r--mod/file/views/default/widgets/filerepo/edit.php41
-rw-r--r--mod/file/views/default/widgets/filerepo/view.php73
-rw-r--r--mod/file/views/rss/file/enclosure.php16
-rw-r--r--mod/file/views/rss/object/file.php30
-rw-r--r--mod/file/world.php46
98 files changed, 1752 insertions, 2003 deletions
diff --git a/mod/file/actions/delete.php b/mod/file/actions/delete.php
deleted file mode 100644
index ee6dab91e..000000000
--- a/mod/file/actions/delete.php
+++ /dev/null
@@ -1,68 +0,0 @@
-<?php
-
- /**
- * Elgg file delete
- *
- * @package ElggFile
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
- */
-
- $guid = (int) get_input('file');
- if ($file = get_entity($guid)) {
-
- if ($file->canEdit()) {
-
- $container = get_entity($file->container_guid);
-
- $thumbnail = $file->thumbnail;
- $smallthumb = $file->smallthumb;
- $largethumb = $file->largethumb;
- if ($thumbnail) {
-
- $delfile = new ElggFile();
- $delfile->owner_guid = $file->owner_guid;
- $delfile->setFilename($thumbnail);
- $delfile->delete();
-
- }
- if ($smallthumb) {
-
- $delfile = new ElggFile();
- $delfile->owner_guid = $file->owner_guid;
- $delfile->setFilename($smallthumb);
- $delfile->delete();
-
- }
- if ($largethumb) {
-
- $delfile = new ElggFile();
- $delfile->owner_guid = $file->owner_guid;
- $delfile->setFilename($largethumb);
- $delfile->delete();
-
- }
-
- if (!$file->delete()) {
- register_error(elgg_echo("file:deletefailed"));
- } else {
- system_message(elgg_echo("file:deleted"));
- }
-
- } else {
-
- $container = $_SESSION['user'];
- register_error(elgg_echo("file:deletefailed"));
-
- }
-
- } else {
-
- register_error(elgg_echo("file:deletefailed"));
-
- }
-
- forward("pg/file/" . $_SESSION['user']->username);
-
-?> \ No newline at end of file
diff --git a/mod/file/actions/download.php b/mod/file/actions/download.php
deleted file mode 100644
index ef5f24964..000000000
--- a/mod/file/actions/download.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
- /**
- * Elgg file browser download action.
- *
- * @package ElggFile
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
- */
-
- // Get the guid
- $file_guid = get_input("file_guid");
-
- // Get the file
- $file = get_entity($file_guid);
-
- if ($file)
- {
- $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)
- header("Content-Disposition: inline; filename=\"$filename\"");
- else
- header("Content-Disposition: attachment; filename=\"$filename\"");
-
- $contents = $file->grabFile();
- $splitString = str_split($contents, 8192);
- foreach($splitString as $chunk)
- echo $chunk;
- exit;
- }
- else
- register_error(elgg_echo("file:downloadfailed"));
-?> \ No newline at end of file
diff --git a/mod/file/actions/file/delete.php b/mod/file/actions/file/delete.php
new file mode 100644
index 000000000..72585aa36
--- /dev/null
+++ b/mod/file/actions/file/delete.php
@@ -0,0 +1,33 @@
+<?php
+/**
+* Elgg file delete
+*
+* @package ElggFile
+*/
+
+$guid = (int) get_input('guid');
+
+$file = new FilePluginFile($guid);
+if (!$file->guid) {
+ register_error(elgg_echo("file:deletefailed"));
+ forward('file/all');
+}
+
+if (!$file->canEdit()) {
+ register_error(elgg_echo("file:deletefailed"));
+ forward($file->getURL());
+}
+
+$container = $file->getContainerEntity();
+
+if (!$file->delete()) {
+ register_error(elgg_echo("file:deletefailed"));
+} else {
+ system_message(elgg_echo("file:deleted"));
+}
+
+if (elgg_instanceof($container, 'group')) {
+ forward("file/group/$container->guid/all");
+} else {
+ forward("file/owner/$container->username");
+}
diff --git a/mod/file/actions/file/download.php b/mod/file/actions/file/download.php
new file mode 100644
index 000000000..d6abb8398
--- /dev/null
+++ b/mod/file/actions/file/download.php
@@ -0,0 +1,11 @@
+<?php
+/**
+ * Elgg file browser download action.
+ *
+ * @package ElggFile
+ */
+
+// @todo this is here for backwards compatibility (first version of embed plugin?)
+$download_page_handler = elgg_get_plugins_path() . 'file/download.php';
+
+include $download_page_handler;
diff --git a/mod/file/actions/file/upload.php b/mod/file/actions/file/upload.php
new file mode 100644
index 000000000..e20c4079f
--- /dev/null
+++ b/mod/file/actions/file/upload.php
@@ -0,0 +1,222 @@
+<?php
+/**
+ * Elgg file uploader/edit action
+ *
+ * @package ElggFile
+ */
+
+// Get variables
+$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);
+$guid = (int) get_input('file_guid');
+$tags = get_input("tags");
+
+if ($container_guid == 0) {
+ $container_guid = elgg_get_logged_in_user_guid();
+}
+
+elgg_make_sticky_form('file');
+
+// check if upload failed
+if (!empty($_FILES['upload']['name']) && $_FILES['upload']['error'] != 0) {
+ register_error(elgg_echo('file:cannotload'));
+ forward(REFERER);
+}
+
+// check whether this is a new file or an edit
+$new_file = true;
+if ($guid > 0) {
+ $new_file = false;
+}
+
+if ($new_file) {
+ // must have a file if a new file upload
+ if (empty($_FILES['upload']['name'])) {
+ $error = elgg_echo('file:nofile');
+ register_error($error);
+ forward(REFERER);
+ }
+
+ $file = new FilePluginFile();
+ $file->subtype = "file";
+
+ // if no title on new upload, grab filename
+ if (empty($title)) {
+ $title = htmlspecialchars($_FILES['upload']['name'], ENT_QUOTES, 'UTF-8');
+ }
+
+} else {
+ // load original file object
+ $file = new FilePluginFile($guid);
+ if (!$file) {
+ register_error(elgg_echo('file:cannotload'));
+ forward(REFERER);
+ }
+
+ // user must be able to edit file
+ if (!$file->canEdit()) {
+ register_error(elgg_echo('file:noaccess'));
+ forward(REFERER);
+ }
+
+ if (!$title) {
+ // user blanked title, but we need one
+ $title = $file->title;
+ }
+}
+
+$file->title = $title;
+$file->description = $desc;
+$file->access_id = $access_id;
+$file->container_guid = $container_guid;
+$file->tags = string_to_tag_array($tags);
+
+// we have a file upload, so process it
+if (isset($_FILES['upload']['name']) && !empty($_FILES['upload']['name'])) {
+
+ $prefix = "file/";
+
+ // if previous file, delete it
+ if ($new_file == false) {
+ $filename = $file->getFilenameOnFilestore();
+ if (file_exists($filename)) {
+ unlink($filename);
+ }
+
+ // use same filename on the disk - ensures thumbnails are overwritten
+ $filestorename = $file->getFilename();
+ $filestorename = elgg_substr($filestorename, elgg_strlen($prefix));
+ } else {
+ $filestorename = elgg_strtolower(time().$_FILES['upload']['name']);
+ }
+
+ $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);
+
+ // Open the file to guarantee the directory exists
+ $file->open("write");
+ $file->close();
+ move_uploaded_file($_FILES['upload']['tmp_name'], $file->getFilenameOnFilestore());
+
+ $guid = $file->save();
+
+ // if image, we need to create thumbnails (this should be moved into a function)
+ if ($guid && $file->simpletype == "image") {
+ $file->icontime = time();
+
+ $thumbnail = get_resized_image_from_existing_file($file->getFilenameOnFilestore(), 60, 60, true);
+ if ($thumbnail) {
+ $thumb = new ElggFile();
+ $thumb->setMimeType($_FILES['upload']['type']);
+
+ $thumb->setFilename($prefix."thumb".$filestorename);
+ $thumb->open("write");
+ $thumb->write($thumbnail);
+ $thumb->close();
+
+ $file->thumbnail = $prefix."thumb".$filestorename;
+ unset($thumbnail);
+ }
+
+ $thumbsmall = get_resized_image_from_existing_file($file->getFilenameOnFilestore(), 153, 153, true);
+ if ($thumbsmall) {
+ $thumb->setFilename($prefix."smallthumb".$filestorename);
+ $thumb->open("write");
+ $thumb->write($thumbsmall);
+ $thumb->close();
+ $file->smallthumb = $prefix."smallthumb".$filestorename;
+ unset($thumbsmall);
+ }
+
+ $thumblarge = get_resized_image_from_existing_file($file->getFilenameOnFilestore(), 600, 600, false);
+ if ($thumblarge) {
+ $thumb->setFilename($prefix."largethumb".$filestorename);
+ $thumb->open("write");
+ $thumb->write($thumblarge);
+ $thumb->close();
+ $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
+ $file->save();
+}
+
+// file saved so clear sticky form
+elgg_clear_sticky_form('file');
+
+
+// handle results differently for new files and file updates
+if ($new_file) {
+ if ($guid) {
+ $message = elgg_echo("file:saved");
+ system_message($message);
+ add_to_river('river/object/file/create', 'create', elgg_get_logged_in_user_guid(), $file->guid);
+ } else {
+ // failed to save file object - nothing we can do about this
+ $error = elgg_echo("file:uploadfailed");
+ register_error($error);
+ }
+
+ $container = get_entity($container_guid);
+ if (elgg_instanceof($container, 'group')) {
+ forward("file/group/$container->guid/all");
+ } else {
+ forward("file/owner/$container->username");
+ }
+
+} else {
+ if ($guid) {
+ system_message(elgg_echo("file:saved"));
+ } else {
+ register_error(elgg_echo("file:uploadfailed"));
+ }
+
+ forward($file->getURL());
+}
diff --git a/mod/file/actions/save.php b/mod/file/actions/save.php
deleted file mode 100644
index e2f401e8d..000000000
--- a/mod/file/actions/save.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
- /**
- * Elgg file browser save action
- *
- * @package ElggFile
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
- */
-
- global $CONFIG;
-
- // Get variables
- $title = strip_tags(get_input("title"));
- $desc = get_input("description");
- $tags = get_input("tags");
- $access_id = (int) get_input("access_id");
-
- $guid = (int) get_input('file_guid');
-
- if (!$file = get_entity($guid)) {
- register_error(elgg_echo("file:uploadfailed"));
- forward($CONFIG->wwwroot . "pg/file/" . $_SESSION['user']->username);
- exit;
- }
-
- $result = false;
-
- $container_guid = $file->container_guid;
- $container = get_entity($container_guid);
-
- if ($file->canEdit()) {
-
- $file->access_id = $access_id;
- $file->title = $title;
- $file->description = $desc;
-
- // Save tags
- $tags = explode(",", $tags);
- $file->tags = $tags;
-
- $result = $file->save();
- }
-
- if ($result)
- system_message(elgg_echo("file:saved"));
- else
- register_error(elgg_echo("file:uploadfailed"));
-
- forward($CONFIG->wwwroot . "pg/file/" . $container->username);
-?> \ No newline at end of file
diff --git a/mod/file/actions/upload.php b/mod/file/actions/upload.php
deleted file mode 100644
index e515c73e0..000000000
--- a/mod/file/actions/upload.php
+++ /dev/null
@@ -1,171 +0,0 @@
-<?php
- /**
- * Elgg file browser uploader/edit action
- *
- * @package ElggFile
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
- */
-
- global $CONFIG;
-
- gatekeeper();
-
- // Get variables
- $title = get_input("title");
- $desc = get_input("description");
- $access_id = (int) get_input("access_id");
- $container_guid = (int) get_input('container_guid', 0);
- if ($container_guid == 0) {
- $container_guid = get_loggedin_userid();
- }
- $guid = (int) get_input('file_guid');
- $tags = get_input("tags");
-
- // check whether this is a new file or an edit
- $new_file = true;
- if ($guid > 0) {
- $new_file = false;
- }
-
- if ($new_file) {
- // must have a file if a new file upload
- if (empty($_FILES['upload']['name'])) {
- // cache information in session
- $_SESSION['uploadtitle'] = $title;
- $_SESSION['uploaddesc'] = $desc;
- $_SESSION['uploadtags'] = $tags;
- $_SESSION['uploadaccessid'] = $access_id;
-
- register_error(elgg_echo('file:nofile'));
- forward($_SERVER['HTTP_REFERER']);
- }
-
- $file = new FilePluginFile();
- $file->subtype = "file";
-
- // if no title on new upload, grab filename
- if (empty($title)) {
- $title = $_FILES['upload']['name'];
- }
-
- } else {
- // load original file object
- $file = get_entity($guid);
- if (!$file) {
- register_error(elgg_echo('file:cannotload'));
- forward($_SERVER['HTTP_REFERER']);
- }
-
- // user must be able to edit file
- if (!$file->canEdit()) {
- register_error(elgg_echo('file:noaccess'));
- forward($_SERVER['HTTP_REFERER']);
- }
- }
-
- $file->title = $title;
- $file->description = $desc;
- $file->access_id = $access_id;
- $file->container_guid = $container_guid;
-
- $tags = explode(",", $tags);
- $file->tags = $tags;
-
- // we have a file upload, so process it
- if (isset($_FILES['upload']['name']) && !empty($_FILES['upload']['name'])) {
-
- $prefix = "file/";
-
- // if previous file, delete it
- if ($new_file == false) {
- $filename = $file->getFilenameOnFilestore();
- if (file_exists($filename)) {
- unlink($filename);
- }
-
- // use same filename on the disk - ensures thumbnails are overwritten
- $filestorename = $file->getFilename();
- $filestorename = substr($filestorename, strlen($prefix));
- } else {
- $filestorename = strtolower(time().$_FILES['upload']['name']);
- }
-
- $file->setFilename($prefix.$filestorename);
- $file->setMimeType($_FILES['upload']['type']);
- $file->originalfilename = $_FILES['upload']['name'];
- $file->simpletype = get_general_file_type($_FILES['upload']['type']);
-
- $file->open("write");
- $file->write(get_uploaded_file('upload'));
- $file->close();
-
- $guid = $file->save();
-
- // if image, we need to create thumbnails (this should be moved into a function)
- if ($guid && $file->simpletype == "image") {
- $thumbnail = get_resized_image_from_existing_file($file->getFilenameOnFilestore(),60,60, true);
- if ($thumbnail) {
- $thumb = new ElggFile();
- $thumb->setMimeType($_FILES['upload']['type']);
-
- $thumb->setFilename($prefix."thumb".$filestorename);
- $thumb->open("write");
- $thumb->write($thumbnail);
- $thumb->close();
-
- $file->thumbnail = $prefix."thumb".$filestorename;
- unset($thumbnail);
- }
-
- $thumbsmall = get_resized_image_from_existing_file($file->getFilenameOnFilestore(),153,153, true);
- if ($thumbsmall) {
- $thumb->setFilename($prefix."smallthumb".$filestorename);
- $thumb->open("write");
- $thumb->write($thumbsmall);
- $thumb->close();
- $file->smallthumb = $prefix."smallthumb".$filestorename;
- unset($thumbsmall);
- }
-
- $thumblarge = get_resized_image_from_existing_file($file->getFilenameOnFilestore(),600,600, false);
- if ($thumblarge) {
- $thumb->setFilename($prefix."largethumb".$filestorename);
- $thumb->open("write");
- $thumb->write($thumblarge);
- $thumb->close();
- $file->largethumb = $prefix."largethumb".$filestorename;
- unset($thumblarge);
- }
- }
- }
-
- // make sure session cache is cleared
- unset($_SESSION['uploadtitle']);
- unset($_SESSION['uploaddesc']);
- unset($_SESSION['uploadtags']);
- unset($_SESSION['uploadaccessid']);
-
- // handle results differently for new files and file updates
- if ($new_file) {
- if ($guid) {
- system_message(elgg_echo("file:saved"));
- add_to_river('river/object/file/create', 'create', get_loggedin_userid(), $file->guid);
- } else {
- // failed to save file object - nothing we can do about this
- register_error(elgg_echo("file:uploadfailed"));
- }
-
- $container_user = get_entity($container_guid);
- forward($CONFIG->wwwroot . "pg/file/" . $container_user->username);
-
- } else {
- if ($guid) {
- system_message(elgg_echo("file:saved"));
- } else {
- register_error(elgg_echo("file:uploadfailed"));
- }
-
- forward($file->getURL());
- }
diff --git a/mod/file/classes/FilePluginFile.php b/mod/file/classes/FilePluginFile.php
new file mode 100644
index 000000000..edf914231
--- /dev/null
+++ b/mod/file/classes/FilePluginFile.php
@@ -0,0 +1,31 @@
+<?php
+
+/**
+ * Override the ElggFile
+ */
+class FilePluginFile extends ElggFile {
+ protected function initializeAttributes() {
+ parent::initializeAttributes();
+
+ $this->attributes['subtype'] = "file";
+ }
+
+ public function __construct($guid = null) {
+ parent::__construct($guid);
+ }
+
+ public function delete() {
+
+ $thumbnails = array($this->thumbnail, $this->smallthumb, $this->largethumb);
+ foreach ($thumbnails as $thumbnail) {
+ if ($thumbnail) {
+ $delfile = new ElggFile();
+ $delfile->owner_guid = $this->owner_guid;
+ $delfile->setFilename($thumbnail);
+ $delfile->delete();
+ }
+ }
+
+ return parent::delete();
+ }
+}
diff --git a/mod/file/download.php b/mod/file/download.php
index 6ef8719b3..b2acdffec 100644
--- a/mod/file/download.php
+++ b/mod/file/download.php
@@ -1,44 +1,12 @@
<?php
- /**
- * Elgg file download.
- *
- * @package ElggFile
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
- */
+/**
+ * Elgg file download.
+ *
+ * @package ElggFile
+ */
+require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php");
- require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php");
+// Get the guid
+$file_guid = get_input("file_guid");
- // Get the guid
- $file_guid = get_input("file_guid");
-
- // Get the file
- $file = get_entity($file_guid);
-
- if ($file) {
- $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)
- header("Content-Disposition: inline; filename=\"$filename\"");
- else
- header("Content-Disposition: attachment; filename=\"$filename\"");
-
- $contents = $file->grabFile();
- $splitString = str_split($contents, 8192);
- foreach($splitString as $chunk)
- echo $chunk;
- exit;
- } else {
- register_error(elgg_echo("file:downloadfailed"));
- forward();
- } \ No newline at end of file
+forward("file/download/$file_guid");
diff --git a/mod/file/edit.php b/mod/file/edit.php
deleted file mode 100644
index c7b823947..000000000
--- a/mod/file/edit.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-/**
- * Elgg file saver
- *
- * @package ElggFile
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
- */
-
-require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php");
-
-gatekeeper();
-
-// Render the file upload page
-
-$file_guid = (int) get_input('file_guid');
-$file = get_entity($file_guid);
-if (!$file) {
- forward();
-}
-
-// Set the page owner
-$page_owner = page_owner_entity();
-if (!$page_owner) {
- $container_guid = $file->container_guid;
- if ($container_guid) {
- set_page_owner($container_guid);
- }
-}
-
-if (!$file->canEdit()) {
- forward();
-}
-
-$title = elgg_echo('file:edit');
-$area1 = elgg_view_title($title);
-$area1 .= elgg_view("file/upload", array('entity' => $file));
-
-$body = elgg_view_layout('one_column_with_sidebar', $area1);
-page_draw($title, $body);
diff --git a/mod/file/friends.php b/mod/file/friends.php
deleted file mode 100644
index 763df85f9..000000000
--- a/mod/file/friends.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
- /**
- * Elgg file browser
- *
- * @package ElggFile
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
- */
-
- require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php");
-
- if (is_callable('group_gatekeeper')) {
- group_gatekeeper();
- }
-
- $owner = page_owner_entity();
-
- $title = sprintf(elgg_echo("file:friends"),$owner->name);
- $area1 = elgg_view('page_elements/content_header', array('context' => "friends", 'type' => 'file'));
- set_context('search');
- // offset is grabbed in list_user_friends_objects
- $content = list_user_friends_objects($owner->guid, 'file', 10, false);
- set_context('file');
- $area1 .= get_filetype_cloud($owner->guid, true);
-
- // handle case where friends don't have any files
- if (empty($content)) {
- $area2 .= "<p class='margin_top'>".elgg_echo("file:none")."</p>";
- } else {
- $area2 .= $content;
- }
-
- //get the latest comments on all files
- $comments = get_annotations(0, "object", "file", "generic_comment", "", 0, 4, 0, "desc");
- $area3 = elgg_view('annotation/latest_comments', array('comments' => $comments));
-
- $content = "<div class='files'>".$area1.$area2."</div>";
- $body = elgg_view_layout('one_column_with_sidebar', $content, $area3);
-
- page_draw($title, $body);
-?> \ No newline at end of file
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/index.php b/mod/file/index.php
deleted file mode 100644
index 848de9e53..000000000
--- a/mod/file/index.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
- /**
- * Elgg file browser
- *
- * @package ElggFile
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
- *
- *
- * TODO: File icons, download & mime types
- */
-
- require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php");
-
- // access check for closed groups
- group_gatekeeper();
-
- //set the title
- if (page_owner() == get_loggedin_userid()) {
- $title = elgg_echo('file:yours');
- $area1 = elgg_view('page_elements/content_header', array('context' => "mine", 'type' => 'file'));
- } else {
- $title = sprintf(elgg_echo("file:user"),page_owner_entity()->name);
- $area1 = elgg_view('page_elements/content_header', array('context' => "friends", 'type' => 'file'));
- }
-
- // Get objects
- set_context('search');
- $offset = (int)get_input('offset', 0);
- $area2 .= elgg_list_entities(array('types' => 'object', 'subtypes' => 'file', 'container_guid' => page_owner(), 'limit' => 10, 'offset' => $offset, 'full_view' => FALSE));
- set_context('file');
- $get_filter = get_filetype_cloud(page_owner());
- if ($get_filter) {
- $area1 .= $get_filter;
- } else {
- $area2 .= "<p class='margin_top'>".elgg_echo("file:none")."</p>";
- }
-
- //get the latest comments on the current users files
- $comments = get_annotations(0, "object", "file", "generic_comment", "", 0, 4, 0, "desc",0,0,page_owner());
- $area3 = elgg_view('annotation/latest_comments', array('comments' => $comments));
-
- $content = "<div class='files'>".$area1.$area2."</div>";
- $body = elgg_view_layout('one_column_with_sidebar', $content, $area3);
-
- page_draw($title, $body);
-?> \ No newline at end of file
diff --git a/mod/file/languages/en.php b/mod/file/languages/en.php
index 619434e66..b3344cb43 100644
--- a/mod/file/languages/en.php
+++ b/mod/file/languages/en.php
@@ -1,109 +1,118 @@
<?php
+/**
+ * Elgg file plugin language pack
+ *
+ * @package ElggFile
+ */
+
+$english = array(
+
/**
- * Elgg file plugin language pack
- *
- * @package ElggFile
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
+ * Menu items and titles
*/
+ 'file' => "Files",
+ 'file:user' => "%s's files",
+ 'file:friends' => "Friends' files",
+ 'file:all' => "All site files",
+ 'file:edit' => "Edit file",
+ 'file:more' => "More files",
+ 'file:list' => "list view",
+ 'file:group' => "Group files",
+ 'file:gallery' => "gallery view",
+ 'file:gallery_list' => "Gallery or list view",
+ 'file:num_files' => "Number of files to display",
+ 'file:user:gallery'=>'View %s gallery',
+ 'file:upload' => "Upload a file",
+ 'file:replace' => 'Replace file content (leave blank to not change file)',
+ 'file:list:title' => "%s's %s %s",
+ 'file:title:friends' => "Friends'",
+
+ 'file:add' => 'Upload a file',
+
+ 'file:file' => "File",
+ 'file:title' => "Title",
+ 'file:desc' => "Description",
+ 'file:tags' => "Tags",
+
+ 'file:list:list' => 'Switch to the list view',
+ 'file:list:gallery' => 'Switch to the gallery view',
+
+ 'file:types' => "Uploaded file types",
+
+ 'file:type:' => 'Files',
+ 'file:type:all' => "All files",
+ 'file:type:video' => "Videos",
+ 'file:type:document' => "Documents",
+ 'file:type:audio' => "Audio",
+ 'file:type:image' => "Pictures",
+ 'file:type:general' => "General",
+
+ 'file:user:type:video' => "%s's videos",
+ 'file:user:type:document' => "%s's documents",
+ 'file:user:type:audio' => "%s's audio",
+ 'file:user:type:image' => "%s's pictures",
+ 'file:user:type:general' => "%s's general files",
+
+ 'file:friends:type:video' => "Your friends' videos",
+ 'file:friends:type:document' => "Your friends' documents",
+ 'file:friends:type:audio' => "Your friends' audio",
+ 'file:friends:type:image' => "Your friends' pictures",
+ 'file:friends:type:general' => "Your friends' general files",
+
+ 'file:widget' => "File widget",
+ 'file:widget:description' => "Showcase your latest files",
+
+ 'groups:enablefiles' => 'Enable group files',
+
+ 'file:download' => "Download this",
+
+ 'file:delete:confirm' => "Are you sure you want to delete this file?",
+
+ 'file:tagcloud' => "Tag cloud",
+
+ 'file:display:number' => "Number of files to display",
+
+ 'river:create:object:file' => '%s uploaded the file %s',
+ 'river:comment:object:file' => '%s commented on the file %s',
+
+ '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
+ **/
+
+ 'file:embed' => "Embed media",
+ 'file:embedall' => "All",
+
+ /**
+ * Status messages
+ */
+
+ 'file:saved' => "Your file was successfully saved.",
+ 'file:deleted' => "Your file was successfully deleted.",
+
+ /**
+ * Error messages
+ */
+
+ 'file:none' => "No files.",
+ 'file:uploadfailed' => "Sorry; we could not save your file.",
+ 'file:downloadfailed' => "Sorry; this file is not available at this time.",
+ 'file:deletefailed' => "Your file could not be deleted at this time.",
+ 'file:noaccess' => "You do not have permissions to change this file",
+ 'file:cannotload' => "There was an error uploading the file",
+ 'file:nofile' => "You must select a file",
+);
- $english = array(
-
- /**
- * Menu items and titles
- */
-
- 'file' => "Files",
- 'files' => "My Files",
- 'file:yours' => "Your files",
- 'file:yours:friends' => "Your friends' files",
- 'file:user' => "%s's files",
- 'file:friends' => "%s's friends' files",
- 'file:all' => "All site files",
- 'file:edit' => "Edit file",
- 'file:more' => "More files",
- 'file:list' => "list view",
- 'file:group' => "Group files",
- 'file:gallery' => "gallery view",
- '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:new' => 'Upload a file',
-
- 'file:file' => "File",
- 'file:title' => "Title",
- 'file:desc' => "Description",
- 'file:tags' => "Tags",
-
- 'file:types' => "Uploaded file types",
-
- 'file:type:all' => "All files",
- 'file:type:video' => "Videos",
- 'file:type:document' => "Documents",
- 'file:type:audio' => "Audio",
- 'file:type:image' => "Pictures",
- 'file:type:general' => "General",
-
- 'file:user:type:video' => "%s's videos",
- 'file:user:type:document' => "%s's documents",
- 'file:user:type:audio' => "%s's audio",
- 'file:user:type:image' => "%s's pictures",
- 'file:user:type:general' => "%s's general files",
-
- 'file:friends:type:video' => "Your friends' videos",
- 'file:friends:type:document' => "Your friends' documents",
- 'file:friends:type:audio' => "Your friends' audio",
- 'file:friends:type:image' => "Your friends' pictures",
- 'file:friends:type:general' => "Your friends' general files",
-
- 'file:widget' => "File widget",
- 'file:widget:description' => "Showcase your latest files",
-
- 'file:download' => "Download this",
-
- 'file:delete:confirm' => "Are you sure you want to delete this file?",
-
- 'file:tagcloud' => "Tag cloud",
-
- 'file:display:number' => "Number of files to display",
-
- 'file:river:created' => "%s uploaded",
- 'file:river:item' => "a file",
- 'file:river:annotate' => "a comment on this file",
-
- 'item:object:file' => 'Files',
-
- /**
- * Embed media
- **/
-
- 'file:embed' => "Embed media",
- 'file:embedall' => "All",
-
- /**
- * Status messages
- */
-
- 'file:saved' => "Your file was successfully saved.",
- 'file:deleted' => "Your file was successfully deleted.",
-
- /**
- * Error messages
- */
-
- 'file:none' => "No files uploaded.",
- 'file:uploadfailed' => "Sorry; we could not save your file.",
- 'file:downloadfailed' => "Sorry; this file is not available at this time.",
- 'file:deletefailed' => "Your file could not be deleted at this time.",
- 'file:noaccess' => "You do not have permissions to change this file",
- 'file:cannotload' => "There was an error loading the file",
- 'file:nofile' => "You must select a file",
- );
-
- add_translation("en",$english);
-?> \ No newline at end of file
+add_translation("en", $english); \ No newline at end of file
diff --git a/mod/file/lib/file.php b/mod/file/lib/file.php
new file mode 100644
index 000000000..6f94772e7
--- /dev/null
+++ b/mod/file/lib/file.php
@@ -0,0 +1,45 @@
+<?php
+/**
+ * File helper functions
+ *
+ * @package ElggFile
+ */
+
+/**
+ * Prepare the upload/edit form variables
+ *
+ * @param FilePluginFile $file
+ * @return array
+ */
+function file_prepare_form_vars($file = null) {
+
+ // input names => defaults
+ $values = array(
+ 'title' => '',
+ 'description' => '',
+ 'access_id' => ACCESS_DEFAULT,
+ 'tags' => '',
+ 'container_guid' => elgg_get_page_owner_guid(),
+ 'guid' => null,
+ 'entity' => $file,
+ );
+
+ if ($file) {
+ foreach (array_keys($values) as $field) {
+ if (isset($file->$field)) {
+ $values[$field] = $file->$field;
+ }
+ }
+ }
+
+ if (elgg_is_sticky_form('file')) {
+ $sticky_values = elgg_get_sticky_values('file');
+ foreach ($sticky_values as $key => $value) {
+ $values[$key] = $value;
+ }
+ }
+
+ elgg_clear_sticky_form('file');
+
+ return $values;
+}
diff --git a/mod/file/manifest.xml b/mod/file/manifest.xml
index f3f44d3bf..26282a8e3 100644
--- a/mod/file/manifest.xml
+++ b/mod/file/manifest.xml
@@ -1,10 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
-<plugin_manifest>
- <field key="author" value="Curverider" />
- <field key="version" value="1.7" />
- <field key="description" value="File browser plugin" />
- <field key="website" value="http://www.elgg.org/" />
- <field key="copyright" value="(C) Curverider 2008-2010" />
- <field key="licence" value="GNU Public License version 2" />
- <field key="elgg_version" value="2010030101" />
+<plugin_manifest xmlns="http://www.elgg.org/plugin_manifest/1.8">
+ <name>File</name>
+ <author>Core developers</author>
+ <version>1.8.1</version>
+ <category>bundled</category>
+ <category>content</category>
+ <category>widget</category>
+ <description>File browser plugin</description>
+ <website>http://www.elgg.org/</website>
+ <copyright>See COPYRIGHT.txt</copyright>
+ <license>GNU General Public License version 2</license>
+ <requires>
+ <type>elgg_release</type>
+ <version>1.8</version>
+ </requires>
+ <activate_on_install>true</activate_on_install>
</plugin_manifest>
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/edit.php b/mod/file/pages/file/edit.php
new file mode 100644
index 000000000..b396c6e9b
--- /dev/null
+++ b/mod/file/pages/file/edit.php
@@ -0,0 +1,40 @@
+<?php
+/**
+ * Edit a file
+ *
+ * @package ElggFile
+ */
+
+elgg_load_library('elgg:file');
+
+gatekeeper();
+
+$file_guid = (int) get_input('guid');
+$file = new FilePluginFile($file_guid);
+if (!$file) {
+ forward();
+}
+if (!$file->canEdit()) {
+ forward();
+}
+
+$title = elgg_echo('file:edit');
+
+elgg_push_breadcrumb(elgg_echo('file'), "file/all");
+elgg_push_breadcrumb($file->title, $file->getURL());
+elgg_push_breadcrumb($title);
+
+elgg_set_page_owner_guid($file->getContainerGUID());
+
+$form_vars = array('enctype' => 'multipart/form-data');
+$body_vars = file_prepare_form_vars($file);
+
+$content = elgg_view_form('file/upload', $form_vars, $body_vars);
+
+$body = elgg_view_layout('content', array(
+ 'content' => $content,
+ 'title' => $title,
+ 'filter' => '',
+));
+
+echo elgg_view_page($title, $body);
diff --git a/mod/file/pages/file/friends.php b/mod/file/pages/file/friends.php
new file mode 100644
index 000000000..d55c1e62b
--- /dev/null
+++ b/mod/file/pages/file/friends.php
@@ -0,0 +1,36 @@
+<?php
+/**
+ * Friends Files
+ *
+ * @package ElggFile
+ */
+
+$owner = elgg_get_page_owner_entity();
+if (!$owner) {
+ forward('', '404');
+}
+
+elgg_push_breadcrumb(elgg_echo('file'), "file/all");
+elgg_push_breadcrumb($owner->name, "file/owner/$owner->username");
+elgg_push_breadcrumb(elgg_echo('friends'));
+
+elgg_register_title_button();
+
+$title = elgg_echo("file:friends");
+
+// offset is grabbed in list_user_friends_objects
+$content = list_user_friends_objects($owner->guid, 'file', 10, false);
+if (!$content) {
+ $content = elgg_echo("file:none");
+}
+
+$sidebar = file_get_type_cloud($owner->guid, true);
+
+$body = elgg_view_layout('content', array(
+ 'filter_context' => 'friends',
+ 'content' => $content,
+ 'title' => $title,
+ 'sidebar' => $sidebar,
+));
+
+echo elgg_view_page($title, $body);
diff --git a/mod/file/pages/file/owner.php b/mod/file/pages/file/owner.php
new file mode 100644
index 000000000..99cf62714
--- /dev/null
+++ b/mod/file/pages/file/owner.php
@@ -0,0 +1,57 @@
+<?php
+/**
+ * Individual's or group's files
+ *
+ * @package ElggFile
+ */
+
+// access check for closed groups
+group_gatekeeper();
+
+$owner = elgg_get_page_owner_entity();
+if (!$owner) {
+ forward('', '404');
+}
+
+elgg_push_breadcrumb(elgg_echo('file'), "file/all");
+elgg_push_breadcrumb($owner->name);
+
+elgg_register_title_button();
+
+$params = array();
+
+if ($owner->guid == elgg_get_logged_in_user_guid()) {
+ // user looking at own files
+ $params['filter_context'] = 'mine';
+} else if (elgg_instanceof($owner, 'user')) {
+ // someone else's files
+ // do not show select a tab when viewing someone else's posts
+ $params['filter_context'] = 'none';
+} else {
+ // group files
+ $params['filter'] = '';
+}
+
+$title = elgg_echo("file:user", array($owner->name));
+
+// List files
+$content = elgg_list_entities(array(
+ 'type' => 'object',
+ 'subtype' => 'file',
+ 'container_guid' => $owner->guid,
+ 'full_view' => FALSE,
+));
+if (!$content) {
+ $content = elgg_echo("file:none");
+}
+
+$sidebar = file_get_type_cloud(elgg_get_page_owner_guid());
+$sidebar = elgg_view('file/sidebar');
+
+$params['content'] = $content;
+$params['title'] = $title;
+$params['sidebar'] = $sidebar;
+
+$body = elgg_view_layout('content', $params);
+
+echo elgg_view_page($title, $body);
diff --git a/mod/file/pages/file/search.php b/mod/file/pages/file/search.php
new file mode 100644
index 000000000..d60dfb755
--- /dev/null
+++ b/mod/file/pages/file/search.php
@@ -0,0 +1,99 @@
+<?php
+/**
+ * List files by type
+ *
+ * @package ElggFile
+ */
+
+$page_owner_guid = get_input('page_owner', null);
+
+if ($page_owner_guid !== null) {
+ $page_owner_guid = sanitise_int($page_owner_guid);
+}
+
+if ($page_owner_guid) {
+ elgg_set_page_owner_guid($page_owner_guid);
+}
+$owner = elgg_get_page_owner_entity();
+
+group_gatekeeper();
+
+// Get input
+$md_type = 'simpletype';
+// avoid reflected XSS attacks by only allowing alnum characters
+$file_type = preg_replace('[\W]', '', get_input('tag'));
+$listtype = get_input('listtype');
+$friends = (bool)get_input('friends', false);
+
+// breadcrumbs
+elgg_push_breadcrumb(elgg_echo('file'), "file/all");
+if ($owner) {
+ if (elgg_instanceof($owner, 'user')) {
+ elgg_push_breadcrumb($owner->name, "file/owner/$owner->username");
+ } else {
+ elgg_push_breadcrumb($owner->name, "file/group/$owner->guid/all");
+ }
+}
+if ($friends && $owner) {
+ elgg_push_breadcrumb(elgg_echo('friends'), "file/friends/$owner->username");
+}
+if ($file_type) {
+ elgg_push_breadcrumb(elgg_echo("file:type:$file_type"));
+} else {
+ elgg_push_breadcrumb(elgg_echo('all'));
+}
+
+// title
+if (!$owner) {
+ // world files
+ $title = elgg_echo('all') . ' ' . elgg_echo("file:type:$file_type");
+} else {
+ $friend_string = $friends ? elgg_echo('file:title:friends') : '';
+ $type_string = elgg_echo("file:type:$file_type");
+ $title = elgg_echo('file:list:title', array($owner->name, $friend_string, $type_string));
+}
+
+
+$sidebar = file_get_type_cloud($page_owner_guid, $friends);
+
+if ($friends) {
+ // elgg_does not support getting objects that belong to an entity's friends
+ $friend_entities = get_user_friends($page_owner_guid, "", 999999, 0);
+ if ($friend_entities) {
+ $friend_guids = array();
+ foreach ($friend_entities as $friend) {
+ $friend_guids[] = $friend->getGUID();
+ }
+ }
+ $page_owner_guid = $friend_guids;
+}
+
+$limit = 10;
+if ($listtype == "gallery") {
+ $limit = 12;
+}
+
+$params = array(
+ 'type' => 'object',
+ 'subtype' => 'file',
+ 'container_guid' => $page_owner_guid,
+ 'limit' => $limit,
+ 'full_view' => false,
+);
+
+if ($file_type) {
+ $params['metadata_name'] = $md_type;
+ $params['metadata_value'] = $file_type;
+ $content = elgg_list_entities_from_metadata($params);
+} else {
+ $content = elgg_list_entities($params);
+}
+
+$body = elgg_view_layout('content', array(
+ 'filter' => '',
+ 'content' => $content,
+ 'title' => $title,
+ 'sidebar' => $sidebar,
+));
+
+echo elgg_view_page($title, $body); \ No newline at end of file
diff --git a/mod/file/pages/file/upload.php b/mod/file/pages/file/upload.php
new file mode 100644
index 000000000..3aa25b6db
--- /dev/null
+++ b/mod/file/pages/file/upload.php
@@ -0,0 +1,37 @@
+<?php
+/**
+ * Upload a new file
+ *
+ * @package ElggFile
+ */
+
+elgg_load_library('elgg:file');
+
+$owner = elgg_get_page_owner_entity();
+
+gatekeeper();
+group_gatekeeper();
+
+$title = elgg_echo('file:add');
+
+// set up breadcrumbs
+elgg_push_breadcrumb(elgg_echo('file'), "file/all");
+if (elgg_instanceof($owner, 'user')) {
+ elgg_push_breadcrumb($owner->name, "file/owner/$owner->username");
+} else {
+ elgg_push_breadcrumb($owner->name, "file/group/$owner->guid/all");
+}
+elgg_push_breadcrumb($title);
+
+// create form
+$form_vars = array('enctype' => 'multipart/form-data');
+$body_vars = file_prepare_form_vars();
+$content = elgg_view_form('file/upload', $form_vars, $body_vars);
+
+$body = elgg_view_layout('content', array(
+ 'content' => $content,
+ 'title' => $title,
+ 'filter' => '',
+));
+
+echo elgg_view_page($title, $body);
diff --git a/mod/file/pages/file/view.php b/mod/file/pages/file/view.php
new file mode 100644
index 000000000..6c9566a89
--- /dev/null
+++ b/mod/file/pages/file/view.php
@@ -0,0 +1,46 @@
+<?php
+/**
+ * View a file
+ *
+ * @package ElggFile
+ */
+
+$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();
+
+elgg_push_breadcrumb(elgg_echo('file'), 'file/all');
+
+$crumbs_title = $owner->name;
+if (elgg_instanceof($owner, 'group')) {
+ elgg_push_breadcrumb($crumbs_title, "file/group/$owner->guid/all");
+} else {
+ elgg_push_breadcrumb($crumbs_title, "file/owner/$owner->username");
+}
+
+$title = $file->title;
+
+elgg_push_breadcrumb($title);
+
+$content = elgg_view_entity($file, array('full_view' => true));
+$content .= elgg_view_comments($file);
+
+elgg_register_menu_item('title', array(
+ 'name' => 'download',
+ 'text' => elgg_echo('file:download'),
+ 'href' => "file/download/$file->guid",
+ 'link_class' => 'elgg-button elgg-button-action',
+));
+
+$body = elgg_view_layout('content', array(
+ 'content' => $content,
+ 'title' => $title,
+ 'filter' => '',
+));
+
+echo elgg_view_page($title, $body);
diff --git a/mod/file/pages/file/world.php b/mod/file/pages/file/world.php
new file mode 100644
index 000000000..96c8de785
--- /dev/null
+++ b/mod/file/pages/file/world.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ * All files
+ *
+ * @package ElggFile
+ */
+
+elgg_push_breadcrumb(elgg_echo('file'));
+
+elgg_register_title_button();
+
+$title = elgg_echo('file:all');
+
+$content = elgg_list_entities(array(
+ 'type' => 'object',
+ 'subtype' => 'file',
+ 'full_view' => FALSE
+));
+if (!$content) {
+ $content = elgg_echo('file:none');
+}
+
+$sidebar = file_get_type_cloud();
+$sidebar = elgg_view('file/sidebar');
+
+$body = elgg_view_layout('content', array(
+ 'filter_context' => 'all',
+ 'content' => $content,
+ 'title' => $title,
+ 'sidebar' => $sidebar,
+));
+
+echo elgg_view_page($title, $body);
diff --git a/mod/file/search.php b/mod/file/search.php
deleted file mode 100644
index 9907b02e3..000000000
--- a/mod/file/search.php
+++ /dev/null
@@ -1,95 +0,0 @@
-<?php
-
- /**
- * Elgg file search
- *
- * @package ElggFile
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
-
- */
-
- // Load Elgg engine
- require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php");
-
-
- // Get input
- $md_type = 'simpletype';
- $tag = get_input('tag');
- $search_viewtype = get_input('search_viewtype');
-
- $friends = (int) get_input('friends_guid',0);
- if ($friends) {
- if ($owner_guid = get_user_friends($user_guid, "", 999999, 0)) {
- foreach($owner_guid as $key => $friend)
- $owner_guid[$key] = (int) $friend->getGUID();
- } else {
- $owner_guid = array();
- }
- } else {
- $owner_guid = get_input('owner_guid',0);
- if (substr_count($owner_guid,',')) {
- $owner_guid = explode(",",$owner_guid);
- }
- }
- $page_owner = get_input('page_owner',0);
- if ($page_owner) {
- set_page_owner($page_owner);
- } else {
- if ($friends) {
- set_page_owner($friends);
- } else {
- if ($owner_guid > 0 && !is_array($owner_guid))
- set_page_owner($owner_guid);
- }
- }
-
- if (is_callable('group_gatekeeper')) group_gatekeeper();
-
- if (empty($tag)) {
- $title = elgg_echo('file:type:all');
- $area2 = elgg_view_title(elgg_echo('file:type:all'));
- $area2 = elgg_view('page_elements/content_header', array('context' => "everyone", 'type' => 'file'));
- } else {
- $title = sprintf(elgg_echo('searchtitle'),$tag);
- if (is_array($owner_guid)) {
- //$area2 = elgg_view_title(elgg_echo("file:friends:type:" . $tag));
- $area2 = elgg_view('page_elements/content_header', array('context' => "friends", 'type' => 'file'));
- } else if (page_owner() && page_owner() != $_SESSION['guid']) {
- //$area2 = elgg_view_title(sprintf(elgg_echo("file:user:type:" . $tag),page_owner_entity()->name));
- $area2 = elgg_view('page_elements/content_header', array('context' => "mine", 'type' => 'file'));
- } else{
- //$area2 = elgg_view_title(elgg_echo("file:type:" . $tag));
- $area2 = elgg_view('page_elements/content_header', array('context' => "everyone", 'type' => 'file'));
- }
- }
- if ($friends) {
- $area1 = get_filetype_cloud($friends,true);
- } else if ($owner_guid) {
- $area1 = get_filetype_cloud($owner_guid);
- } else {
- $area1 = get_filetype_cloud();
- }
-
- // Set context
- set_context('search');
-
- $offset = (int)get_input('offset', 0);
- $limit = 10;
- if ($search_viewtype == "gallery") $limit = 12;
- if (!empty($tag)) {
- $area2 .= list_entities_from_metadata($md_type, $tag, 'object', 'file', $owner_guid, $limit);
- } else {
- $area2 .= elgg_list_entities(array('types' => 'object', 'subtypes' => 'file', 'owner_guid' => $owner_guid, 'limit' => $limit, 'offset' => $offset));
- }
-
- set_context("file");
-
- $content = "<div class='files'>".$area1.$area2."</div>";
-
- $body = elgg_view_layout('one_column_with_sidebar', $content);
-
- page_draw($title, $body);
-
-?> \ No newline at end of file
diff --git a/mod/file/start.php b/mod/file/start.php
index b8a26fab5..7c0c216b2 100644
--- a/mod/file/start.php
+++ b/mod/file/start.php
@@ -1,242 +1,416 @@
<?php
- /**
- * Elgg file browser
- *
- * @package ElggFile
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
- */
-
- /**
- * Override the ElggFile so that
- */
- class FilePluginFile extends ElggFile {
- protected function initialise_attributes() {
- parent::initialise_attributes();
-
- $this->attributes['subtype'] = "file";
- }
-
- public function __construct($guid = null) {
- parent::__construct($guid);
- }
+/**
+ * Elgg file plugin
+ *
+ * @package ElggFile
+ */
+
+elgg_register_event_handler('init', 'system', 'file_init');
+
+/**
+ * File plugin initialization functions.
+ */
+function file_init() {
+
+ // register a library of helper functions
+ elgg_register_library('elgg:file', elgg_get_plugins_path() . 'file/lib/file.php');
+
+ // Site navigation
+ $item = new ElggMenuItem('file', elgg_echo('file'), 'file/all');
+ elgg_register_menu_item('site', $item);
+
+ // Extend CSS
+ elgg_extend_view('css/elgg', 'file/css');
+
+ // add enclosure to rss item
+ elgg_extend_view('extensions/item', 'file/enclosure');
+
+ // extend group main page
+ elgg_extend_view('groups/tool_latest', 'file/group_module');
+
+ // Register a page handler, so we can have nice URLs
+ elgg_register_page_handler('file', 'file_page_handler');
+
+ // Add a new file widget
+ elgg_register_widget_type('filerepo', elgg_echo("file"), elgg_echo("file:widget:description"));
+
+ // Register URL handlers for files
+ elgg_register_entity_url_handler('object', 'file', 'file_url_override');
+ elgg_register_plugin_hook_handler('entity:icon:url', 'object', 'file_icon_url_override');
+
+ // Register granular notification for this object type
+ register_notification_object('object', 'file', elgg_echo('file:newupload'));
+
+ // Listen to notification events and supply a more useful message
+ elgg_register_plugin_hook_handler('notify:entity:message', 'object', 'file_notify_message');
+
+ // add the group files tool option
+ add_group_tool_option('file', elgg_echo('groups:enablefiles'), true);
+
+ // Register entity type for search
+ elgg_register_entity_type('object', 'file');
+
+ // add a file link to owner blocks
+ elgg_register_plugin_hook_handler('register', 'menu:owner_block', 'file_owner_block_menu');
+
+ // Register actions
+ $action_path = elgg_get_plugins_path() . 'file/actions/file';
+ elgg_register_action("file/upload", "$action_path/upload.php");
+ elgg_register_action("file/delete", "$action_path/delete.php");
+ // temporary - see #2010
+ elgg_register_action("file/download", "$action_path/download.php");
+
+ // embed support
+ $item = ElggMenuItem::factory(array(
+ 'name' => 'file',
+ 'text' => elgg_echo('file'),
+ 'priority' => 10,
+ 'data' => array(
+ 'options' => array(
+ 'type' => 'object',
+ 'subtype' => 'file',
+ ),
+ ),
+ ));
+ elgg_register_menu_item('embed', $item);
+
+ $item = ElggMenuItem::factory(array(
+ 'name' => 'file_upload',
+ 'text' => elgg_echo('file:upload'),
+ 'priority' => 100,
+ 'data' => array(
+ 'view' => 'embed/file_upload/content',
+ ),
+ ));
+
+ elgg_register_menu_item('embed', $item);
+}
+
+/**
+ * Dispatches file pages.
+ * URLs take the form of
+ * All files: file/all
+ * User's files: file/owner/<username>
+ * Friends' files: file/friends/<username>
+ * View file: file/view/<guid>/<title>
+ * New file: file/add/<guid>
+ * Edit file: file/edit/<guid>
+ * Group files: file/group/<guid>/all
+ * Download: file/download/<guid>
+ *
+ * Title is ignored
+ *
+ * @param array $page
+ * @return bool
+ */
+function file_page_handler($page) {
+
+ if (!isset($page[0])) {
+ $page[0] = 'all';
}
-
-
- /**
- * File plugin initialisation functions.
- */
- function file_init() {
- global $CONFIG;
-
- // Set up menu (tools dropdown)
- add_menu(elgg_echo('files'), $CONFIG->wwwroot . "pg/file/");
-
- // Extend CSS
- elgg_extend_view('css', 'file/css');
-
- // extend group main page
- elgg_extend_view('groups/tool_latest','file/groupprofile_files');
-
- // Register a page handler, so we can have nice URLs
- register_page_handler('file','file_page_handler');
-
- // Add a new file widget
- add_widget_type('filerepo',elgg_echo("file"),elgg_echo("file:widget:description"));
-
- // Register a URL handler for files
- register_entity_url_handler('file_url','object','file');
-
- // Register granular notification for this object type
- if (is_callable('register_notification_object')) {
- register_notification_object('object', 'file', elgg_echo('file:newupload'));
- }
- // Listen to notification events and supply a more useful message
- register_plugin_hook('notify:entity:message', 'object', 'file_notify_message');
-
- // add the group files tool option
- add_group_tool_option('files',elgg_echo('groups:enablefiles'),true);
+ $file_dir = elgg_get_plugins_path() . 'file/pages/file';
- // Register entity type
- register_entity_type('object','file');
+ $page_type = $page[0];
+ switch ($page_type) {
+ case 'owner':
+ file_register_toggle();
+ include "$file_dir/owner.php";
+ break;
+ case 'friends':
+ 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";
+ break;
+ case 'add':
+ include "$file_dir/upload.php";
+ break;
+ case 'edit':
+ set_input('guid', $page[1]);
+ include "$file_dir/edit.php";
+ break;
+ case 'search':
+ file_register_toggle();
+ include "$file_dir/search.php";
+ break;
+ case 'group':
+ file_register_toggle();
+ include "$file_dir/owner.php";
+ break;
+ case 'all':
+ file_register_toggle();
+ include "$file_dir/world.php";
+ break;
+ case 'download':
+ set_input('guid', $page[1]);
+ include "$file_dir/download.php";
+ break;
+ default:
+ return false;
}
-
- /**
- * Sets up submenus for the file system. Triggered on pagesetup.
- *
- */
- function file_submenus() {
-
- global $CONFIG;
-
- $page_owner = page_owner_entity();
-
- // Group submenu option
- if ($page_owner instanceof ElggGroup && get_context() == "groups") {
- if($page_owner->files_enable != "no"){
- add_submenu_item(sprintf(elgg_echo("file:group"),$page_owner->name), $CONFIG->wwwroot . "pg/file/" . $page_owner->username);
- }
- }
+ return true;
+}
+
+/**
+ * Adds a toggle to extra menu for switching between list and gallery views
+ */
+function file_register_toggle() {
+ $url = elgg_http_remove_url_query_element(current_page_url(), 'list_type');
+
+ if (get_input('list_type', 'list') == 'list') {
+ $list_type = "gallery";
+ $icon = elgg_view_icon('grid');
+ } else {
+ $list_type = "list";
+ $icon = elgg_view_icon('list');
}
- /**
- * File page handler
- *
- * @param array $page Array of page elements, forwarded by the page handling mechanism
- */
- function file_page_handler($page) {
-
- global $CONFIG;
-
- // The username should be the file we're getting
- if (isset($page[0])) {
- set_input('username',$page[0]);
- }
-
- if (isset($page[1])) {
- switch($page[1]) {
- case "read":
- set_input('guid',$page[2]);
- include(dirname(dirname(dirname(__FILE__))) . "/entities/index.php");
- break;
- case "friends":
- include($CONFIG->pluginspath . "file/friends.php");
- break;
- case "world":
- include($CONFIG->pluginspath . "file/world.php");
- break;
- case "new":
- include($CONFIG->pluginspath . "file/upload.php");
- break;
- }
- } else {
- // Include the standard profile index
- include($CONFIG->pluginspath . "file/index.php");
- }
-
+ if (substr_count($url, '?')) {
+ $url .= "&list_type=" . $list_type;
+ } else {
+ $url .= "?list_type=" . $list_type;
}
-
- /**
- * Returns a more meaningful message
- *
- * @param unknown_type $hook
- * @param unknown_type $entity_type
- * @param unknown_type $returnvalue
- * @param unknown_type $params
- */
- function file_notify_message($hook, $entity_type, $returnvalue, $params) {
- $entity = $params['entity'];
- $to_entity = $params['to_entity'];
- $method = $params['method'];
- if (($entity instanceof ElggEntity) && ($entity->getSubtype() == 'file'))
- {
- $descr = $entity->description;
- $title = $entity->title;
- global $CONFIG;
- $url = $CONFIG->wwwroot . "pg/view/" . $entity->guid;
- if ($method == 'sms') {
- $owner = $entity->getOwnerEntity();
- return $owner->name . ' ' . elgg_echo("file:via") . ': ' . $url . ' (' . $title . ')';
- }
- if ($method == 'email') {
- $owner = $entity->getOwnerEntity();
- return $owner->name . ' ' . elgg_echo("file:via") . ': ' . $entity->title . "\n\n" . $descr . "\n\n" . $entity->getURL();
- }
- if ($method == 'web') {
- $owner = $entity->getOwnerEntity();
- return $owner->name . ' ' . elgg_echo("file:via") . ': ' . $entity->title . "\n\n" . $descr . "\n\n" . $entity->getURL();
- }
- }
- return null;
- }
- /**
- * Returns an overall file type from the mimetype
- *
- * @param string $mimetype The MIME type
- * @return string The overall type
- */
- function get_general_file_type($mimetype) {
-
- switch($mimetype) {
- case "application/msword":
- return "document";
- break;
- case "application/pdf":
- return "document";
- break;
+
+ elgg_register_menu_item('extras', array(
+ 'name' => 'file_list',
+ 'text' => $icon,
+ 'href' => $url,
+ 'title' => elgg_echo("file:list:$list_type"),
+ 'priority' => 1000,
+ ));
+}
+
+/**
+ * Creates the notification message body
+ *
+ * @param string $hook
+ * @param string $entity_type
+ * @param string $returnvalue
+ * @param array $params
+ */
+function file_notify_message($hook, $entity_type, $returnvalue, $params) {
+ $entity = $params['entity'];
+ $to_entity = $params['to_entity'];
+ $method = $params['method'];
+ if (($entity instanceof ElggEntity) && ($entity->getSubtype() == 'file')) {
+ $descr = $entity->description;
+ $title = $entity->title;
+ $url = elgg_get_site_url() . "view/" . $entity->guid;
+ $owner = $entity->getOwnerEntity();
+ return $owner->name . ' ' . elgg_echo("file:via") . ': ' . $entity->title . "\n\n" . $descr . "\n\n" . $entity->getURL();
+ }
+ return null;
+}
+
+/**
+ * Add a menu item to the user ownerblock
+ */
+function file_owner_block_menu($hook, $type, $return, $params) {
+ if (elgg_instanceof($params['entity'], 'user')) {
+ $url = "file/owner/{$params['entity']->username}";
+ $item = new ElggMenuItem('file', elgg_echo('file'), $url);
+ $return[] = $item;
+ } else {
+ if ($params['entity']->file_enable != "no") {
+ $url = "file/group/{$params['entity']->guid}/all";
+ $item = new ElggMenuItem('file', elgg_echo('file:group'), $url);
+ $return[] = $item;
}
+ }
+
+ return $return;
+}
+
+/**
+ * Returns an overall file type from the mimetype
+ *
+ * @param string $mimetype The MIME type
+ * @return string The overall type
+ */
+function file_get_simple_type($mimetype) {
- if (substr_count($mimetype,'text/'))
+ 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";
-
- if (substr_count($mimetype,'audio/'))
+ break;
+ case "application/pdf":
+ return "document";
+ break;
+ case "application/ogg":
return "audio";
-
- if (substr_count($mimetype,'image/'))
- return "image";
-
- if (substr_count($mimetype,'video/'))
- return "video";
-
- if (substr_count($mimetype,'opendocument'))
- return "document";
-
- return "general";
+ break;
}
-
- /**
- * Returns a list of filetypes to search specifically on
- *
- * @param int|array $owner_guid The GUID(s) of the owner(s) of the files
- * @param true|false $friends Whether we're looking at the owner or the owner's friends
- * @return string The typecloud
- */
- function get_filetype_cloud($owner_guid = "", $friends = false) {
-
- if ($friends) {
- if ($friendslist = get_user_friends($user_guid, "", 999999, 0)) {
- $friendguids = array();
- foreach($friendslist as $friend) {
- $friendguids[] = $friend->getGUID();
- }
+
+ if (substr_count($mimetype, 'text/')) {
+ return "document";
+ }
+
+ if (substr_count($mimetype, 'audio/')) {
+ return "audio";
+ }
+
+ if (substr_count($mimetype, 'image/')) {
+ return "image";
+ }
+
+ if (substr_count($mimetype, 'video/')) {
+ return "video";
+ }
+
+ if (substr_count($mimetype, 'opendocument')) {
+ return "document";
+ }
+
+ return "general";
+}
+
+// deprecated and will be removed
+function get_general_file_type($mimetype) {
+ elgg_deprecated_notice('Use file_get_simple_type() instead of get_general_file_type()', 1.8);
+ return file_get_simple_type($mimetype);
+}
+
+/**
+ * Returns a list of filetypes
+ *
+ * @param int $container_guid The GUID of the container of the files
+ * @param bool $friends Whether we're looking at the container or the container's friends
+ * @return string The typecloud
+ */
+function file_get_type_cloud($container_guid = "", $friends = false) {
+
+ $container_guids = $container_guid;
+
+ if ($friends) {
+ // tags interface does not support pulling tags on friends' content so
+ // we need to grab all friends
+ $friend_entities = get_user_friends($container_guid, "", 999999, 0);
+ if ($friend_entities) {
+ $friend_guids = array();
+ foreach ($friend_entities as $friend) {
+ $friend_guids[] = $friend->getGUID();
}
- $friendofguid = $owner_guid;
- $owner_guid = $friendguids;
+ }
+ $container_guids = $friend_guids;
+ }
+
+ elgg_register_tag_metadata_name('simpletype');
+ $options = array(
+ 'type' => 'object',
+ 'subtype' => 'file',
+ 'container_guids' => $container_guids,
+ 'threshold' => 0,
+ 'limit' => 10,
+ 'tag_names' => array('simpletype')
+ );
+ $types = elgg_get_tags($options);
+
+ $params = array(
+ 'friends' => $friends,
+ 'types' => $types,
+ );
+
+ return elgg_view('file/typecloud', $params);
+}
+
+function get_filetype_cloud($owner_guid = "", $friends = false) {
+ elgg_deprecated_notice('Use file_get_type_cloud instead of get_filetype_cloud', 1.8);
+ return file_get_type_cloud($owner_guid, $friends);
+}
+
+/**
+ * Populates the ->getUrl() method for file objects
+ *
+ * @param ElggEntity $entity File entity
+ * @return string File URL
+ */
+function file_url_override($entity) {
+ $title = $entity->title;
+ $title = elgg_get_friendly_title($title);
+ return "file/view/" . $entity->getGUID() . "/" . $title;
+}
+
+/**
+ * Override the default entity icon for files
+ *
+ * Plugins can override or extend the icons using the plugin hook: 'file:icon:url', 'override'
+ *
+ * @return string Relative URL
+ */
+function file_icon_url_override($hook, $type, $returnvalue, $params) {
+ $file = $params['entity'];
+ $size = $params['size'];
+ if (elgg_instanceof($file, 'object', 'file')) {
+
+ // thumbnails get first priority
+ if ($file->thumbnail) {
+ $ts = (int)$file->icontime;
+ return "mod/file/thumbnail.php?file_guid=$file->guid&size=$size&icontime=$ts";
+ }
+
+ $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',
+ 'application/zip' => 'archive',
+
+ 'text/directory' => 'vcard',
+ 'text/v-card' => 'vcard',
+
+ 'application' => 'application',
+ 'audio' => 'music',
+ 'text' => 'text',
+ 'video' => 'video',
+ );
+
+ $mime = $file->mimetype;
+ if ($mime) {
+ $base_type = substr($mime, 0, strpos($mime, '/'));
} else {
- $friendofguid = false;
+ $mime = 'none';
+ $base_type = 'none';
}
- return elgg_view('file/typecloud',array('owner_guid' => $owner_guid, 'friend_guid' => $friendofguid, 'types' => get_tags(0,10,'simpletype','object','file',$owner_guid)));
- }
-
- /**
- * Populates the ->getUrl() method for file objects
- *
- * @param ElggEntity $entity File entity
- * @return string File URL
- */
- function file_url($entity) {
-
- global $CONFIG;
- $title = $entity->title;
- $title = friendly_title($title);
- return $CONFIG->url . "pg/file/" . $entity->getOwnerEntity()->username . "/read/" . $entity->getGUID() . "/" . $title;
-
+ if (isset($mapping[$mime])) {
+ $type = $mapping[$mime];
+ } elseif (isset($mapping[$base_type])) {
+ $type = $mapping[$base_type];
+ } else {
+ $type = 'general';
}
-
- // Make sure test_init is called on initialisation
- register_elgg_event_handler('init','system','file_init');
- register_elgg_event_handler('pagesetup','system','file_submenus');
-
- // Register actions
- register_action("file/upload", false, $CONFIG->pluginspath . "file/actions/upload.php");
- register_action("file/save", false, $CONFIG->pluginspath . "file/actions/save.php");
- register_action("file/delete", false, $CONFIG->pluginspath. "file/actions/delete.php");
- // temporary - see #2010
- register_action("file/download", false, $CONFIG->pluginspath. "file/actions/download.php");
-
-?>
+ if ($size == 'large') {
+ $ext = '_lrg';
+ } else {
+ $ext = '';
+ }
+
+ $url = "mod/file/graphics/icons/{$type}{$ext}.gif";
+ $url = elgg_trigger_plugin_hook('file:icon:url', 'override', $params, $url);
+ return $url;
+ }
+}
diff --git a/mod/file/thumbnail.php b/mod/file/thumbnail.php
index a150cce5a..851f13a8f 100644
--- a/mod/file/thumbnail.php
+++ b/mod/file/thumbnail.php
@@ -1,69 +1,57 @@
<?php
-
/**
* Elgg file thumbnail
*
* @package ElggFile
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
*/
// Get engine
require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php");
// Get file GUID
-$file_guid = (int) get_input('file_guid',0);
+$file_guid = (int) get_input('file_guid', 0);
// Get file thumbnail size
-$size = get_input('size','small');
-
-// Get file entity
-if ($file = get_entity($file_guid)) {
-
- if ($file->getSubtype() == "file") {
+$size = get_input('size', 'small');
- $simpletype = $file->simpletype;
- if ($simpletype == "image") {
-
- // Get file thumbnail
- switch ($size) {
- case "small":
- $thumbfile = $file->thumbnail;
- break;
- case "medium":
- $thumbfile = $file->smallthumb;
- break;
- case "large":
- default:
- $thumbfile = $file->largethumb;
- break;
- }
+$file = get_entity($file_guid);
+if (!$file || $file->getSubtype() != "file") {
+ exit;
+}
- // Grab the file
- if ($thumbfile && !empty($thumbfile)) {
- $readfile = new ElggFile();
- $readfile->owner_guid = $file->owner_guid;
- $readfile->setFilename($thumbfile);
- $mime = $file->getMimeType();
- $contents = $readfile->grabFile();
-
- // caching images for 10 days
- header("Content-type: $mime");
- header('Expires: ' . date('r',time() + 864000));
- header("Pragma: public", true);
- header("Cache-Control: public", true);
- header("Content-Length: " . strlen($contents));
-
- echo $contents;
- exit;
-
- }
-
- }
+$simpletype = $file->simpletype;
+if ($simpletype == "image") {
+
+ // Get file thumbnail
+ switch ($size) {
+ case "small":
+ $thumbfile = $file->thumbnail;
+ break;
+ case "medium":
+ $thumbfile = $file->smallthumb;
+ break;
+ case "large":
+ default:
+ $thumbfile = $file->largethumb;
+ break;
+ }
+ // Grab the file
+ if ($thumbfile && !empty($thumbfile)) {
+ $readfile = new ElggFile();
+ $readfile->owner_guid = $file->owner_guid;
+ $readfile->setFilename($thumbfile);
+ $mime = $file->getMimeType();
+ $contents = $readfile->grabFile();
+
+ // caching images for 10 days
+ header("Content-type: $mime");
+ 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));
+
+ echo $contents;
+ exit;
}
-
}
-
-?> \ No newline at end of file
diff --git a/mod/file/upload.php b/mod/file/upload.php
deleted file mode 100644
index 7aa0553ca..000000000
--- a/mod/file/upload.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
- /**
- * Elgg file browser uploader
- *
- * @package ElggFile
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
- */
-
- require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php");
-
- gatekeeper();
- if (is_callable('group_gatekeeper')) {
- group_gatekeeper();
- }
-
- // Render the file upload page
-
- $container_guid = page_owner();
- $area1 = elgg_view_title($title = elgg_echo('file:upload'));
- $area1 .= elgg_view("file/upload", array('container_guid' => $container_guid));
- $body = elgg_view_layout('one_column_with_sidebar', $area1);
-
- page_draw(elgg_echo("file:upload"), $body);
-
-?> \ No newline at end of file
diff --git a/mod/file/views/default/embed/file_upload/content.php b/mod/file/views/default/embed/file_upload/content.php
new file mode 100644
index 000000000..8b630c828
--- /dev/null
+++ b/mod/file/views/default/embed/file_upload/content.php
@@ -0,0 +1,17 @@
+<?php
+/**
+ * Upload a file through the embed interface
+ */
+
+$form_vars = array(
+ 'enctype' => 'multipart/form-data',
+ 'class' => 'elgg-form-embed',
+);
+$body_vars = array('container_guid' => elgg_get_page_owner_guid());
+echo elgg_view_form('file/upload', $form_vars, $body_vars);
+
+// the tab we want to be forwarded to after upload is complete
+echo elgg_view('input/hidden', array(
+ 'name' => 'embed_forward',
+ 'value' => 'file',
+)); \ No newline at end of file
diff --git a/mod/file/views/default/file/css.php b/mod/file/views/default/file/css.php
index 6ee41caf5..5476ed7e2 100644
--- a/mod/file/views/default/file/css.php
+++ b/mod/file/views/default/file/css.php
@@ -1,117 +1,15 @@
<?php
- /**
- * File CSS extender
- *
- * @package Elgg File Repository
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider <info@elgg.com>
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.org/
- */
+/**
+ * File CSS extender
+ *
+ * @package ElggFile
+ */
?>
-.files .entity_listing .entity_listing_info {
- width:453px;
+.file-photo {
+ text-align: center;
+ margin-bottom: 15px;
}
-.files .entity_listing:hover {
- background-color: white;
+.file-gallery-item {
+ text-align: center;
+ width: 165px;
}
-
-/* files - single entity view */
-.filerepo_title_owner_wrapper .filerepo_title,
-.filerepo_title_owner_wrapper .filerepo_owner,
-.filerepo_file .filerepo_maincontent {
- margin-left: 70px !important;
-}
-.filerepo_owner_details {
- margin:0;
- padding:0;
- line-height: 1.2em;
-}
-.filerepo_owner_details small {
- color:#666666;
-}
-.filerepo_owner .usericon {
- margin: 3px 5px 5px 0;
- float: left;
-}
-.filerepo_file .filerepo_icon {
- width: 70px;
- position: absolute;
- margin:5px 0 10px 0;
-}
-.filerepo_file .filerepo_title {
- margin:0;
- padding:7px 4px 10px 0;
- line-height: 1.2em;
-}
-.filerepo_file .filerepo_description {
- margin:10px 0 0 0;
-}
-.filerepo_file .filerepo_description p {
- padding:0 0 5px 0;
- margin:0;
-}
-.filerepo_file .filerepo_specialcontent img {
- padding:10px;
- margin-bottom:10px;
- -webkit-border-radius: 6px;
- -moz-border-radius: 6px;
- background: #333333;
-}
-
-
-/* files - gallery view */
-.entity_gallery_item .filerepo_gallery_item {
- margin:10px 10px 0 0;
- padding:5px;
- text-align:center;
- background-color: #eeeeee;
- -webkit-border-radius: 6px;
- -moz-border-radius: 6px;
- width:165px;
-}
-.entity_gallery_item .filerepo_gallery_item:hover {
- background-color: #999999;
-}
-.filerepo_download,
-.filerepo_controls {
- padding:0 0 1px 0;
- margin:0 0 10px 0;
-}
-.entity_gallery .filerepo_title {
- font-weight: bold;
- line-height: 1.1em;
- margin:0 0 10px 0;
-}
-.filerepo_gallery_item p {
- margin:0;
- padding:0;
-}
-.filerepo_gallery_item .filerepo_controls {
- margin-top:10px;
-}
-.filerepo_gallery_item .filerepo_controls a {
- padding-right:10px;
- padding-left:10px;
-}
-.entity_gallery .filerepo_comments {
- font-size:90%;
-}
-.filerepo_user_gallery_link {
- float:right;
- margin:5px 5px 5px 50px;
-}
-.filerepo_user_gallery_link a {
- padding:2px 25px 5px 0;
- background: transparent url(<?php echo $vars['url']; ?>mod/file/graphics/icon_gallery.gif) no-repeat right top;
- display:block;
-}
-.filerepo_user_gallery_link a:hover {
- background-position: right -40px;
-}
-
-
-
-
-
-
diff --git a/mod/file/views/default/file/group_module.php b/mod/file/views/default/file/group_module.php
new file mode 100644
index 000000000..ad6c58dbb
--- /dev/null
+++ b/mod/file/views/default/file/group_module.php
@@ -0,0 +1,45 @@
+<?php
+/**
+ * Group file module
+ */
+
+$group = elgg_get_page_owner_entity();
+
+if ($group->file_enable == "no") {
+ return true;
+}
+
+$all_link = elgg_view('output/url', array(
+ 'href' => "file/group/$group->guid/all",
+ 'text' => elgg_echo('link:view:all'),
+ 'is_trusted' => true,
+));
+
+elgg_push_context('widgets');
+$options = array(
+ 'type' => 'object',
+ 'subtype' => 'file',
+ 'container_guid' => elgg_get_page_owner_guid(),
+ 'limit' => 6,
+ 'full_view' => false,
+ 'pagination' => false,
+);
+$content = elgg_list_entities($options);
+elgg_pop_context();
+
+if (!$content) {
+ $content = '<p>' . elgg_echo('file:none') . '</p>';
+}
+
+$new_link = elgg_view('output/url', array(
+ 'href' => "file/add/$group->guid",
+ 'text' => elgg_echo('file:add'),
+ 'is_trusted' => true,
+));
+
+echo elgg_view('groups/profile/module', array(
+ 'title' => elgg_echo('file:group'),
+ 'content' => $content,
+ 'all_link' => $all_link,
+ 'add_link' => $new_link,
+));
diff --git a/mod/file/views/default/file/groupprofile_files.php b/mod/file/views/default/file/groupprofile_files.php
deleted file mode 100644
index 81fb88588..000000000
--- a/mod/file/views/default/file/groupprofile_files.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-
- // Files on group profile page
-
- //check to make sure group files is activated
- if($vars['entity']->files_enable != 'no'){
-
-?>
-<div class="group_tool_widget files">
-<h3><?php echo elgg_echo("file:group"); ?></h3>
-
-<?php
-
- //the number of files to display
- $number = (int) $vars['entity']->num_display;
- if (!$number)
- $number = 6;
-
- //get the group's files
- $files = elgg_get_entities(array('type' => 'object',
- 'subtype' => 'file',
- 'container_guid' => $vars['entity']->guid,
- 'limit' => $number
- ));
-
- //if there are some files, go get them
- if ($files) {
-
- //display in list mode
- foreach($files as $f){
-
- $mime = $f->mimetype;
- echo "<div class='entity_listing clearfloat'>";
- echo "<div class='entity_listing_icon'><a href=\"{$f->getURL()}\">" . elgg_view("file/icon", array("mimetype" => $mime, 'thumbnail' => $f->thumbnail, 'file_guid' => $f->guid)) . "</a></div>";
- echo "<div class='entity_listing_info'>";
- echo "<p class='entity_title'>" . $f->title . "</p>";
- echo "<p class='entity_subtext'>" . friendly_time($f->time_created) . "</p>";
- echo "</div></div>";
-
- }
-
-
- //get a link to the users files
- $users_file_url = $vars['url'] . "pg/file/" . page_owner_entity()->username;
-
- echo "<p><a href=\"{$users_file_url}\">" . elgg_echo('file:more') . "</a></p>";
-
- } else {
-
- echo "<p class='margin_top'>" . elgg_echo("file:none") . "</p>";
-
- }
-
-?>
-</div>
-
-<?php
- }//end of activate check statement
-?> \ No newline at end of file
diff --git a/mod/file/views/default/file/icon.php b/mod/file/views/default/file/icon.php
deleted file mode 100644
index f1bb3f8e1..000000000
--- a/mod/file/views/default/file/icon.php
+++ /dev/null
@@ -1,65 +0,0 @@
-<?php
- /**
- * Elgg file icons.
- * Displays an icon, depending on its mime type, for a file.
- * Optionally you can specify a size.
- *
- * @package ElggFile
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
- */
-
- global $CONFIG;
-
- $mime = $vars['mimetype'];
-
- // is this request for an image thumbnail
- if (isset($vars['thumbnail'])) {
- $thumbnail = $vars['thumbnail'];
- } else {
- $thumbnail = false;
- }
-
- // default size is small for thumbnails
- if (isset($vars['size'])) {
- $size = $vars['size'];
- } else {
- $size = 'small';
- }
-
- // Handle
- switch ($mime)
- {
- case 'image/jpg' :
- case 'image/jpeg' :
- case 'image/pjpeg' :
- case 'image/png' :
- case 'image/x-png' :
- case 'image/gif' :
- case 'image/bmp' :
- if ($thumbnail) {
- echo "<img src=\"{$vars['url']}mod/file/thumbnail.php?file_guid={$vars['file_guid']}&size={$size}\" border=\"0\" />";
- } else {
- if (!empty($mime) && elgg_view_exists("file/icon/{$mime}")) {
- echo elgg_view("file/icon/{$mime}", $vars);
- } else if (!empty($mime) && elgg_view_exists("file/icon/" . substr($mime,0,strpos($mime,'/')) . "/default")) {
- echo elgg_view("file/icon/" . substr($mime,0,strpos($mime,'/')) . "/default", $vars);
- } else {
- echo "<img src=\"". elgg_view('file/icon/default',$vars) ."\" border=\"0\" />";
- }
- }
-
- break;
- default :
- if (!empty($mime) && elgg_view_exists("file/icon/{$mime}")) {
- echo elgg_view("file/icon/{$mime}", $vars);
- } else if (!empty($mime) && elgg_view_exists("file/icon/" . substr($mime,0,strpos($mime,'/')) . "/default")) {
- echo elgg_view("file/icon/" . substr($mime,0,strpos($mime,'/')) . "/default", $vars);
- } else {
- echo "<img src=\"". elgg_view('file/icon/default',$vars) ."\" border=\"0\" />";
- }
- break;
- }
-
-?> \ No newline at end of file
diff --git a/mod/file/views/default/file/icon/application/default.php b/mod/file/views/default/file/icon/application/default.php
deleted file mode 100644
index eea8cbafe..000000000
--- a/mod/file/views/default/file/icon/application/default.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
- if ($vars['size'] == 'large') {
- $ext = '_lrg';
- } else {
- $ext = '';
- }
- echo "<img src=\"{$CONFIG->wwwroot}mod/file/graphics/icons/application{$ext}.gif\" border=\"0\" />";
-
-?> \ No newline at end of file
diff --git a/mod/file/views/default/file/icon/application/excel.php b/mod/file/views/default/file/icon/application/excel.php
deleted file mode 100644
index ba2460fec..000000000
--- a/mod/file/views/default/file/icon/application/excel.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
- if ($vars['size'] == 'large') {
- $ext = '_lrg';
- } else {
- $ext = '';
- }
- echo "<img src=\"{$CONFIG->wwwroot}mod/file/graphics/icons/excel{$ext}.gif\" border=\"0\" />";
-
-?> \ No newline at end of file
diff --git a/mod/file/views/default/file/icon/application/msword.php b/mod/file/views/default/file/icon/application/msword.php
deleted file mode 100644
index 20efb1069..000000000
--- a/mod/file/views/default/file/icon/application/msword.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
- if ($vars['size'] == 'large') {
- $ext = '_lrg';
- } else {
- $ext = '';
- }
- echo "<img src=\"{$CONFIG->wwwroot}mod/file/graphics/icons/word{$ext}.gif\" border=\"0\" />";
-
-?> \ No newline at end of file
diff --git a/mod/file/views/default/file/icon/application/pdf.php b/mod/file/views/default/file/icon/application/pdf.php
deleted file mode 100644
index 6a5a7369c..000000000
--- a/mod/file/views/default/file/icon/application/pdf.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
- if ($vars['size'] == 'large') {
- $ext = '_lrg';
- } else {
- $ext = '';
- }
- echo "<img src=\"{$CONFIG->wwwroot}mod/file/graphics/icons/pdf{$ext}.gif\" border=\"0\" />";
-
-?> \ No newline at end of file
diff --git a/mod/file/views/default/file/icon/application/powerpoint.php b/mod/file/views/default/file/icon/application/powerpoint.php
deleted file mode 100644
index 1857d513f..000000000
--- a/mod/file/views/default/file/icon/application/powerpoint.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
- if ($vars['size'] == 'large') {
- $ext = '_lrg';
- } else {
- $ext = '';
- }
- echo "<img src=\"{$CONFIG->wwwroot}mod/file/graphics/icons/ppt{$ext}.gif\" border=\"0\" />";
-
-?> \ No newline at end of file
diff --git a/mod/file/views/default/file/icon/application/vnd.ms-excel.php b/mod/file/views/default/file/icon/application/vnd.ms-excel.php
deleted file mode 100644
index ba2460fec..000000000
--- a/mod/file/views/default/file/icon/application/vnd.ms-excel.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
- if ($vars['size'] == 'large') {
- $ext = '_lrg';
- } else {
- $ext = '';
- }
- echo "<img src=\"{$CONFIG->wwwroot}mod/file/graphics/icons/excel{$ext}.gif\" border=\"0\" />";
-
-?> \ No newline at end of file
diff --git a/mod/file/views/default/file/icon/application/vnd.ms-powerpoint.php b/mod/file/views/default/file/icon/application/vnd.ms-powerpoint.php
deleted file mode 100644
index 1857d513f..000000000
--- a/mod/file/views/default/file/icon/application/vnd.ms-powerpoint.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
- if ($vars['size'] == 'large') {
- $ext = '_lrg';
- } else {
- $ext = '';
- }
- echo "<img src=\"{$CONFIG->wwwroot}mod/file/graphics/icons/ppt{$ext}.gif\" border=\"0\" />";
-
-?> \ No newline at end of file
diff --git a/mod/file/views/default/file/icon/application/vnd.oasis.opendocument.text.php b/mod/file/views/default/file/icon/application/vnd.oasis.opendocument.text.php
deleted file mode 100644
index d0bde81df..000000000
--- a/mod/file/views/default/file/icon/application/vnd.oasis.opendocument.text.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
- if ($vars['size'] == 'large') {
- $ext = '_lrg';
- } else {
- $ext = '';
- }
- echo "<img src=\"{$CONFIG->wwwroot}mod/file/graphics/icons/openoffice{$ext}.gif\" border=\"0\" />";
-
-?> \ No newline at end of file
diff --git a/mod/file/views/default/file/icon/application/x-gzip.php b/mod/file/views/default/file/icon/application/x-gzip.php
deleted file mode 100644
index 72f839732..000000000
--- a/mod/file/views/default/file/icon/application/x-gzip.php
+++ /dev/null
@@ -1,5 +0,0 @@
-<?php
-
- echo elgg_view('file/icon/archive',$vars);
-
-?> \ No newline at end of file
diff --git a/mod/file/views/default/file/icon/application/x-rar-compressed.php b/mod/file/views/default/file/icon/application/x-rar-compressed.php
deleted file mode 100644
index 72f839732..000000000
--- a/mod/file/views/default/file/icon/application/x-rar-compressed.php
+++ /dev/null
@@ -1,5 +0,0 @@
-<?php
-
- echo elgg_view('file/icon/archive',$vars);
-
-?> \ No newline at end of file
diff --git a/mod/file/views/default/file/icon/application/x-stuffit.php b/mod/file/views/default/file/icon/application/x-stuffit.php
deleted file mode 100644
index 72f839732..000000000
--- a/mod/file/views/default/file/icon/application/x-stuffit.php
+++ /dev/null
@@ -1,5 +0,0 @@
-<?php
-
- echo elgg_view('file/icon/archive',$vars);
-
-?> \ No newline at end of file
diff --git a/mod/file/views/default/file/icon/application/zip.php b/mod/file/views/default/file/icon/application/zip.php
deleted file mode 100644
index 72f839732..000000000
--- a/mod/file/views/default/file/icon/application/zip.php
+++ /dev/null
@@ -1,5 +0,0 @@
-<?php
-
- echo elgg_view('file/icon/archive',$vars);
-
-?> \ No newline at end of file
diff --git a/mod/file/views/default/file/icon/archive.php b/mod/file/views/default/file/icon/archive.php
deleted file mode 100644
index 4fffd9346..000000000
--- a/mod/file/views/default/file/icon/archive.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
- if ($vars['size'] == 'large') {
- $ext = '_lrg';
- } else {
- $ext = '';
- }
- echo "<img src=\"{$CONFIG->wwwroot}mod/file/graphics/icons/archive{$ext}.gif\" border=\"0\" />";
-
-?> \ No newline at end of file
diff --git a/mod/file/views/default/file/icon/audio.php b/mod/file/views/default/file/icon/audio.php
deleted file mode 100644
index 73c55be7b..000000000
--- a/mod/file/views/default/file/icon/audio.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
- if ($vars['size'] == 'large') {
- $ext = '_lrg';
- } else {
- $ext = '';
- }
- echo "<img src=\"{$CONFIG->wwwroot}mod/file/graphics/icons/music{$ext}.gif\" border=\"0\" />";
-
-?> \ No newline at end of file
diff --git a/mod/file/views/default/file/icon/audio/default.php b/mod/file/views/default/file/icon/audio/default.php
deleted file mode 100644
index 2bd1498b2..000000000
--- a/mod/file/views/default/file/icon/audio/default.php
+++ /dev/null
@@ -1,5 +0,0 @@
-<?php
-
- echo elgg_view('file/icon/audio',$vars);
-
-?> \ No newline at end of file
diff --git a/mod/file/views/default/file/icon/default.php b/mod/file/views/default/file/icon/default.php
deleted file mode 100644
index 844ee312c..000000000
--- a/mod/file/views/default/file/icon/default.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
- if ($vars['size'] == 'large') {
- $ext = '_lrg';
- } else {
- $ext = '';
- }
- echo "{$CONFIG->wwwroot}mod/file/graphics/icons/general{$ext}.gif";
-
-?> \ No newline at end of file
diff --git a/mod/file/views/default/file/icon/document.php b/mod/file/views/default/file/icon/document.php
deleted file mode 100644
index 8823514b8..000000000
--- a/mod/file/views/default/file/icon/document.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
- if ($vars['size'] == 'large') {
- $ext = '_lrg';
- } else {
- $ext = '';
- }
- echo "<img src=\"{$CONFIG->wwwroot}mod/file/graphics/icons/text{$ext}.gif\" border=\"0\" />";
-
-?> \ No newline at end of file
diff --git a/mod/file/views/default/file/icon/text/default.php b/mod/file/views/default/file/icon/text/default.php
deleted file mode 100644
index bf5da852d..000000000
--- a/mod/file/views/default/file/icon/text/default.php
+++ /dev/null
@@ -1,5 +0,0 @@
-<?php
-
- echo elgg_view('file/icon/document',$vars);
-
-?> \ No newline at end of file
diff --git a/mod/file/views/default/file/icon/text/directory.php b/mod/file/views/default/file/icon/text/directory.php
deleted file mode 100644
index a08e098c6..000000000
--- a/mod/file/views/default/file/icon/text/directory.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
- if ($vars['size'] == 'large') {
- $ext = '_lrg';
- } else {
- $ext = '';
- }
- echo "<img src=\"{$CONFIG->wwwroot}mod/file/graphics/icons/vcard{$ext}.gif\" border=\"0\" />";
-
-?> \ No newline at end of file
diff --git a/mod/file/views/default/file/icon/text/v-card.php b/mod/file/views/default/file/icon/text/v-card.php
deleted file mode 100644
index 5c8ecd855..000000000
--- a/mod/file/views/default/file/icon/text/v-card.php
+++ /dev/null
@@ -1,5 +0,0 @@
-<?php
-
- echo elgg_view('file/icon/text/directory',$vars);
-
-?> \ No newline at end of file
diff --git a/mod/file/views/default/file/icon/video.php b/mod/file/views/default/file/icon/video.php
deleted file mode 100644
index 94617abff..000000000
--- a/mod/file/views/default/file/icon/video.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
- if ($vars['size'] == 'large') {
- $ext = '_lrg';
- } else {
- $ext = '';
- }
- echo "<img src=\"{$CONFIG->wwwroot}mod/file/graphics/icons/video{$ext}.gif\" border=\"0\" />";
-
-?> \ No newline at end of file
diff --git a/mod/file/views/default/file/icon/video/default.php b/mod/file/views/default/file/icon/video/default.php
deleted file mode 100644
index 0ff2db791..000000000
--- a/mod/file/views/default/file/icon/video/default.php
+++ /dev/null
@@ -1,5 +0,0 @@
-<?php
-
- echo elgg_view('file/icon/video',$vars);
-
-?> \ No newline at end of file
diff --git a/mod/file/views/default/file/sidebar.php b/mod/file/views/default/file/sidebar.php
new file mode 100644
index 000000000..f61b8e64e
--- /dev/null
+++ b/mod/file/views/default/file/sidebar.php
@@ -0,0 +1,14 @@
+<?php
+/**
+ * File sidebar
+ */
+
+echo elgg_view('page/elements/comments_block', array(
+ 'subtypes' => 'file',
+ 'owner_guid' => elgg_get_page_owner_guid(),
+));
+
+echo elgg_view('page/elements/tagcloud_block', array(
+ 'subtypes' => 'file',
+ 'owner_guid' => elgg_get_page_owner_guid(),
+));
diff --git a/mod/file/views/default/file/specialcontent/audio/mid.php b/mod/file/views/default/file/specialcontent/audio/mid.php
deleted file mode 100644
index cf216a3b3..000000000
--- a/mod/file/views/default/file/specialcontent/audio/mid.php
+++ /dev/null
@@ -1,4 +0,0 @@
-<object type="audio/midi" data="<?php echo $vars['url']; ?>mod/file/download.php?file_guid=<?php echo $vars['entity']->getGUID(); ?>" width="200" height="20">
- <param name="autoplay" value="false">
- <param name="autoStart" value="0">
-</object> \ No newline at end of file
diff --git a/mod/file/views/default/file/specialcontent/audio/mp3.php b/mod/file/views/default/file/specialcontent/audio/mp3.php
deleted file mode 100644
index 83b77c391..000000000
--- a/mod/file/views/default/file/specialcontent/audio/mp3.php
+++ /dev/null
@@ -1,4 +0,0 @@
-<object type="audio/mpeg" data="<?php echo $vars['url']; ?>mod/file/download.php?file_guid=<?php echo $vars['entity']->getGUID(); ?>" width="200" height="20">
- <param name="autoplay" value="false">
- <param name="autoStart" value="0">
-</object> \ No newline at end of file
diff --git a/mod/file/views/default/file/specialcontent/audio/mpeg.php b/mod/file/views/default/file/specialcontent/audio/mpeg.php
deleted file mode 100644
index 83b77c391..000000000
--- a/mod/file/views/default/file/specialcontent/audio/mpeg.php
+++ /dev/null
@@ -1,4 +0,0 @@
-<object type="audio/mpeg" data="<?php echo $vars['url']; ?>mod/file/download.php?file_guid=<?php echo $vars['entity']->getGUID(); ?>" width="200" height="20">
- <param name="autoplay" value="false">
- <param name="autoStart" value="0">
-</object> \ No newline at end of file
diff --git a/mod/file/views/default/file/specialcontent/audio/x-wav.php b/mod/file/views/default/file/specialcontent/audio/x-wav.php
deleted file mode 100644
index 21af956c2..000000000
--- a/mod/file/views/default/file/specialcontent/audio/x-wav.php
+++ /dev/null
@@ -1,4 +0,0 @@
-<object type="audio/x-wav" data="<?php echo $vars['url']; ?>mod/file/download.php?file_guid=<?php echo $vars['entity']->getGUID(); ?>" width="200" height="20">
- <param name="autoplay" value="false">
- <param name="autoStart" value="0">
-</object> \ No newline at end of file
diff --git a/mod/file/views/default/file/specialcontent/image/default.php b/mod/file/views/default/file/specialcontent/image/default.php
index b034857c2..431ac9f4f 100644
--- a/mod/file/views/default/file/specialcontent/image/default.php
+++ b/mod/file/views/default/file/specialcontent/image/default.php
@@ -1,9 +1,20 @@
<?php
+/**
+ * Display an image
+ *
+ * @uses $vars['entity']
+ */
- if ($vars['full'] && $smallthumb = $vars['entity']->smallthumb) {
-
- echo "<p><a href=\"{$vars['url']}mod/file/download.php?file_guid={$vars['entity']->getGUID()}\"><img src=\"{$vars['url']}mod/file/thumbnail.php?file_guid={$vars['entity']->getGUID()}&size=large\" border=\"0\" /></a></p>";
-
- }
+$file = $vars['entity'];
-?> \ No newline at end of file
+$image_url = $file->getIconURL('large');
+$image_url = elgg_format_url($image_url);
+$download_url = elgg_get_site_url() . "file/download/{$file->getGUID()}";
+
+if ($vars['full_view']) {
+ echo <<<HTML
+ <div class="file-photo">
+ <a href="$download_url"><img class="elgg-photo" src="$image_url" /></a>
+ </div>
+HTML;
+}
diff --git a/mod/file/views/default/file/typecloud.php b/mod/file/views/default/file/typecloud.php
index 5ac831cfe..4253bf674 100644
--- a/mod/file/views/default/file/typecloud.php
+++ b/mod/file/views/default/file/typecloud.php
@@ -1,59 +1,50 @@
<?php
+/**
+ * Type cloud
+ */
- $types = $vars['types'];
-
- if (is_array($vars['types']) && sizeof($vars['types'])) {
-
-?>
-<ul>
-<?php
+function file_type_cloud_get_url($type, $friends) {
+ $url = elgg_get_site_url() . 'file/search?subtype=file';
- $all = new stdClass;
- $all->tag = "all";
- $vars['types'][] = $all;
- $vars['types'] = array_reverse($vars['types']);
- foreach($vars['types'] as $type) {
-
- $tag = $type->tag;
- if ($tag != "all") {
- $label = elgg_echo("file:type:" . $tag);
- } else {
- $label = elgg_echo('all');
- }
-
- $url = $vars['url'] . "mod/file/search.php?subtype=file";
- if ($tag != "all")
- $url .= "&md_type=simpletype&tag=" . urlencode($tag);
- if (isset($vars['friend_guid']) && $vars['friend_guid'] != false) {
- $url .= "&friends_guid={$vars['friend_guid']}";
- } else if ($vars['owner_guid'] != "") {
- if (is_array($vars['owner_guid'])) {
- $owner_guid = implode(",",$vars['owner_guid']);
- } else {
- $owner_guid = $vars['owner_guid'];
- }
- $url .= "&owner_guid={$owner_guid}";
- }
- if ($tag == "image")
- $url .= "&search_viewtype=gallery";
-
- $url .= "&page_owner=" . page_owner();
-
- $inputtag = get_input('tag');
- if ($inputtag == $tag || (empty($inputtag) && $tag == "all")) {
- $class = " class=\"selected\" ";
- } else {
- $class = "";
- }
-
- add_submenu_item($label, $url, 'filetypes');
+ if ($type->tag != "all") {
+ $url .= "&md_type=simpletype&tag=" . urlencode($type->tag);
}
-
-?>
-</ul>
-<?php
-
+ if ($friends) {
+ $url .= "&friends=$friends";
+ }
+
+ if ($type->tag == "image") {
+ $url .= "&list_type=gallery";
+ }
+
+ if (elgg_get_page_owner_guid()) {
+ $url .= "&page_owner=" . elgg_get_page_owner_guid();
}
-?> \ No newline at end of file
+ return $url;
+}
+
+
+$types = elgg_extract('types', $vars, array());
+if (!$types) {
+ return true;
+}
+
+$friends = elgg_extract('friends', $vars, false);
+
+$all = new stdClass;
+$all->tag = "all";
+elgg_register_menu_item('page', array(
+ 'name' => 'file:all',
+ 'text' => elgg_echo('all'),
+ 'href' => file_type_cloud_get_url($all, $friends),
+));
+
+foreach ($types as $type) {
+ elgg_register_menu_item('page', array(
+ 'name' => "file:$type->tag",
+ 'text' => elgg_echo("file:type:$type->tag"),
+ 'href' => file_type_cloud_get_url($type, $friends),
+ ));
+}
diff --git a/mod/file/views/default/file/upload.php b/mod/file/views/default/file/upload.php
deleted file mode 100644
index ae37f53ac..000000000
--- a/mod/file/views/default/file/upload.php
+++ /dev/null
@@ -1,131 +0,0 @@
-<?php
- /**
- * Elgg file browser uploader
- *
- * @package ElggFile
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
- */
-
- global $CONFIG;
-
- if (isset($vars['entity'])) {
- $action_type = "update";
- $action = "file/upload";
- $title = $vars['entity']->title;
- $description = $vars['entity']->description;
- $tags = $vars['entity']->tags;
- $access_id = $vars['entity']->access_id;
- $container_guid = $vars['entity']->container_guid;
- } else {
- $action_type = "new";
- $action = "file/upload";
- $title = isset($_SESSION['uploadtitle']) ? $_SESSION['uploadtitle'] : '';
- $description = isset($_SESSION['uploaddesc']) ? $_SESSION['uploaddesc'] : '';
- $tags = isset($_SESSION['uploadtags']) ? $_SESSION['uploadtags'] : '';
- if (defined('ACCESS_DEFAULT')) {
- $access_id = ACCESS_DEFAULT;
- } else {
- $access_id = 0;
- }
- $access_id = isset($_SESSION['uploadaccessid']) ? $_SESSION['uploadaccessid'] : $access_id;
- $container_guid = page_owner_entity()->guid;
- }
-
- // make sure session cache is cleared
- unset($_SESSION['uploadtitle']);
- unset($_SESSION['uploaddesc']);
- unset($_SESSION['uploadtags']);
- unset($_SESSION['uploadaccessid']);
-
-
-?>
-<form action="<?php echo $vars['url']; ?>action/<?php echo $action; ?>" enctype="multipart/form-data" method="post" class="margin_top">
-<p>
- <label>
-<?php
- echo elgg_view('input/securitytoken');
- if ($action_type == "new") {
- echo elgg_echo("file:file");
- } else {
- echo elgg_echo("file:replace");
- }
-?>
-<br />
-<?php
-
- echo elgg_view("input/file",array('internalname' => 'upload'));
-
-?>
- </label>
-</p>
-<p>
- <label><?php echo elgg_echo("title"); ?><br />
-<?php
-
- echo elgg_view("input/text", array(
- "internalname" => "title",
- "value" => $title,
- ));
-
-?>
- </label>
-</p>
-<p class="longtext_inputarea">
- <label><?php echo elgg_echo("description"); ?></label>
-<?php
-
- echo elgg_view("input/longtext",array(
- "internalname" => "description",
- "value" => $description,
- ));
-?>
-</p>
-<p>
- <label><?php echo elgg_echo("tags"); ?><br />
-<?php
-
- echo elgg_view("input/tags", array(
- "internalname" => "tags",
- "value" => $tags,
- ));
-
-?>
- </label>
-</p>
-<?php
-
- $categories = elgg_view('categories',$vars);
- if (!empty($categories)) {
-?>
-
- <p>
- <?php echo $categories; ?>
- </p>
-
-<?php
- }
-
-?>
-<p>
- <label>
- <?php echo elgg_echo('access'); ?><br />
- <?php echo elgg_view('input/access', array('internalname' => 'access_id','value' => $access_id)); ?>
- </label>
-</p>
-
-<p>
-<?php
-
- echo "<input type=\"hidden\" name=\"container_guid\" value=\"{$container_guid}\" />";
-
- if (isset($vars['entity'])) {
- echo "<input type=\"hidden\" name=\"file_guid\" value=\"{$vars['entity']->getGUID()}\" />";
- }
-
-?>
- <input type="submit" value="<?php echo elgg_echo("save"); ?>" />
-</p>
-
-</form> \ No newline at end of file
diff --git a/mod/file/views/default/forms/file/upload.php b/mod/file/views/default/forms/file/upload.php
new file mode 100644
index 000000000..f637a419e
--- /dev/null
+++ b/mod/file/views/default/forms/file/upload.php
@@ -0,0 +1,68 @@
+<?php
+/**
+ * Elgg file upload/save form
+ *
+ * @package ElggFile
+ */
+
+// once elgg_view stops throwing all sorts of junk into $vars, we can use
+$title = elgg_extract('title', $vars, '');
+$desc = elgg_extract('description', $vars, '');
+$tags = elgg_extract('tags', $vars, '');
+$access_id = elgg_extract('access_id', $vars, ACCESS_DEFAULT);
+$container_guid = elgg_extract('container_guid', $vars);
+if (!$container_guid) {
+ $container_guid = elgg_get_logged_in_user_guid();
+}
+$guid = elgg_extract('guid', $vars, null);
+
+if ($guid) {
+ $file_label = elgg_echo("file:replace");
+ $submit_label = elgg_echo('save');
+} else {
+ $file_label = elgg_echo("file:file");
+ $submit_label = elgg_echo('upload');
+}
+
+?>
+<div>
+ <label><?php echo $file_label; ?></label><br />
+ <?php echo elgg_view('input/file', array('name' => 'upload')); ?>
+</div>
+<div>
+ <label><?php echo elgg_echo('title'); ?></label><br />
+ <?php echo elgg_view('input/text', array('name' => 'title', 'value' => $title)); ?>
+</div>
+<div>
+ <label><?php echo elgg_echo('description'); ?></label>
+ <?php echo elgg_view('input/longtext', array('name' => 'description', 'value' => $desc)); ?>
+</div>
+<div>
+ <label><?php echo elgg_echo('tags'); ?></label>
+ <?php echo elgg_view('input/tags', array('name' => 'tags', 'value' => $tags)); ?>
+</div>
+<?php
+
+$categories = elgg_view('input/categories', $vars);
+if ($categories) {
+ echo $categories;
+}
+
+?>
+<div>
+ <label><?php echo elgg_echo('access'); ?></label><br />
+ <?php echo elgg_view('input/access', array('name' => 'access_id', 'value' => $access_id)); ?>
+</div>
+<div class="elgg-foot">
+<?php
+
+echo elgg_view('input/hidden', array('name' => 'container_guid', 'value' => $container_guid));
+
+if ($guid) {
+ echo elgg_view('input/hidden', array('name' => 'file_guid', 'value' => $guid));
+}
+
+echo elgg_view('input/submit', array('value' => $submit_label));
+
+?>
+</div>
diff --git a/mod/file/views/default/icon/object/file.php b/mod/file/views/default/icon/object/file.php
new file mode 100644
index 000000000..a3190310b
--- /dev/null
+++ b/mod/file/views/default/icon/object/file.php
@@ -0,0 +1,54 @@
+<?php
+/**
+ * File icon view
+ *
+ * @uses $vars['entity'] The entity the icon represents - uses getIconURL() method
+ * @uses $vars['size'] topbar, tiny, small, medium (default), large, master
+ * @uses $vars['href'] Optional override for link
+ * @uses $vars['img_class'] Optional CSS class added to img
+ * @uses $vars['link_class'] Optional CSS class added to link
+ */
+
+$entity = $vars['entity'];
+
+$sizes = array('small', 'medium', 'large', 'tiny', 'master', 'topbar');
+// Get size
+if (!in_array($vars['size'], $sizes)) {
+ $vars['size'] = "medium";
+}
+
+$title = $entity->title;
+$title = htmlspecialchars($title, ENT_QUOTES, 'UTF-8', false);
+
+$url = $entity->getURL();
+if (isset($vars['href'])) {
+ $url = $vars['href'];
+}
+
+$class = '';
+if (isset($vars['img_class'])) {
+ $class = $vars['img_class'];
+}
+if ($entity->thumbnail) {
+ $class = "class=\"elgg-photo $class\"";
+} else if ($class) {
+ $class = "class=\"$class\"";
+}
+
+$img_src = $entity->getIconURL($vars['size']);
+$img_src = elgg_format_url($img_src);
+$img = "<img $class src=\"$img_src\" alt=\"$title\" />";
+
+if ($url) {
+ $params = array(
+ 'href' => $url,
+ 'text' => $img,
+ 'is_trusted' => true,
+ );
+ if (isset($vars['link_class'])) {
+ $params['class'] = $vars['link_class'];
+ }
+ echo elgg_view('output/url', $params);
+} else {
+ echo $img;
+}
diff --git a/mod/file/views/default/object/file.php b/mod/file/views/default/object/file.php
index f92c2bfc5..64f19c483 100644
--- a/mod/file/views/default/object/file.php
+++ b/mod/file/views/default/object/file.php
@@ -1,188 +1,107 @@
<?php
- /**
- * Elgg file browser.
- * File renderer.
- *
- * @package ElggFile
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
- */
-
- global $CONFIG;
-
- $file = $vars['entity'];
-
- $file_guid = $file->getGUID();
- $tags = $file->tags;
- $title = $file->title;
- $desc = $file->description;
- $owner = $vars['entity']->getOwnerEntity();
- $friendlytime = friendly_time($vars['entity']->time_created);
- $mime = $file->mimetype;
-
- if (!$title) {
- $title = elgg_echo('untitled');
- }
-
- if (get_context() == "search") { // Start search listing version
-
- if (get_input('search_viewtype') == "gallery") {
- echo "<div class='filerepo_gallery_item'>";
- if ($vars['entity']->smallthumb) {
- echo "<p class='filerepo_title'>" . $file->title . "</p>";
- echo "<p><a href=\"{$file->getURL()}\"><img src=\"{$vars['url']}mod/file/thumbnail.php?size=medium&file_guid={$vars['entity']->getGUID()}\" border=\"0\" /></a></p>";
- echo "<p class='filerepo_timestamp'><small><a href=\"{$vars['url']}pg/file/{$owner->username}\">{$owner->username}</a> {$friendlytime}</small></p>";
-
- //get the number of comments
- $numcomments = elgg_count_comments($vars['entity']);
- if ($numcomments)
- echo "<p class='filerepo_comments'><a href=\"{$file->getURL()}\">" . sprintf(elgg_echo("comments")) . " (" . $numcomments . ")</a></p>";
-
-
- //if the user can edit, display edit and delete links
- if ($file->canEdit()) {
- echo "<div class='filerepo_controls'><p>";
- echo "<a href=\"{$vars['url']}mod/file/edit.php?file_guid={$file->getGUID()}\">" . elgg_echo('edit') . "</a>&nbsp;";
- echo elgg_view('output/confirmlink',array(
-
- 'href' => $vars['url'] . "action/file/delete?file=" . $file->getGUID(),
- 'text' => elgg_echo("delete"),
- 'confirm' => elgg_echo("file:delete:confirm"),
- 'is_action' => true,
-
- ));
- echo "</p></div>";
- }
-
-
- } else {
- echo "<p class='filerepo_title'>{$title}</p>";
- echo "<a href=\"{$file->getURL()}\">" . elgg_view("file/icon", array("mimetype" => $mime, 'thumbnail' => $file->thumbnail, 'file_guid' => $file_guid, 'size' => 'large')) . "</a>";
- echo "<p class='filerepo_timestamp'><small><a href=\"{$vars['url']}pg/file/{$owner->username}\">{$owner->name}</a> {$friendlytime}</small></p>";
- //get the number of comments
- $numcomments = elgg_count_comments($file);
- if ($numcomments)
- echo "<p class='filerepo_comments'><a href=\"{$file->getURL()}\">" . sprintf(elgg_echo("comments")) . " (" . $numcomments . ")</a></p>";
-
- }
- echo "</div>";
-
- } else {
-
- $info = "<p class='entity_title'> <a href=\"{$file->getURL()}\">{$title}</a></p>";
- $info .= "<p class='entity_subtext'><a href=\"{$vars['url']}pg/file/{$owner->username}\">{$owner->name}</a> {$friendlytime}";
- $numcomments = elgg_count_comments($file);
- if ($numcomments)
- $info .= ", <a href=\"{$file->getURL()}\">" . sprintf(elgg_echo("comments")) . " (" . $numcomments . ")</a>";
- $info .= "</p>";
- $icon = "<a href=\"{$file->getURL()}\">" . elgg_view("file/icon", array("mimetype" => $mime, 'thumbnail' => $file->thumbnail, 'file_guid' => $file_guid, 'size' => 'small')) . "</a>";
-
- echo elgg_view_listing($icon, $info);
-
- }
-
- } else { // Start main version
-
-?>
- <div class="filerepo_file">
- <div class="filerepo_icon">
- <a href="<?php echo $vars['url']; ?>mod/file/download.php?file_guid=<?php echo $file_guid; ?>"><?php
-
- echo elgg_view("file/icon", array("mimetype" => $mime, 'thumbnail' => $file->thumbnail, 'file_guid' => $file_guid));
-
- ?></a>
- </div>
-
- <div class="filerepo_title_owner_wrapper">
- <?php
- //get the user and a link to their gallery
- $user_gallery = $vars['url'] . "mod/file/search.php?md_type=simpletype&subtype=file&tag=image&owner_guid=" . $owner->guid . "&search_viewtype=gallery";
- ?>
- <div class="filerepo_user_gallery_link"><a href="<?php echo $user_gallery; ?>"><?php echo sprintf(elgg_echo("file:user:gallery"),''); ?></a></div>
- <div class="filerepo_title"><h2><a href="<?php echo $vars['url']; ?>mod/file/download.php?file_guid=<?php echo $file_guid; ?>"><?php echo $title; ?></a></h2></div>
- <div class="filerepo_owner">
- <?php
-
- echo elgg_view("profile/icon",array('entity' => $owner, 'size' => 'tiny'));
-
- ?>
- <p class="filerepo_owner_details"><b><a href="<?php echo $vars['url']; ?>pg/file/<?php echo $owner->username; ?>"><?php echo $owner->name; ?></a></b><br />
- <small><?php echo $friendlytime; ?></small></p>
- </div>
- </div>
-
-
- <div class="filerepo_maincontent">
-
- <div class="filerepo_description"><?php echo elgg_view('output/longtext', array('value' => $desc)); ?></div>
-<?php
-
- if (!empty($tags)) {
-?>
- <p class="tags"><?php echo elgg_view('output/tags',array('value' => $tags)); ?></p>
-<?php
- }
-
- $categories = elgg_view('categories/view',$vars);
- if (!empty($categories)) {
-?>
- <p class="categories"><?php echo $categories; ?></p>
-<?php
- }
-
-?>
- <?php
- if (elgg_view_exists('file/specialcontent/' . $mime)) {
- echo "<div class='filerepo_specialcontent'>".elgg_view('file/specialcontent/' . $mime, $vars)."</div>";
- } else if (elgg_view_exists("file/specialcontent/" . substr($mime,0,strpos($mime,'/')) . "/default")) {
- echo "<div class='filerepo_specialcontent'>".elgg_view("file/specialcontent/" . substr($mime,0,strpos($mime,'/')) . "/default", $vars)."</div>";
- }
-
- ?>
-
- <div class="filerepo_download"><p><a class="action_button small" href="<?php echo $vars['url']; ?>mod/file/download.php?file_guid=<?php echo $file_guid; ?>"><?php echo elgg_echo("file:download"); ?></a></p></div>
-
-<?php
-
- if ($file->canEdit()) {
-?>
-
- <div class="filerepo_controls">
- <p>
- <a href="<?php echo $vars['url']; ?>mod/file/edit.php?file_guid=<?php echo $file->getGUID(); ?>"><?php echo elgg_echo('edit'); ?></a>&nbsp;
- <?php
- echo elgg_view('output/confirmlink',array(
-
- 'href' => $vars['url'] . "action/file/delete?file=" . $file->getGUID(),
- 'text' => elgg_echo("delete"),
- 'confirm' => elgg_echo("file:delete:confirm"),
- 'is_action' => true,
-
- ));
- ?>
- </p>
- </div>
-
-<?php
- }
-
-?>
- </div>
-</div>
-
-<?php
-
- if ($vars['full']) {
-
- echo elgg_view_comments($file);
-
- }
-
-?>
-
-<?php
-
+/**
+ * File renderer.
+ *
+ * @package ElggFile
+ */
+
+$full = elgg_extract('full_view', $vars, FALSE);
+$file = elgg_extract('entity', $vars, FALSE);
+
+if (!$file) {
+ return TRUE;
+}
+
+$owner = $file->getOwnerEntity();
+$container = $file->getContainerEntity();
+$categories = elgg_view('output/categories', $vars);
+$excerpt = elgg_get_excerpt($file->description);
+$mime = $file->mimetype;
+$base_type = substr($mime, 0, strpos($mime,'/'));
+
+$owner_link = elgg_view('output/url', array(
+ 'href' => "file/owner/$owner->username",
+ 'text' => $owner->name,
+ 'is_trusted' => true,
+));
+$author_text = elgg_echo('byline', array($owner_link));
+
+$file_icon = elgg_view_entity_icon($file, 'small');
+
+$date = elgg_view_friendly_time($file->time_created);
+
+$comments_count = $file->countComments();
+//only display if there are commments
+if ($comments_count != 0) {
+ $text = elgg_echo("comments") . " ($comments_count)";
+ $comments_link = elgg_view('output/url', array(
+ 'href' => $file->getURL() . '#file-comments',
+ 'text' => $text,
+ 'is_trusted' => true,
+ ));
+} else {
+ $comments_link = '';
+}
+
+$metadata = elgg_view_menu('entity', array(
+ 'entity' => $vars['entity'],
+ 'handler' => 'file',
+ 'sort_by' => 'priority',
+ 'class' => 'elgg-menu-hz',
+));
+
+$subtitle = "$author_text $date $comments_link $categories";
+
+// do not show the metadata and controls in widget view
+if (elgg_in_context('widgets')) {
+ $metadata = '';
+}
+
+if ($full && !elgg_in_context('gallery')) {
+
+ $extra = '';
+ if (elgg_view_exists("file/specialcontent/$mime")) {
+ $extra = elgg_view("file/specialcontent/$mime", $vars);
+ } else if (elgg_view_exists("file/specialcontent/$base_type/default")) {
+ $extra = elgg_view("file/specialcontent/$base_type/default", $vars);
}
-?> \ No newline at end of file
+ $params = array(
+ 'entity' => $file,
+ 'title' => false,
+ 'metadata' => $metadata,
+ 'subtitle' => $subtitle,
+ );
+ $params = $params + $vars;
+ $summary = elgg_view('object/elements/summary', $params);
+
+ $text = elgg_view('output/longtext', array('value' => $file->description));
+ $body = "$text $extra";
+
+ echo elgg_view('object/elements/full', array(
+ 'entity' => $file,
+ 'icon' => $file_icon,
+ 'summary' => $summary,
+ 'body' => $body,
+ ));
+
+} elseif (elgg_in_context('gallery')) {
+ echo '<div class="file-gallery-item">';
+ echo "<h3>" . $file->title . "</h3>";
+ echo elgg_view_entity_icon($file, 'medium');
+ echo "<p class='subtitle'>$owner_link $date</p>";
+ echo '</div>';
+} else {
+ // brief view
+
+ $params = array(
+ 'entity' => $file,
+ 'metadata' => $metadata,
+ 'subtitle' => $subtitle,
+ 'content' => $excerpt,
+ );
+ $params = $params + $vars;
+ $list_body = elgg_view('object/elements/summary', $params);
+
+ echo elgg_view_image_block($file_icon, $list_body);
+}
diff --git a/mod/file/views/default/river/object/file/create.php b/mod/file/views/default/river/object/file/create.php
index b0e2ca07b..e8e6142e0 100644
--- a/mod/file/views/default/river/object/file/create.php
+++ b/mod/file/views/default/river/object/file/create.php
@@ -1,17 +1,13 @@
<?php
+/**
+ * File river view.
+ */
- $performed_by = get_entity($vars['item']->subject_guid);
- $object = get_entity($vars['item']->object_guid);
- $url = $object->getURL();
- $container = get_entity($object->container_guid);
-
- $url = "<a href=\"{$performed_by->getURL()}\">{$performed_by->name}</a>";
- $string = sprintf(elgg_echo("file:river:created"),$url) . " " . elgg_echo("file:river:item");
- $string .= " <a href=\"" . $object->getURL() . "\">" . $object->title . "</a>";
- if ($container && $container instanceof ElggGroup) {
- $string .= ' ' . elgg_echo('groups:river:togroup') . " <a href=\"" . $container->getURL() ."\">". $container->name . "</a>";
- }
+$object = $vars['item']->getObjectEntity();
+$excerpt = strip_tags($object->description);
+$excerpt = elgg_get_excerpt($excerpt);
- echo $string;
-
-?> \ No newline at end of file
+echo elgg_view('river/elements/layout', array(
+ 'item' => $vars['item'],
+ 'message' => $excerpt,
+)); \ No newline at end of file
diff --git a/mod/file/views/default/widgets/filerepo/content.php b/mod/file/views/default/widgets/filerepo/content.php
new file mode 100644
index 000000000..f3e152de3
--- /dev/null
+++ b/mod/file/views/default/widgets/filerepo/content.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ * Elgg file widget view
+ *
+ * @package ElggFile
+ */
+
+
+$num = $vars['entity']->num_display;
+
+$options = array(
+ 'type' => 'object',
+ 'subtype' => 'file',
+ 'container_guid' => $vars['entity']->owner_guid,
+ 'limit' => $num,
+ 'full_view' => FALSE,
+ 'pagination' => FALSE,
+);
+$content = elgg_list_entities($options);
+
+echo $content;
+
+if ($content) {
+ $url = "file/owner/" . elgg_get_page_owner_entity()->username;
+ $more_link = elgg_view('output/url', array(
+ 'href' => $url,
+ 'text' => elgg_echo('file:more'),
+ 'is_trusted' => true,
+ ));
+ echo "<span class=\"elgg-widget-more\">$more_link</span>";
+} else {
+ echo elgg_echo('file:none');
+}
diff --git a/mod/file/views/default/widgets/filerepo/edit.php b/mod/file/views/default/widgets/filerepo/edit.php
index 0d1901662..cab35b6ef 100644
--- a/mod/file/views/default/widgets/filerepo/edit.php
+++ b/mod/file/views/default/widgets/filerepo/edit.php
@@ -1,30 +1,25 @@
<?php
+/**
+ * Elgg file widget edit view
+ *
+ * @package ElggFile
+ */
+
+
// set default value
if (!isset($vars['entity']->num_display)) {
$vars['entity']->num_display = 4;
}
-?>
-<p>
- <?php echo elgg_echo("file:num_files"); ?>:
- <select name="params[num_display]">
-<?php
-$options = array(1,2,3,4,5,6,7,8,9,10,15,20);
-foreach ($options as $option) {
- $selected = '';
- if ($vars['entity']->num_display == $option) {
- $selected = "selected='selected'";
- }
- echo " <option value='{$option}' $selected >{$option}</option>\n";
-}
-?>
- </select>
-</p>
+$params = array(
+ 'name' => 'params[num_display]',
+ 'value' => $vars['entity']->num_display,
+ 'options' => array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20),
+);
+$dropdown = elgg_view('input/dropdown', $params);
-<p>
- <?php echo elgg_echo("file:gallery_list"); ?>?
- <select name="params[gallery_list]">
- <option value="1" <?php if($vars['entity']->gallery_list == 1) echo "SELECTED"; ?>><?php echo elgg_echo("file:list"); ?></option>
- <option value="2" <?php if($vars['entity']->gallery_list == 2) echo "SELECTED"; ?>><?php echo elgg_echo("file:gallery"); ?></option>
- </select>
-</p> \ No newline at end of file
+?>
+<div>
+ <?php echo elgg_echo('file:num_files'); ?>:
+ <?php echo $dropdown; ?>
+</div>
diff --git a/mod/file/views/default/widgets/filerepo/view.php b/mod/file/views/default/widgets/filerepo/view.php
deleted file mode 100644
index 6763d2536..000000000
--- a/mod/file/views/default/widgets/filerepo/view.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-
- //the page owner
- $owner = $vars['entity']->owner_guid;
-
- //the number of files to display
- $number = (int) $vars['entity']->num_display;
- if (!$number) {
- $number = 4;
- }
-
- //get the layout view which is set by the user in the edit panel
- $get_view = (int) $vars['entity']->gallery_list;
- if (!$get_view || $get_view == 1) {
- $view = "list";
- }else{
- $view = "gallery";
- }
-
- //get the user's files
- $files = get_user_objects($vars['entity']->owner_guid, "file", $number, 0);
-
- //if there are some files, go get them
- if ($files) {
-
- echo "<div id='filerepo_widget_layout'>";
-
- if($view == "gallery"){
-
- echo "<div class='filerepo_widget_galleryview'>";
-
- //display in gallery mode
- foreach($files as $f){
-
- $mime = $f->mimetype;
- echo "<a href=\"{$f->getURL()}\">" . elgg_view("file/icon", array("mimetype" => $mime, 'thumbnail' => $f->thumbnail, 'file_guid' => $f->guid)) . "</a>";
-
- }
-
- echo "</div>";
-
- }else{
-
- //display in list mode
- foreach($files as $f){
-
- $mime = $f->mimetype;
- echo "<div class='filerepo_widget_singleitem clearfloat'>";
- echo "<div class='filerepo_listview_icon'><a href=\"{$f->getURL()}\">" . elgg_view("file/icon", array("mimetype" => $mime, 'thumbnail' => $f->thumbnail, 'file_guid' => $f->guid)) . "</a></div>";
- echo "<div class='filerepo_widget_content'>";
- echo "<div class='filerepo_listview_title'><p class='filerepo_title'>" . $f->title . "</p></div>";
- echo "<div class='filerepo_listview_date'><p class='filerepo_timestamp'><small>" . friendly_time($f->time_created) . "</small></p></div>";
- echo "</div></div>";
-
- }
-
- }
-
-
- //get a link to the users files
- $users_file_url = $vars['url'] . "pg/file/" . get_user($f->owner_guid)->username;
-
- echo "<div class='filerepo_widget_singleitem_more'><a href=\"{$users_file_url}\">" . elgg_echo('file:more') . "</a></div>";
- echo "</div>";
-
-
- } else {
-
- echo "<p class='margin_top'>" . elgg_echo("file:none") . "</p>";
-
- }
-
-?> \ No newline at end of file
diff --git a/mod/file/views/rss/file/enclosure.php b/mod/file/views/rss/file/enclosure.php
new file mode 100644
index 000000000..fb4a899d9
--- /dev/null
+++ b/mod/file/views/rss/file/enclosure.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Link to download the file
+ *
+ * @uses $vars['entity']
+ */
+
+if (elgg_instanceof($vars['entity'], 'object', 'file')) {
+ $download_url = elgg_get_site_url() . 'file/download/' . $vars['entity']->getGUID();
+ $size = $vars['entity']->size();
+ $mime_type = $vars['entity']->getMimeType();
+ echo <<<END
+
+ <enclosure url="$download_url" length="$size" type="$mime_type" />";
+END;
+}
diff --git a/mod/file/views/rss/object/file.php b/mod/file/views/rss/object/file.php
deleted file mode 100644
index fdefb4069..000000000
--- a/mod/file/views/rss/object/file.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-
- /**
- * Elgg RSS file object view
- *
- * @package ElggFile
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.org/
- */
-
- $title = $vars['entity']->title;
- if (empty($title)) {
- $title = substr($vars['entity']->description,0,32);
- if (strlen($vars['entity']->description) > 32)
- $title .= " ...";
- }
-
-?>
-
- <item>
- <guid isPermaLink='true'><?php echo $vars['entity']->getURL(); ?></guid>
- <pubDate><?php echo date("r",$vars['entity']->time_created) ?></pubDate>
- <link><?php echo $vars['entity']->getURL(); ?></link>
- <title><![CDATA[<?php echo $title; ?>]]></title>
- <description><![CDATA[<?php echo (autop($vars['entity']->description)); ?>]]></description>
- <enclosure url="<?php echo $vars['url']; ?>mod/file/download.php?file_guid=<?php echo $vars['entity']->getGUID(); ?>" length="<?php echo $vars['entity']->size(); ?>" type="<?php echo $vars['entity']->getMimeType(); ?>" />
- </item>
diff --git a/mod/file/world.php b/mod/file/world.php
deleted file mode 100644
index 38ab4e8ff..000000000
--- a/mod/file/world.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
- /**
- * Elgg file browser
- *
- * @package ElggFile
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008-2010 - 2009
- * @link http://elgg.com/
- */
-
- require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php");
-
- $limit = get_input("limit", 10);
- $offset = get_input("offset", 0);
- $tag = get_input("tag");
-
- // Get the current page's owner
- $page_owner = page_owner_entity();
- if ($page_owner === false || is_null($page_owner)) {
- $page_owner = $_SESSION['user'];
- set_page_owner($_SESSION['guid']);
- }
-
- $title = elgg_echo('file:all');
-
- // Get objects
- $area1 = elgg_view('page_elements/content_header', array('context' => "everyone", 'type' => 'file'));
- $area1 .= get_filetype_cloud(); // the filter
- set_context('search');
- if ($tag != "")
- $area2 .= list_entities_from_metadata('tags',$tag,'object','file',0,10,false);
- else
- $area2 .= elgg_list_entities(array('types' => 'object', 'subtypes' => 'file', 'limit' => 10, 'offset' => $offset, 'full_view' => FALSE));
- set_context('file');
-
- //get the latest comments on all files
- $comments = get_annotations(0, "object", "file", "generic_comment", "", 0, 4, 0, "desc");
- $area3 = elgg_view('annotation/latest_comments', array('comments' => $comments));
-
- $content = "<div class='files'>".$area1.$area2."</div>";
-
- $body = elgg_view_layout('one_column_with_sidebar', $content, $area3);
-
- // Finally draw the page
- page_draw($title, $body);
-?> \ No newline at end of file