Projet

Général

Profil

Paste
Télécharger (2,02 ko) Statistiques
| Branche: | Révision:

root / drupal7 / sites / all / modules / views_bulk_operations / actions / book.action.inc @ 9d13637e

1
<?php
2

    
3
/**
4
 * @file
5
 * Implements actions for managing books (book.module).
6
 */
7

    
8
function views_bulk_operations_book_action_info() {
9
  $actions = array();
10
  if (module_exists('book')) {
11
    $actions['views_bulk_operations_move_to_book_action'] = array(
12
      'type' => 'node',
13
      'label' => t('Move to book'),
14
      'configurable' => TRUE,
15
      'behavior' => array('changes_property'),
16
    );
17
    $actions['views_bulk_operations_remove_from_book_action'] = array(
18
      'type' => 'node',
19
      'label' => t('Remove from book'),
20
      'configurable' => FALSE,
21
    );
22
  }
23

    
24
  return $actions;
25
}
26

    
27
function views_bulk_operations_move_to_book_action_form($context) {
28
  $form = array();
29
  if (!isset($context['book'])) {
30
    $context['book'] = '';
31
  }
32
  $options = array();
33
  $books = book_get_books();
34
  foreach ($books as $value) {
35
    $options[$value['nid']] = $value['title'];
36
  }
37

    
38
  if (empty($options)) {
39
    drupal_set_message(t('You have no books.'), 'error');
40
    return array();
41
  }
42

    
43
  $form['book'] = array(
44
    '#type' => 'select',
45
    '#title' => t('Choose a parent book'),
46
    '#options' => $options,
47
    '#description' => t('Select the parent book page you wish to move the book page into'),
48
  );
49
  return $form;
50
}
51

    
52
function views_bulk_operations_move_to_book_action_submit($form, $form_state) {
53
  return array('book' => $form_state['values']['book']);
54
}
55

    
56
function views_bulk_operations_move_to_book_action($node, $context = array()) {
57
  if (isset($context['book'])) {
58
    $book_node = node_load($context['book']);
59
    $mlid = db_select('menu_links' , 'ml')
60
      ->condition('ml.link_path' , 'node/' . $node->nid)
61
      ->fields('ml' , array('mlid'))
62
      ->execute()
63
      ->fetchField();
64
    $node->book['mlid'] = $mlid;
65
    $node->book['bid'] = $book_node->nid;
66
    $node->book['plid'] = $book_node->book['mlid'];
67
    $node->book['module'] = 'book';
68
  }
69
}
70

    
71
/**
72
 * Adds the action 'Remove node from a parent book'
73
 */
74
function views_bulk_operations_remove_from_book_action($node, $context) {
75
  $book = $node->book['mlid'];
76
  book_node_delete($node);
77
}