You are here

public function entity_views_handler_field_entity::options_form in Entity API 7

Default options form provides the label widget that all fields should have.

Overrides views_handler_field::options_form

File

views/handlers/entity_views_handler_field_entity.inc, line 89
Contains the entity_views_handler_field_entity class.

Class

entity_views_handler_field_entity
A handler to provide proper displays for entities retrieved via data selection.

Code

public function options_form(&$form, &$form_state) {
  parent::options_form($form, $form_state);
  EntityFieldHandlerHelper::options_form($this, $form, $form_state);

  // We want a different form field at a different place.
  unset($form['link_to_entity']);
  $options = array(
    'label' => t('Show entity label'),
    'id' => t('Show entity ID'),
    'view' => t('Show complete entity'),
  );
  $form['display'] = array(
    '#type' => 'select',
    '#title' => t('Display'),
    '#description' => t('Decide how this field will be displayed.'),
    '#options' => $options,
    '#default_value' => $this->options['display'],
  );
  $form['link_to_entity'] = array(
    '#type' => 'checkbox',
    '#title' => t('Link to entity'),
    '#description' => t('Link this field to the entity.'),
    '#default_value' => $this->options['link_to_entity'],
    '#dependency' => array(
      'edit-options-display' => array(
        'label',
        'id',
      ),
    ),
  );

  // Stolen from entity_views_plugin_row_entity_view.
  $entity_info = entity_get_info($this->field_entity_type);
  $options = array();
  if (!empty($entity_info['view modes'])) {
    foreach ($entity_info['view modes'] as $mode => $settings) {
      $options[$mode] = $settings['label'];
    }
  }
  if (count($options) > 1) {
    $form['view_mode'] = array(
      '#type' => 'select',
      '#options' => $options,
      '#title' => t('View mode'),
      '#default_value' => $this->options['view_mode'],
      '#dependency' => array(
        'edit-options-display' => array(
          'view',
        ),
      ),
    );
  }
  else {
    $form['view_mode'] = array(
      '#type' => 'value',
      '#value' => $options ? key($options) : 'default',
    );
  }
  $form['bypass_access'] = array(
    '#type' => 'checkbox',
    '#title' => t('Bypass access checks'),
    '#description' => t('If enabled, access permissions for rendering the entity are not checked.'),
    '#default_value' => !empty($this->options['bypass_access']),
  );
}