From 8f7a86ebae5f6fd3f64f976a83cfc6712e083c2a Mon Sep 17 00:00:00 2001 From: cash Date: Wed, 29 Dec 2010 13:35:16 +0000 Subject: starting to update the file plugin to use the new html/css git-svn-id: http://code.elgg.org/elgg/trunk@7737 36083f99-b078-4883-b0ff-0f9b5a30f544 --- mod/file/actions/delete.php | 65 ----- mod/file/actions/download.php | 37 --- mod/file/actions/file/delete.php | 65 +++++ mod/file/actions/file/download.php | 37 +++ mod/file/actions/file/save.php | 48 +++ mod/file/actions/file/upload.php | 205 +++++++++++++ mod/file/actions/save.php | 48 --- mod/file/actions/upload.php | 205 ------------- mod/file/edit.php | 33 +-- mod/file/friends.php | 82 +++--- mod/file/index.php | 98 +++---- mod/file/languages/en.php | 198 +++++++------ mod/file/start.php | 515 +++++++++++++++++---------------- mod/file/upload.php | 52 ++-- mod/file/views/default/object/file.php | 110 ++++++- mod/file/world.php | 61 ++-- 16 files changed, 978 insertions(+), 881 deletions(-) delete mode 100644 mod/file/actions/delete.php delete mode 100644 mod/file/actions/download.php create mode 100644 mod/file/actions/file/delete.php create mode 100644 mod/file/actions/file/download.php create mode 100644 mod/file/actions/file/save.php create mode 100644 mod/file/actions/file/upload.php delete mode 100644 mod/file/actions/save.php delete mode 100644 mod/file/actions/upload.php (limited to 'mod/file') diff --git a/mod/file/actions/delete.php b/mod/file/actions/delete.php deleted file mode 100644 index 9357d4955..000000000 --- a/mod/file/actions/delete.php +++ /dev/null @@ -1,65 +0,0 @@ -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 = get_loggedin_user(); - register_error(elgg_echo("file:deletefailed")); - - } - - } else { - - register_error(elgg_echo("file:deletefailed")); - - } - - forward("pg/file/$container->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 210735b74..000000000 --- a/mod/file/actions/download.php +++ /dev/null @@ -1,37 +0,0 @@ -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..9357d4955 --- /dev/null +++ b/mod/file/actions/file/delete.php @@ -0,0 +1,65 @@ +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 = get_loggedin_user(); + register_error(elgg_echo("file:deletefailed")); + + } + + } else { + + register_error(elgg_echo("file:deletefailed")); + + } + + forward("pg/file/$container->username/"); + +?> \ No newline at end of file diff --git a/mod/file/actions/file/download.php b/mod/file/actions/file/download.php new file mode 100644 index 000000000..210735b74 --- /dev/null +++ b/mod/file/actions/file/download.php @@ -0,0 +1,37 @@ +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/save.php b/mod/file/actions/file/save.php new file mode 100644 index 000000000..17a9b16fb --- /dev/null +++ b/mod/file/actions/file/save.php @@ -0,0 +1,48 @@ +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(elgg_get_site_url() . "pg/file/" . $container->username); +?> \ No newline at end of file diff --git a/mod/file/actions/file/upload.php b/mod/file/actions/file/upload.php new file mode 100644 index 000000000..081b6a312 --- /dev/null +++ b/mod/file/actions/file/upload.php @@ -0,0 +1,205 @@ + 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; + + $error = elgg_echo('file:nofile'); + + if ($ajax) { + echo json_encode(array( + 'status' => 'error', + 'message' => $error + )); + exit; + } else { + register_error($error); + forward(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(REFERER); + } + + // user must be able to edit file + if (!$file->canEdit()) { + register_error(elgg_echo('file:noaccess')); + forward(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 = elgg_substr($filestorename, elgg_strlen($prefix)); + } else { + $filestorename = elgg_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); + } + } + } else { + // not saving a file but still need to save the entity to push attributes to database + $file->save(); + } + + // 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 + // ajax is only for new files from embed right now. + if ($new_file) { + if ($guid) { + $message = elgg_echo("file:saved"); + if ($ajax) { + echo json_encode(array( + 'status' => 'success', + 'message' => $message + )); + exit; + + } else { + system_message($message); + 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 + $error = elgg_echo("file:uploadfailed"); + + if ($ajax) { + echo json_encode(array( + 'status' => 'error', + 'message' => $error + )); + exit; + + } else { + register_error($error); + } + } + + if (!$ajax) { + $container_user = get_entity($container_guid); + forward(elgg_get_site_url() . "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/actions/save.php b/mod/file/actions/save.php deleted file mode 100644 index 17a9b16fb..000000000 --- a/mod/file/actions/save.php +++ /dev/null @@ -1,48 +0,0 @@ -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(elgg_get_site_url() . "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 081b6a312..000000000 --- a/mod/file/actions/upload.php +++ /dev/null @@ -1,205 +0,0 @@ - 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; - - $error = elgg_echo('file:nofile'); - - if ($ajax) { - echo json_encode(array( - 'status' => 'error', - 'message' => $error - )); - exit; - } else { - register_error($error); - forward(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(REFERER); - } - - // user must be able to edit file - if (!$file->canEdit()) { - register_error(elgg_echo('file:noaccess')); - forward(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 = elgg_substr($filestorename, elgg_strlen($prefix)); - } else { - $filestorename = elgg_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); - } - } - } else { - // not saving a file but still need to save the entity to push attributes to database - $file->save(); - } - - // 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 - // ajax is only for new files from embed right now. - if ($new_file) { - if ($guid) { - $message = elgg_echo("file:saved"); - if ($ajax) { - echo json_encode(array( - 'status' => 'success', - 'message' => $message - )); - exit; - - } else { - system_message($message); - 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 - $error = elgg_echo("file:uploadfailed"); - - if ($ajax) { - echo json_encode(array( - 'status' => 'error', - 'message' => $error - )); - exit; - - } else { - register_error($error); - } - } - - if (!$ajax) { - $container_user = get_entity($container_guid); - forward(elgg_get_site_url() . "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/edit.php b/mod/file/edit.php index 961332420..da22cacdf 100644 --- a/mod/file/edit.php +++ b/mod/file/edit.php @@ -1,38 +1,37 @@ container_guid; - if ($container_guid) { - set_page_owner($container_guid); - } -} +elgg_push_breadcrumb(elgg_echo('file'), "pg/file/all/"); +elgg_push_breadcrumb($file->title, $file->getURL()); +elgg_push_breadcrumb(elgg_echo('file:edit')); + +elgg_set_page_owner_guid($file->getContainerGUID()); if (!$file->canEdit()) { forward(); } $title = elgg_echo('file:edit'); -$area1 = elgg_view_title($title); -$area1 .= elgg_view("file/upload", array('entity' => $file)); +$content = elgg_view_title($title); +$content .= elgg_view("file/upload", array('entity' => $file)); + +$body = elgg_view_layout('content', array( + 'content' => $content, + 'title' => $title, + 'filter' => '', + 'header' => '', +)); -$body = elgg_view_layout('one_column_with_sidebar', array('content' => $area1)); echo elgg_view_page($title, $body); diff --git a/mod/file/friends.php b/mod/file/friends.php index 6ead3cf40..201f86f62 100644 --- a/mod/file/friends.php +++ b/mod/file/friends.php @@ -1,44 +1,40 @@ name)); - $area1 = elgg_view('page/elements/content_header', array('context' => "friends", 'type' => 'file')); - elgg_push_context('search'); - // offset is grabbed in list_user_friends_objects - $content = list_user_friends_objects($owner->guid, 'file', 10, false); - elgg_pop_context(); - - $area1 .= get_filetype_cloud($owner->guid, true); - - // handle case where friends don't have any files - if (empty($content)) { - $area2 .= "

