1 field_ui.admin.inc | field_ui_view_mode_enable($entity_type, $bundle, $view_mode_name, $redirect = TRUE) |
Menu callback: Enables the manage displays UI for a display mode.
File
- core/
modules/ field_ui/ field_ui.admin.inc, line 2423 - Admin page callbacks for the Field UI module.
Code
function field_ui_view_mode_enable($entity_type, $bundle, $view_mode_name, $redirect = TRUE) {
// Be sure we get the bundle.
$bundle = field_extract_bundle($entity_type, $bundle);
// Get current bundle settings.
$bundle_settings = field_bundle_settings($entity_type, $bundle);
// Get display mode settings.
$view_mode_settings = field_view_mode_settings($entity_type, $bundle);
// Initialize the newly customized display mode with the display settings
// from the default display mode.
_field_ui_add_default_view_mode_settings($entity_type, $bundle, $view_mode_name, $bundle_settings);
$bundle_settings['view_modes'][$view_mode_name]['custom_settings'] = TRUE;
// Save updated bundle settings.
field_bundle_settings($entity_type, $bundle, $bundle_settings);
// Set a friendly message.
$entity_info = entity_get_info($entity_type);
$label = $entity_info['view modes'][$view_mode_name]['label'];
$path = _field_ui_bundle_admin_path($entity_type, $bundle) . '/display';
$url = url($path . '/' . $view_mode_name);
$message = t('The display mode %name can now be <a href="@url">customized</a>.', array('%name' => $label, '@url' => $url));
backdrop_set_message($message);
// Clear the menu cache to add display mode to administration menu.
menu_cache_clear();
state_set('menu_rebuild_needed', TRUE);
if ($redirect) {
// Reload the current page.
backdrop_goto($path);
}
}