Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. Fields.php

function Fields::buildOptionsForm

Provide a form for setting options.

Overrides RowPluginBase::buildOptionsForm

2 calls to Fields::buildOptionsForm()
EntityReference::buildOptionsForm in core/modules/views/src/Plugin/views/row/EntityReference.php
Provide a form for setting options.
EntityReference::buildOptionsForm in core/modules/views/src/Plugin/views/row/EntityReference.php
Provide a form for setting options.
1 method overrides Fields::buildOptionsForm()
EntityReference::buildOptionsForm in core/modules/views/src/Plugin/views/row/EntityReference.php
Provide a form for setting options.

File

core/modules/views/src/Plugin/views/row/Fields.php, line 46

Class

Fields
The basic 'fields' row plugin.

Namespace

Drupal\views\Plugin\views\row

Code

public function buildOptionsForm(&$form, FormStateInterface $form_state) {
    parent::buildOptionsForm($form, $form_state);
    $options = $this->displayHandler
        ->getFieldLabels();
    if (empty($this->options['inline'])) {
        $this->options['inline'] = [];
    }
    $form['default_field_elements'] = [
        '#type' => 'checkbox',
        '#title' => $this->t('Provide default field wrapper elements'),
        '#default_value' => $this->options['default_field_elements'],
        '#description' => $this->t('If not checked, fields that are not configured to customize their HTML elements will get no wrappers at all for their field, label and field + label wrappers. You can use this to quickly reduce the amount of markup the view provides by default, at the cost of making it more difficult to apply CSS.'),
    ];
    $form['inline'] = [
        '#type' => 'checkboxes',
        '#title' => $this->t('Inline fields'),
        '#options' => $options,
        '#default_value' => $this->options['inline'],
        '#description' => $this->t('Inline fields will be displayed next to each other rather than one after another. Note that some fields will ignore this if they are block elements, particularly body fields and other formatted HTML.'),
        '#states' => [
            'visible' => [
                ':input[name="row_options[default_field_elements]"]' => [
                    'checked' => TRUE,
                ],
            ],
        ],
    ];
    $form['separator'] = [
        '#title' => $this->t('Separator'),
        '#type' => 'textfield',
        '#size' => 10,
        '#default_value' => $this->options['separator'] ?? '',
        '#description' => $this->t('The separator may be placed between inline fields to keep them from squishing up next to each other. You can use HTML in this field.'),
        '#states' => [
            'visible' => [
                ':input[name="row_options[default_field_elements]"]' => [
                    'checked' => TRUE,
                ],
            ],
        ],
    ];
    $form['hide_empty'] = [
        '#type' => 'checkbox',
        '#title' => $this->t('Hide empty fields'),
        '#default_value' => $this->options['hide_empty'],
        '#description' => $this->t('Do not display fields, labels or markup for fields that are empty.'),
    ];
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal