Добавьте имя класса таблицы в таблицу представления
Могу ли я добавить имя пользовательского класса таблицы в представление, которое выводит таблицу, или просто добавить имя представления к имени класса таблицы? В представлениях нет настройки для добавления имени класса таблицы, вы можете добавлять только имена классов строк.
Мое имя представления - 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
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">
Может быть, это поможет вам...
Представления имеют параметр CSS-класса в разделе Advanced
(третий столбец). Там вы можете настроить класс для вывода на все дисплеи этих представлений или переопределить для отдельных дисплеев.
Большинство тем не выводят этот класс непосредственно в элементе <table>
, обычно он выводится в <div>
, содержащем таблицу.
Этого может быть достаточно для стилизации в CSS, но при желании вы можете переопределить шаблон twig или использовать функцию предварительной обработки в своей теме для большего контроля.
Попробуйте это, это работает для меня:
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());
}