You are here

public function ViewsAddButtonField::buildOptionsForm in Views Add Button 2.0.x

Same name and namespace in other branches
  1. 8 src/Plugin/views/field/ViewsAddButtonField.php \Drupal\views_add_button\Plugin\views\field\ViewsAddButtonField::buildOptionsForm()

Provide the options form.

Overrides FieldPluginBase::buildOptionsForm

File

src/Plugin/views/field/ViewsAddButtonField.php, line 60

Class

ViewsAddButtonField
Defines a views field plugin.

Namespace

Drupal\views_add_button\Plugin\views\field

Code

public function buildOptionsForm(&$form, FormStateInterface $form_state) {
  parent::buildOptionsForm($form, $form_state);
  $form['type'] = [
    '#type' => 'select',
    '#title' => t('Entity Type'),
    '#options' => ViewsAddButtonUtilities::createEntityBundleList(),
    '#empty_option' => '- Select -',
    '#default_value' => $this->options['type'],
    '#weight' => -10,
    '#required' => TRUE,
  ];
  $form['render_plugin'] = [
    '#type' => 'select',
    '#title' => t('Custom Rendering Plugin'),
    '#description' => t('If you would like to specify a plugin to use for rendering, set it here.
        Leave unset to use the entity default plugin (recommended).'),
    '#options' => ViewsAddButtonUtilities::createPluginList(),
    '#empty_option' => '- Select -',
    '#default_value' => $this->options['render_plugin'],
    '#weight' => -10,
  ];
  $form['access_plugin'] = [
    '#type' => 'select',
    '#title' => t('Custom Access Plugin'),
    '#description' => t('If you would like to specify an access plugin to use, set it here.
        Leave unset to use the entity default plugin (recommended).'),
    '#options' => ViewsAddButtonUtilities::createPluginList(),
    '#empty_option' => '- Select -',
    '#default_value' => $this->options['access_plugin'],
    '#weight' => -10,
  ];
  $form['context'] = [
    '#type' => 'textfield',
    '#title' => t('Entity Context'),
    '#description' => t('Certain entities require a special context parameter. Set the context (or relevant
      token) here. Check the help for the relevant Views Add Button module for further questions.'),
    '#default_value' => $this->options['context'],
    '#weight' => -9,
  ];
  $form['button_text'] = [
    '#type' => 'textfield',
    '#title' => t('Button Text for the add button'),
    '#description' => t('Leave empty for the default: "Add [entity_bundle]"'),
    '#default_value' => $this->options['button_text'],
    '#weight' => -7,
  ];
  $form['query_string'] = [
    '#type' => 'textfield',
    '#title' => t('Query string to append to the add link'),
    '#description' => t('Add the query string, without the "?" .'),
    '#default_value' => $this->options['query_string'],
    '#weight' => -6,
  ];
  $form['button_classes'] = [
    '#type' => 'textfield',
    '#title' => t('Button classes for the add link - usually "button" or "btn," with additional styling classes.'),
    '#default_value' => $this->options['button_classes'],
    '#weight' => -5,
  ];
  $form['button_attributes'] = [
    '#type' => 'textarea',
    '#title' => t('Additional Button Attributes'),
    '#description' => t('Add one attribute string per line, without quotes (i.e. name=views_add_button).'),
    '#default_value' => $this->options['button_attributes'],
    '#cols' => 60,
    '#rows' => 2,
    '#weight' => -4,
  ];
  $form['button_access_denied'] = [
    '#type' => 'text_format',
    '#title' => t('Access Denied HTML'),
    '#description' => t('HTML to inject if access is denied.'),
    '#cols' => 60,
    '#rows' => 2,
    '#weight' => -3,
    '#default_value' => $this->options['button_access_denied']['value'],
  ];
  $form['button_prefix'] = [
    '#type' => 'text_format',
    '#title' => t('Prefix HTML'),
    '#description' => t('HTML to inject before the button.'),
    '#cols' => 60,
    '#rows' => 2,
    '#weight' => -3,
    '#default_value' => $this->options['button_prefix']['value'],
  ];
  $form['button_suffix'] = [
    '#type' => 'text_format',
    '#title' => t('Suffix HTML'),
    '#description' => t('HTML to inject after the button.'),
    '#cols' => 60,
    '#rows' => 2,
    '#weight' => -2,
    '#default_value' => $this->options['button_suffix']['value'],
  ];
  $form['destination'] = [
    '#type' => 'checkbox',
    '#title' => t('Include destination parameter?'),
    '#description' => t('Set a URL parameter to return a user to the current page after adding an item.'),
    '#default_value' => $this->options['destination'],
    '#weight' => -1,
  ];
  $form['tokenize'] = $form['alter']['alter_text'];
  $form['tokenize']['#title'] = $this
    ->t('Use tokens');
  $form['tokenize']['#description'] = $this
    ->t('Use tokens from the current row for button/property values. See the "Replacement Patterns" below for options.');
  $form['tokenize']['#default_value'] = $this->options['tokenize'];
  $form['preserve_tags'] = [
    '#type' => 'textfield',
  ];
  $form['preserve_tags']['#title'] = $this
    ->t('Preserve Tags');
  $form['preserve_tags']['#description'] = $this
    ->t('Preserve these HTML tags during tokenization. Separate with spaces, i.e "h1 h2 p"');
  $form['preserve_tags']['#default_value'] = $this->options['preserve_tags'];
  $form['tokens'] = $form['alter']['help'];
  $form['tokens']['#states'] = NULL;
  $form['style_settings']['#attributes']['style'] = 'display:none;';
  $form['element_type_enable']['#attributes']['style'] = 'display:none;';
  $form['element_type']['#attributes']['style'] = 'display:none;';
  $form['element_class_enable']['#attributes']['style'] = 'display:none;';
  $form['element_class']['#attributes']['style'] = 'display:none;';
  $form['element_label_type_enable']['#attributes']['style'] = 'display:none;';
  $form['element_label_type']['#attributes']['style'] = 'display:none;';
  $form['element_label_class_enable']['#attributes']['style'] = 'display:none;';
  $form['element_label_class']['#attributes']['style'] = 'display:none;';
  $form['element_wrapper_type_enable']['#attributes']['style'] = 'display:none;';
  $form['element_wrapper_type']['#attributes']['style'] = 'display:none;';
  $form['element_wrapper_class_enable']['#attributes']['style'] = 'display:none;';
  $form['element_wrapper_class']['#attributes']['style'] = 'display:none;';
  $form['element_default_classes']['#attributes']['style'] = 'display:none;';
  $form['alter']['#attributes']['style'] = 'display:none;';
  $form['empty_field_behavior']['#attributes']['style'] = 'display:none;';
  $form['empty']['#attributes']['style'] = 'display:none;';
  $form['empty_zero']['#attributes']['style'] = 'display:none;';
  $form['hide_empty']['#attributes']['style'] = 'display:none;';
  $form['hide_alter_empty']['#attributes']['style'] = 'display:none;';
}