You are here

draggableviews_book.module in DraggableViews 6.3

Draggableviews Book module provides Book-support.

File

modules/draggableviews_book/draggableviews_book.module
View source
<?php

/**
 * @file
 * Draggableviews Book module provides Book-support.
 */

/**
 * Display help and module information
 * @param path which path of the site we're displaying help
 * @param arg array that holds the current path as would be returned from arg() function
 * @return help text for the path
 */
function draggableviews_book_help($path, $arg) {
  $output = '';
  switch ($path) {
    case "admin/help#draggableviews_book":
      $output = '<p>' . t("Book-support") . '</p>';
      break;
  }
  return $output;
}

/**
 * Implementing hook_draggableviews_handlers
 */
function draggableviews_book_draggableviews_handlers() {
  return array(
    'book' => array(
      'file' => 'draggableviews_handler_book.inc',
      'title' => t('Book'),
      'desciption' => 'Default implementation with Books',
      'handler' => 'draggableviews_handler_book',
    ),
  );
}

/**
 * Implementing hook_draggableviews_style_plugin_form_alter.
 */
function draggableviews_book_draggableviews_style_plugin_form_alter(&$form, $form_state, $style_plugin) {

  // Check for input.
  if (!empty($form_state['input']['style_options'])) {

    // Define the input data as the current data.
    $current = $form_state['input']['style_options'];
  }
  else {

    // Define the already stored data as the current data.
    $current = $style_plugin->options;
  }
  $arguments = array();
  foreach ($style_plugin->view
    ->get_items('argument', $style_plugin->display->id) as $arg_id => $settings) {
    $arguments[$arg_id] = $settings['table'] . '.' . $settings['field'] . ': ' . $arg_id;
  }
  if (empty($arguments)) {
    $arguments = array(
      'none' => t('- None -'),
    );
  }
  $filters = array();
  foreach ($style_plugin->view
    ->get_items('filter', $style_plugin->display->id) as $filter_id => $settings) {
    $filters[$filter_id] = $settings['table'] . '.' . $settings['field'] . ': ' . $filter_id;
  }
  if (empty($filters)) {
    $filters = array(
      'none' => t('- None -'),
    );
  }
  $form['draggableviews_book_header'] = array(
    '#prefix' => '<div style="background: #F6F6F6; border-top: 1px solid #D6DBDE; font-weight: bold; padding: 1em 1em 0;">',
    '#suffix' => '</div>',
    '#value' => t('@display: Style options: Book handler Settings', array(
      '@display' => $style_plugin->display->display_title,
    )),
  );
  $radio_id_none = form_clean_id('edit-default-use-book-none');
  $radio_id_argument = form_clean_id('edit-default-use-book-argument');
  $radio_id_filter = form_clean_id('edit-default-use-book-filter');
  $form['draggableviews_book_radios'] = array(
    '#type' => 'radios',
    '#default_value' => isset($current['draggableviews_book_radios']) ? $current['draggableviews_book_radios'] : 0,
    '#description' => t('Choose where to get the root book id from. The root book id defaults to 0.'),
    '#options' => array(
      t('None'),
      t('Argument'),
      t('Filter'),
    ),
  );
  $form['draggableviews_book_argument'] = array(
    '#type' => 'select',
    '#options' => $arguments,
    '#default_value' => isset($current['draggableviews_book_argument']) ? $current['draggableviews_book_argument'] : key($arguments),
  );
  $form['draggableviews_book_filter'] = array(
    '#type' => 'select',
    '#options' => $filters,
    '#default_value' => isset($current['draggableviews_book_filter']) ? $current['draggableviews_book_filter'] : key($filters),
  );
}
function draggableviews_book_draggableviews_style_plugin_render(&$form) {
  $header = drupal_render($form['draggableviews_book_header']);
  $rows = array(
    array(
      drupal_render($form['draggableviews_book_radios'][0]),
      '&nbsp;',
    ),
    array(
      drupal_render($form['draggableviews_book_radios'][1]),
      drupal_render($form['draggableviews_book_argument']),
    ),
    array(
      drupal_render($form['draggableviews_book_radios'][2]),
      drupal_render($form['draggableviews_book_filter']),
    ),
  );
  $radios = drupal_render($form['draggableviews_book_radios']);
  $table = theme('table', array(
    t('Use'),
    t('Root Book by..'),
  ), $rows);
  return $header . $table . $radios;
}

/**
 * Implementing hook_views_api
 */
