function field_collection_views_field_formatter_view in Field Collection Views 8
Same name and namespace in other branches
- 7 field_collection_views.module \field_collection_views_field_formatter_view()
Implements hook_field_formatter_view().
File
- ./
field_collection_views.module, line 29 - Module implementing a field-collection views formatter.
Code
function field_collection_views_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) {
$element = array();
$settings = $display['settings'];
switch ($display['type']) {
case 'field_collection_views_view':
$args = '';
$i = 1;
foreach ($items as $delta => $item) {
if ($i == 1) {
$args .= $item['value'];
}
else {
$args .= '+' . $item['value'];
}
$i++;
}
$view_name = isset($settings['name']) ? $settings['name'] : 'field_collection_view';
$display_id = isset($settings['display_id']) ? $settings['display_id'] : 'default';
$entity_uri = entity_uri($entity_type, $entity);
$entity_uri = $entity_uri['path'];
$field_path = 'field-collection/' . strtr($field['field_name'], array(
'_' => '-',
));
$add_path = $field_path . '/add/' . $entity_uri;
$content = views_embed_view($view_name, $display_id, $args, $add_path);
$element[0] = array(
'#markup' => $content,
);
if (empty($items)) {
field_collection_field_formatter_links($element, $entity_type, $entity, $field, $instance, $langcode, $items, $display);
}
break;
}
return $element;
}