source: sipes/modules_contrib/views_bulk_operations/views_bulk_operations.install @ a8b1f3f

stableversion-3.0
Last change on this file since a8b1f3f was 177a560, checked in by José Gregorio Puentes <jpuentes@…>, 8 años ago

se agrego el directorio de modulos contribuidos de drupal

  • Propiedad mode establecida a 100755
File size: 5.0 KB
Línea 
1<?php
2
3/**
4 * @file
5 * Installation and update functions.
6 */
7
8/**
9 * Implementation of hook_uninstall().
10 */
11function views_bulk_operations_uninstall() {
12  variable_del('views_bulk_operations_actions');
13  actions_synchronize(actions_list(), TRUE);
14}
15
16/**
17 * Implementation of hook_update_N().
18 *
19 * Replace MD5 hashes with meaningful strings in selected operations arrays.
20 */
21function views_bulk_operations_update_6000() {
22  drupal_load('module', 'views');
23  drupal_load('module', 'views_bulk_operations');
24  views_include('cache');
25
26  $operations = array();
27  foreach (array_keys(_views_bulk_operations_get_object_info()) as $object_type) {
28    $hook_name = $object_type .'_operations';
29    foreach (module_invoke_all($hook_name) as $operation) {
30      if (!empty($operation['callback'])) {
31        $key = md5($operation['callback'] . (isset($operation['callback arguments']) ? serialize($operation['callback arguments']) : ''));
32        $operations[$key] = $operation['callback'] . (empty($operation['callback arguments']) ? '' : ':'. md5(serialize($operation['callback arguments'])));
33      }
34    }
35  }
36  $result = db_query("SELECT * FROM {actions} WHERE parameters > ''");
37  while ($action = db_fetch_object($result)) {
38    $key = md5($action->aid);
39    $parameters = unserialize($action->parameters);
40    $operations[$key] = $action->callback . (empty($parameters) ? '' : ':'. md5($action->parameters));
41  }
42  foreach (array_keys(actions_list()) as $callback) {
43    $key = md5($callback);
44    $operations[$key] = $callback;
45  }
46  foreach (views_get_all_views() as $name => $view) {
47    $changed = FALSE;
48    foreach (array_keys($view->display) as $display) {
49      $display_options = &$view->display[$display]->display_options;
50      if (isset($display_options['style_plugin']) && $display_options['style_plugin'] == 'bulk') {
51        $changed = TRUE;
52        $selected_operations = isset($display_options['style_options']['selected_operations']) && is_array($display_options['style_options']['selected_operations']) ?
53          array_filter($display_options['style_options']['selected_operations']) : array();
54        $display_options['style_options']['selected_operations'] = array();
55        if (!empty($selected_operations)) foreach ($selected_operations as $operation) {
56          // If an old operation is identified, replace it.
57          $display_options['style_options']['selected_operations'][] = isset($operations[$operation]) ? $operations[$operation] : $operation;
58        }
59      }
60    }
61    if ($changed) {
62      $view->save();
63      views_object_cache_clear('view', $name);
64    }
65  }
66  cache_clear_all('*', 'cache_views');
67  return array();
68}
69
70/**
71 * Implementation of hook_update_N().
72 *
73 * Update VBO settings to latest version.
74 */
75function views_bulk_operations_update_6001() {
76  drupal_load('module', 'views');
77  drupal_load('module', 'views_bulk_operations');
78  views_include('cache');
79
80  foreach (views_get_all_views() as $name => $view) {
81    $changed = FALSE;
82    foreach (array_keys($view->display) as $display) {
83      $display_options = &$view->display[$display]->display_options;
84      if (isset($display_options['style_plugin']) && $display_options['style_plugin'] == 'bulk') {
85        if (!empty($display_options['style_options']['selected_operations'])) {
86          $changed = TRUE;
87          foreach (array_filter($display_options['style_options']['selected_operations']) as $key) {
88            // Adjust operation key.
89            $new_key = str_replace(':', '-', $key);
90
91            // Move selected operations.
92            $display_options['style_options']['operations'][$new_key]['selected'] = TRUE;
93
94            // Move operation labels.
95            if (isset($display_options['style_options']['labels'][$key])) {
96              $display_options['style_options']['operations'][$new_key]['label'] = $display_options['style_options']['labels'][$key];
97            }
98
99            // Move operations settings.
100            if (isset($display_options['style_options'][$key])) {
101              $display_options['style_options']['operations'][$new_key]['settings'] = $display_options['style_options'][$key];
102              unset($display_options['style_options'][$key]);
103            }
104
105            // Move skip confirmation.
106            $display_options['style_options']['operations'][$new_key]['skip_confirmation'] = $display_options['style_options']['skip_confirmation'];
107          }
108
109          // Unset old values.
110          unset($display_options['style_options']['selected_operations']);
111          unset($display_options['style_options']['labels']);
112          unset($display_options['style_options']['skip_confirmation']);
113        }
114      }
115    }
116    if ($changed) {
117      $view->save();
118      views_object_cache_clear('view', $name);
119    }
120  }
121  cache_clear_all('*', 'cache_views');
122  return array();
123}
124
125/**
126 * Implementation of hook_update_N().
127 *
128 * Delete variable views_bulk_operations_actions to pick up new actions.
129 */
130function views_bulk_operations_update_6002() {
131  variable_del('views_bulk_operations_actions');
132  return array();
133}
Nota: Vea TracBrowser para ayuda de uso del navegador del repositorio.