function spaces_handler_filter_spaces_feature::query in Spaces 6.3
Same name and namespace in other branches
- 6 includes/spaces_handler_filter_spaces_feature.inc \spaces_handler_filter_spaces_feature::query()
- 6.2 includes/spaces_handler_filter_spaces_feature.inc \spaces_handler_filter_spaces_feature::query()
- 7.3 includes/spaces_handler_filter_spaces_feature.inc \spaces_handler_filter_spaces_feature::query()
- 7 includes/spaces_handler_filter_spaces_feature.inc \spaces_handler_filter_spaces_feature::query()
File
- includes/
spaces_handler_filter_spaces_feature.inc, line 12
Class
- spaces_handler_filter_spaces_feature
- Filter to only show node types associated with current feature.
Code
function query() {
if (module_exists('context')) {
$types = array();
foreach (context_get('context') as $context) {
// @TODO: This hardcoded list is rather ugly... also doesn't this
// handler really belong in context??? : |
$plugins = array(
'node',
'bookroot',
);
foreach ($plugins as $plugin) {
if (!empty($context->conditions[$plugin]['values'])) {
$types = array_merge($types, $context->conditions[$plugin]['values']);
}
}
}
$types = drupal_map_assoc($types);
if (!empty($types)) {
$placeholders = db_placeholders($types, 'varchar');
if (!empty($this->relationship)) {
$table = $this->relationship;
}
else {
$table = $this->query
->ensure_table('node');
}
$this->query
->add_where($this->options['group'], "{$table}.type IN ({$placeholders})", $types);
}
}
}