function textformatter_contrib_entityreference_field_create_list in Text list formatter 8.2
Same name and namespace in other branches
- 7 textformatter_contrib/textformatter_contrib.module \textformatter_contrib_entityreference_field_create_list()
Entity reference field listing callback.
1 string reference to 'textformatter_contrib_entityreference_field_create_list'
- textformatter_contrib_textformatter_field_info in textformatter_contrib/
textformatter_contrib.module - Implements hook_textformatter_field_info().
File
- textformatter_contrib/
textformatter_contrib.module, line 60 - Textformatter support for contributed module fields.
Code
function textformatter_contrib_entityreference_field_create_list($entity_type, $entity, $field, $instance, $langcode, $items, $display) {
// Load the target type for the field instance.
$target_type = $field['settings']['target_type'];
$contrib_settings = $display['settings']['textformatter_contrib'];
$list_items = $target_ids = $target_entities = array();
// Get an array of entity ids.
foreach ($items as $delta => $item) {
$target_ids[] = $item['target_id'];
}
// Load them all.
if ($target_ids) {
$target_entities = entity_load($target_type, $target_ids);
}
// Create a list item for each entity.
foreach ($target_entities as $id => $entity) {
// Only add entities to the list that the user will have access to.
if (isset($item['target_id']) && entity_access('view', $target_type, $entity)) {
$label = entity_label($target_type, $entity);
if ($contrib_settings['entityreference_link']) {
$uri = entity_uri($target_type, $entity);
$target_type_class = drupal_html_class($target_type);
$classes = array(
$target_type_class,
$target_type_class . '-' . $id,
'entityreference',
);
$list_items[$id] = l($label, $uri['path'], array(
'attributes' => array(
'class' => $classes,
),
));
}
else {
$list_items[$id] = field_filter_xss($label);
}
}
}
return $list_items;
}