diff --git a/includes/bean.pages.inc b/includes/bean.pages.inc index c30fa75..7b499f4 100644 --- a/includes/bean.pages.inc +++ b/includes/bean.pages.inc @@ -277,11 +277,22 @@ function bean_form($form, &$form_state, Bean $bean, $type = NULL) { // The view mode. if (user_access('edit bean view mode')) { - $bean_info = $bean->entityInfo(); - foreach ($bean_info['view modes'] as $view_mode_name => $data) { - $view_modes[$view_mode_name] = $data['label']; + $entity_type = $bean->entityType(); + $bundle = $bean->type; + + $entity_info = entity_get_info($entity_type); + $view_mode_list = $entity_info['view modes']; + $view_mode_settings = field_view_mode_settings($entity_type, $bundle); + + foreach ($view_mode_list as $view_mode_name => $view_mode_info) { + if (!empty($view_mode_settings[$view_mode_name]['custom_settings'])) { + $view_modes[$view_mode_name] = $view_mode_info['label']; + } } + // Default should be available always. + $view_modes['default'] = t('Default'); + $form['view_mode'] = array( '#title' => t('View Mode'), '#description' => t('Edit the view mode of the Bean'),