]> source.dussan.org Git - nextcloud-server.git/commitdiff
Added a Bookmarklet for the Bookmarks app
authorArthur Schiwon <blizzz@arthur-schiwon.de>
Wed, 24 Aug 2011 20:16:44 +0000 (22:16 +0200)
committerArthur Schiwon <blizzz@arthur-schiwon.de>
Wed, 24 Aug 2011 20:16:44 +0000 (22:16 +0200)
apps/bookmarks/addBm.php [new file with mode: 0644]
apps/bookmarks/ajax/getMeta.php
apps/bookmarks/bookmarksHelper.php [new file with mode: 0644]
apps/bookmarks/js/addBm.js [new file with mode: 0644]
apps/bookmarks/templates/addBm.php [new file with mode: 0644]
apps/bookmarks/templates/list.php

diff --git a/apps/bookmarks/addBm.php b/apps/bookmarks/addBm.php
new file mode 100644 (file)
index 0000000..d308e8f
--- /dev/null
@@ -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
index c61c8fb4888d7afe2b0112704eb9260d64288d0c..dadf23afd9172cd8c386b99939d89b4bf319bd63 100644 (file)
@@ -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 (file)
index 0000000..be6ac09
--- /dev/null
@@ -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 (file)
index 0000000..7c914f2
--- /dev/null
@@ -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 (file)
index 0000000..cbc4910
--- /dev/null
@@ -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
index a9e65b688732328b1ecbbb5071e4d446b58043a3..d7d37257a8a0b11a3367dca8c05479890e734855 100644 (file)
@@ -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>