aboutsummaryrefslogtreecommitdiff
path: root/mod/bookmarks/actions
diff options
context:
space:
mode:
Diffstat (limited to 'mod/bookmarks/actions')
-rw-r--r--mod/bookmarks/actions/add.php72
-rw-r--r--mod/bookmarks/actions/delete.php32
2 files changed, 104 insertions, 0 deletions
diff --git a/mod/bookmarks/actions/add.php b/mod/bookmarks/actions/add.php
new file mode 100644
index 000000000..a074719b1
--- /dev/null
+++ b/mod/bookmarks/actions/add.php
@@ -0,0 +1,72 @@
+<?php
+
+ /**
+ * Elgg bookmarks add/save action
+ *
+ * @package ElggBookmarks
+ * @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/
+ */
+
+ gatekeeper();
+
+ $title = get_input('title');
+ $guid = get_input('bookmark_guid',0);
+ $description = get_input('description');
+ $address = get_input('address');
+ $access = get_input('access');
+ $shares = get_input('shares',array());
+
+ $tags = get_input('tags');
+ $tagarray = string_to_tag_array($tags);
+
+ if ($guid == 0) {
+
+ $entity = new ElggObject;
+ $entity->subtype = "bookmarks";
+ $entity->owner_guid = $_SESSION['user']->getGUID();
+ $entity->container_guid = (int)get_input('container_guid', $_SESSION['user']->getGUID());
+
+ } else {
+
+ $canedit = false;
+ if ($entity = get_entity($guid)) {
+ if ($entity->canEdit()) {
+ $canedit = true;
+ }
+ }
+ if (!$canedit) {
+ system_message(elgg_echo('notfound'));
+ forward("pg/bookmarks");
+ }
+
+ }
+
+ $entity->title = $title;
+ $entity->address = $address;
+ $entity->description = $description;
+ $entity->access_id = $access;
+ $entity->tags = $tagarray;
+
+ if ($entity->save()) {
+ $entity->clearRelationships();
+ $entity->shares = $shares;
+
+ if (is_array($shares) && sizeof($shares) > 0) {
+ foreach($shares as $share) {
+ $share = (int) $share;
+ add_entity_relationship($entity->getGUID(),'share',$share);
+ }
+ }
+ system_message(elgg_echo('bookmarks:save:success'));
+ //add to river
+ add_to_river('river/object/bookmarks/create','create',$_SESSION['user']->guid,$entity->guid);
+ forward($entity->getURL());
+ } else {
+ register_error(elgg_echo('bookmarks:save:failed'));
+ forward("pg/bookmarks");
+ }
+
+?>
diff --git a/mod/bookmarks/actions/delete.php b/mod/bookmarks/actions/delete.php
new file mode 100644
index 000000000..217197b24
--- /dev/null
+++ b/mod/bookmarks/actions/delete.php
@@ -0,0 +1,32 @@
+<?php
+
+ /**
+ * Elgg bookmarks delete action
+ *
+ * @package ElggBookmarks
+ * @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/
+ */
+
+ $guid = get_input('bookmark_guid',0);
+ if ($entity = get_entity($guid)) {
+
+ if ($entity->canEdit()) {
+
+ if ($entity->delete()) {
+
+ system_message(elgg_echo("bookmarks:delete:success"));
+ forward("pg/bookmarks/");
+
+ }
+
+ }
+
+ }
+
+ register_error(elgg_echo("bookmarks:delete:failed"));
+ forward("pg/bookmarks/");
+
+?> \ No newline at end of file