Projet

Général

Profil

Paste
Télécharger (1,88 ko) Statistiques
| Branche: | Révision:

root / drupal7 / sites / all / modules / field_collection / field_collection.admin.inc @ 5e632cae

1
<?php
2

    
3
/**
4
 * @file
5
 * Provides the field_collection module admin pages.
6
 */
7

    
8
/**
9
 * Menu callback; list all field collections on this site.
10
 */
11
function field_collections_overview() {
12
  $instances = field_info_instances();
13
  $field_types = field_info_field_types();
14
  $bundles = field_info_bundles();
15
  $header = array(
16
    t('Field name'),
17
    t('Used in'),
18
    array('data' => t('Operations'), 'colspan' => '2'),
19
  );
20
  $rows = array();
21
  foreach ($instances as $entity_type => $type_bundles) {
22
    foreach ($type_bundles as $bundle => $bundle_instances) {
23
      foreach ($bundle_instances as $field_name => $instance) {
24
        $field = field_info_field($field_name);
25
        if ($field['type'] == 'field_collection') {
26
          $admin_path = _field_ui_bundle_admin_path($entity_type, $bundle);
27
          $rows[$field_name]['class'] = $field['locked'] ? array('menu-disabled') : array('');
28

    
29
          $rows[$field_name]['data'][0] = $field['locked'] ? t('@field_name (Locked)', array('@field_name' => $field_name)) : $field_name;
30
          $rows[$field_name]['data'][1][] = l($bundles[$entity_type][$bundle]['label'], $admin_path . '/fields');
31
        }
32
      }
33
    }
34
  }
35
  foreach ($rows as $field_name => $cell) {
36
    $rows[$field_name]['data'][1] = implode(', ', $cell['data'][1]);
37

    
38
    $field_name_url_str = strtr($field_name, array('_' => '-'));
39
    $rows[$field_name]['data'][2] = l(t('manage fields'), 'admin/structure/field-collections/' . $field_name_url_str . '/fields');
40
    $rows[$field_name]['data'][3] = l(t('manage display'), 'admin/structure/field-collections/' . $field_name_url_str . '/display');
41
  }
42
  if (empty($rows)) {
43
    $output = t('No field collections have been defined yet. To do so attach a field collection field to any entity.');
44
  }
45
  else {
46
    // Sort rows by field name.
47
    ksort($rows);
48
    $output = theme('table', array('header' => $header, 'rows' => $rows));
49
  }
50
  return $output;
51
}