diff options
author | ben <ben@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2008-08-13 12:27:12 +0000 |
---|---|---|
committer | ben <ben@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2008-08-13 12:27:12 +0000 |
commit | 55724ff6f6818f2c1b16d4bacd912ae2eb745fdb (patch) | |
tree | 5365657ba47de2e891d84965a6ba2bb98d4783d8 /mod/pages/actions | |
parent | a6e012278e2a33721e91ae36a7fda65804785440 (diff) | |
download | elgg-55724ff6f6818f2c1b16d4bacd912ae2eb745fdb.tar.gz elgg-55724ff6f6818f2c1b16d4bacd912ae2eb745fdb.tar.bz2 |
Added a new latest activity title to the front page
git-svn-id: https://code.elgg.org/elgg/trunk@1895 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'mod/pages/actions')
-rw-r--r-- | mod/pages/actions/pages/delete.php | 35 | ||||
-rw-r--r-- | mod/pages/actions/pages/edit.php | 114 | ||||
-rw-r--r-- | mod/pages/actions/pages/editwelcome.php | 77 |
3 files changed, 226 insertions, 0 deletions
diff --git a/mod/pages/actions/pages/delete.php b/mod/pages/actions/pages/delete.php new file mode 100644 index 000000000..6533ed520 --- /dev/null +++ b/mod/pages/actions/pages/delete.php @@ -0,0 +1,35 @@ +<?php
+
+ $page = get_input('page');
+
+ if ($page = get_entity($page)) {
+
+ if ($page->canEdit()) {
+
+ // Bring all child elements forward
+ $parent = $page->parent_guid;
+ if ($children = get_entities_from_metadata('parent_guid',$page->getGUID())) {
+ foreach($children as $child) {
+ $child->parent_guid = $parent;
+ }
+ }
+ if ($page->delete()) {
+ system_message(elgg_echo('pages:delete:success'));
+ if ($parent) {
+ if ($parent = get_entity($parent)) {
+ forward($parent->getURL());
+ exit;
+ }
+ }
+ forward('pg/pages/owned/' . $_SESSION['user']->username);
+ exit;
+ }
+
+ }
+
+ }
+
+ register_error(elgg_echo('pages:delete:failure'));
+ forward($_SERVER['HTTP_REFERER']);
+
+?>
\ No newline at end of file diff --git a/mod/pages/actions/pages/edit.php b/mod/pages/actions/pages/edit.php new file mode 100644 index 000000000..a34971173 --- /dev/null +++ b/mod/pages/actions/pages/edit.php @@ -0,0 +1,114 @@ +<?php + /** + * Elgg Pages + * + * @package ElggPages + * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 + * @author Curverider Ltd + * @copyright Curverider Ltd 2008 + * @link http://elgg.com/ + */ + + // Load configuration + global $CONFIG; + + gatekeeper();
+ set_context('pages'); + + // Get group fields + $input = array(); + foreach($CONFIG->pages as $shortname => $valuetype) { + $input[$shortname] = get_input($shortname); + if ($valuetype == 'tags') + $input[$shortname] = string_to_tag_array($input[$shortname]); + } + + // Get parent + $parent_guid = (int)get_input('parent_guid', 0); + + // New or old? + $page = NULL; + $pages_guid = (int)get_input('pages_guid'); + if ($pages_guid) + { + $page = get_entity($pages_guid); + if (!$page->canEdit()) + $page = NULL; // if we can't edit it, go no further. + } + else + { + $page = new ElggObject(); + if (!$parent_guid) + $page->subtype = 'page_top'; + else + $page->subtype = 'page'; + + // New instance, so set container_guid + $container_guid = get_input('container_guid', $_SESSION['user']->getGUID()); + $page->container_guid = $container_guid; + } + + // Have we got it? Can we edit it? + if ($page instanceof ElggObject) + { + // Yes we have, and yes we can. + + // Save fields - note we always save latest description as both description and annotation + if (sizeof($input) > 0) + { + foreach($input as $shortname => $value) { + if ((!$pages_guid) || (($pages_guid) && ($shortname != 'title'))) + $page->$shortname = $value; + } + } + + + // Validate create + if (!$page->title) + { + register_error(elgg_echo("pages:notitle")); + + forward($_SERVER['HTTP_REFERER']); + exit; + } + + // Access ids + $page->access_id = (int)get_input('access_id', 0); + + // Write access id + $page->write_access_id = (int)get_input('write_access_id', 0); + + // Set parent + $page->parent_guid = $parent_guid; + + // Ensure ultimate owner + $page->owner_guid = ($page->owner_guid ? $page->owner_guid : $_SESSION['user']->guid); + + // finally save + if ($page->save()) + { + + // Now save description as an annotation + $page->annotate('page', $page->description, $page->access_id); + + + system_message(elgg_echo("pages:saved")); + + // Forward to the user's profile + forward($page->getUrl()); + exit; + } + else + register_error(elgg_echo('pages:notsaved')); + + } + else + { + register_error(elgg_echo("pages:noaccess")); + } + + + // Forward to the user's profile + forward($page->getUrl()); + exit; +?> diff --git a/mod/pages/actions/pages/editwelcome.php b/mod/pages/actions/pages/editwelcome.php new file mode 100644 index 000000000..edf0d89f3 --- /dev/null +++ b/mod/pages/actions/pages/editwelcome.php @@ -0,0 +1,77 @@ +<?php
+ /**
+ * Elgg Pages Edit welcome message
+ *
+ * @package ElggPages
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
+ * @author Curverider
+ * @copyright Curverider Ltd 2008
+ * @link http://elgg.com/
+ */
+
+ // Load configuration
+ global $CONFIG;
+
+ gatekeeper();
+
+ // Get group fields
+ $message = get_input("pages_welcome");
+ $owner_guid = get_input("owner_guid");
+ $object_guid = get_input("object_guid");
+ $access_id = (int) get_input("access_id");
+
+ //check to see if this is an edit or new welcome message
+ if($object_guid){
+
+ //it is an edit so grab the object
+ $welcome = get_entity($object_guid);
+ if ($welcome->getSubtype() == "pages_welcome" && $welcome->canEdit()) {
+
+ $welcome->description = $message;
+ $welcome->access_id = $access_id;
+ $welcome->save();
+ system_message(elgg_echo("pages:welcomeposted"));
+
+ } else {
+
+ register_error(elgg_echo("pages:welcomeerror"));
+
+ }
+
+
+ }else{
+
+ //it is a new welcome object
+ if ($owner_guid){
+
+ $welcome = new ElggObject();
+ // Tell the system it's a pages welcome message
+ $welcome->subtype = "pages_welcome";
+ $welcome->title = "Welcome";
+ $welcome->description = $message;
+ $welcome->access_id = $access_id;
+
+ // Set the owner
+ $welcome->owner_guid = $owner_guid;
+
+ // save
+ if (!$welcome->save()){
+ register_error(elgg_echo("pages:welcomeerror"));
+ } else {
+ system_message(elgg_echo("pages:welcomeposted"));
+ }
+
+
+ } else {
+
+ register_error(elgg_echo("pages:welcomeerror"));
+
+ }
+
+ }//end of first if statement
+
+ // Forward to the main blog page
+ forward("pg/pages/owned/" . get_user($owner_guid)->username);
+ exit;
+
+?>
\ No newline at end of file |