danielebarchiesi@4
|
1 <?php
|
danielebarchiesi@4
|
2
|
danielebarchiesi@4
|
3 /**
|
danielebarchiesi@4
|
4 * @file
|
danielebarchiesi@4
|
5 * Provides the field_collection module admin pages.
|
danielebarchiesi@4
|
6 */
|
danielebarchiesi@4
|
7
|
danielebarchiesi@4
|
8 /**
|
danielebarchiesi@4
|
9 * Menu callback; list all field collections on this site.
|
danielebarchiesi@4
|
10 */
|
danielebarchiesi@4
|
11 function field_collections_overview() {
|
danielebarchiesi@4
|
12 $instances = field_info_instances();
|
danielebarchiesi@4
|
13 $field_types = field_info_field_types();
|
danielebarchiesi@4
|
14 $bundles = field_info_bundles();
|
danielebarchiesi@4
|
15 $header = array(t('Field name'), t('Used in'), array('data' => t('Operations'), 'colspan' => '2'));
|
danielebarchiesi@4
|
16 $rows = array();
|
danielebarchiesi@4
|
17 foreach ($instances as $entity_type => $type_bundles) {
|
danielebarchiesi@4
|
18 foreach ($type_bundles as $bundle => $bundle_instances) {
|
danielebarchiesi@4
|
19 foreach ($bundle_instances as $field_name => $instance) {
|
danielebarchiesi@4
|
20 $field = field_info_field($field_name);
|
danielebarchiesi@4
|
21 if ($field['type'] == 'field_collection') {
|
danielebarchiesi@4
|
22 $admin_path = _field_ui_bundle_admin_path($entity_type, $bundle);
|
danielebarchiesi@4
|
23 $rows[$field_name]['class'] = $field['locked'] ? array('menu-disabled') : array('');
|
danielebarchiesi@4
|
24
|
danielebarchiesi@4
|
25 $rows[$field_name]['data'][0] = $field['locked'] ? t('@field_name (Locked)', array('@field_name' => $field_name)) : $field_name;
|
danielebarchiesi@4
|
26 $rows[$field_name]['data'][1][] = l($bundles[$entity_type][$bundle]['label'], $admin_path . '/fields');
|
danielebarchiesi@4
|
27 }
|
danielebarchiesi@4
|
28 }
|
danielebarchiesi@4
|
29 }
|
danielebarchiesi@4
|
30 }
|
danielebarchiesi@4
|
31 foreach ($rows as $field_name => $cell) {
|
danielebarchiesi@4
|
32 $rows[$field_name]['data'][1] = implode(', ', $cell['data'][1]);
|
danielebarchiesi@4
|
33
|
danielebarchiesi@4
|
34 $field_name_url_str = strtr($field_name, array('_' => '-'));
|
danielebarchiesi@4
|
35 $rows[$field_name]['data'][2] = l(t('manage fields'), 'admin/structure/field-collections/' . $field_name_url_str . '/fields');
|
danielebarchiesi@4
|
36 $rows[$field_name]['data'][3] = l(t('manage display'), 'admin/structure/field-collections/' . $field_name_url_str . '/display');
|
danielebarchiesi@4
|
37 }
|
danielebarchiesi@4
|
38 if (empty($rows)) {
|
danielebarchiesi@4
|
39 $output = t('No field collections have been defined yet. To do so attach a field collection field to any entity.');
|
danielebarchiesi@4
|
40 }
|
danielebarchiesi@4
|
41 else {
|
danielebarchiesi@4
|
42 // Sort rows by field name.
|
danielebarchiesi@4
|
43 ksort($rows);
|
danielebarchiesi@4
|
44 $output = theme('table', array('header' => $header, 'rows' => $rows));
|
danielebarchiesi@4
|
45 }
|
danielebarchiesi@4
|
46 return $output;
|
danielebarchiesi@4
|
47 }
|