function draggableviews_book_views_api() {
  return array(
    'api' => 2.0,
    'path' => drupal_get_path('module', 'draggableviews_book'),
  );
}
function draggableviews_book_views_default_views() {
  $view = new view();
  $view->name = 'draggablebooks';
  $view->description = '';
  $view->tag = '';
  $view->view_php = '';
  $view->base_table = 'node';
  $view->is_cacheable = FALSE;
  $view->api_version = 2;
  $view->disabled = FALSE;

  /* Edit this to true to make a default view disabled initially */
  $handler = $view
    ->new_display('default', 'Defaults', 'default');
  $handler
    ->override_option('relationships', array(
    'nid' => array(
      'label' => 'Book parent',
      'required' => 0,
      'id' => 'nid',
      'table' => 'book_parent',
      'field' => 'nid',
      'override' => array(
        'button' => 'Override',
      ),
      'relationship' => 'none',
    ),
  ));
  $handler
    ->override_option('fields', array(
    'title' => array(
      'label' => 'Title',
      'alter' => array(
        'alter_text' => 0,
        'text' => '',
        'make_link' => 0,
        'path' => '',
        'link_class' => '',
        'alt' => '',
        'prefix' => '',
        'suffix' => '',
        'help' => '',
        'trim' => 0,
        'max_length' => '',
        'word_boundary' => 1,
        'ellipsis' => 1,
        'strip_tags' => 0,
        'html' => 0,
      ),
      'link_to_node' => 0,
      'exclude' => 0,
      'id' => 'title',
      'table' => 'node',
      'field' => 'title',
      'override' => array(
        'button' => 'Override',
      ),
      'relationship' => 'none',
    ),
    'name' => array(
      'label' => 'Author',
      'alter' => array(
        'alter_text' => 0,
        'text' => '',
        'make_link' => 0,
        'path' => '',
        'link_class' => '',
        'alt' => '',
        'prefix' => '',
        'suffix' => '',
        'help' => '',
        'trim' => 0,
        'max_length' => '',
        'word_boundary' => 1,
        'ellipsis' => 1,
        'strip_tags' => 0,
        'html' => 0,
      ),
      'link_to_user' => 1,
      'overwrite_anonymous' => 0,
      'anonymous_text' => '',
      'exclude' => 0,
      'id' => 'name',
      'table' => 'users',
      'field' => 'name',
      'override' => array(
        'button' => 'Override',
      ),
      'relationship' => 'none',
    ),
    'nid' => array(
      'label' => '',
      'alter' => array(
        'alter_text' => 1,
        'text' => 'Jump into',
        'make_link' => 1,
        'path' => 'node/[nid]/rearrange',
        'link_class' => '',
        'alt' => 'Jump to the rearrange page of this book page.',
        'prefix' => '',
        'suffix' => '',
        'help' => '',
        'trim' => 0,
        'max_length' => '',
        'word_boundary' => 1,
        'ellipsis' => 1,
        'strip_tags' => 0,
        'html' => 0,
      ),
      'link_to_node' => 0,
      'exclude' => 0,
      'id' => 'nid',
      'table' => 'node',
      'field' => 'nid',
      'override' => array(
        'button' => 'Override',
      ),
      'relationship' => 'none',
    ),
    'weight' => array(
      'label' => 'Weight',
      'alter' => array(
        'alter_text' => 0,
        'text' => '',
        'make_link' => 0,
        'path' => '',
        'link_class' => '',
        'alt' => '',
        'prefix' => '',
        'suffix' => '',
        'help' => '',
        'trim' => 0,
        'max_length' => '',
        'word_boundary' => 1,
        'ellipsis' => 1,
        'strip_tags' => 0,
        'html' => 0,
      ),
      'set_precision' => FALSE,
      'precision' => 0,
      'decimal' => '.',
      'separator' => ',',
      'prefix' => '',
      'suffix' => '',
      'exclude' => 0,
      'id' => 'weight',
      'table' => 'book_menu_links',
      'field' => 'weight',
      'relationship' => 'none',
    ),
    'nid_1' => array(
      'label' => 'Parent Nid',
      'alter' => array(
        'alter_text' => 0,
        'text' => '',
        'make_link' => 0,
        'path' => '',
        'link_class' => '',
        'alt' => '',
        'prefix' => '',
        'suffix' => '',
        'help' => '',
        'trim' => 0,
        'max_length' => '',
        'word_boundary' => 1,
        'ellipsis' => 1,
        'strip_tags' => 0,
        'html' => 0,
      ),
      'link_to_node' => 0,
      'exclude' => 0,
      'id' => 'nid_1',
      'table' => 'node',
      'field' => 'nid',
      'override' => array(
        'button' => 'Override',
      ),
      'relationship' => 'nid',
    ),
  ));
  $handler
    ->override_option('sorts', array(
    'weight_1' => array(
      'order' => 'ASC',
      'id' => 'weight_1',
      'table' => 'book_menu_links',
      'field' => 'weight',
      'override' => array(
        'button' => 'Override',
      ),
      'relationship' => 'none',
    ),
    'p' => array(
      'order' => 'ASC',
      'id' => 'p',
      'table' => 'book_menu_links',
      'field' => 'p',
      'override' => array(
        'button' => 'Override',
      ),
      'relationship' => 'none',
    ),
  ));
  $handler
    ->override_option('arguments', array(
    'p' => array(
      'default_action' => 'empty',
      'style_plugin' => 'default_summary',
      'style_options' => array(),
      'wildcard' => 'all',
      'wildcard_substitution' => 'All',
      'title' => '',
      'breadcrumb' => '',
      'default_argument_type' => 'fixed',
      'default_argument' => '',
      'validate_type' => 'none',
      'validate_fail' => 'not found',
      'id' => 'p',
      'table' => 'draggableviews_book_book_parent',
      'field' => 'p',
      'validate_user_argument_type' => 'uid',
      'validate_user_roles' => array(
        '2' => 0,
      ),
      'override' => array(
        'button' => 'Override',
      ),
      'relationship' => 'none',
      'default_options_div_prefix' => '',
      'default_argument_user' => 0,
      'default_argument_fixed' => '',
      'default_argument_php' => '',
      'validate_argument_node_type' => array(
        'book' => 0,
        'imagewall_structure' => 0,
        'page' => 0,
        'story' => 0,
      ),
      'validate_argument_node_access' => 0,
      'validate_argument_nid_type' => 'nid',
      'validate_argument_vocabulary' => array(
        '1' => 0,
        '2' => 0,
      ),
      'validate_argument_type' => 'tid',
      'validate_argument_transform' => 0,
      'validate_user_restrict_roles' => 0,
      'validate_argument_php' => '',
    ),
  ));
  $handler
    ->override_option('access', array(
    'type' => 'perm',
    'perm' => 'Allow Reordering',
  ));
  $handler
    ->override_option('cache', array(
    'type' => 'none',
  ));
  $handler
    ->override_option('empty', 'This book page doesn\'t contain any sub pages.');
  $handler
    ->override_option('empty_format', '1');
  $handler
    ->override_option('items_per_page', 20);
  $handler
    ->override_option('use_pager', '1');
  $handler
    ->override_option('style_plugin', 'draggabletable');
  $handler
    ->override_option('style_options', array(
    'override' => 1,
    'sticky' => 0,
    'order' => 'asc',
    'columns' => array(
      'title' => 'title',
      'name' => 'name',
      'nid' => 'nid',
      'weight' => 'weight',
      'nid_1' => 'nid_1',
      'weight_1' => 'weight_1',
    ),
    'info' => array(
      'title' => array(
        'sortable' => 0,
        'separator' => '',
      ),
      'name' => array(
        'sortable' => 0,
        'separator' => '',
      ),
      'nid' => array(
        'sortable' => 0,
        'separator' => '',
      ),
      'weight' => array(
        'sortable' => 0,
        'separator' => '',
      ),
      'nid_1' => array(
        'sortable' => 0,
        'separator' => '',
      ),
      'weight_1' => array(
        'sortable' => 0,
        'separator' => '',
      ),
    ),
    'default' => '-1',
    'tabledrag_hierarchy' => array(
      'field' => 'nid_1',
      'handler' => 'book',
    ),
    'tabledrag_order' => array(
      'field' => 'weight',
      'handler' => 'book',
    ),
    'draggableviews_extensions' => array(
      'extension_top' => '3',
      'extension_bottom' => '3',
    ),
    'tabledrag_order_visible' => array(
      'visible' => 0,
    ),
    'tabledrag_hierarchy_visible' => array(
      'visible' => 0,
    ),
    'draggableviews_depth_limit' => '-1',
    'draggableviews_repair' => array(
      'repair' => 'repair',
    ),
    'tabledrag_types_add' => 'Add type',
    'tabledrag_expand' => array(
      'expand_links' => 'expand_links',
      'collapsed' => 0,
      'by_uid' => 0,
    ),
    'tabledrag_lock' => array(
      'lock' => 0,
    ),
    'draggableviews_default_on_top' => '1',
    'draggableviews_button_text' => 'Save order',
    'draggableviews_arguments' => array(
      'use_args' => 0,
    ),
    'draggableviews_book_radios' => '1',
    'draggableviews_book_argument' => 'p',
    'draggableviews_book_filter' => 'none',
  ));
  $handler = $view
    ->new_display('page', 'Page', 'page_1');
  $handler
    ->override_option('path', 'node/%/rearrange');
  $handler
    ->override_option('menu', array(
    'type' => 'tab',
    'title' => 'Rearrange',
    'description' => 'Organize your book pages.',
    'weight' => '10',
    'name' => 'primary-links',
  ));
  $handler
    ->override_option('tab_options', array(
    'type' => 'none',
    'title' => '',
    'description' => '',
    'weight' => 0,
  ));
  $views[$view->name] = $view;
  return $views;
}

Functions

Namesort descending Description
draggableviews_book_draggableviews_handlers Implementing hook_draggableviews_handlers
draggableviews_book_draggableviews_style_plugin_form_alter Implementing hook_draggableviews_style_plugin_form_alter.
draggableviews_book_draggableviews_style_plugin_render
draggableviews_book_help Display help and module information
draggableviews_book_views_api Implementing hook_views_api
draggableviews_book_views_default_views