Commit 52d9dd1b authored by Dries's avatar Dries

- Patch #11977 by matteo: taxonomy_term_count() did not take node-level...

- Patch #11977 by matteo: taxonomy_term_count() did not take node-level permissions into account and could return an incorrect number.
parent 40f6197c
...@@ -642,10 +642,10 @@ function taxonomy_term_count_nodes($tid, $type = 0) { ...@@ -642,10 +642,10 @@ function taxonomy_term_count_nodes($tid, $type = 0) {
if (!isset($count[$type])) { if (!isset($count[$type])) {
// $type == 0 always evaluates true is $type is a string // $type == 0 always evaluates true is $type is a string
if (is_numeric($type)) { if (is_numeric($type)) {
$result = db_query('SELECT t.tid, COUNT(*) AS c FROM {term_node} t INNER JOIN {node} n ON t.nid = n.nid WHERE n.status = 1 GROUP BY t.tid'); $result = db_query('SELECT t.tid, COUNT(*) AS c FROM {term_node} t '. node_access_join_sql() .'INNER JOIN {node} n ON t.nid = n.nid WHERE n.status = 1 AND '. node_access_where_sql() .'GROUP BY t.tid');
} }
else { else {
$result = db_query("SELECT t.tid, COUNT(*) AS c FROM {term_node} t, {node} n WHERE t.nid = n.nid AND n.status = 1 AND n.type = '%s' GROUP BY t.tid", $type); $result = db_query("SELECT t.tid, COUNT(*) AS c FROM {term_node} t, {node} n ". node_access_join_sql() ." WHERE t.nid = n.nid AND n.status = 1 AND n.type = '%s' AND ". node_access_where_sql() ." GROUP BY t.tid", $type);
} }
while ($term = db_fetch_object($result)) { while ($term = db_fetch_object($result)) {
$count[$type][$term->tid] = $term->c; $count[$type][$term->tid] = $term->c;
......
...@@ -642,10 +642,10 @@ function taxonomy_term_count_nodes($tid, $type = 0) { ...@@ -642,10 +642,10 @@ function taxonomy_term_count_nodes($tid, $type = 0) {
if (!isset($count[$type])) { if (!isset($count[$type])) {
// $type == 0 always evaluates true is $type is a string // $type == 0 always evaluates true is $type is a string
if (is_numeric($type)) { if (is_numeric($type)) {
$result = db_query('SELECT t.tid, COUNT(*) AS c FROM {term_node} t INNER JOIN {node} n ON t.nid = n.nid WHERE n.status = 1 GROUP BY t.tid'); $result = db_query('SELECT t.tid, COUNT(*) AS c FROM {term_node} t '. node_access_join_sql() .'INNER JOIN {node} n ON t.nid = n.nid WHERE n.status = 1 AND '. node_access_where_sql() .'GROUP BY t.tid');
} }
else { else {
$result = db_query("SELECT t.tid, COUNT(*) AS c FROM {term_node} t, {node} n WHERE t.nid = n.nid AND n.status = 1 AND n.type = '%s' GROUP BY t.tid", $type); $result = db_query("SELECT t.tid, COUNT(*) AS c FROM {term_node} t, {node} n ". node_access_join_sql() ." WHERE t.nid = n.nid AND n.status = 1 AND n.type = '%s' AND ". node_access_where_sql() ." GROUP BY t.tid", $type);
} }
while ($term = db_fetch_object($result)) { while ($term = db_fetch_object($result)) {
$count[$type][$term->tid] = $term->c; $count[$type][$term->tid] = $term->c;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment