summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorGravatar mensonge2008-01-23 16:58:00 +0000
committerGravatar mensonge2008-01-23 16:58:00 +0000
commitc385dc63425ade7a15ac9abc8f2d931e8141e412 (patch)
treee003a2462533e7c9e4c70156dd494ca3ccc66d9a
parent47f8a6dd9ebb1d7e7595215186db18522f4ea0de (diff)
downloadscuttle-c385dc63425ade7a15ac9abc8f2d931e8141e412.tar.gz
scuttle-c385dc63425ade7a15ac9abc8f2d931e8141e412.zip
Interface design: merging of bookmarks with same URLs
git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@24 b3834d28-1941-0410-a4f8-b48e95affb8f
-rw-r--r--admin.php2
-rw-r--r--bookmarks.php2
-rw-r--r--services/bookmarkservice.php16
-rw-r--r--tests/bookmarksTest.php43
4 files changed, 55 insertions, 8 deletions
diff --git a/admin.php b/admin.php
index 81dde3c..f33daf3 100644
--- a/admin.php
+++ b/admin.php
@@ -21,7 +21,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
// Uncomment the following lines to execute the admin script. Don't forget to re-comment them after using.
-/*
+/*
require_once('header.inc.php');
$tagstatservice = & ServiceFactory :: getServiceInstance('TagStatService');
$templateservice = & ServiceFactory :: getServiceInstance('TemplateService');
diff --git a/bookmarks.php b/bookmarks.php
index 8b1644e..4c0a2a9 100644
--- a/bookmarks.php
+++ b/bookmarks.php
@@ -207,7 +207,7 @@ if ($templatename == 'editbookmark.tpl') {
$tplVars['page'] = $page;
$tplVars['start'] = $start;
$tplVars['bookmarkCount'] = $start + 1;
-
+
$bookmarks =& $bookmarkservice->getBookmarks($start, $perpage, $userid, $cat, $terms, getSortOrder());
$tplVars['total'] = $bookmarks['total'];
$tplVars['bookmarks'] =& $bookmarks['bookmarks'];
diff --git a/services/bookmarkservice.php b/services/bookmarkservice.php
index fdb49a0..3181123 100644
--- a/services/bookmarkservice.php
+++ b/services/bookmarkservice.php
@@ -277,24 +277,28 @@ class BookmarkService {
$query_3 .= ' AND ('. $query_3_1 .') AND B.bStatus IN (0, 1)';
}
+ if($hash == null) {
+ $query_5.= ' GROUP BY B.bHash';
+ }
+
switch($sortOrder) {
case 'date_asc':
- $query_5 = ' ORDER BY B.bDatetime ASC ';
+ $query_5.= ' ORDER BY B.bDatetime ASC ';
break;
case 'title_desc':
- $query_5 = ' ORDER BY B.bTitle DESC ';
+ $query_5.= ' ORDER BY B.bTitle DESC ';
break;
case 'title_asc':
- $query_5 = ' ORDER BY B.bTitle ASC ';
+ $query_5.= ' ORDER BY B.bTitle ASC ';
break;
case 'url_desc':
- $query_5 = ' ORDER BY B.bAddress DESC ';
+ $query_5.= ' ORDER BY B.bAddress DESC ';
break;
case 'url_asc':
- $query_5 = ' ORDER BY B.bAddress ASC ';
+ $query_5.= ' ORDER BY B.bAddress ASC ';
break;
default:
- $query_5 = ' ORDER BY B.bDatetime DESC ';
+ $query_5.= ' ORDER BY B.bDatetime DESC ';
}
// Handle the parts of the query that depend on any tags that are present.
diff --git a/tests/bookmarksTest.php b/tests/bookmarksTest.php
new file mode 100644
index 0000000..dea250d
--- /dev/null
+++ b/tests/bookmarksTest.php
@@ -0,0 +1,43 @@
+<?php
+require_once 'PHPUnit/Framework.php';
+
+/*
+To launch this test, type the following line into a shell
+at the root of the scuttlePlus directory :
+ phpunit BookmarksTest tests/bookmarksTest.php
+*/
+
+class BookmarksTest extends PHPUnit_Framework_TestCase
+{
+ protected $us;
+ protected $bs;
+ protected $ts;
+ protected $tts;
+
+ protected function setUp()
+ {
+ global $dbhost, $dbuser, $dbpass, $dbname, $dbport, $dbpersist, $dbtype, $tableprefix;
+ require_once('./header.inc.php');
+
+ $this->us =& ServiceFactory::getServiceInstance('UserService');
+ $this->bs =& ServiceFactory::getServiceInstance('BookmarkService');
+ $this->bs->deleteAll();
+ $this->ts =& ServiceFactory::getServiceInstance('TagService');
+ $this->ts->deleteAll();
+ $this->tts =& ServiceFactory::getServiceInstance('Tag2TagService');
+ $this->tts->deleteAll();
+ $this->tsts =& ServiceFactory::getServiceInstance('TagStatService');
+ $this->tsts->deleteAll();
+ }
+
+ public function testUnificationOfBookmarks()
+ {
+ $bs = $this->bs;
+
+ $bs->addBookmark("http://site1.com", "title", "description", "status", array('tag1'), null, false, false, 1);
+ $bs->addBookmark("http://site1.com", "title2", "description2", "status", array('tag2'), null, false, false, 2);
+
+ $bookmarks =& $bs->getBookmarks(0, 1, NULL, NULL, NULL, getSortOrder(), NULL, 0, $dtend);
+ }
+}
+?>