function view_modes_display_preview_entity in View Modes Display 7
Menu callback: display all the view modes for the given entity.
Parameters
$entity Entity to render:
$entity_type Entity type:
Return value
A page array suitable for use by drupal_render().
1 string reference to 'view_modes_display_preview_entity'
- view_modes_display_menu in ./
view_modes_display.module - Implements hook_menu().
File
- ./
view_modes_display.pages.inc, line 10
Code
function view_modes_display_preview_entity($entity, $entity_type) {
// Get available view modes for this entity type bundle
$entity_info = entity_get_info($entity_type);
$view_modes = $entity_info['view modes'];
// Fetch the bundle name, if no bundle key is set we use the entity_type (e.g. for user)
if ($entity_info['entity keys']['bundle']) {
$bundle = $entity->{$entity_info['entity keys']['bundle']};
}
else {
$bundle = $entity_type;
}
$view_mode_settings = field_view_mode_settings($entity_type, $bundle);
// Loop through the view modes
$build = array();
foreach ($view_modes as $view_mode_name => $view_mode_info) {
// Only consider the view mode if we have custom settings configured
if (!empty($view_mode_settings[$view_mode_name]['custom_settings'])) {
$build_add = entity_view($entity_type, array(
$entity,
), $view_mode_name);
$build_add['#prefix'] = '<div class="view-mode-list-item view-mode-list-item-' . $view_mode_name . '"><h1>' . $view_mode_info['label'] . '</h1>';
$build_add['#suffix'] = '</div>';
// Add it to build mode array
$build[] = $build_add;
}
}
// We provide a warning if no view modes with custom settings can be found.
if (module_exists('field_ui') && empty($build)) {
$admin_path = _field_ui_bundle_admin_path($entity_type, $bundle);
return array(
'#prefix' => '<div class="messages warning">',
'#markup' => t('No custom view modes can be found for this entity. Only view modes that have custom display settings are shown in the preview. !manage', array(
'!manage' => l(t('Manage display settings.'), $admin_path . '/display'),
)),
'#suffix' => '</div>',
);
}
return $build;
}