Projet

Général

Profil

Paste
Télécharger (4,49 ko) Statistiques
| Branche: | Révision:

root / drupal7 / sites / all / modules / admin_menu / admin_menu.map.inc @ 74f6bef0

1
<?php
2

    
3
/**
4
 * @file
5
 * Implements hook_admin_menu_map() on behalf of core modules.
6
 *
7
 * @todo Replace all/most of those API functions with direct DB queries;
8
 *   we only need the menu arguments (keys), not fully loaded objects.
9
 */
10

    
11
/**
12
 * Implements hook_admin_menu_map() on behalf of Filter module.
13
 */
14
function filter_admin_menu_map() {
15
  if (!user_access('administer filters')) {
16
    return;
17
  }
18
  $map['admin/config/content/formats/%filter_format'] = array(
19
    'parent' => 'admin/config/content/formats',
20
    'arguments' => array(
21
      array('%filter_format' => array_keys(filter_formats())),
22
    ),
23
  );
24
  return $map;
25
}
26

    
27
/**
28
 * Implements hook_admin_menu_map() on behalf of Menu module.
29
 */
30
function menu_admin_menu_map() {
31
  if (!user_access('administer menu')) {
32
    return;
33
  }
34
  $map['admin/structure/menu/manage/%menu'] = array(
35
    'parent' => 'admin/structure/menu',
36
    'arguments' => array(
37
      array('%menu' => array_keys(menu_get_menus())),
38
    ),
39
  );
40
  return $map;
41
}
42

    
43
/**
44
 * Implements hook_admin_menu_map() on behalf of Node module.
45
 */
46
function node_admin_menu_map() {
47
  if (!user_access('administer content types')) {
48
    return;
49
  }
50
  $map['admin/structure/types/manage/%node_type'] = array(
51
    'parent' => 'admin/structure/types',
52
    'arguments' => array(
53
      array('%node_type' => array_keys(node_type_get_types())),
54
    ),
55
  );
56
  return $map;
57
}
58

    
59
/**
60
 * Implements hook_admin_menu_map() on behalf of Field UI module.
61
 */
62
function field_ui_admin_menu_map() {
63
  $map = array();
64
  foreach (entity_get_info() as $obj_type => $info) {
65
    foreach ($info['bundles'] as $bundle_name => $bundle_info) {
66
      if (isset($bundle_info['admin'])) {
67
        $arguments = array();
68
        switch ($obj_type) {
69
          case 'comment':
70
            $fields = array();
71
            foreach (field_info_instances($obj_type, $bundle_name) as $field) {
72
              $fields[] = $field['field_name'];
73
            }
74
            // @todo Make Comment module expose the original node type bundle,
75
            //   pretty please.
76
            if (drupal_substr($bundle_name, 0, 13) == 'comment_node_') {
77
              $bundle_name = drupal_substr($bundle_name, 13);
78
            }
79
            // @todo Doesn't work yet. Why?
80
            $arguments = array(
81
              '%comment_node_type' => array($bundle_name),
82
              '%field_ui_menu' => $fields,
83
            );
84
            break;
85

    
86
          case 'node':
87
            $fields = array();
88
            foreach (field_info_instances($obj_type, $bundle_name) as $field) {
89
              $fields[] = $field['field_name'];
90
            }
91
            $arguments = array(
92
              '%node_type' => array($bundle_name),
93
              '%field_ui_menu' => $fields,
94
            );
95
            break;
96

    
97
          case 'taxonomy_term':
98
            $fields = array();
99
            foreach (field_info_instances($obj_type, $bundle_name) as $field) {
100
              $fields[] = $field['field_name'];
101
            }
102
            // Map machine_name to vid.
103
            $arguments = array(
104
              '%taxonomy_vocabulary_machine_name' => array($bundle_name),
105
              '%field_ui_menu' => $fields,
106
            );
107
            break;
108

    
109
          case 'user':
110
            $arguments = array(
111
              '%field_ui_menu' => array_keys(field_info_fields('user')),
112
            );
113
            break;
114
        }
115
        if (!empty($arguments)) {
116
          $path = $bundle_info['admin']['path'];
117
          $map["$path/fields/%field_ui_menu"]['parent'] = "$path/fields";
118
          $map["$path/fields/%field_ui_menu"]['arguments'][] = $arguments;
119
        }
120
      }
121
    }
122
  }
123
  return $map;
124
}
125

    
126
/**
127
 * Implements hook_admin_menu_map() on behalf of Taxonomy module.
128
 */
129
function taxonomy_admin_menu_map() {
130
  if (!user_access('administer taxonomy')) {
131
    return;
132
  }
133
  $map['admin/structure/taxonomy/%taxonomy_vocabulary_machine_name'] = array(
134
    'parent' => 'admin/structure/taxonomy',
135
    'arguments' => array(
136
      array('%taxonomy_vocabulary_machine_name' => array_keys(taxonomy_vocabulary_get_names())),
137
    ),
138
  );
139
  return $map;
140
}
141

    
142
/**
143
 * Implements hook_admin_menu_map() on behalf of Views UI module.
144
 */
145
function views_ui_admin_menu_map() {
146
  if (!user_access('administer views')) {
147
    return;
148
  }
149
  $views = array();
150
  foreach (views_get_enabled_views() as $name => $view) {
151
    $views[] = $name;
152
  }
153
  if (empty($views)) {
154
    return;
155
  }
156
  $map['admin/structure/views/view/%views_ui_cache'] = array(
157
    'parent' => 'admin/structure/views',
158
    'arguments' => array(
159
      array('%views_ui_cache' => $views),
160
    ),
161
  );
162
  return $map;
163
}
164