function blockreference_entity_view in Block reference 7.2
Implements hook_entity_view().
Pre-render blockreference fields attached to entities to ensure forms are rendered early enough.
File
- ./
blockreference.module, line 434
Code
function blockreference_entity_view($entity, $entity_type, $view_mode, $langcode) {
if (empty($entity->content)) {
return;
}
foreach (element_children($entity->content) as $field_name) {
$field = $entity->content[$field_name];
// This is a blockreference field.
if (isset($field['#field_type']) && $field['#field_type'] == 'blockreference') {
// Unset renderable field items.
foreach (element_children($field) as $n) {
unset($entity->content[$field_name][$n]);
}
// Render.
$html = render($field);
// Add back to entity content.
$keep_meta = array_flip(array(
'#weight',
'#title',
'#access',
'#label_display',
'#field_name',
'#entity_type',
'#bundle',
));
$entity->content[$field_name] = array(
'#markup' => $html,
) + array_intersect_key($field, $keep_meta);
}
}
}