You are here

function entityreference_view_widget_field_widget_settings_form in Entity Reference View Widget 7

Same name and namespace in other branches
  1. 7.2 entityreference_view_widget.module \entityreference_view_widget_field_widget_settings_form()

Implements hook_field_widget_settings_form().

File

./entityreference_view_widget.module, line 134

Code

function entityreference_view_widget_field_widget_settings_form($field, $instance) {

  // Only fields with unlimited cardinality are supported at the moment.
  if ($field['cardinality'] != FIELD_CARDINALITY_UNLIMITED) {
    drupal_set_message(t("The selected widget only supports fields with 'Number of values' set to 'Unlimited'. Otherwise it won't get displayed on the entity form."), 'warning');
  }
  $widget = $instance['widget'];
  $settings = $widget['settings'];
  $target_type = $field['settings']['target_type'];
  $info = entity_get_info($target_type);
  $target_base_table = $info['base table'];
  if ($widget['type'] == 'entityreference_view_widget') {

    // Get a list of all views that contain a "Entityreference View Widget" display.
    $options = array();
    $displays = views_get_applicable_views('entityreference view display');
    foreach ($displays as $data) {
      list($view, $display_id) = $data;
      $view_name = !empty($view->human_name) ? $view->human_name : $view->name;
      $options[$view->name . '|' . $display_id] = check_plain($view_name . ' | ' . $view->display_handler->display->display_title);
    }
    $element['view'] = array(
      '#type' => 'select',
      '#title' => t('View'),
      '#description' => t('Specify the View to use for selecting items. Only views that have an "Entityreference View Widget" display are shown.'),
      '#options' => $options,
      '#default_value' => $settings['view'],
      '#required' => TRUE,
    );
    $element['pass_argument'] = array(
      '#type' => 'checkbox',
      '#title' => t('Pass selected entity ids to View'),
      '#description' => t('If enabled, the View will get all selected entity ids as the first argument. Useful for excluding already selected items.'),
      '#default_value' => $settings['pass_argument'],
    );
  }
  return $element;
}