function draggableviews_handler_book::init in DraggableViews 6.3
Overrides draggableviews_handler::init
File
- modules/
draggableviews_book/ draggableviews_handler_book.inc, line 12 - The default implementation for draggableviews.
Class
Code
function init($field_name, &$view) {
parent::init($field_name, $view);
$this->root = 0;
// Check if filters or arguments define another root parent.
$options = $view->style_plugin->options;
if (isset($options['draggableviews_book_radios'])) {
switch ($options['draggableviews_book_radios']) {
case 1:
$argument = $options['draggableviews_book_argument'];
if (isset($this->view->argument[$argument]->position)) {
$position = $this->view->argument[$argument]->position;
$root_nid = $this->view->args[$position];
}
break;
case 2:
$filter = $options['draggableviews_book_filter'];
if (isset($this->view->filter[$filter]->options['value']['value'])) {
$root_nid = $this->view->filter[$filter]->options['value']['value'];
}
break;
}
if (!empty($root_nid)) {
// Depending on the type of this field we now define the root nid or the root weight.
switch ($this->type) {
case 'hierarchy':
// Define the mlid of the parent item as root.
$this->root = $root_nid;
break;
case 'order':
$mlid = db_result(db_query("SELECT mlid FROM {book} WHERE nid = %d", $root_nid));
if (!empty($mlid)) {
$weight = db_result(db_query("SELECT weight FROM {menu_links} WHERE mlid = %d", $mlid));
// Define the weight of the parent item as root.
$this->root = $weight;
}
break;
}
}
}
}