From c385dc63425ade7a15ac9abc8f2d931e8141e412 Mon Sep 17 00:00:00 2001 From: mensonge Date: Wed, 23 Jan 2008 16:58:00 +0000 Subject: [PATCH] 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 --- admin.php | 2 +- bookmarks.php | 2 +- services/bookmarkservice.php | 16 +++++++++----- tests/bookmarksTest.php | 43 ++++++++++++++++++++++++++++++++++++ 4 files changed, 55 insertions(+), 8 deletions(-) create mode 100644 tests/bookmarksTest.php 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 @@ +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); + } +} +?>