".elgg_echo("file:none")."

"; - } 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('comments/latest', array('comments' => $comments)); - - $content = "
".$area1.$area2."
"; - $params = array( - 'content' => $content, - 'sidebar' => $area3 - ); - $body = elgg_view_layout('one_column_with_sidebar', $params); - - echo elgg_view_page($title, $body); -?> \ No newline at end of file +/** + * Friends Files + * + * @package ElggFile + */ + +elgg_push_breadcrumb(elgg_echo('file'), "pg/file/all/"); +elgg_push_breadcrumb($owner->name, "pg/file/owner/$owner->username"); + + +$owner = elgg_get_page_owner(); + +$title = elgg_echo("file:friends",array($owner->name)); + +elgg_push_context('search'); +// offset is grabbed in list_user_friends_objects +$content = list_user_friends_objects($owner->guid, 'file', 10, false); +elgg_pop_context(); + +$area1 .= get_filetype_cloud($owner->guid, true); + +// handle case where friends don't have any files +if (empty($content)) { + $area2 .= "

".elgg_echo("file:none")."

"; +} 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('comments/latest', array('comments' => $comments)); + +$body = elgg_view_layout('content', array( + 'filter_context' => 'friends', + 'content' => $content, + 'title' => $title, +)); + +echo elgg_view_page($title, $body); diff --git a/mod/file/index.php b/mod/file/index.php index e0ec1451f..b55f5c835 100644 --- a/mod/file/index.php +++ b/mod/file/index.php @@ -1,51 +1,49 @@ "mine", 'type' => 'file')); - } else { - $title = elgg_echo("file:user",array(elgg_get_page_owner()->name)); - $area1 = elgg_view('page/elements/content_header', array('context' => "friends", 'type' => 'file')); - } - - // Get objects - elgg_push_context('search'); - $offset = (int)get_input('offset', 0); - $area2 .= elgg_list_entities(array('types' => 'object', 'subtypes' => 'file', 'container_guid' => elgg_get_page_owner_guid(), 'limit' => 10, 'offset' => $offset, 'full_view' => FALSE)); - elgg_pop_context(); - - $get_filter = get_filetype_cloud(elgg_get_page_owner_guid()); - if ($get_filter) { - $area1 .= $get_filter; - } else { - $area2 .= "

