diff --git a/services/tagservice.php b/services/tagservice.php index 256afc5..1aba11e 100644 --- a/services/tagservice.php +++ b/services/tagservice.php @@ -146,11 +146,14 @@ class TagService { return true; } - function deleteTag($tag) { - $userservice =& ServiceFactory::getServiceInstance('UserService'); - $logged_on_user = $userservice->getCurrentUserId(); + function deleteTag($uId, $tag) { + $bs =& ServiceFactory::getServiceInstance('BookmarkService'); - $query = 'DELETE FROM '. $this->getTableName() .' USING '. $GLOBALS['tableprefix'] .'tags, '. $GLOBALS['tableprefix'] .'bookmarks WHERE '. $GLOBALS['tableprefix'] .'tags.bId = '. $GLOBALS['tableprefix'] .'bookmarks.bId AND '. $GLOBALS['tableprefix'] .'bookmarks.uId = '. $logged_on_user .' AND '. $GLOBALS['tableprefix'] .'tags.tag = "'. $this->db->sql_escape($tag) .'"'; + $query = 'DELETE FROM '. $this->getTableName(); + $query.= ' USING '. $this->getTableName() .', '. $bs->getTableName(); + $query.= ' WHERE '. $this->getTableName() .'.bId = '. $bs->getTableName() .'.bId'; + $query.= ' AND '. $bs->getTableName() .'.uId = '. $uId; + $query.= ' AND '. $this->getTableName() .'.tag = "'. $this->db->sql_escape($tag) .'"'; if (!($dbresult =& $this->db->sql_query($query))) { message_die(GENERAL_ERROR, 'Could not delete tags', '', __LINE__, __FILE__, $query, $this->db); @@ -349,7 +352,7 @@ class TagService { $bookmarks =& $bookmarksInfo['bookmarks']; // Delete old tag - $this->deleteTag($old); + $this->deleteTag($userid, $old); // Attach new tags foreach(array_keys($bookmarks) as $key) { diff --git a/services/tagstatservice.php b/services/tagstatservice.php index fa416f4..ec5f814 100644 --- a/services/tagstatservice.php +++ b/services/tagstatservice.php @@ -55,7 +55,7 @@ class TagStatService { }; } - function getNbUpdate($tag1, $relationType, $uId) { + function getNbUpdates($tag1, $relationType, $uId) { $query = "SELECT nbupdate FROM `". $this->getTableName() ."`"; $query.= " WHERE tag1 = '" .$tag1 ."'"; $query.= " AND relationType = '". $relationType ."'"; diff --git a/tagdelete.php b/tagdelete.php index 9f11bdd..c5325c5 100644 --- a/tagdelete.php +++ b/tagdelete.php @@ -24,12 +24,13 @@ $tagservice = & ServiceFactory :: getServiceInstance('TagService'); $templateservice = & ServiceFactory :: getServiceInstance('TemplateService'); $userservice = & ServiceFactory :: getServiceInstance('UserService'); +$logged_on_user = $userservice->getCurrentUser(); + list ($url, $tag) = explode('/', $_SERVER['PATH_INFO']); if ($_POST['confirm']) { - if ($tagservice->deleteTag($tag)) { - $tplVars['msg'] = T_('Tag deleted'); - $logged_on_user = $userservice->getCurrentUser(); + if ($tagservice->deleteTag($logged_on_user['uId'], $tag)) { + $tplVars['msg'] = T_('Tag deleted'); header('Location: '. createURL('bookmarks', $logged_on_user[$userservice->getFieldName('username')])); } else { $tplVars['error'] = T_('Failed to delete the tag'); @@ -37,7 +38,6 @@ if ($_POST['confirm']) { exit(); } } elseif ($_POST['cancel']) { - $logged_on_user = $userservice->getCurrentUser(); header('Location: '. createURL('bookmarks', $logged_on_user[$userservice->getFieldName('username')] .'/'. $tags)); } @@ -45,4 +45,4 @@ $tplVars['subtitle'] = T_('Delete Tag') .': '. $tag; $tplVars['formaction'] = $_SERVER['SCRIPT_NAME'] .'/'. $tag; $tplVars['referrer'] = $_SERVER['HTTP_REFERER']; $templateservice->loadTemplate('tagdelete.tpl', $tplVars); -?> \ No newline at end of file +?>