Projet

Général

Profil

Révision c8d66f01

Ajouté par Assos Assos il y a plus de 9 ans

Weekly update of contrib modules

Voir les différences:

drupal7/sites/all/modules/admin_menu/admin_menu.map.inc
58 58

  
59 59
/**
60 60
 * Implements hook_admin_menu_map() on behalf of Field UI module.
61
 *
62
 * @todo Figure out how to fix the comment entity bundle mappings.
61 63
 */
62 64
function field_ui_admin_menu_map() {
63 65
  $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 66

  
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;
67
  foreach (entity_get_info() as $entity_type => $entity_info) {
68
    if (!$entity_info['fieldable']) {
69
      continue;
70
    }
71

  
72
    foreach ($entity_info['bundles'] as $bundle => $bundle_info) {
73
      // @see field_ui_menu()
74
      if (!isset($bundle_info['admin'])) {
75
        continue;
76
      }
96 77

  
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;
78
      // Check access to this bundle.
79
      $bundle_info['admin'] += array(
80
        'access callback' => 'user_access',
81
        'access arguments' => array('administer site configuration'),
82
      );
83
      if (!call_user_func_array($bundle_info['admin']['access callback'], $bundle_info['admin']['access arguments'])) {
84
        continue;
85
      }
108 86

  
109
          case 'user':
110
            $arguments = array(
111
              '%field_ui_menu' => array_keys(field_info_fields('user')),
112
            );
113
            break;
87
      if ($fields = field_info_instances($entity_type, $bundle)) {
88
        $path = $bundle_info['admin']['path'];
89
        $argument = array();
90
        if (isset($bundle_info['admin']['bundle argument'])) {
91
          $bundle_arg = arg($bundle_info['admin']['bundle argument'], $path);
92
          $argument[$bundle_arg] = array($bundle);
114 93
        }
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;
94
        $argument['%field_ui_menu'] = array_keys($fields);
95

  
96
        if (!isset($map["$path/fields/%field_ui_menu"])) {
97
          $map["$path/fields/%field_ui_menu"] = array(
98
            'parent' => "$path/fields",
99
            'arguments' => array(),
100
          );
119 101
        }
102
        $map["$path/fields/%field_ui_menu"]['arguments'][] = $argument;
120 103
      }
121 104
    }
122 105
  }
106

  
123 107
  return $map;
124 108
}
125 109

  
......
161 145
  );
162 146
  return $map;
163 147
}
164

  

Formats disponibles : Unified diff