function node_build_filter_query
7.x node.admin.inc | node_build_filter_query(SelectQueryInterface |
6.x node.admin.inc | node_build_filter_query() |
Build query for node administration filters based on session.
1 call to node_build_filter_query()
- node_admin_nodes in drupal-6.x/
modules/ node/ node.admin.inc - Form builder: Builds the node administration overview.
File
- drupal-6.x/
modules/ node/ node.admin.inc, line 167 - Content administration and module settings UI.
Code
function node_build_filter_query() {
$filters = node_filters();
// Build query
$where = $args = array();
$join = '';
foreach ($_SESSION['node_overview_filter'] as $index => $filter) {
list($key, $value) = $filter;
switch ($key) {
case 'status':
// Note: no exploitable hole as $key/$value have already been checked when submitted
list($key, $value) = explode('-', $value, 2);
$where[] = 'n.' . $key . ' = %d';
break;
case 'category':
$table = "tn$index";
$where[] = "$table.tid = %d";
$join .= "INNER JOIN {term_node} $table ON n.vid = $table.vid ";
break;
case 'type':
$where[] = "n.type = '%s'";
break;
case 'language':
$where[] = "n.language = '%s'";
break;
}
$args[] = $value;
}
$where = count($where) ? 'WHERE ' . implode(' AND ', $where) : '';
return array('where' => $where, 'join' => $join, 'args' => $args);
}