diff options
author | Dries Buytaert <dries@buytaert.net> | 2010-01-29 22:56:54 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2010-01-29 22:56:54 +0000 |
commit | 56026aa2924bc6cfd1cb09a60d1880cbd67a567c (patch) | |
tree | 52b18c540f9c4610c62bbdbaa1ae2c4ed8e1975d /modules/taxonomy/taxonomy.tokens.inc | |
parent | 1df3cfffefefc93ed2d29041d148938d08bb9d4e (diff) | |
download | brdo-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.inc | 22 |
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; } |