You are here

function fb_instant_articles_display_field_ui_fields in Facebook Instant Articles 7

Same name and namespace in other branches
  1. 7.2 modules/fb_instant_articles_display/includes/view_mode_layout.inc \fb_instant_articles_display_field_ui_fields()

Adds the fields to the Field UI form.

Parameters

string $entity_type: The name of the entity type.

string $bundle: The name of the bundle.

string $view_mode: The name of the view_mode.

array $form: A collection of form properties.

array $form_state: A collection of form_state properties.

1 call to fb_instant_articles_display_field_ui_fields()
fb_instant_articles_display_layout_form in modules/fb_instant_articles_display/includes/view_mode_layout.inc
Includes Facebook Instant Articles Display View Mode elements.

File

modules/fb_instant_articles_display/includes/view_mode_layout.inc, line 281
View mode layout functions for Facebook Instant Articles Display.

Code

function fb_instant_articles_display_field_ui_fields($entity_type, $bundle, $view_mode, array &$form, array &$form_state) {

  // Do not add the fields if there is no layout.
  if (!isset($form['#fbia_layout'])) {
    return;
  }

  // Get the fields and put them on the form.
  $fields = fb_instant_articles_display_get_fields($entity_type, FALSE);

  // Get field settings.
  $field_settings = fb_instant_articles_display_get_field_settings($entity_type, $bundle, $view_mode, FALSE);
  $form['#field_settings'] = $field_settings;
  $table =& $form['fields'];
  $form['#fbia_fields'] = array();
  $field_label_options = array(
    'above' => t('Above'),
    'inline' => t('Inline'),
    'hidden' => t('<Hidden>'),
  );
  drupal_alter('fb_instant_articles_display_label_options', $field_label_options);
  foreach ($fields as $key => $field) {
    $form['#fbia_fields'][] = $key;

    // Check on formatter settings.
    if (isset($form_state['formatter_settings'][$key])) {
      $field['formatter_settings'] = $form_state['formatter_settings'][$key];
    }
    elseif (isset($field_settings[$key]['formatter_settings'])) {
      $field['formatter_settings'] = $field_settings[$key]['formatter_settings'];
      $form_state['formatter_settings'][$key] = $field['formatter_settings'];
    }
    if (!isset($field_settings[$key]['ft']) && isset($field_settings[$key]['ft'])) {
      $form_state['formatter_settings'][$key]['ft'] = $field_settings[$key]['ft'];
    }
    $hidden = array(
      'hidden' => t('<Hidden>'),
    );
    $formatters = isset($field['properties']['formatters']) ? $hidden + $field['properties']['formatters'] : $hidden + array(
      'default' => t('Default'),
    );
    $table[$key] = array(
      '#row_type' => 'field',
      '#js_settings' => array(
        'field',
      ),
      '#region_callback' => 'field_ui_display_overview_row_region',
      '#attributes' => array(
        'class' => array(
          'draggable',
          'tabledrag-leaf',
        ),
      ),
      'human_name' => array(
        '#markup' => check_plain($field['title']),
      ),
      'weight' => array(
        '#type' => 'textfield',
        '#default_value' => isset($field_settings[$key]['weight']) ? $field_settings[$key]['weight'] : 0,
        '#size' => 3,
        '#attributes' => array(
          'class' => array(
            'field-weight',
          ),
        ),
      ),
      'parent_wrapper' => array(
        'parent' => array(
          '#type' => 'select',
          '#empty_value' => '',
          '#options' => array(),
          '#attributes' => array(
            'class' => array(
              'field-parent',
            ),
          ),
          '#parents' => array(
            'fields',
            $key,
            'parent',
          ),
        ),
        'hidden_name' => array(
          '#type' => 'hidden',
          '#default_value' => $key,
          '#attributes' => array(
            'class' => array(
              'field-name',
            ),
          ),
        ),
      ),
      'label' => array(
        '#type' => 'select',
        '#options' => $field_label_options,
        '#default_value' => isset($field_settings[$key]['label']) ? $field_settings[$key]['label'] : 'hidden',
      ),
      'format' => array(
        'type' => array(
          '#type' => 'select',
          '#options' => $formatters,
          '#default_value' => isset($field_settings[$key]['format']) ? $field_settings[$key]['format'] : 'hidden',
          '#attributes' => array(
            'class' => array(
              'field-formatter-type',
            ),
          ),
        ),
      ),
      'settings_summary' => array(),
      'settings_edit' => array(),
    );
    $field['name'] = $key;
    $field['entity_type'] = $entity_type;
    $field['bundle'] = $bundle;
    $field['view_mode'] = $view_mode;
  }

  // Add fields submit handler.
  $form['#submit'][] = 'fb_instant_articles_display_field_ui_fields_save';
}