You are here

book.action.inc in Views Bulk Operations (VBO) 6

Same filename and directory in other branches
  1. 7.3 actions/book.action.inc

File

actions/book.action.inc
View source
<?php

function views_bulk_operations_book_action_info() {
  if (!module_exists('book')) {
    return array();
  }
  return array(
    'views_bulk_operations_move_book_action' => array(
      'type' => 'node',
      'description' => t('Move book page to new parent'),
      'configurable' => TRUE,
      'behavior' => array(
        'changes_node_property',
      ),
    ),
    'views_bulk_operations_remove_book_action' => array(
      'type' => 'node',
      'description' => t('Remove book page from outline'),
      'configurable' => FALSE,
      'behavior' => array(
        'deletes_node_property',
      ),
    ),
  );
}
function views_bulk_operations_move_book_action_form($context) {
  if (!isset($context['book'])) {
    $context['book'] = '';
  }
  $options = array();
  $books = book_get_books();
  foreach ($books as $value) {
    $options[$value['nid']] = $value['title'];
  }
  if (empty($options)) {
    drupal_set_message(t('You have no books.'), 'error');
    return array();
  }
  $form['book'] = array(
    '#type' => 'select',
    '#title' => t('Choose a parent book'),
    '#options' => $options,
    '#description' => t('Select the parent book page you wish to move the book page into.'),
  );
  return $form;
}
function views_bulk_operations_move_book_action_submit($form, $form_state) {
  return array(
    'book' => $form_state['values']['book'],
  );
}
function views_bulk_operations_move_book_action($node, $context) {
  if (isset($context['book'])) {
    $book_node = node_load($context['book']);
    $bid = $book_node->nid;
    $mlid = $book_node->book['mlid'];
    $node->book['bid'] = $bid;
    $node->book['plid'] = $mlid;
    $node->book['module'] = 'book';
    book_nodeapi($node, 'update', $a3 = NULL, $a4 = NULL);
    drupal_set_message(t('Book page %node was successfully added to %book_node.', array(
      '%node' => $node->title,
      '%book_node' => $book_node->title,
    )));
  }
}
function views_bulk_operations_remove_book_action($node, $context) {
  $node->book['module'] = 'book';
  book_nodeapi($node, 'delete', $a3 = NULL, $a4 = NULL);
  drupal_set_message(t('%node was removed from outline.', array(
    '%node' => $node->title,
    '%mlid' => $node->book['mlid'],
  )));
}