diff options
Diffstat (limited to 'modules/taxonomy')
-rw-r--r-- | modules/taxonomy/taxonomy.module | 22 | ||||
-rw-r--r-- | modules/taxonomy/taxonomy.pages.inc | 4 |
2 files changed, 16 insertions, 10 deletions
diff --git a/modules/taxonomy/taxonomy.module b/modules/taxonomy/taxonomy.module index fb02663bb..831c128a3 100644 --- a/modules/taxonomy/taxonomy.module +++ b/modules/taxonomy/taxonomy.module @@ -84,17 +84,20 @@ function taxonomy_entity_info() { * and will return an empty array if it is not. If using other field storage * methods alternatives methods for listing terms will need to be used. * - * @param $term - * The term object. + * @param $tid + * The term ID. * @param $pager * Boolean to indicate whether a pager should be used. + * @param $limit + * Integer. The maximum number of nodes to find. + * Set to FALSE for no limit. * @order * An array of fields and directions. * * @return * An array of nids matching the query. */ -function taxonomy_select_nodes($term, $pager = TRUE, $order = array('t.sticky' => 'DESC', 't.created' => 'DESC')) { +function taxonomy_select_nodes($tid, $pager = TRUE, $limit = FALSE, $order = array('t.sticky' => 'DESC', 't.created' => 'DESC')) { if (!variable_get('taxonomy_maintain_index_table', TRUE)) { return array(); } @@ -104,15 +107,18 @@ function taxonomy_select_nodes($term, $pager = TRUE, $order = array('t.sticky' = $count_query = clone $query; $count_query->addExpression('COUNT(t.nid)'); - $query = $query - ->extend('PagerDefault') - ->limit(variable_get('default_nodes_main', 10)); + $query = $query->extend('PagerDefault'); + if ($limit !== FALSE) { + $query = $query->limit($limit); + } $query->setCountQuery($count_query); } else { - $query->range(0, variable_get('feed_default_items', 10)); + if ($limit !== FALSE) { + $query->range(0, $limit); + } } - $query->condition('tid', $term->tid ); + $query->condition('tid', $tid); $query->addField('t', 'nid'); $query->addField('t', 'tid'); foreach ($order as $field => $direction) { diff --git a/modules/taxonomy/taxonomy.pages.inc b/modules/taxonomy/taxonomy.pages.inc index 269e8cd37..eadbd9cf3 100644 --- a/modules/taxonomy/taxonomy.pages.inc +++ b/modules/taxonomy/taxonomy.pages.inc @@ -41,7 +41,7 @@ function taxonomy_term_page($term) { '#suffix' => '</div>', ); } - if ($nids = taxonomy_select_nodes($term)) { + if ($nids = taxonomy_select_nodes($term->tid, TRUE, variable_get('default_nodes_main', 10))) { $nodes = node_load_multiple($nids); $build += node_build_multiple($nodes); $build['pager'] = array( @@ -71,7 +71,7 @@ function taxonomy_term_feed($term) { // Only display the description if we have a single term, to avoid clutter and confusion. // HTML will be removed from feed description, so no need to filter here. $channel['description'] = $term->description; - $nids = taxonomy_select_nodes(array($term->tid, FALSE)); + $nids = taxonomy_select_nodes($term->tid, FALSE, variable_get('feed_default_items', 10)); node_feed($nids, $channel); } |