You are here

public function TaxonomyBreadcrumbAdminSettings::buildForm in Taxonomy Breadcrumb 8

Form constructor.

Parameters

array $form: An associative array containing the structure of the form.

\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.

Return value

array The form structure.

Overrides ConfigFormBase::buildForm

File

src/Form/TaxonomyBreadcrumbAdminSettings.php, line 32

Class

TaxonomyBreadcrumbAdminSettings
Class TaxonomyBreadcrumbAdminSettings.

Namespace

Drupal\taxonomy_breadcrumb\Form

Code

public function buildForm(array $form, FormStateInterface $form_state) {
  $form['settings'] = [
    '#type' => 'details',
    '#title' => $this
      ->t('Basic settings'),
    '#open' => TRUE,
  ];
  $form['settings']['taxonomy_breadcrumb_home'] = [
    '#type' => 'textfield',
    '#title' => $this
      ->t('Home breadcrumb text'),
    '#default_value' => \Drupal::config('taxonomy_breadcrumb.settings')
      ->get('taxonomy_breadcrumb_home'),
    '#description' => $this
      ->t('Text to display at top of breadcrumb trail. Typically home or your site name. Leave blank to have no home breadcrumb.'),
  ];
  $form['settings']['taxonomy_breadcrumb_page_title'] = [
    '#type' => 'checkbox',
    '#title' => $this
      ->t('Show current page title in breadcrumb trail'),
    '#default_value' => \Drupal::config('taxonomy_breadcrumb.settings')
      ->get('taxonomy_breadcrumb_page_title'),
    '#description' => $this
      ->t("If enabled, the page title will be added as the last item in the breadcrumb trail."),
    '#weight' => 30,
  ];
  $form['advanced'] = [
    '#type' => 'details',
    '#description' => $this
      ->t('Use these advanced settings to control which node types the taxonomy-based breadcrumbs will be generated for.  This allows the taxonomy breadcrumb module to peacefully coexist with modules that define their own breadcrumbs, such as the book module.'),
    '#title' => $this
      ->t('Advanced settings'),
    '#open' => TRUE,
  ];
  $form['advanced']['taxonomy_breadcrumb_include_nodes'] = [
    '#type' => 'radios',
    '#title' => $this
      ->t('Include or exclude the following node types'),
    '#default_value' => \Drupal::config('taxonomy_breadcrumb.settings')
      ->get('taxonomy_breadcrumb_include_nodes'),
    '#options' => [
      1 => $this
        ->t('Include'),
      0 => $this
        ->t('Exclude'),
    ],
    '#weight' => 10,
  ];
  $tb_types = (array) \Drupal::config('taxonomy_breadcrumb.settings')
    ->get('taxonomy_breadcrumb_node_types');
  $default = [];
  foreach ($tb_types as $index => $value) {
    if ($value) {
      $default[] = $index;
    }
  }
  $form['advanced']['taxonomy_breadcrumb_node_types'] = [
    '#type' => 'checkboxes',
    '#title' => $this
      ->t('Node types to include or exclude'),
    '#default_value' => $default,
    '#options' => node_type_get_names(),
    '#description' => $this
      ->t('A list of node types to include or exclude when applying taxonomy-based breadcrumbs.'),
    '#weight' => 20,
  ];
  return parent::buildForm($form, $form_state);
}