field_ui_display_overview_form

Versions
7
field_ui_display_overview_form($form, &$form_state, $obj_type, $bundle, $build_modes_selector = 'basic')

Menu callback; presents a listing of fields display settings for a content type.

This form includes form widgets to select which fields appear in teaser and full build modes, and how the field labels should be rendered.

Code

modules/field_ui/field_ui.admin.inc, line 572

<?php
function field_ui_display_overview_form($form, &$form_state, $obj_type, $bundle, $build_modes_selector = 'basic') {
  $bundle = field_extract_bundle($obj_type, $bundle);

  field_ui_inactive_message($obj_type, $bundle);
  $admin_path = _field_ui_bundle_admin_path($obj_type, $bundle);

  // Gather type information.
  $instances = field_info_instances($obj_type, $bundle);
  $field_types = field_info_field_types();
  $build_modes = field_ui_build_modes_tabs($obj_type, $build_modes_selector);

  $form += array(
    '#tree' => TRUE,
    '#object_type' => $obj_type,
    '#bundle' => $bundle,
    '#fields' => array_keys($instances),
    '#contexts' => $build_modes_selector,
  );

  if (empty($instances)) {
    drupal_set_message(t('There are no fields yet added. You can add new fields on the <a href="@link">Manage fields</a> page.', array('@link' => url($admin_path . '/fields'))), 'warning');
    return $form;
  }

  // Fields.
  $label_options = array(
    'above' => t('Above'),
    'inline' => t('Inline'),
    'hidden' => t('<Hidden>'),
  );
  foreach ($instances as $name => $instance) {
    $field = field_info_field($instance['field_name']);
    $weight = $instance['widget']['weight'];

    $form[$name] = array(
      'human_name' => array('#markup' => check_plain($instance['label'])),
      'weight' => array('#type' => 'value', '#value' => $weight),
    );
    $defaults = $instance['display'];

    $formatter_options = field_ui_formatter_options($field['type']);
    $formatter_options['hidden'] = t('<Hidden>');
    foreach ($build_modes as $build_mode => $label) {
      $display = isset($instance['display'][$build_mode]) ? $instance['display'][$build_mode] : $instance['display']['full'];
      $form[$name][$build_mode]['label'] = array(
        '#type' => 'select',
        '#options' => $label_options,
        '#default_value' => $display['label'],
      );
      $form[$name][$build_mode]['type'] = array(
        '#type' => 'select',
        '#options' => $formatter_options,
        '#default_value' => $display['type'],
      );
    }
  }

  $form['submit'] = array('#type' => 'submit', '#value' => t('Save'));
  return $form;
}
?>
Login or register to post comments
 
 

All source code and documentation on this site is released under the terms of the GNU General Public License, version 2 and later. Drupal is a registered trademark of Dries Buytaert.