summaryrefslogtreecommitdiff
path: root/modules/taxonomy/taxonomy.tokens.inc
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2010-01-29 22:56:54 +0000
committerDries Buytaert <dries@buytaert.net>2010-01-29 22:56:54 +0000
commit56026aa2924bc6cfd1cb09a60d1880cbd67a567c (patch)
tree52b18c540f9c4610c62bbdbaa1ae2c4ed8e1975d /modules/taxonomy/taxonomy.tokens.inc
parent1df3cfffefefc93ed2d29041d148938d08bb9d4e (diff)
downloadbrdo-56026aa2924bc6cfd1cb09a60d1880cbd67a567c.tar.gz
brdo-56026aa2924bc6cfd1cb09a60d1880cbd67a567c.tar.bz2
- Patch #610022 by mcarbone, te-brian, David_Rothstein: fixed taxonomy tokens, fix old queries.
Diffstat (limited to 'modules/taxonomy/taxonomy.tokens.inc')
-rw-r--r--modules/taxonomy/taxonomy.tokens.inc22
1 files changed, 15 insertions, 7 deletions
diff --git a/modules/taxonomy/taxonomy.tokens.inc b/modules/taxonomy/taxonomy.tokens.inc
index ae9a7f2de..03268b28f 100644
--- a/modules/taxonomy/taxonomy.tokens.inc
+++ b/modules/taxonomy/taxonomy.tokens.inc
@@ -119,12 +119,14 @@ function taxonomy_tokens($type, $tokens, array $data = array(), array $options =
break;
case 'url':
- $replacements[$original] = url('taxonomy/term/' . $term, array('absolute' => TRUE));
+ $replacements[$original] = url('taxonomy/term/' . $term->tid, array('absolute' => TRUE));
break;
case 'node-count':
- $sql = "SELECT COUNT (1) FROM {taxonomy_term_node} tn WHERE tn.tid = :tid";
- $count = db_query($sql, array(':tid' => $term->tid))->fetchField();
+ $query = db_select('taxonomy_index');
+ $query->condition('tid', $term->tid);
+ $query->addTag('term_node_count');
+ $count = $query->countQuery()->execute()->fetchField();
$replacements[$original] = $count;
break;
@@ -171,14 +173,20 @@ function taxonomy_tokens($type, $tokens, array $data = array(), array $options =
break;
case 'term-count':
- $sql = "SELECT COUNT (1) FROM {taxonomy_term_data} td WHERE td.vid = :vid";
- $count = db_query($sql, array(':vid' => $vocabulary->vid))->fetchField();
+ $query = db_select('taxonomy_term_data');
+ $query->condition('vid', $vocabulary->vid);
+ $query->addTag('vocabulary_term_count');
+ $count = $query->countQuery()->execute()->fetchField();
$replacements[$original] = $count;
break;
case 'node-count':
- $sql = "SELECT COUNT (1) FROM {taxonomy_term_node} tn LEFT JOIN {taxonomy_term_data} td ON tn.tid = td.tid WHERE td.vid = :vid";
- $count = db_query($sql, array(':vid' => $vocabulary->vid))->fetchField();
+ $query = db_select('taxonomy_index', 'ti');
+ $query->addExpression('COUNT(DISTINCT ti.nid)');
+ $query->leftJoin('taxonomy_term_data', 'td', 'ti.tid = td.tid');
+ $query->condition('td.vid', $vocabulary->vid);
+ $query->addTag('vocabulary_node_count');
+ $count = $query->execute()->fetchField();
$replacements[$original] = $count;
break;
}