From 146c63e90cd46b727fdc34acb1b224656d81efc5 Mon Sep 17 00:00:00 2001 From: mensonge Date: Fri, 14 Mar 2008 15:18:01 +0000 Subject: Feature improvement: make rename tags more consistent (with regards to linked tags) git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@85 b3834d28-1941-0410-a4f8-b48e95affb8f --- locales/fr_FR/LC_MESSAGES/messages.mo | Bin 18918 -> 18915 bytes locales/fr_FR/LC_MESSAGES/messages.po | 8 ++++---- services/tag2tagservice.php | 24 ++++++++++++++++++++++++ tagrename.php | 9 ++++++--- tests/tag2TagTest.php | 30 ++++++++++++++++++++---------- 5 files changed, 54 insertions(+), 17 deletions(-) diff --git a/locales/fr_FR/LC_MESSAGES/messages.mo b/locales/fr_FR/LC_MESSAGES/messages.mo index 2d4eba5..ab44a15 100644 Binary files a/locales/fr_FR/LC_MESSAGES/messages.mo and b/locales/fr_FR/LC_MESSAGES/messages.mo differ diff --git a/locales/fr_FR/LC_MESSAGES/messages.po b/locales/fr_FR/LC_MESSAGES/messages.po index 3c1a96a..714236e 100644 --- a/locales/fr_FR/LC_MESSAGES/messages.po +++ b/locales/fr_FR/LC_MESSAGES/messages.po @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: Scuttle\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-03-14 11:42+0100\n" -"PO-Revision-Date: 2008-03-14 11:43+0100\n" +"PO-Revision-Date: 2008-03-14 16:06+0100\n" "Last-Translator: BenjaminHKB \n" "Language-Team: fr-FR \n" "MIME-Version: 1.0\n" @@ -490,14 +490,14 @@ msgstr "Tag renommé" #: ../../../tagrename.php:50 msgid "Failed to rename the tag" -msgstr "Erreur dans la suppression du tag" +msgstr "Erreur dans le renommage du tag" #: ../../../tagrename.php:57 #: ../../../templates/sidebar.block.tagactions.php:11 msgid "Rename Tag" msgid_plural "Rename Tags" msgstr[0] "Renommer le tag" -msgstr[1] "TRenommer les tags" +msgstr[1] "Renommer les tags" #: ../../../tags.php:38 #: ../../../templates/editbookmark.tpl.php:44 @@ -1043,7 +1043,7 @@ msgstr "Ancien" #: ../../../templates/tagrename.tpl.php:17 msgid "New" -msgstr "Nouvaeu" +msgstr "Nouveau" #: ../../../templates/tagrename.tpl.php:24 msgid "Rename" diff --git a/services/tag2tagservice.php b/services/tag2tagservice.php index d3a4a77..ee26a11 100644 --- a/services/tag2tagservice.php +++ b/services/tag2tagservice.php @@ -231,6 +231,30 @@ class Tag2TagService { return true; } + function renameTag($uId, $oldName, $newName) { + $query = 'UPDATE `'. $this->getTableName() .'`'; + $query.= ' SET tag1="'.$newName.'"'; + $query.= ' WHERE tag1="'.$oldName.'"'; + $query.= ' AND uId="'.$uId.'"'; + $this->db->sql_query($query); + + $query = 'UPDATE `'. $this->getTableName() .'`'; + $query.= ' SET tag2="'.$newName.'"'; + $query.= ' WHERE tag2="'.$oldName.'"'; + $query.= ' AND uId="'.$uId.'"'; + $this->db->sql_query($query); + + // Update stats + $tsts =& ServiceFactory::getServiceInstance('TagStatService'); + $tsts->updateStat($oldName, '=', $uId); + $tsts->updateStat($oldName, '>', $uId); + $tsts->updateStat($newName, '=', $uId); + $tsts->updateStat($newName, '>', $uId); + + return true; + + } + function deleteAll() { $query = 'TRUNCATE TABLE `'. $this->getTableName() .'`'; $this->db->sql_query($query); diff --git a/tagrename.php b/tagrename.php index 2d611a7..18e9675 100644 --- a/tagrename.php +++ b/tagrename.php @@ -21,10 +21,12 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA require_once('header.inc.php'); $tagservice = & ServiceFactory :: getServiceInstance('TagService'); +$tag2tagservice = & ServiceFactory :: getServiceInstance('Tag2tagService'); $templateservice = & ServiceFactory :: getServiceInstance('TemplateService'); $userservice = & ServiceFactory :: getServiceInstance('UserService'); -$tag = isset($_GET['query']) ? $_GET['query'] : NULL; +list ($url, $tag) = explode('/', $_SERVER['PATH_INFO']); +//$tag = isset($_GET['query']) ? $_GET['query'] : NULL; $template = 'tagrename.tpl'; if ($_POST['confirm']) { @@ -41,7 +43,8 @@ if ($_POST['confirm']) { if ( !is_null($old) && !is_null($new) && - $tagservice->renameTag($userservice->getCurrentUserId(), $old, $new) + $tagservice->renameTag($userservice->getCurrentUserId(), $old, $new) && + $tag2tagservice->renameTag($userservice->getCurrentUserId(), $old, $new) ) { $tplVars['msg'] = T_('Tag renamed'); $logged_on_user = $userservice->getCurrentUser(); @@ -60,4 +63,4 @@ if ($_POST['confirm']) { $tplVars['old'] = $tag; } $templateservice->loadTemplate($template, $tplVars); -?> \ No newline at end of file +?> diff --git a/tests/tag2TagTest.php b/tests/tag2TagTest.php index ea0adf0..c356be8 100644 --- a/tests/tag2TagTest.php +++ b/tests/tag2TagTest.php @@ -430,24 +430,34 @@ class Tag2TagTest extends PHPUnit_Framework_TestCase $tsts = $this->tsts; // with classic tags (users 10 & 20) - $tags = array('a', 'b', 'c'); - $bs->addBookmark("http://site1.com", "title", "description", "status", $tags, null, false, false, 10); + $bs->addBookmark("http://site1.com", "title", "description", "status", array('tag1', 'tag11', 'tag111'), null, false, false, 1); + $bs->addBookmark("http://site1.com", "title2", "description2", "status", array('tag2', 'tag22', 'tag222'), null, false, false, 2); - $tags = array('a', 'b', 'c'); - $bs->addBookmark("http://site2.com", "title", "description", "status", $tags, null, false, false, 20); + $bookmarks =& $bs->getBookmarks(0, 1, NULL, NULL, NULL, getSortOrder(), NULL, 0, $dtend); + $this->assertEquals(1, $bookmarks['total']); - $bookmarks = $bs->getBookmarks(0, NULL, 10, 'a'); - $this->assertSame(array(), $bookmarks); - - $ts->renameTag(10, 'a', 'ddd'); + $ts->renameTag(1, 'tag1', 'newtag1'); $tags1 = $ts->getTagsForBookmark(1); - $this->assertSame(array('b', 'c', 'ddd'), $tags1); + $this->assertSame(array('newtag1', 'tag11', 'tag111'), $tags1); + $tags1 = $ts->getTagsForBookmark(2); + $this->assertSame(array('tag2', 'tag22', 'tag222'), $tags1); //should not be changed // with linked tags $tts->addLinkedTags('b', 'c', '>', 1); - $tts->addLinkedTags('a', 'd', '>', 1); + $tts->addLinkedTags('a', 'b', '>', 1); + $tts->addLinkedTags('b', 'a', '>', 2); // should not be modified because of userid + + $tts->renameTag(1, 'b', 'e'); + $linkedTags = $tts->getLinkedTags('e', '>', 1); + $this->assertSame(array('c'), $linkedTags); + $linkedTags = $tts->getLinkedTags('a', '>', 1); + $this->assertSame(array('e'), $linkedTags); + $linkedTags = $tts->getLinkedTags('b', '>', 2); + $this->assertSame(array('a'), $linkedTags); + + //with stats -- cgit v1.2.3