From c1f8c6378f37e2cac408731b07008a345c3ced8f Mon Sep 17 00:00:00 2001 From: icewing Date: Wed, 30 Apr 2008 12:14:22 +0000 Subject: Marcus Povey * First draft file upload git-svn-id: https://code.elgg.org/elgg/trunk@578 36083f99-b078-4883-b0ff-0f9b5a30f544 --- mod/file/actions/upload.php | 40 +++++++++++ mod/file/friends.php | 34 +++++++++ mod/file/index.php | 27 +++++++ mod/file/languages/en.php | 44 ++++++++++++ mod/file/start.php | 127 +++++++++++++++++++++++++++++++++ mod/file/upload.php | 13 ++++ mod/file/views/default/file/file.php | 36 ++++++++++ mod/file/views/default/file/footer.php | 3 + mod/file/views/default/file/upload.php | 25 +++++++ mod/file/world.php | 31 ++++++++ 10 files changed, 380 insertions(+) create mode 100644 mod/file/actions/upload.php create mode 100644 mod/file/friends.php create mode 100644 mod/file/index.php create mode 100644 mod/file/languages/en.php create mode 100644 mod/file/start.php create mode 100644 mod/file/upload.php create mode 100644 mod/file/views/default/file/file.php create mode 100644 mod/file/views/default/file/footer.php create mode 100644 mod/file/views/default/file/upload.php create mode 100644 mod/file/world.php (limited to 'mod') diff --git a/mod/file/actions/upload.php b/mod/file/actions/upload.php new file mode 100644 index 000000000..881470bc7 --- /dev/null +++ b/mod/file/actions/upload.php @@ -0,0 +1,40 @@ +setFilename($_FILES['upload']['name']); + + $file->open("write"); + $file->write(get_uploaded_file('upload')); + $file->close(); + + $file->title = $title; + $file->description = $desc; + + $result = $file->save(); + + // Save tags + $tags = explode(",", $tags); + $file->tag = $tags; + + if ($result) + system_message(elgg_echo("file:saved")); + else + system_message(elgg_echo("file:uploadfailed")); +?> \ No newline at end of file diff --git a/mod/file/friends.php b/mod/file/friends.php new file mode 100644 index 000000000..a58912485 --- /dev/null +++ b/mod/file/friends.php @@ -0,0 +1,34 @@ +getOwner(); + $objects = get_entities("object","file", $owners, "time_created desc", $limit, $offset); + } + + // Draw page + $body .= file_draw($objects); + + // Draw footer + $body .= file_draw_footer($limit, $offset); + + // Finally draw the page + page_draw(sprintf(elgg_echo("file:friends"),$_SESSION['user']->name), $body); +?> \ No newline at end of file diff --git a/mod/file/index.php b/mod/file/index.php new file mode 100644 index 000000000..577233276 --- /dev/null +++ b/mod/file/index.php @@ -0,0 +1,27 @@ +name), $body); +?> \ No newline at end of file diff --git a/mod/file/languages/en.php b/mod/file/languages/en.php new file mode 100644 index 000000000..451680430 --- /dev/null +++ b/mod/file/languages/en.php @@ -0,0 +1,44 @@ + "Files", + 'file:yours' => "%s's files", + 'file:friends' => "%s's friend's files", + 'file:all' => "All files", + + 'file:upload' => "Upload a file", + + 'file:file' => "File", + 'file:title' => "Title", + 'file:desc' => "Description", + 'file:tags' => "Tags", + + /** + * Status messages + */ + + 'file:saved' => "Your file was successfully saved.", + + /** + * Error messages + */ + + 'file:uploadfailed' => "Sorry; we could not save your file.", + + ); + + add_translation("en",$english); +?> \ No newline at end of file diff --git a/mod/file/start.php b/mod/file/start.php new file mode 100644 index 000000000..98ee4ff46 --- /dev/null +++ b/mod/file/start.php @@ -0,0 +1,127 @@ +wwwroot . "pg/file/" . $_SESSION['user']->username, array( + menu_item(sprintf(elgg_echo("file:yours"),$_SESSION['user']->name), $CONFIG->wwwroot . "pg/file/" . $_SESSION['user']->username), + menu_item(sprintf(elgg_echo('file:friends'),$_SESSION['user']->name), $CONFIG->wwwroot . "pg/file/". $_SESSION['user']->username . "/friends/"), + menu_item(elgg_echo('file:all'), $CONFIG->wwwroot . "pg/file/". $_SESSION['user']->username . "/world/"), + menu_item(elgg_echo('file:upload'), $CONFIG->wwwroot . "pg/file/". $_SESSION['user']->username . "/new/") + )); + } + else + { + add_menu(elgg_echo('file'), $CONFIG->wwwroot . "pg/file/" . $_SESSION['user']->username . "/", array( + menu_item(elgg_echo('file:all'), $CONFIG->wwwroot . "pg/file/". $_SESSION['user']->username . "/world/"), + )); + } + + // Register a page handler, so we can have nice URLs + register_page_handler('file','file_page_handler'); + + } + + /** + * 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 "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"); + } + + } + + /** + * Draw an individual file. + * + * @param ElggFile $file + */ + function file_draw_file(ElggFile $file) + { + // Get tags + $tags = $file->getMetaData("tag"); + if (!is_array($tags)) + $tags = array($tags); + + // Draw file + return elgg_view("file/file", array( + "tags" => $tags, + "title" => $file->title, + "description" => $file->description + )); + } + + /** + * Draw a given set of objects. + * + * @param array $objects + */ + function file_draw(array $objects) + { + $body = ""; + + foreach ($objects as $object) + $body .= file_draw_file($object); + + return $body; + } + + function file_draw_footer($limit, $offset) + { + return elgg_view("file/footer", array( + "limit" => $limit, + "offset" => $offset + )); + } + + // Make sure test_init is called on initialisation + register_event_handler('init','system','file_init'); + + // Register an action + register_action("file/upload", false, $CONFIG->pluginspath . "file/actions/upload.php"); +?> \ No newline at end of file diff --git a/mod/file/upload.php b/mod/file/upload.php new file mode 100644 index 000000000..d0e0a9901 --- /dev/null +++ b/mod/file/upload.php @@ -0,0 +1,13 @@ + \ No newline at end of file diff --git a/mod/file/views/default/file/file.php b/mod/file/views/default/file/file.php new file mode 100644 index 000000000..1b2beae53 --- /dev/null +++ b/mod/file/views/default/file/file.php @@ -0,0 +1,36 @@ + +
+ + + + + +
+
+
+
+
+
+
wwwroot . "pg/file/". $_SESSION['user']->username . "/world/?tag=$tag\">$tag "; + ?>
+
+
diff --git a/mod/file/views/default/file/footer.php b/mod/file/views/default/file/footer.php new file mode 100644 index 000000000..15c5adc7f --- /dev/null +++ b/mod/file/views/default/file/footer.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/mod/file/views/default/file/upload.php b/mod/file/views/default/file/upload.php new file mode 100644 index 000000000..d318b85a3 --- /dev/null +++ b/mod/file/views/default/file/upload.php @@ -0,0 +1,25 @@ + +
+ + + + + + +
:
:
:
:
+ + + +
\ No newline at end of file diff --git a/mod/file/world.php b/mod/file/world.php new file mode 100644 index 000000000..ffb689050 --- /dev/null +++ b/mod/file/world.php @@ -0,0 +1,31 @@ +name), $body); +?> \ No newline at end of file -- cgit v1.2.3