You are here

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

draggableviews_handler_book

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;
      }
    }
  }
}