From 24696800e5caac6e37ebd2ac166578a9b18aba9d Mon Sep 17 00:00:00 2001 From: tcit Date: Wed, 14 May 2014 18:51:02 +0200 Subject: [PATCH] Simplifed function which does tag cleanup --- inc/poche/Database.class.php | 17 +++++++++-------- inc/poche/Poche.class.php | 6 ++++-- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/inc/poche/Database.class.php b/inc/poche/Database.class.php index 02e8be8b..9e901974 100755 --- a/inc/poche/Database.class.php +++ b/inc/poche/Database.class.php @@ -512,22 +512,23 @@ class Database { return $query; } - public function cleanUnusedTags() { - $sql_action = "SELECT tags.* FROM tags JOIN tags_entries ON tags_entries.tag_id=tags.id"; - $query = $this->executeQuery($sql_action,array()); + public function cleanUnusedTag($tag_id) { + $sql_action = "SELECT tags.* FROM tags JOIN tags_entries ON tags_entries.tag_id=tags.id WHERE tags.id=?"; + $query = $this->executeQuery($sql_action,array($tag_id)); $tagstokeep = $query->fetchAll(); - $sql_action = "SELECT tags.* FROM tags LEFT JOIN tags_entries ON tags_entries.tag_id=tags.id"; - $query = $this->executeQuery($sql_action,array()); + $sql_action = "SELECT tags.* FROM tags LEFT JOIN tags_entries ON tags_entries.tag_id=tags.id WHERE tags.id=?"; + $query = $this->executeQuery($sql_action,array($tag_id)); $alltags = $query->fetchAll(); + foreach ($alltags as $tag) { if ($tag && !in_array($tag,$tagstokeep)) { - //delete tag $sql_action = "DELETE FROM tags WHERE id=?"; $params_action = array($tag[0]); - $query = $this->executeQuery($sql_action, $params_action); - return $query; + $this->executeQuery($sql_action, $params_action); + return true; } } + } public function retrieveTagByValue($value) { diff --git a/inc/poche/Poche.class.php b/inc/poche/Poche.class.php index 8ea5e7a2..515d4cac 100755 --- a/inc/poche/Poche.class.php +++ b/inc/poche/Poche.class.php @@ -559,6 +559,7 @@ class Poche } } $this->messages->add('s', _('The tag has been applied successfully')); + Tools::logm('The tag has been applied successfully'); Tools::redirect(); break; case 'remove_tag' : @@ -571,8 +572,9 @@ class Poche } $this->store->removeTagForEntry($id, $tag_id); Tools::logm('tag entry deleted'); - $this->store->cleanUnusedTags(); - Tools::logm('old tags cleaned'); + if ($this->store->cleanUnusedTag($tag_id)) { + Tools::logm('tag deleted'); + } $this->messages->add('s', _('The tag has been successfully deleted')); Tools::redirect(); break; -- 2.41.0