flexible_views-2.0.1/src/Plugin/views/style/FlexibleTable.php

src/Plugin/views/style/FlexibleTable.php
<?php

namespace Drupal\flexible_views\Plugin\views\style;

use Drupal\views\Plugin\views\style\Table;
use Drupal\Core\Cache\CacheableDependencyInterface;
use Drupal\Core\Form\FormStateInterface;

/**
 * Style plugin to render each item as a row in a table.
 *
 * @ingroup views_style_plugins
 *
 * @ViewsStyle(
 *   id = "flexible_table",
 *   title = @Translation("Flexible Table"),
 *   help = @Translation("Displays rows in a flexible table."),
 *   theme = "views_view_flexible_table",
 *   display_types = {"normal"}
 * )
 */
class FlexibleTable extends Table implements CacheableDependencyInterface {

  /**
   * Add the default_visible property to each column.
   *
   * @inheritDoc
   */
  public function buildOptionsForm(&$form, FormStateInterface $form_state) {
    parent::buildOptionsForm($form, $form_state);

    $columns = $this->sanitizeColumns($this->options['columns']);

    $form['#theme'] = 'flexible_views_style_plugin_flexible_table';

    foreach ($columns as $field => $column) {
      $column_selector = ':input[name="style_options[columns][' . $field . ']"]';

      $form['info'][$field]['default_visible'] = [
        '#title' => $this->t('Visible by default'),
        '#title_display' => 'invisible',
        '#type' => 'checkbox',
        '#default_value' => $this->options['info'][$field]['default_visible'] ?? FALSE,
        '#states' => [
          'visible' => [
            $column_selector => ['value' => $field],
          ],
        ],
      ];
    }
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc