1 |
31a5a6d6
|
Assos Assos
|
<?php
|
2 |
|
|
|
3 |
|
|
/**
|
4 |
|
|
* @file
|
5 |
|
|
* Provides entity property info for field collection items.
|
6 |
|
|
*/
|
7 |
|
|
|
8 |
|
|
class FieldCollectionItemMetadataController extends EntityDefaultMetadataController {
|
9 |
|
|
|
10 |
|
|
public function entityPropertyInfo() {
|
11 |
|
|
$info = parent::entityPropertyInfo();
|
12 |
|
|
$properties = &$info['field_collection_item']['properties'];
|
13 |
|
|
|
14 |
|
|
$properties['field_name']['label'] = t('Field name');
|
15 |
|
|
$properties['field_name']['description'] = t('The machine-readable name of the field collection field containing this item.');
|
16 |
|
|
$properties['field_name']['required'] = TRUE;
|
17 |
|
|
|
18 |
|
|
$properties['host_entity'] = array(
|
19 |
|
|
'label' => t('Host entity'),
|
20 |
|
|
'type' => 'entity',
|
21 |
|
|
'description' => t('The entity containing the field collection field.'),
|
22 |
|
|
'getter callback' => 'field_collection_item_get_host_entity',
|
23 |
|
|
'setter callback' => 'field_collection_item_set_host_entity',
|
24 |
|
|
'required' => TRUE,
|
25 |
|
|
);
|
26 |
|
|
|
27 |
a1cafe7e
|
Assos Assos
|
// Also add type-specific host entity references for all entity types that
|
28 |
|
|
// have at least one field collection field.
|
29 |
|
|
$field_collection_fields = field_read_fields(array('type' => 'field_collection'));
|
30 |
|
|
$entity_types = entity_get_info();
|
31 |
|
|
foreach (field_info_instances() as $entity_type => $bundles) {
|
32 |
|
|
foreach ($bundles as $bundle => $fields) {
|
33 |
|
|
if (array_intersect_key($fields, $field_collection_fields)) {
|
34 |
|
|
$args = array('@type' => $entity_types[$entity_type]['label']);
|
35 |
5e632cae
|
Assos Assos
|
$properties["host_entity_{$entity_type}"] = array(
|
36 |
a1cafe7e
|
Assos Assos
|
'label' => t('Host entity (@type)', $args),
|
37 |
|
|
'type' => $entity_type,
|
38 |
|
|
'description' => t('The @type containing the field collection field (empty if this field collection is attached to an item of a different type).', $args),
|
39 |
|
|
'getter callback' => 'field_collection_item_get_specific_type_host_entity',
|
40 |
|
|
'computed' => TRUE,
|
41 |
|
|
);
|
42 |
|
|
break;
|
43 |
|
|
}
|
44 |
|
|
}
|
45 |
|
|
}
|
46 |
|
|
|
47 |
31a5a6d6
|
Assos Assos
|
return $info;
|
48 |
|
|
}
|
49 |
|
|
|
50 |
950416da
|
Assos Assos
|
} |