".elgg_echo("file:none")."

"; - } - - //get the latest comments on the current users files - $comments = get_annotations(0, "object", "file", "generic_comment", "", 0, 4, 0, "desc",0,0,elgg_get_page_owner_guid()); - $area3 = elgg_view('comments/latest', array('comments' => $comments)); - - $content = "
".$area1.$area2."
"; - - $params = array( - 'content' => $content, - 'sidebar' => $area3 - ); - $body = elgg_view_layout('one_column_with_sidebar', $params); - - echo elgg_view_page($title, $body); -?> \ No newline at end of file +/** + * Elgg file browser + * + * @package ElggFile + */ + +// access check for closed groups +group_gatekeeper(); + +$owner = elgg_get_page_owner(); + +elgg_push_breadcrumb(elgg_echo('file'), "pg/file/all/"); +elgg_push_breadcrumb($owner->name); + + +//set the title +if (elgg_get_page_owner_guid() == get_loggedin_userid()) { + $title = elgg_echo('file:yours'); + $area1 = elgg_view('page/elements/content_header', array('context' => "mine", 'type' => 'file')); +} else { + $title = elgg_echo("file:user",array(elgg_get_page_owner()->name)); + $area1 = elgg_view('page/elements/content_header', array('context' => "friends", 'type' => 'file')); +} + +// Get objects +elgg_push_context('search'); +$offset = (int)get_input('offset', 0); +$content = elgg_list_entities(array('types' => 'object', 'subtypes' => 'file', 'container_guid' => elgg_get_page_owner_guid(), 'limit' => 10, 'offset' => $offset, 'full_view' => FALSE)); +elgg_pop_context(); + +$get_filter = get_filetype_cloud(elgg_get_page_owner_guid()); +if ($get_filter) { + $area1 .= $get_filter; +} else { + $area2 .= "

