function views_handler_argument_draggableviews_book::query in DraggableViews 7.2
Same name and namespace in other branches
- 6.3 modules/draggableviews_book/views_handler_argument_draggableviews_book.inc \views_handler_argument_draggableviews_book::query()
Add condition to select only part of the tree that is under argument's id.
Overrides views_handler_argument::query
File
- draggableviews_book/
draggableviews_book_views_handler_argument.inc, line 16 - Draggableviews book views handler argument.
Class
- views_handler_argument_draggableviews_book
- Argument that refers to a certain book page.
Code
function query($group_by = FALSE) {
$this
->ensure_my_table();
$mlid = db_query("SELECT mlid FROM {book} WHERE nid = :nid", array(
':nid' => $this->argument,
))
->fetchField();
// Do not show argument menu item.
$this->query
->add_where(0, $this->table . '.mlid', $mlid, '<>');
// Select all items that have argument in one of parents.
$group = $this->query
->set_where_group('OR');
for ($i = 1; $i < 10; $i++) {
$this->query
->add_where($group, $this->table . '.p' . $i, $mlid);
}
// We sort items in hook_views_post_execute().
$tbl = $this->table;
// Add weight, depth and parent fields.
$this->query
->add_field($tbl, 'weight', 'draggableviews_book_weight');
$this->query
->add_field($tbl, 'depth', 'draggableviews_book_depth');
$this->query
->add_field($tbl, 'plid', 'draggableviews_book_plid');
$this->query
->add_field($tbl, 'mlid', 'draggableviews_book_mlid');
}