function node_build_filter_query in Drupal 6
Same name and namespace in other branches
- 4 modules/node.module \node_build_filter_query()
- 5 modules/node/node.module \node_build_filter_query()
- 7 modules/node/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 modules/
node/ node.admin.inc - Form builder: Builds the node administration overview.
File
- 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,
);
}