danielebarchiesi@4
|
1 <?php
|
danielebarchiesi@4
|
2
|
danielebarchiesi@4
|
3 /**
|
danielebarchiesi@4
|
4 * @file
|
danielebarchiesi@4
|
5 * Implements hook_admin_menu_map() on behalf of core modules.
|
danielebarchiesi@4
|
6 *
|
danielebarchiesi@4
|
7 * @todo Replace all/most of those API functions with direct DB queries;
|
danielebarchiesi@4
|
8 * we only need the menu arguments (keys), not fully loaded objects.
|
danielebarchiesi@4
|
9 */
|
danielebarchiesi@4
|
10
|
danielebarchiesi@4
|
11 /**
|
danielebarchiesi@4
|
12 * Implements hook_admin_menu_map() on behalf of Filter module.
|
danielebarchiesi@4
|
13 */
|
danielebarchiesi@4
|
14 function filter_admin_menu_map() {
|
danielebarchiesi@4
|
15 if (!user_access('administer filters')) {
|
danielebarchiesi@4
|
16 return;
|
danielebarchiesi@4
|
17 }
|
danielebarchiesi@4
|
18 $map['admin/config/content/formats/%filter_format'] = array(
|
danielebarchiesi@4
|
19 'parent' => 'admin/config/content/formats',
|
danielebarchiesi@4
|
20 'arguments' => array(
|
danielebarchiesi@4
|
21 array('%filter_format' => array_keys(filter_formats())),
|
danielebarchiesi@4
|
22 ),
|
danielebarchiesi@4
|
23 );
|
danielebarchiesi@4
|
24 return $map;
|
danielebarchiesi@4
|
25 }
|
danielebarchiesi@4
|
26
|
danielebarchiesi@4
|
27 /**
|
danielebarchiesi@4
|
28 * Implements hook_admin_menu_map() on behalf of Menu module.
|
danielebarchiesi@4
|
29 */
|
danielebarchiesi@4
|
30 function menu_admin_menu_map() {
|
danielebarchiesi@4
|
31 if (!user_access('administer menu')) {
|
danielebarchiesi@4
|
32 return;
|
danielebarchiesi@4
|
33 }
|
danielebarchiesi@4
|
34 $map['admin/structure/menu/manage/%menu'] = array(
|
danielebarchiesi@4
|
35 'parent' => 'admin/structure/menu',
|
danielebarchiesi@4
|
36 'arguments' => array(
|
danielebarchiesi@4
|
37 array('%menu' => array_keys(menu_get_menus())),
|
danielebarchiesi@4
|
38 ),
|
danielebarchiesi@4
|
39 );
|
danielebarchiesi@4
|
40 return $map;
|
danielebarchiesi@4
|
41 }
|
danielebarchiesi@4
|
42
|
danielebarchiesi@4
|
43 /**
|
danielebarchiesi@4
|
44 * Implements hook_admin_menu_map() on behalf of Node module.
|
danielebarchiesi@4
|
45 */
|
danielebarchiesi@4
|
46 function node_admin_menu_map() {
|
danielebarchiesi@4
|
47 if (!user_access('administer content types')) {
|
danielebarchiesi@4
|
48 return;
|
danielebarchiesi@4
|
49 }
|
danielebarchiesi@4
|
50 $map['admin/structure/types/manage/%node_type'] = array(
|
danielebarchiesi@4
|
51 'parent' => 'admin/structure/types',
|
danielebarchiesi@4
|
52 'arguments' => array(
|
danielebarchiesi@4
|
53 array('%node_type' => array_keys(node_type_get_types())),
|
danielebarchiesi@4
|
54 ),
|
danielebarchiesi@4
|
55 );
|
danielebarchiesi@4
|
56 return $map;
|
danielebarchiesi@4
|
57 }
|
danielebarchiesi@4
|
58
|
danielebarchiesi@4
|
59 /**
|
danielebarchiesi@4
|
60 * Implements hook_admin_menu_map() on behalf of Field UI module.
|
danielebarchiesi@4
|
61 */
|
danielebarchiesi@4
|
62 function field_ui_admin_menu_map() {
|
danielebarchiesi@4
|
63 $map = array();
|
danielebarchiesi@4
|
64 foreach (entity_get_info() as $obj_type => $info) {
|
danielebarchiesi@4
|
65 foreach ($info['bundles'] as $bundle_name => $bundle_info) {
|
danielebarchiesi@4
|
66 if (isset($bundle_info['admin'])) {
|
danielebarchiesi@4
|
67 $arguments = array();
|
danielebarchiesi@4
|
68 switch ($obj_type) {
|
danielebarchiesi@4
|
69 case 'comment':
|
danielebarchiesi@4
|
70 $fields = array();
|
danielebarchiesi@4
|
71 foreach (field_info_instances($obj_type, $bundle_name) as $field) {
|
danielebarchiesi@4
|
72 $fields[] = $field['field_name'];
|
danielebarchiesi@4
|
73 }
|
danielebarchiesi@4
|
74 // @todo Make Comment module expose the original node type bundle,
|
danielebarchiesi@4
|
75 // pretty please.
|
danielebarchiesi@4
|
76 if (drupal_substr($bundle_name, 0, 13) == 'comment_node_') {
|
danielebarchiesi@4
|
77 $bundle_name = drupal_substr($bundle_name, 13);
|
danielebarchiesi@4
|
78 }
|
danielebarchiesi@4
|
79 // @todo Doesn't work yet. Why?
|
danielebarchiesi@4
|
80 $arguments = array(
|
danielebarchiesi@4
|
81 '%comment_node_type' => array($bundle_name),
|
danielebarchiesi@4
|
82 '%field_ui_menu' => $fields,
|
danielebarchiesi@4
|
83 );
|
danielebarchiesi@4
|
84 break;
|
danielebarchiesi@4
|
85
|
danielebarchiesi@4
|
86 case 'node':
|
danielebarchiesi@4
|
87 $fields = array();
|
danielebarchiesi@4
|
88 foreach (field_info_instances($obj_type, $bundle_name) as $field) {
|
danielebarchiesi@4
|
89 $fields[] = $field['field_name'];
|
danielebarchiesi@4
|
90 }
|
danielebarchiesi@4
|
91 $arguments = array(
|
danielebarchiesi@4
|
92 '%node_type' => array($bundle_name),
|
danielebarchiesi@4
|
93 '%field_ui_menu' => $fields,
|
danielebarchiesi@4
|
94 );
|
danielebarchiesi@4
|
95 break;
|
danielebarchiesi@4
|
96
|
danielebarchiesi@4
|
97 case 'taxonomy_term':
|
danielebarchiesi@4
|
98 $fields = array();
|
danielebarchiesi@4
|
99 foreach (field_info_instances($obj_type, $bundle_name) as $field) {
|
danielebarchiesi@4
|
100 $fields[] = $field['field_name'];
|
danielebarchiesi@4
|
101 }
|
danielebarchiesi@4
|
102 // Map machine_name to vid.
|
danielebarchiesi@4
|
103 $arguments = array(
|
danielebarchiesi@4
|
104 '%taxonomy_vocabulary_machine_name' => array($bundle_name),
|
danielebarchiesi@4
|
105 '%field_ui_menu' => $fields,
|
danielebarchiesi@4
|
106 );
|
danielebarchiesi@4
|
107 break;
|
danielebarchiesi@4
|
108
|
danielebarchiesi@4
|
109 case 'user':
|
danielebarchiesi@4
|
110 $arguments = array(
|
danielebarchiesi@4
|
111 '%field_ui_menu' => array_keys(field_info_fields('user')),
|
danielebarchiesi@4
|
112 );
|
danielebarchiesi@4
|
113 break;
|
danielebarchiesi@4
|
114 }
|
danielebarchiesi@4
|
115 if (!empty($arguments)) {
|
danielebarchiesi@4
|
116 $path = $bundle_info['admin']['path'];
|
danielebarchiesi@4
|
117 $map["$path/fields/%field_ui_menu"]['parent'] = "$path/fields";
|
danielebarchiesi@4
|
118 $map["$path/fields/%field_ui_menu"]['arguments'][] = $arguments;
|
danielebarchiesi@4
|
119 }
|
danielebarchiesi@4
|
120 }
|
danielebarchiesi@4
|
121 }
|
danielebarchiesi@4
|
122 }
|
danielebarchiesi@4
|
123 return $map;
|
danielebarchiesi@4
|
124 }
|
danielebarchiesi@4
|
125
|
danielebarchiesi@4
|
126 /**
|
danielebarchiesi@4
|
127 * Implements hook_admin_menu_map() on behalf of Taxonomy module.
|
danielebarchiesi@4
|
128 */
|
danielebarchiesi@4
|
129 function taxonomy_admin_menu_map() {
|
danielebarchiesi@4
|
130 if (!user_access('administer taxonomy')) {
|
danielebarchiesi@4
|
131 return;
|
danielebarchiesi@4
|
132 }
|
danielebarchiesi@4
|
133 $map['admin/structure/taxonomy/%taxonomy_vocabulary_machine_name'] = array(
|
danielebarchiesi@4
|
134 'parent' => 'admin/structure/taxonomy',
|
danielebarchiesi@4
|
135 'arguments' => array(
|
danielebarchiesi@4
|
136 array('%taxonomy_vocabulary_machine_name' => array_keys(taxonomy_vocabulary_get_names())),
|
danielebarchiesi@4
|
137 ),
|
danielebarchiesi@4
|
138 );
|
danielebarchiesi@4
|
139 return $map;
|
danielebarchiesi@4
|
140 }
|
danielebarchiesi@4
|
141
|
danielebarchiesi@4
|
142 /**
|
danielebarchiesi@4
|
143 * Implements hook_admin_menu_map() on behalf of Views UI module.
|
danielebarchiesi@4
|
144 */
|
danielebarchiesi@4
|
145 function views_ui_admin_menu_map() {
|
danielebarchiesi@4
|
146 if (!user_access('administer views')) {
|
danielebarchiesi@4
|
147 return;
|
danielebarchiesi@4
|
148 }
|
danielebarchiesi@4
|
149 $views = array();
|
danielebarchiesi@4
|
150 foreach (views_get_enabled_views() as $name => $view) {
|
danielebarchiesi@4
|
151 $views[] = $name;
|
danielebarchiesi@4
|
152 }
|
danielebarchiesi@4
|
153 if (empty($views)) {
|
danielebarchiesi@4
|
154 return;
|
danielebarchiesi@4
|
155 }
|
danielebarchiesi@4
|
156 $map['admin/structure/views/view/%views_ui_cache'] = array(
|
danielebarchiesi@4
|
157 'parent' => 'admin/structure/views',
|
danielebarchiesi@4
|
158 'arguments' => array(
|
danielebarchiesi@4
|
159 array('%views_ui_cache' => $views),
|
danielebarchiesi@4
|
160 ),
|
danielebarchiesi@4
|
161 );
|
danielebarchiesi@4
|
162 return $map;
|
danielebarchiesi@4
|
163 }
|
danielebarchiesi@4
|
164
|