From e842db722e09eeaaee236f67a84b0f4542ace67f Mon Sep 17 00:00:00 2001 From: "Michael J. Rubinsky" Date: Fri, 28 May 2010 14:57:28 -0400 Subject: [PATCH] We might not find *any* tags - return an array of object_ids in this case. --- content/lib/Tagger.php | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/content/lib/Tagger.php b/content/lib/Tagger.php index 2a54e4270..c9f091475 100644 --- a/content/lib/Tagger.php +++ b/content/lib/Tagger.php @@ -208,14 +208,20 @@ class Content_Tagger public function getTagsByObjects($objects, $type) { $object_ids = $this->_objectManager->exists($objects, $type); - $sql = 'SELECT DISTINCT tag_name, tagged.object_id FROM ' . $this->_t('tags') . ' AS t INNER JOIN ' . $this->_t('tagged') . ' AS tagged ON t.tag_id = tagged.tag_id AND tagged.object_id IN (' . str_repeat('?,', count($object_ids) - 1) . '?)'; - $tags = $this->_db->selectAll($sql, array_keys($object_ids)); $results = array(); - foreach ($tags as $tag) { - if (empty($results[$object_ids[$tag['object_id']]])) { - $results[$object_ids[$tag['object_id']]] = array(); + if (!$object_ids) { + foreach ($object_ids as $id) { + $results[$id] = array(); + } + } else { + $sql = 'SELECT DISTINCT tag_name, tagged.object_id FROM ' . $this->_t('tags') . ' AS t INNER JOIN ' . $this->_t('tagged') . ' AS tagged ON t.tag_id = tagged.tag_id AND tagged.object_id IN (' . str_repeat('?,', count($object_ids) - 1) . '?)'; + $tags = $this->_db->selectAll($sql, array_keys($object_ids)); + foreach ($tags as $tag) { + if (empty($results[$object_ids[$tag['object_id']]])) { + $results[$object_ids[$tag['object_id']]] = array(); + } + $results[$object_ids[$tag['object_id']]][] = $tag['tag_name']; } - $results[$object_ids[$tag['object_id']]][] = $tag['tag_name']; } return $results; -- 2.11.0