]> source.dussan.org Git - nextcloud-server.git/commitdiff
fix: URLs without protocol are now linked to via HTTP
authorArthur Schiwon <blizzz@arthur-schiwon.de>
Thu, 25 Aug 2011 11:23:52 +0000 (13:23 +0200)
committerArthur Schiwon <blizzz@arthur-schiwon.de>
Thu, 25 Aug 2011 11:23:52 +0000 (13:23 +0200)
apps/bookmarks/addBm.php
apps/bookmarks/ajax/addBookmark.php
apps/bookmarks/bookmarksHelper.php
apps/bookmarks/js/bookmarks.js

index d308e8fe605371cd20291083a6429dfe56a1ca81..2dab33afb22d4351aba9f1696023c5e84f30eb2e 100644 (file)
@@ -41,7 +41,7 @@ $tmpl = new OC_Template( 'bookmarks', 'addBm', 'user' );
 $url = isset($_GET['url']) ? urldecode($_GET['url']) : '';
 $metadata = getURLMetadata($url);
 
-$tmpl->assign('URL', htmlentities($url));
+$tmpl->assign('URL', htmlentities($metadata['url']));
 $tmpl->assign('TITLE', htmlentities($metadata['title']));
 $tmpl->assign('DESCRIPTION', htmlentities($metadata['description']));
 
index d3d23aad2678a6a90b02e4a4fd4310407f8d3832..d066b0b32ff5ad13550e3e44feace68a044cf09d 100644 (file)
@@ -59,7 +59,6 @@ $params=array(
 $query->execute($params);
 $b_id = OC_DB::insertid();
 
-
 if($b_id !== false) {
        $query = OC_DB::prepare("
                INSERT INTO *PREFIX*bookmarks_tags
index be6ac098d0fb8d454faa5a631ef77aea4dfda21c..383a8ddd565539bec7268a97cddc911ce722a682 100644 (file)
@@ -7,6 +7,7 @@ function getURLMetadata($url) {
        if(preg_match($protocols, $url) == 0) {
                $url = 'http://' . $url;
        } 
+       $metadata['url'] = $url;
 
        $page = file_get_contents($url);
        @preg_match( "/<title>(.*)<\/title>/si", $page, $match );
index 93b21c3243ebcf0ed86f5ea904b3d4975f6c52bb..760ae96b9e64c3c59122755e38ba3cfe0f3f8484 100644 (file)
@@ -49,7 +49,8 @@ function getMetadata() {
        $.ajax({
                url: 'ajax/getMeta.php',
                data: 'url=' + encodeURI(url),
-               success: function(pageinfo){ 
+               success: function(pageinfo){
+                       $('#bookmark_add_url').val(pageinfo.data.url);
                        $('#bookmark_add_description').val(pageinfo.data.description);
                        $('#bookmark_add_title').val(pageinfo.data.title);
                }
@@ -111,6 +112,9 @@ function updateBookmarksList(bookmark) {
        for ( var i=0, len=tags.length; i<len; ++i ){
                taglist = taglist + '<a class="bookmark_tags" href="?tag=' + encodeURI(tags[i]) + '">' + tags[i] + '</a> ';
        }
+       if(!hasProtocol(bookmark.url)) {
+               bookmark.url = 'http://' + bookmark.url;
+       }
        $('.bookmarks_list').append(
                '<div class="bookmark_single">' +
                        '<p class="bookmark_title"><a href="' + encodeEntities(bookmark.url) + '" target="_new" class="bookmark_link">' + encodeEntities(bookmark.title) + '</a></p>' +
@@ -144,3 +148,8 @@ function encodeEntities(s){
                return "";
        }
 }
+
+function hasProtocol(url) {
+    var regexp = /(ftp|http|https|sftp)/;
+    return regexp.test(url);
+}