Добавьте имя класса таблицы в таблицу представления


Могу ли я добавить имя пользовательского класса таблицы в представление, которое выводит таблицу, или просто добавить имя представления к имени класса таблицы? В представлениях нет настройки для добавления имени класса таблицы, вы можете добавлять только имена классов строк.

Мое имя представления - view-a1. Я хотел бы указать имя представления для всех имен классов таблиц.Я пытаюсь сделать это с помощью hook_preprocess_views_view_table. Но я не знаю, как это сделать.

Шаблон ветки по умолчанию использует эту разметку

В метод в приведенном ниже URL-адресе сработал, он добавит пользовательское жестко закодированное имя класса таблицы. Я изменил крючок в примере на hook_preprocess_views_view_table. Что я действительно хочу сделать, так это добавить имя представления в качестве имени класса таблицы. Как я могу это сделать?

Https://www.drupal.org/docs/8/theming-drupal-8/modifying-attributes-in-a-theme-file

Author: paulcap1 , 2018-10-29

3 answers

Также используя таблицы данных, мне пришлось добавить идентификатор в таблицу, созданную представлением, отображающим страницу (системное имя = page_1).
Я сделал это, дублируя views-view-table.html.twig в views-view-table--members--page_1.html.twig и изменив

<table{{ attributes.addClass(classes) }}>

В

<table{{ attributes.addClass(classes) }} ID="ListOfMembers">

Может быть, это поможет вам...

 2
Author: gbmapo, 2018-10-29 23:15:45

Представления имеют параметр CSS-класса в разделе Advanced (третий столбец). Там вы можете настроить класс для вывода на все дисплеи этих представлений или переопределить для отдельных дисплеев.

Большинство тем не выводят этот класс непосредственно в элементе <table>, обычно он выводится в <div>, содержащем таблицу.

Этого может быть достаточно для стилизации в CSS, но при желании вы можете переопределить шаблон twig или использовать функцию предварительной обработки в своей теме для большего контроля.

 3
Author: prkos, 2018-10-29 16:52:54

Попробуйте это, это работает для меня:

use Drupal\Component\Utility\Html;
/**
 * Implements hook_preprocess_views_view().
 */
function MYTHEMENAME_preprocess_views_view_table(&$vars){
  $view = $vars['view'];
  $vars['attributes']['class'][] = Html::cleanCssIdentifier($view->id());
}
 2
Author: berramou, 2018-10-30 09:17:03