Projet

Général

Profil

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

root / drupal7 / sites / all / modules / views_bulk_operations / actions / book.action.inc @ 7547bb19

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
      'triggers' => array('any'),
17
    );
18
    $actions['views_bulk_operations_remove_from_book_action'] = array(
19
      'type' => 'node',
20
      'label' => t('Remove from book'),
21
      'configurable' => FALSE,
22
      'triggers' => array('any'),
23
    );
24
  }
25

    
26
  return $actions;
27
}
28

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

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

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

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

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

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