summaryrefslogtreecommitdiff
path: root/modules/node
diff options
context:
space:
mode:
Diffstat (limited to 'modules/node')
-rw-r--r--modules/node/node.admin.inc4
-rw-r--r--modules/node/node.module8
-rw-r--r--modules/node/node.test3
3 files changed, 9 insertions, 6 deletions
diff --git a/modules/node/node.admin.inc b/modules/node/node.admin.inc
index 9669b8972..7cbad1dcc 100644
--- a/modules/node/node.admin.inc
+++ b/modules/node/node.admin.inc
@@ -133,8 +133,8 @@ function node_build_filter_query(SelectQueryInterface $query) {
list($key, $value) = $filter;
switch ($key) {
case 'term':
- $index = 'tn' . $counter++;
- $query->join('taxonomy_term_node', $index, "n.nid = $index.nid");
+ $index = 'ti' . $counter++;
+ $query->join('taxonomy_index', $index, "n.nid = $index.nid");
$query->condition($index . '.tid', $value);
break;
case 'status':
diff --git a/modules/node/node.module b/modules/node/node.module
index a5f72abcc..3e95d5272 100644
--- a/modules/node/node.module
+++ b/modules/node/node.module
@@ -1576,8 +1576,8 @@ function node_search_execute($keys = NULL) {
// Insert special keywords.
$query->setOption('type', 'n.type');
$query->setOption('language', 'n.language');
- if ($query->setOption('term', 'tn.nid')) {
- $query->join('taxonomy_term_node', 'tn', 'n.vid = tn.vid');
+ if ($query->setOption('term', 'ti.tid')) {
+ $query->join('taxonomy_index', 'ti', 'n.nid = ti.nid');
}
// Only continue if the first pass query matches.
if (!$query->executeFirstPass()) {
@@ -2383,10 +2383,10 @@ function node_search_validate($form, &$form_state) {
}
}
- if (isset($form_state['values']['term']) && is_array($form_state['values']['term'])) {
+ if (isset($form_state['values']['term']) && is_array($form_state['values']['term']) && count($form_state['values']['term'])) {
$keys = search_expression_insert($keys, 'term', implode(',', $form_state['values']['term']));
}
- if (isset($form_state['values']['language']) && is_array($form_state['values']['language'])) {
+ if (isset($form_state['values']['language']) && is_array($form_state['values']['language']) && count($form_state['values']['language'])) {
$keys = search_expression_insert($keys, 'language', implode(',', array_filter($form_state['values']['language'])));
}
if ($form_state['values']['or'] != '') {
diff --git a/modules/node/node.test b/modules/node/node.test
index 6eeda5c25..f697f468d 100644
--- a/modules/node/node.test
+++ b/modules/node/node.test
@@ -1010,6 +1010,9 @@ class NodeAdminTestCase extends DrupalWebTestCase {
/**
* Tests content overview with different user permissions.
+ *
+ * Taxonomy filters are tested separately.
+ * @see TaxonomyNodeFilterTestCase
*/
function testContentAdminPages() {
$this->drupalLogin($this->admin_user);