".elgg_echo("file:none")."

"; +} + +//get the latest comments on the current users files +$comments = get_annotations(0, "object", "file", "generic_comment", "", 0, 4, 0, "desc",0,0,elgg_get_page_owner_guid()); +$area3 = elgg_view('comments/latest', array('comments' => $comments)); + +$body = elgg_view_layout('content', array( + 'filter_context' => 'mine', + 'content' => $content, + 'title' => $title, +)); + +echo elgg_view_page($title, $body); \ No newline at end of file diff --git a/mod/file/languages/en.php b/mod/file/languages/en.php index 1372ae4ce..f06124031 100644 --- a/mod/file/languages/en.php +++ b/mod/file/languages/en.php @@ -1,104 +1,102 @@ "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:create' => 'uploaded the file', + + 'item:object:file' => 'Files', + /** - * Elgg file plugin language pack - * - * @package ElggFile + * 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 */ - $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:create' => 'uploaded the 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 + '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 diff --git a/mod/file/start.php b/mod/file/start.php index 3376befeb..64533616c 100644 --- a/mod/file/start.php +++ b/mod/file/start.php @@ -1,148 +1,163 @@ attributes['subtype'] = "file"; - } + $this->attributes['subtype'] = "file"; + } - public function __construct($guid = null) { - parent::__construct($guid); - } + public function __construct($guid = null) { + parent::__construct($guid); } +} - /** - * File plugin initialisation functions. - */ - function file_init() { - global $CONFIG; +/** + * File plugin initialisation functions. + */ +function file_init() { + global $CONFIG; - // Set up menu (tools dropdown) - $item = new ElggMenuItem('file', elgg_echo('file'), 'pg/file'); - elgg_register_menu_item('site', $item); + // Site navigation + $item = new ElggMenuItem('file', elgg_echo('file'), 'pg/file/all'); + elgg_register_menu_item('site', $item); - // Extend CSS - elgg_extend_view('css/screen', 'file/css'); + // Extend CSS + elgg_extend_view('css/screen', 'file/css'); - // extend group main page - elgg_extend_view('groups/tool_latest','file/groupprofile_files'); + // extend group main page + elgg_extend_view('groups/tool_latest', 'file/groupprofile_files'); - // Register a page handler, so we can have nice URLs - register_page_handler('file','file_page_handler'); + // Register a page handler, so we can have nice URLs + 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")); + // Add a new file widget + elgg_register_widget_type('filerepo', elgg_echo("file"), elgg_echo("file:widget:description")); - // Register a URL handler for files - register_entity_url_handler('file_url','object','file'); + // Register 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')); - } + // 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'); + // 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); + // add the group files tool option + add_group_tool_option('file', elgg_echo('groups:enablefiles'), true); - // Register entity type - register_entity_type('object','file'); + // Register entity type + register_entity_type('object', 'file'); - elgg_register_plugin_hook_handler('register', 'menu:owner_block', 'file_owner_block_menu'); + elgg_register_plugin_hook_handler('register', 'menu:owner_block', 'file_owner_block_menu'); + + // embed support + elgg_register_plugin_hook_handler('embed_get_sections', 'all', 'file_embed_get_sections'); + elgg_register_plugin_hook_handler('embed_get_items', 'file', 'file_embed_get_items'); + elgg_register_plugin_hook_handler('embed_get_upload_sections', 'all', 'file_embed_get_upload_sections'); +} - // embed support - elgg_register_plugin_hook_handler('embed_get_sections', 'all', 'file_embed_get_sections'); - elgg_register_plugin_hook_handler('embed_get_items', 'file', 'file_embed_get_items'); - elgg_register_plugin_hook_handler('embed_get_upload_sections', 'all', 'file_embed_get_upload_sections'); +/** + * Dispatches file pages. + * URLs take the form of + * All files: pg/file/all + * User's files: pg/file/owner/ + * Friends' files: pg/file/friends/ + * View file: pg/file/view// + * New file: pg/file/new/<guid> + * Edit file: pg/file/edit/<guid>/<revision> + * Group files: pg/file/group/<guid>/owner + * + * Title is ignored + * + * @param array $page + * @return NULL + */ +function file_page_handler($page) { + if (!isset($page[0])) { + $page[0] = 'all'; } - /** - * File page handler - * - * @param array $page Array of page elements, forwarded by the page handling mechanism - */ - function file_page_handler($page) { + $file_dir = elgg_get_plugin_path() . 'file'; + + $page_type = $page[0]; + switch ($page_type) { + case 'owner': + set_input('username', $page[1]); + include "$file_dir/index.php"; + break; + case 'friends': + set_input('username', $page[1]); + include "$file_dir/friends.php"; + break; + case 'view': + set_input('guid', $page[1]); + include "$file_dir/view.php"; + break; + case 'new': + set_input('guid', $page[1]); + include "$file_dir/upload.php"; + break; + case 'edit': + set_input('guid', $page[1]); + include "$file_dir/edit.php"; + break; + case 'group': + break; + case 'all': + default: + include "$file_dir/world.php"; + break; + } +} +/** + * 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; - - // The username should be the file we're getting - if (isset($page[0])) { - set_input('username',$page[0]); + $url = elgg_get_site_url() . "pg/view/" . $entity->guid; + if ($method == 'sms') { + $owner = $entity->getOwnerEntity(); + return $owner->name . ' ' . elgg_echo("file:via") . ': ' . $url . ' (' . $title . ')'; } - - if (isset($page[1])) { - switch($page[1]) { - case "read": - set_input('guid',$page[2]); - include(dirname(dirname(dirname(__FILE__))) . "/pages/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 ($method == 'email') { + $owner = $entity->getOwnerEntity(); + return $owner->name . ' ' . elgg_echo("file:via") . ': ' . $entity->title . "\n\n" . $descr . "\n\n" . $entity->getURL(); } - - } - - /** - * 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 = elgg_get_site_url() . "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; + if ($method == 'web') { + $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 - */ +* Add a menu item to the user ownerblock +*/ function file_owner_block_menu($hook, $type, $return, $params) { if (elgg_instanceof($params['entity'], 'user')) { $url = "pg/file/owner/{$params['entity']->username}"; @@ -159,164 +174,162 @@ function file_owner_block_menu($hook, $type, $return, $params) { return $return; } - /** - * 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; - } +/** + * 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) { - if (substr_count($mimetype,'text/')) + switch($mimetype) { + case "application/msword": + return "document"; + break; + case "application/pdf": return "document"; + break; + } - if (substr_count($mimetype,'audio/')) - return "audio"; + if (substr_count($mimetype,'text/')) + return "document"; - if (substr_count($mimetype,'image/')) - return "image"; + if (substr_count($mimetype,'audio/')) + return "audio"; - if (substr_count($mimetype,'video/')) - return "video"; + if (substr_count($mimetype,'image/')) + return "image"; - if (substr_count($mimetype,'opendocument')) - return "document"; + if (substr_count($mimetype,'video/')) + return "video"; - return "general"; - } + if (substr_count($mimetype,'opendocument')) + return "document"; - /** - * 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(); - } + return "general"; +} + +/** + * 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(); } - $friendofguid = $owner_guid; - $owner_guid = $friendguids; - } else { - $friendofguid = false; } - - elgg_register_tag_metadata_name('simpletype'); - $options = array( - 'type' => 'object', - 'subtype' => 'file', - 'owner_guid' => $owner_guid, - 'threshold' => 0, - 'limit' => 10, - 'tag_names' => array('simpletype') - ); - $types = elgg_get_tags($options); - - return elgg_view('file/typecloud',array('owner_guid' => $owner_guid, 'friend_guid' => $friendofguid, 'types' => $types)); + $friendofguid = $owner_guid; + $owner_guid = $friendguids; + } else { + $friendofguid = false; } - /** - * Register file as an embed type. - * - * @param unknown_type $hook - * @param unknown_type $type - * @param unknown_type $value - * @param unknown_type $params - */ - function file_embed_get_sections($hook, $type, $value, $params) { - $value['file'] = array( - 'name' => elgg_echo('file'), - 'layout' => 'list', - 'icon_size' => 'small', - ); - - return $value; - } + elgg_register_tag_metadata_name('simpletype'); + $options = array( + 'type' => 'object', + 'subtype' => 'file', + 'owner_guid' => $owner_guid, + 'threshold' => 0, + 'limit' => 10, + 'tag_names' => array('simpletype') + ); + $types = elgg_get_tags($options); + + return elgg_view('file/typecloud',array('owner_guid' => $owner_guid, 'friend_guid' => $friendofguid, 'types' => $types)); +} - /** - * Return a list of files for embedding - * - * @param unknown_type $hook - * @param unknown_type $type - * @param unknown_type $value - * @param unknown_type $params - */ - function file_embed_get_items($hook, $type, $value, $params) { - $options = array( - 'owner_guid' => get_loggedin_userid(), - 'type_subtype_pair' => array('object' => 'file'), - 'count' => TRUE - ); +/** + * Register file as an embed type. + * + * @param unknown_type $hook + * @param unknown_type $type + * @param unknown_type $value + * @param unknown_type $params + */ +function file_embed_get_sections($hook, $type, $value, $params) { + $value['file'] = array( + 'name' => elgg_echo('file'), + 'layout' => 'list', + 'icon_size' => 'small', + ); + + return $value; +} - if ($count = elgg_get_entities($options)) { - $value['count'] += $count; +/** + * Return a list of files for embedding + * + * @param unknown_type $hook + * @param unknown_type $type + * @param unknown_type $value + * @param unknown_type $params + */ +function file_embed_get_items($hook, $type, $value, $params) { + $options = array( + 'owner_guid' => get_loggedin_userid(), + 'type_subtype_pair' => array('object' => 'file'), + 'count' => TRUE + ); - unset($options['count']); - $options['offset'] = $params['offset']; - $options['limit'] = $params['limit']; + if ($count = elgg_get_entities($options)) { + $value['count'] += $count; - $items = elgg_get_entities($options); + unset($options['count']); + $options['offset'] = $params['offset']; + $options['limit'] = $params['limit']; - $value['items'] = array_merge($items, $value['items']); - } + $items = elgg_get_entities($options); - return $value; + $value['items'] = array_merge($items, $value['items']); } - /** - * Register file as an embed type. - * - * @param unknown_type $hook - * @param unknown_type $type - * @param unknown_type $value - * @param unknown_type $params - */ - function file_embed_get_upload_sections($hook, $type, $value, $params) { - $value['file'] = array( - 'name' => elgg_echo('file'), - 'view' => 'file/embed_upload' - ); - - return $value; - } + return $value; +} +/** + * Register file as an embed type. + * + * @param unknown_type $hook + * @param unknown_type $type + * @param unknown_type $value + * @param unknown_type $params + */ +function file_embed_get_upload_sections($hook, $type, $value, $params) { + $value['file'] = array( + 'name' => elgg_echo('file'), + 'view' => 'file/embed_upload' + ); - /** - * Populates the ->getUrl() method for file objects - * - * @param ElggEntity $entity File entity - * @return string File URL - */ - function file_url($entity) { - $title = $entity->title; - $title = elgg_get_friendly_title($title); - return "pg/file/" . $entity->getOwnerEntity()->username . "/read/" . $entity->getGUID() . "/" . $title; - } + return $value; +} - // Make sure test_init is called on initialisation - elgg_register_event_handler('init','system','file_init'); - // Register actions - elgg_register_action("file/upload", $CONFIG->pluginspath . "file/actions/upload.php"); - elgg_register_action("file/save", $CONFIG->pluginspath . "file/actions/save.php"); - elgg_register_action("file/delete", $CONFIG->pluginspath. "file/actions/delete.php"); +/** + * Populates the ->getUrl() method for file objects + * + * @param ElggEntity $entity File entity + * @return string File URL + */ +function file_url($entity) { + $title = $entity->title; + $title = elgg_get_friendly_title($title); + return "pg/file/view/" . $entity->getGUID() . "/" . $title; +} + +// Make sure test_init is called on initialisation +elgg_register_event_handler('init','system','file_init'); - // temporary - see #2010 - elgg_register_action("file/download", $CONFIG->pluginspath. "file/actions/download.php"); +// Register actions +elgg_register_action("file/upload", $CONFIG->pluginspath . "file/actions/file/upload.php"); +elgg_register_action("file/save", $CONFIG->pluginspath . "file/actions/file/save.php"); +elgg_register_action("file/delete", $CONFIG->pluginspath. "file/actions/file/delete.php"); -?> +// temporary - see #2010 +elgg_register_action("file/download", $CONFIG->pluginspath. "file/actions/file/download.php"); diff --git a/mod/file/upload.php b/mod/file/upload.php index 2040c7240..0c89e64a5 100644 --- a/mod/file/upload.php +++ b/mod/file/upload.php @@ -1,24 +1,30 @@ <?php - /** - * Elgg file browser uploader - * - * @package ElggFile - */ - - require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php"); - - gatekeeper(); - if (is_callable('group_gatekeeper')) { - group_gatekeeper(); - } - - // Render the file upload page - - $container_guid = elgg_get_page_owner_guid(); - $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', array('content' => $area1)); - - echo elgg_view_page(elgg_echo("file:upload"), $body); - -?> \ No newline at end of file +/** + * Upload a new file + * + * @package ElggFile + */ + +elgg_set_page_owner_guid(get_input('guid')); + +gatekeeper(); +group_gatekeeper(); + +elgg_push_breadcrumb(elgg_echo('file'), "pg/file/all/"); +elgg_push_breadcrumb(elgg_echo('file:new')); + +$container_guid = elgg_get_page_owner_guid(); + +$title = elgg_echo('file:upload'); + +$content = elgg_view_title($title); + +$content .= elgg_view("file/upload", array('container_guid' => $container_guid)); +$body = elgg_view_layout('content', array( + 'content' => $content, + 'title' => $title, + 'filter' => '', + 'header' => '', +)); + +echo elgg_view_page($title, $body); diff --git a/mod/file/views/default/object/file.php b/mod/file/views/default/object/file.php index b4754cb18..0f128eed6 100644 --- a/mod/file/views/default/object/file.php +++ b/mod/file/views/default/object/file.php @@ -1,10 +1,108 @@ <?php - /** - * Elgg file browser. - * File renderer. - * - * @package ElggFile - */ +/** + * File renderer. + * + * @package ElggFile + */ + +$full = elgg_get_array_value('full', $vars, FALSE); +$file = elgg_get_array_value('entity', $vars, FALSE); + +if (!$file) { + return TRUE; +} + +$owner = $file->getOwnerEntity(); +$container = $file->getContainerEntity(); +$categories = elgg_view('categories/view', $vars); +$excerpt = elgg_get_excerpt($file->description); +$mime = $file->mimetype; + +$body = autop($file->description); +$owner_icon = elgg_view('profile/icon', array('entity' => $owner, 'size' => 'tiny')); +$owner_link = elgg_view('output/url', array( + 'href' => "pg/file/owner/$owner->username", + 'text' => $owner->name, +)); +$author_text = elgg_echo('blog:author_by_line', array($owner_link)); +if ($file->tags) { + $tags = "<p class=\"elgg-tags\">" . elgg_view('output/tags', array('tags' => $file->tags)) . "</p>"; +} else { + $tags = ""; +} +$date = elgg_view_friendly_time($file->time_created); + +$comments_count = elgg_count_comments($file); +//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, + )); +} else { + $comments_link = ''; +} + +$metadata = elgg_view('layout/objects/list/metadata', array( + 'entity' => $file, + 'handler' => 'file', +)); + +$subtitle = "$author_text $date $categories $comments_link"; + +// do not show the metadata and controls in widget view +if (elgg_in_context('widgets')) { + $metadata = ''; +} + +if ($full) { + + $header = elgg_view_title($file->title); + + $params = array( + 'entity' => $file, + 'title' => false, + 'metadata' => $metadata, + 'subtitle' => $subtitle, + 'tags' => $tags, + ); + $list_body = elgg_view('layout/objects/list/body', $params); + + $file_info = elgg_view_image_block($owner_icon, $list_body); + + if (elgg_view_exists('file/specialcontent/' . $mime)) { + $blah = "<div class='filerepo_specialcontent'>".elgg_view('file/specialcontent/' . $mime, $vars)."</div>"; + } else if (elgg_view_exists("file/specialcontent/" . substr($mime,0,strpos($mime,'/')) . "/default")) { + $blah = "<div class='filerepo_specialcontent'>".elgg_view("file/specialcontent/" . substr($mime,0,strpos($mime,'/')) . "/default", $vars)."</div>"; + } + + + echo <<<HTML +$header +$file_info +<div class="file elgg-content"> + $body + $blah +</div> +HTML; + +} else { + // brief view + + $params = array( + 'entity' => $file, + 'metadata' => $metadata, + 'subtitle' => $subtitle, + 'tags' => $tags, + 'content' => $excerpt, + ); + $list_body = elgg_view('layout/objects/list/body', $params); + + echo elgg_view_image_block($owner_icon, $list_body); +} + +return true; global $CONFIG; diff --git a/mod/file/world.php b/mod/file/world.php index 3bacaad00..1b8f5f828 100644 --- a/mod/file/world.php +++ b/mod/file/world.php @@ -1,40 +1,29 @@ <?php - /** - * Elgg file browser - * - * @package ElggFile - */ +/** + * All files + * + * @package ElggFile + */ - require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php"); - - $limit = get_input("limit", 10); - $offset = get_input("offset", 0); - - // Get the current page's owner - $page_owner = elgg_get_page_owner(); - if ($page_owner === false || is_null($page_owner)) { - $page_owner = get_loggedin_user(); - set_page_owner(get_loggedin_userid()); - } - - $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 - elgg_push_context('search'); - $area2 .= elgg_list_entities(array('types' => 'object', 'subtypes' => 'file', 'limit' => $limit, 'offset' => $offset, 'full_view' => FALSE)); - elgg_pop_context(); +elgg_push_breadcrumb(elgg_echo('file')); - //get the latest comments on all files - $comments = get_annotations(0, "object", "file", "generic_comment", "", 0, 4, 0, "desc"); - $area3 = elgg_view('comments/latest', array('comments' => $comments)); - - $content = "<div class='files'>".$area1.$area2."</div>"; - $params = array( - 'content' => $content, - 'sidebar' => $area3 - ); - $body = elgg_view_layout('one_column_with_sidebar', $params); +$limit = get_input("limit", 10); - echo elgg_view_page($title, $body); +$title = elgg_echo('file:all'); + +elgg_push_context('search'); +$content = elgg_list_entities(array( + 'types' => 'object', + 'subtypes' => 'file', + 'limit' => $limit, + 'full_view' => FALSE +)); +elgg_pop_context(); + +$body = elgg_view_layout('content', array( + 'filter_context' => 'all', + 'content' => $content, + 'title' => $title, +)); + +echo elgg_view_page($title, $body); -- cgit v1.2.3