summaryrefslogtreecommitdiffstats
path: root/apps/bookmarks
diff options
context:
space:
mode:
authorArthur Schiwon <blizzz@arthur-schiwon.de>2011-08-24 22:16:44 +0200
committerArthur Schiwon <blizzz@arthur-schiwon.de>2011-08-24 22:16:44 +0200
commit7cd592e055c8519d08cbfcb370572810b3edc96b (patch)
tree9bb4c4d79404ed176a925468e85f84a8d71d02d8 /apps/bookmarks
parent365c4fdae24ea9f04f3c92f26182d148a8363776 (diff)
downloadnextcloud-server-7cd592e055c8519d08cbfcb370572810b3edc96b.tar.gz
nextcloud-server-7cd592e055c8519d08cbfcb370572810b3edc96b.zip
Added a Bookmarklet for the Bookmarks app
Diffstat (limited to 'apps/bookmarks')
-rw-r--r--apps/bookmarks/addBm.php48
-rw-r--r--apps/bookmarks/ajax/getMeta.php20
-rw-r--r--apps/bookmarks/bookmarksHelper.php22
-rw-r--r--apps/bookmarks/js/addBm.js17
-rw-r--r--apps/bookmarks/templates/addBm.php8
-rw-r--r--apps/bookmarks/templates/list.php1
6 files changed, 99 insertions, 17 deletions
diff --git a/apps/bookmarks/addBm.php b/apps/bookmarks/addBm.php
new file mode 100644
index 00000000000..d308e8fe605
--- /dev/null
+++ b/apps/bookmarks/addBm.php
@@ -0,0 +1,48 @@
+<?php
+
+/**
+* ownCloud - bookmarks plugin
+*
+* @author Arthur Schiwon
+* @copyright 2011 Arthur Schiwon blizzz@arthur-schiwon.de
+*
+* 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/>.
+*
+*/
+
+require_once('../../lib/base.php');
+
+// Check if we are a user
+if( !OC_User::isLoggedIn()){
+ header( 'Location: '.OC_Helper::linkTo( '', 'index.php' ));
+ exit();
+}
+
+require_once('bookmarksHelper.php');
+
+OC_App::setActiveNavigationEntry( 'bookmarks_index' );
+
+OC_Util::addScript('bookmarks','addBm');
+OC_Util::addStyle('bookmarks', 'bookmarks');
+
+$tmpl = new OC_Template( 'bookmarks', 'addBm', 'user' );
+
+$url = isset($_GET['url']) ? urldecode($_GET['url']) : '';
+$metadata = getURLMetadata($url);
+
+$tmpl->assign('URL', htmlentities($url));
+$tmpl->assign('TITLE', htmlentities($metadata['title']));
+$tmpl->assign('DESCRIPTION', htmlentities($metadata['description']));
+
+$tmpl->printPage(); \ No newline at end of file
diff --git a/apps/bookmarks/ajax/getMeta.php b/apps/bookmarks/ajax/getMeta.php
index c61c8fb4888..dadf23afd91 100644
--- a/apps/bookmarks/ajax/getMeta.php
+++ b/apps/bookmarks/ajax/getMeta.php
@@ -35,24 +35,10 @@ if( !OC_User::isLoggedIn()){
exit();
}
-$metadata = array();
+// $metadata = array();
-$url = urldecode($_GET["url"]);
-//allow only http(s) and (s)ftp
-$protocols = '/^[hs]{0,1}[tf]{0,1}tp[s]{0,1}\:\/\//i';
-//if not (allowed) protocol is given, assume http
-if(preg_match($protocols, $url) == 0) {
- $url = 'http://' . $url;
-}
+require '../bookmarksHelper.php';
-$page = file_get_contents($url);
-@preg_match( "/<title>(.*)<\/title>/si", $page, $match );
-$metadata['title'] = htmlentities(strip_tags(@$match[1]));
-
-$meta = get_meta_tags($url);
-
-if(array_key_exists('description', $meta)) {
- $metadata['description'] = $meta['description'];
-}
+$metadata = getURLMetadata(urldecode($_GET["url"]));
echo json_encode( array( 'status' => 'success', 'data' => $metadata));
diff --git a/apps/bookmarks/bookmarksHelper.php b/apps/bookmarks/bookmarksHelper.php
new file mode 100644
index 00000000000..be6ac098d0f
--- /dev/null
+++ b/apps/bookmarks/bookmarksHelper.php
@@ -0,0 +1,22 @@
+<?php
+
+function getURLMetadata($url) {
+ //allow only http(s) and (s)ftp
+ $protocols = '/^[hs]{0,1}[tf]{0,1}tp[s]{0,1}\:\/\//i';
+ //if not (allowed) protocol is given, assume http
+ if(preg_match($protocols, $url) == 0) {
+ $url = 'http://' . $url;
+ }
+
+ $page = file_get_contents($url);
+ @preg_match( "/<title>(.*)<\/title>/si", $page, $match );
+ $metadata['title'] = htmlentities(strip_tags(@$match[1]));
+
+ $meta = get_meta_tags($url);
+
+ if(array_key_exists('description', $meta)) {
+ $metadata['description'] = $meta['description'];
+ }
+
+ return $metadata;
+} \ No newline at end of file
diff --git a/apps/bookmarks/js/addBm.js b/apps/bookmarks/js/addBm.js
new file mode 100644
index 00000000000..7c914f2338a
--- /dev/null
+++ b/apps/bookmarks/js/addBm.js
@@ -0,0 +1,17 @@
+$(document).ready(function() {
+ $('#bookmark_add_submit').click(addBookmark);
+});
+
+function addBookmark(event) {
+ var url = $('#bookmark_add_url').val();
+ var title = $('#bookmark_add_title').val();
+ var description = $('#bookmark_add_description').val();
+ var tags = $('#bookmark_add_tags').val();
+ $.ajax({
+ url: 'ajax/addBookmark.php',
+ data: 'url=' + encodeURI(url) + '&title=' + encodeURI(title) + '&description=' + encodeURI(description) + '&tags=' + encodeURI(tags),
+ success: function(data){
+ location.href='index.php';
+ }
+ });
+} \ No newline at end of file
diff --git a/apps/bookmarks/templates/addBm.php b/apps/bookmarks/templates/addBm.php
new file mode 100644
index 00000000000..cbc4910e1ae
--- /dev/null
+++ b/apps/bookmarks/templates/addBm.php
@@ -0,0 +1,8 @@
+<div class="bookmarks_addBm">
+ <p><label class="bookmarks_label">Address</label><input type="text" id="bookmark_add_url" class="bookmarks_input" value="<? echo $_['URL']; ?>"/></p>
+ <p><label class="bookmarks_label">Title</label><input type="text" id="bookmark_add_title" class="bookmarks_input" value="<? echo $_['TITLE']; ?>" /></p>
+ <p><label class="bookmarks_label">Description</label><input type="text" id="bookmark_add_description" class="bookmarks_input" value="<? echo $_['DESCRIPTION']; ?>" /></p>
+ <p><label class="bookmarks_label">Tags</label><input type="text" id="bookmark_add_tags" class="bookmarks_input" /></p>
+ <p><label class="bookmarks_label"> </label><label class="bookmarks_hint">Hint: Use space to separate tags.</label></p>
+ <p><label class="bookmarks_label"></label><input type="submit" id="bookmark_add_submit" /></p>
+</div> \ No newline at end of file
diff --git a/apps/bookmarks/templates/list.php b/apps/bookmarks/templates/list.php
index a9e65b68873..d7d37257a8a 100644
--- a/apps/bookmarks/templates/list.php
+++ b/apps/bookmarks/templates/list.php
@@ -2,6 +2,7 @@
<h2 class="bookmarks_headline"><?php echo isset($_GET["tag"]) ? 'Bookmarks with tag: ' . urldecode($_GET["tag"]) : 'All bookmarks'; ?></h2>
<div class="bookmarks_menu">
<input type="button" class="bookmarks_addBtn" value="Add Bookmark" />
+ <a type="button" class="bookmarks_addBml" href="javascript:var url = encodeURI(location.href);window.open('<?php echo (isset($_SERVER['HTTPS']) ? 'https://' : 'http://') . $_SERVER['HTTP_HOST'] . OC_Helper::linkTo('bookmarks', 'addBm.php'); ?>?url='+url, 'owncloud-bookmarks');" title="Drag this to your browser bookmarks and click it, when you want to bookmark a webpage.">Bookmarklet</a>
</div>
<div class="bookmarks_add">
<p><label class="bookmarks_label">Address</label><input type="text" id="bookmark_add_url" class="bookmarks_input" /></p>