diff options
Diffstat (limited to 'mod/file')
98 files changed, 1759 insertions, 2094 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 038e61d83..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 = 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 Binary files differindex f78903c0a..bfba76a97 100644 --- a/mod/file/graphics/icons/application.gif +++ b/mod/file/graphics/icons/application.gif diff --git a/mod/file/graphics/icons/application_lrg.gif b/mod/file/graphics/icons/application_lrg.gif Binary files differindex c6955f749..65f8eadb4 100644 --- a/mod/file/graphics/icons/application_lrg.gif +++ b/mod/file/graphics/icons/application_lrg.gif diff --git a/mod/file/graphics/icons/archive.gif b/mod/file/graphics/icons/archive.gif Binary files differindex 044cd042a..2213cdadd 100644 --- a/mod/file/graphics/icons/archive.gif +++ b/mod/file/graphics/icons/archive.gif diff --git a/mod/file/graphics/icons/archive_lrg.gif b/mod/file/graphics/icons/archive_lrg.gif Binary files differindex 0d0856cdd..6e3df3fd4 100644 --- a/mod/file/graphics/icons/archive_lrg.gif +++ b/mod/file/graphics/icons/archive_lrg.gif diff --git a/mod/file/graphics/icons/excel.gif b/mod/file/graphics/icons/excel.gif Binary files differindex f74f74fd7..ecd1d57d2 100644 --- a/mod/file/graphics/icons/excel.gif +++ b/mod/file/graphics/icons/excel.gif diff --git a/mod/file/graphics/icons/excel_lrg.gif b/mod/file/graphics/icons/excel_lrg.gif Binary files differindex 9b53d6dc7..84d1375d5 100644 --- a/mod/file/graphics/icons/excel_lrg.gif +++ b/mod/file/graphics/icons/excel_lrg.gif diff --git a/mod/file/graphics/icons/general.gif b/mod/file/graphics/icons/general.gif Binary files differindex cd5cf467a..20958b9a4 100644 --- a/mod/file/graphics/icons/general.gif +++ b/mod/file/graphics/icons/general.gif diff --git a/mod/file/graphics/icons/general_lrg.gif b/mod/file/graphics/icons/general_lrg.gif Binary files differindex 7c7a3c80a..3458915e5 100644 --- a/mod/file/graphics/icons/general_lrg.gif +++ b/mod/file/graphics/icons/general_lrg.gif diff --git a/mod/file/graphics/icons/music.gif b/mod/file/graphics/icons/music.gif Binary files differindex c44d7c987..5e9df08bc 100644 --- a/mod/file/graphics/icons/music.gif +++ b/mod/file/graphics/icons/music.gif diff --git a/mod/file/graphics/icons/music_lrg.gif b/mod/file/graphics/icons/music_lrg.gif Binary files differindex 780a252d6..1c0792cc3 100644 --- a/mod/file/graphics/icons/music_lrg.gif +++ b/mod/file/graphics/icons/music_lrg.gif diff --git a/mod/file/graphics/icons/openoffice.gif b/mod/file/graphics/icons/openoffice.gif Binary files differindex 3cfdc7196..053ad5bb5 100644 --- a/mod/file/graphics/icons/openoffice.gif +++ b/mod/file/graphics/icons/openoffice.gif diff --git a/mod/file/graphics/icons/openoffice_lrg.gif b/mod/file/graphics/icons/openoffice_lrg.gif Binary files differindex 5cdb13353..da28607fa 100644 --- a/mod/file/graphics/icons/openoffice_lrg.gif +++ b/mod/file/graphics/icons/openoffice_lrg.gif diff --git a/mod/file/graphics/icons/pages.gif b/mod/file/graphics/icons/pages.gif Binary files differindex 2e4ee761a..7efcb7278 100644 --- a/mod/file/graphics/icons/pages.gif +++ b/mod/file/graphics/icons/pages.gif diff --git a/mod/file/graphics/icons/pages_lrg.gif b/mod/file/graphics/icons/pages_lrg.gif Binary files differindex 2e41e4739..234a52672 100644 --- a/mod/file/graphics/icons/pages_lrg.gif +++ b/mod/file/graphics/icons/pages_lrg.gif diff --git a/mod/file/graphics/icons/pdf.gif b/mod/file/graphics/icons/pdf.gif Binary files differindex e7854b1e0..94362a4f0 100644 --- a/mod/file/graphics/icons/pdf.gif +++ b/mod/file/graphics/icons/pdf.gif diff --git a/mod/file/graphics/icons/pdf_lrg.gif b/mod/file/graphics/icons/pdf_lrg.gif Binary files differindex 5cd62b69c..aff869d04 100644 --- a/mod/file/graphics/icons/pdf_lrg.gif +++ b/mod/file/graphics/icons/pdf_lrg.gif diff --git a/mod/file/graphics/icons/ppt.gif b/mod/file/graphics/icons/ppt.gif Binary files differindex 44aef679b..88ab26d5c 100644 --- a/mod/file/graphics/icons/ppt.gif +++ b/mod/file/graphics/icons/ppt.gif diff --git a/mod/file/graphics/icons/ppt_lrg.gif b/mod/file/graphics/icons/ppt_lrg.gif Binary files differindex 71965711d..075590fd8 100644 --- a/mod/file/graphics/icons/ppt_lrg.gif +++ b/mod/file/graphics/icons/ppt_lrg.gif diff --git a/mod/file/graphics/icons/text.gif b/mod/file/graphics/icons/text.gif Binary files differindex 107e7ca37..897aa77f9 100644 --- a/mod/file/graphics/icons/text.gif +++ b/mod/file/graphics/icons/text.gif diff --git a/mod/file/graphics/icons/text_lrg.gif b/mod/file/graphics/icons/text_lrg.gif Binary files differindex 5f7c95519..d42ea4de1 100644 --- a/mod/file/graphics/icons/text_lrg.gif +++ b/mod/file/graphics/icons/text_lrg.gif diff --git a/mod/file/graphics/icons/vcard.gif b/mod/file/graphics/icons/vcard.gif Binary files differindex f7fdda9c0..202df68dd 100644 --- a/mod/file/graphics/icons/vcard.gif +++ b/mod/file/graphics/icons/vcard.gif diff --git a/mod/file/graphics/icons/vcard_lrg.gif b/mod/file/graphics/icons/vcard_lrg.gif Binary files differindex 6cd4c45e0..68ced88d2 100644 --- a/mod/file/graphics/icons/vcard_lrg.gif +++ b/mod/file/graphics/icons/vcard_lrg.gif diff --git a/mod/file/graphics/icons/video.gif b/mod/file/graphics/icons/video.gif Binary files differindex 09abfad3b..56aca7589 100644 --- a/mod/file/graphics/icons/video.gif +++ b/mod/file/graphics/icons/video.gif diff --git a/mod/file/graphics/icons/video_lrg.gif b/mod/file/graphics/icons/video_lrg.gif Binary files differindex b23dbad91..69cc706d9 100644 --- a/mod/file/graphics/icons/video_lrg.gif +++ b/mod/file/graphics/icons/video_lrg.gif diff --git a/mod/file/graphics/icons/word.gif b/mod/file/graphics/icons/word.gif Binary files differindex f906c75bd..6f7dff340 100644 --- a/mod/file/graphics/icons/word.gif +++ b/mod/file/graphics/icons/word.gif diff --git a/mod/file/graphics/icons/word_lrg.gif b/mod/file/graphics/icons/word_lrg.gif Binary files differindex 018c8e334..4c39108de 100644 --- a/mod/file/graphics/icons/word_lrg.gif +++ b/mod/file/graphics/icons/word_lrg.gif diff --git a/mod/file/index.php b/mod/file/index.php deleted file mode 100644 index 6a418ac6a..000000000 --- a/mod/file/index.php +++ /dev/null @@ -1,49 +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"); - - if (is_callable('group_gatekeeper')) { - 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 e3b5497e6..7c0c216b2 100644 --- a/mod/file/start.php +++ b/mod/file/start.php @@ -1,239 +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/left_column','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:widget"),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"; + break; + case "application/pdf": return "document"; - - if (substr_count($mimetype,'audio/')) + 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"); - -?> + + 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 58b5684df..5476ed7e2 100644 --- a/mod/file/views/default/file/css.php +++ b/mod/file/views/default/file/css.php @@ -1,182 +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']; ?>_graphics/icon_gallery.gif) no-repeat right top; - display:block; -} -.filerepo_user_gallery_link a:hover { - background-position: right -40px; -} - - - -/* FILE REPRO WIDGET VIEW */ -/* -.filerepo_widget_singleitem { - margin:0 0 5px 0; - padding:5px; - min-height:60px; - display:block; - background:white; - -webkit-border-radius: 8px; - -moz-border-radius: 8px; -} -.filerepo_widget_singleitem_more { - margin:0; - padding:5px; - display:block; - background:white; - -webkit-border-radius: 8px; - -moz-border-radius: 8px; -} -.filerepo_listview_icon { - float: left; - margin-right: 10px; -} -.filerepo_timestamp { - color:#666666; - margin:0; -} -.filerepo_listview_desc { - display:none; - padding:0 10px 10px 0; - line-height: 1.2em; -} -.filerepo_listview_desc p { - color:#333333; -} -.filerepo_widget_content { - margin-left: 70px; -} - -.collapsable_box #filerepo_widget_layout { - margin:0 10px 0 10px; - background: none; -} -*/ - -/* widget gallery view */ -/* -#filerepo_widget_layout .filerepo_widget_galleryview { - -webkit-border-radius: 8px; - -moz-border-radius: 8px; - background: white; - margin:0 0 5px 0; -} -.filerepo_widget_galleryview img { - padding:0; - border:1px solid white; - margin:4px; -} -.filerepo_widget_galleryview img:hover { - border:1px solid #333333; -} -*/ - - - - - - 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 444398522..000000000 --- a/mod/file/views/default/file/groupprofile_files.php +++ /dev/null @@ -1,71 +0,0 @@ -<?php - - // Files on group profile page - - //check to make sure group files is activated - if($vars['entity']->files_enable != 'no'){ - -?> - -<script type="text/javascript"> -$(document).ready(function () { - $('a.show_file_desc').click(function () { - $(this.parentNode).children("[class=filerepo_listview_desc]").slideToggle("fast"); - return false; - }); -}); /* end document ready function */ -</script> - -<div id="filerepo_widget_layout"> -<h2><?php echo elgg_echo("file:group"); ?></h2> - -<?php - - //the number of files to display - $number = (int) $vars['entity']->num_display; - if (!$number) - $number = 10; - - //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=\"filerepo_widget_singleitem\">"; - 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>"; - $description = $f->description; - if (!empty($description)) echo "<a href=\"javascript:void(0);\" class=\"show_file_desc\">". elgg_echo('more') ."</a><br /><div class=\"filerepo_listview_desc\">" . $description . "</div>"; - echo "</div><div class=\"clearfloat\"></div></div>"; - - } - - - //get a link to the users files - $users_file_url = $vars['url'] . "pg/file/" . page_owner_entity()->username; - - echo "<div class=\"forum_latest\"><a href=\"{$users_file_url}\">" . elgg_echo('file:more') . "</a></div>"; - - } else { - - echo "<div class=\"forum_latest\">" . elgg_echo("file:none") . "</div>"; - - } - -?> -</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 065b0eb3f..000000000 --- a/mod/file/views/default/file/upload.php +++ /dev/null @@ -1,132 +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_editarea"> - <label><?php echo elgg_echo("description"); ?><br /> -<?php - - echo elgg_view("input/longtext",array( - "internalname" => "description", - "value" => $description, - )); -?> - </label> -</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> "; - 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> - <?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 35d633058..cab35b6ef 100644 --- a/mod/file/views/default/widgets/filerepo/edit.php +++ b/mod/file/views/default/widgets/filerepo/edit.php @@ -1,25 +1,25 @@ -<p> - <?php echo elgg_echo("file:num_files"); ?>: - <select name="params[num_display]"> - <option value="1" <?php if($vars['entity']->num_display == 1) echo "SELECTED"; ?>>1</option> - <option value="2" <?php if($vars['entity']->num_display == 2) echo "SELECTED"; ?>>2</option> - <option value="3" <?php if($vars['entity']->num_display == 3) echo "SELECTED"; ?>>3</option> - <option value="4" <?php if($vars['entity']->num_display == 4) echo "SELECTED"; ?>>4</option> - <option value="5" <?php if($vars['entity']->num_display == 5) echo "SELECTED"; ?>>5</option> - <option value="6" <?php if($vars['entity']->num_display == 6) echo "SELECTED"; ?>>6</option> - <option value="7" <?php if($vars['entity']->num_display == 7) echo "SELECTED"; ?>>7</option> - <option value="8" <?php if($vars['entity']->num_display == 8) echo "SELECTED"; ?>>8</option> - <option value="9" <?php if($vars['entity']->num_display == 9) echo "SELECTED"; ?>>9</option> - <option value="10" <?php if($vars['entity']->num_display == 10) echo "SELECTED"; ?>>10</option> - <option value="15" <?php if($vars['entity']->num_display == 15) echo "SELECTED"; ?>>15</option> - <option value="20" <?php if($vars['entity']->num_display == 20) echo "SELECTED"; ?>>20</option> - </select> -</p> +<?php +/** + * Elgg file widget edit view + * + * @package ElggFile + */ -<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 + +// set default value +if (!isset($vars['entity']->num_display)) { + $vars['entity']->num_display = 4; +} + +$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); + +?> +<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 01fdefa48..000000000 --- a/mod/file/views/default/widgets/filerepo/view.php +++ /dev/null @@ -1,86 +0,0 @@ -<script type="text/javascript"> -$(document).ready(function () { - -$('a.show_file_desc').click(function () { - $(this.parentNode).children("[class=filerepo_listview_desc]").slideToggle("fast"); - return false; -}); - -}); /* end document ready function */ -</script> - - -<?php - - //the page owner - $owner = $vars['entity']->owner_guid; - - //the number of files to display - $number = (int) $vars['entity']->num_display; - if (!$number) - $number = 1; - - //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>"; - $description = $f->description; - if (!empty($description)) echo "<a href=\"javascript:void(0);\" class='show_file_desc'>". elgg_echo('more') ."</a><br /><div class='filerepo_listview_desc'>" . $description . "</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 |
