You are here

function field_collection_views_field_formatter_settings_form in Field Collection Views 7

Same name and namespace in other branches
  1. 8 field_collection_views.module \field_collection_views_field_formatter_settings_form()

Implements hook_field_formatter_settings_form().

File

./field_collection_views.module, line 68
Module implementing a field-collection views formatter.

Code

function field_collection_views_field_formatter_settings_form($field, $instance, $view_mode, $form, &$form_state) {
  $display = $instance['display'][$view_mode];
  $settings = isset($form_state['values']['fields'][$field['field_name']]['settings_edit_form']) ? $form_state['values']['fields'][$field['field_name']]['settings_edit_form']['settings'] : $display['settings'];
  $views = array(
    '' => t('-- Please select --'),
  ) + _field_collection_views_get_views();
  $views_keys = array_keys($views);
  $selected_view = isset($settings['name']) ? $settings['name'] : (isset($views_keys[0]) ? $views_keys[0] : '');
  $elements['name'] = array(
    '#type' => 'select',
    '#title' => t('Select a view'),
    '#options' => $views,
    '#default_value' => $selected_view,
    //'#description' => t('The machine name of the view to embed.'),
    '#ajax' => array(
      'event' => 'change',
      'callback' => '_field_collection_views_views_dropdown_callback',
      'wrapper' => 'views-replace',
    ),
  );
  $elements['display_id'] = array(
    '#prefix' => '<div id="views-replace">',
    '#suffix' => '</div>',
    '#type' => 'select',
    '#title' => t('Display'),
    '#options' => _field_collection_views_get_views_displays($selected_view),
    '#default_value' => isset($settings['display_id']) ? $settings['display_id'] : '',
  );
  $elements['add'] = array(
    '#type' => 'textfield',
    '#title' => t('Add link title'),
    '#default_value' => $settings['add'],
    '#description' => t('Leave the title empty, to hide the link.'),
  );
  return $elements;
}