/httpdocs/sites/all/modules/contrib/admin_menu/admin_menu.map.inc

https://github.com/marcusx/jVectorMap-for-Drupal · Pascal · 163 lines · 111 code · 11 blank · 41 comment · 3 complexity · 14d6685f8f59192bb216a58bbc462a75 MD5 · raw file

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