summaryrefslogtreecommitdiffstats
path: root/apps/bookmarks/ajax
diff options
context:
space:
mode:
authorGolnaz Nilieh <g382nilieh@gmail.com>2011-09-13 15:38:11 +0430
committerGolnaz Nilieh <g382nilieh@gmail.com>2011-09-13 15:40:09 +0430
commit67addb488244621e3d118f2ee1d0165ba95b95ba (patch)
treeb0e64bef5d904f17733248783d3f22a08943baf4 /apps/bookmarks/ajax
parent9a5530a48fa2fcbf978cbaaf9524713c425b93ea (diff)
downloadnextcloud-server-67addb488244621e3d118f2ee1d0165ba95b95ba.tar.gz
nextcloud-server-67addb488244621e3d118f2ee1d0165ba95b95ba.zip
Add support of editing bookmarks.
Diffstat (limited to 'apps/bookmarks/ajax')
-rw-r--r--apps/bookmarks/ajax/editBookmark.php82
-rw-r--r--apps/bookmarks/ajax/updateList.php2
2 files changed, 83 insertions, 1 deletions
diff --git a/apps/bookmarks/ajax/editBookmark.php b/apps/bookmarks/ajax/editBookmark.php
new file mode 100644
index 00000000000..1bd2fc08bca
--- /dev/null
+++ b/apps/bookmarks/ajax/editBookmark.php
@@ -0,0 +1,82 @@
+<?php
+
+/**
+* ownCloud - bookmarks plugin - edit bookmark script
+*
+* @author Golnaz Nilieh
+* @copyright 2011 Golnaz Nilieh <golnaz.nilieh@gmail.com>
+*
+* This library is free software; you can redistribute it and/or
+* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+* License as published by the Free Software Foundation; either
+* version 3 of the License, or any later version.
+*
+* This library is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this library. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+//no apps or filesystem
+$RUNTIME_NOSETUPFS=true;
+
+require_once('../../../lib/base.php');
+
+// We send json data
+header( 'Content-Type: application/jsonrequest' );
+
+// Check if we are a user
+if( !OC_User::isLoggedIn()){
+ echo json_encode( array( 'status' => 'error', 'data' => array( 'message' => 'Authentication error' )));
+ exit();
+}
+
+$CONFIG_DBTYPE = OC_Config::getValue( "dbtype", "sqlite" );
+if( $CONFIG_DBTYPE == 'sqlite' or $CONFIG_DBTYPE == 'sqlite3' ){
+ $_ut = "strftime('%s','now')";
+} else {
+ $_ut = "UNIX_TIMESTAMP()";
+}
+
+$bookmark_id = (int)$_GET["id"];
+
+$query = OC_DB::prepare("
+ UPDATE *PREFIX*bookmarks
+ SET url = ?, title =?, description = ?, lastmodified = $_ut
+ WHERE id = $bookmark_id
+ ");
+
+$params=array(
+ htmlspecialchars_decode($_GET["url"]),
+ htmlspecialchars_decode($_GET["title"]),
+ htmlspecialchars_decode($_GET["description"]),
+ );
+$query->execute($params);
+
+# Remove old tags and insert new ones.
+$query = OC_DB::prepare("
+ DELETE FROM *PREFIX*bookmarks_tags
+ WHERE bookmark_id = $bookmark_id
+ ");
+
+$query->execute();
+
+$query = OC_DB::prepare("
+ INSERT INTO *PREFIX*bookmarks_tags
+ (bookmark_id, tag)
+ VALUES (?, ?)
+ ");
+
+$tags = explode(' ', urldecode($_GET["tags"]));
+foreach ($tags as $tag) {
+ if(empty($tag)) {
+ //avoid saving blankspaces
+ continue;
+ }
+ $params = array($bookmark_id, trim($tag));
+ $query->execute($params);
+}
diff --git a/apps/bookmarks/ajax/updateList.php b/apps/bookmarks/ajax/updateList.php
index ceecc5b7efa..67acb2190ca 100644
--- a/apps/bookmarks/ajax/updateList.php
+++ b/apps/bookmarks/ajax/updateList.php
@@ -64,7 +64,7 @@ if( $CONFIG_DBTYPE == 'sqlite' or $CONFIG_DBTYPE == 'sqlite3' ){
}
$query = OC_DB::prepare('
- SELECT url, title, description,
+ SELECT id, url, title, description,
CASE WHEN *PREFIX*bookmarks.id = *PREFIX*bookmarks_tags.bookmark_id
THEN GROUP_CONCAT( tag ' .$_gc_separator. ' )
ELSE \' \'