+ {%
+ set row_classes = [
+ default_row_class ? 'views-row',
+ ]
+ %}
+
{% endfor %}
diff --git a/core/modules/views/templates/views-view.html.twig b/core/modules/views/templates/views-view.html.twig
index f839ef9..18fbdb0 100644
--- a/core/modules/views/templates/views-view.html.twig
+++ b/core/modules/views/templates/views-view.html.twig
@@ -37,7 +37,16 @@
* @ingroup themeable
*/
#}
-
+{%
+ set classes = [
+ 'view',
+ 'view-' ~ id|clean_class,
+ 'view-id-' ~ id,
+ 'view-display-id-' ~ display_id,
+ dom_id ? 'view-dom-id-' ~ dom_id,
+ ]
+%}
+
{{ title_prefix }}
{% if title %}
{{ title }}
diff --git a/core/modules/views/views.theme.inc b/core/modules/views/views.theme.inc
index 81df6a1..0417eea 100644
--- a/core/modules/views/views.theme.inc
+++ b/core/modules/views/views.theme.inc
@@ -28,13 +28,6 @@ function template_preprocess_views_view(&$variables) {
$variables['id'] = $id;
$variables['display_id'] = $view->current_display;
- // Basic classes.
- $variables['attributes']['class'] = array();
- $variables['attributes']['class'][] = 'view';
- $variables['attributes']['class'][] = 'view-' . Html::cleanCssIdentifier($variables['id']);
- $variables['attributes']['class'][] = 'view-id-' . $variables['id'];
- $variables['attributes']['class'][] = 'view-display-id-' . $variables['display_id'];
-
$css_class = $view->display_handler->getOption('css_class');
if (!empty($css_class)) {
$variables['css_class'] = preg_replace('/[^a-zA-Z0-9- ]/', '-', $css_class);
@@ -62,7 +55,6 @@ function template_preprocess_views_view(&$variables) {
// identifier for each view. This identifier is written to both
// drupalSettings and the DIV wrapper.
$variables['dom_id'] = $view->dom_id;
- $variables['attributes']['class'][] = 'view-dom-id-' . $variables['dom_id'];
}
}
@@ -333,10 +325,10 @@ function template_preprocess_views_view_summary(&$variables) {
}
$variables['rows'][$id]->url = url($view->getUrl($args, $base_path), $url_options);
$variables['rows'][$id]->count = intval($row->{$argument->count_alias});
+ $variables['rows'][$id]->attributes = new Attribute($variables['rows'][$id]->attributes);
if (isset($active_urls[$variables['rows'][$id]->url])) {
- $variables['rows'][$id]->attributes['class'][] = 'active';
+ $variables['rows'][$id]['active'] = TRUE;
}
- $variables['rows'][$id]->attributes = new Attribute($variables['rows'][$id]->attributes);
}
}
@@ -398,7 +390,7 @@ function template_preprocess_views_view_summary_unformatted(&$variables) {
$variables['rows'][$id]->url = url($view->getUrl($args, $base_path), $url_options);
$variables['rows'][$id]->count = intval($row->{$argument->count_alias});
if (isset($active_urls[$variables['rows'][$id]->url])) {
- $variables['rows'][$id]->attributes['class'][] = 'active';
+ $variables['rows'][$id]['active'] = TRUE;
}
$variables['rows'][$id]->attributes = new Attribute($variables['rows'][$id]->attributes);
}
@@ -618,8 +610,6 @@ function template_preprocess_views_view_table(&$variables) {
$variables['rows'][$num]['attributes'] = new Attribute($variables['rows'][$num]['attributes']);
}
- $variables['attributes']['class'][] = 'views-table';
- $variables['attributes']['class'][] = 'views-view-table';
if (empty($variables['rows']) && !empty($options['empty_table'])) {
$build = $view->display_handler->renderArea('empty');
$variables['rows'][0]['columns'][0]['content'] = drupal_render($build);
@@ -631,11 +621,11 @@ function template_preprocess_views_view_table(&$variables) {
));
}
+ $variables['sticky'] = FALSE;
if (!empty($options['sticky'])) {
$variables['view']->element['#attached']['library'][] = 'core/drupal.tableheader';
- $variables['attributes']['class'][] = "sticky-enabled";
+ $variables['sticky'] = TRUE;
}
- $variables['attributes']['class'][] = 'cols-' . count($variables['header']);
// Add the caption to the list if set.
if (!empty($handler->options['caption'])) {
@@ -651,6 +641,7 @@ function template_preprocess_views_view_table(&$variables) {
$variables['description'] = $handler->options['description'];
$variables['caption_needed'] |= !empty($variables['summary']) || !empty($variables['description']);
+ $variables['responsive'] = FALSE;
// If the table has headers and it should react responsively to columns hidden
// with the classes represented by the constants RESPONSIVE_PRIORITY_MEDIUM
// and RESPONSIVE_PRIORITY_LOW, add the tableresponsive behaviors.
@@ -658,7 +649,7 @@ function template_preprocess_views_view_table(&$variables) {
$variables['view']->element['#attached']['library'][] = 'core/drupal.tableresponsive';
// Add 'responsive-enabled' class to the table to identify it for JS.
// This is needed to target tables constructed by this function.
- $variables['attributes']['class'][] = 'responsive-enabled';
+ $variables['responsive'] = TRUE;
}
}
@@ -676,13 +667,6 @@ function template_preprocess_views_view_grid(&$variables) {
$options = $variables['options'] = $variables['view']->style_plugin->options;
$horizontal = ($options['alignment'] === 'horizontal');
- $variables['attributes']['class'] = array(
- 'views-view-grid',
- $options['alignment'],
- 'cols-' . $options['columns'],
- 'clearfix',
- );
-
$col = 0;
$row = 0;
$items = array();
@@ -703,14 +687,6 @@ function template_preprocess_views_view_grid(&$variables) {
// Create attributes for rows.
if (!$horizontal || ($horizontal && empty($items[$row]['attributes']))) {
$row_attributes = array('class' => array());
- // Add default views row classes.
- if ($options['row_class_default']) {
- $row_attributes['class'][] = 'views-row';
- $row_attributes['class'][] = 'row-' . ($row + 1);
- if ($horizontal) {
- $row_attributes['class'][] = 'clearfix';
- }
- }
// Add custom row classes.
$row_class = array_filter(explode(' ', $variables['view']->style_plugin->getCustomClass($result_index, 'row')));
if (!empty($row_class)) {
@@ -729,13 +705,6 @@ function template_preprocess_views_view_grid(&$variables) {
if ($horizontal || (!$horizontal && empty($items[$col]['attributes']))) {
$col_attributes = array('class' => array());
// Add default views column classes.
- if ($options['col_class_default']) {
- $col_attributes['class'][] = 'views-col';
- $col_attributes['class'][] = 'col-' . ($col + 1);
- if (!$horizontal) {
- $col_attributes['class'][] = 'clearfix';
- }
- }
// Add custom column classes.
$col_class = array_filter(explode(' ', $variables['view']->style_plugin->getCustomClass($result_index, 'col')));
if (!empty($col_class)) {
@@ -801,14 +770,11 @@ function template_preprocess_views_view_unformatted(&$variables) {
$style = $view->style_plugin;
$options = $style->options;
- $default_row_class = isset($options['default_row_class']) ? $options['default_row_class'] : FALSE;
+ $variables['default_row_class'] = isset($options['default_row_class']) ? $options['default_row_class'] : FALSE;
foreach ($rows as $id => $row) {
$variables['rows'][$id] = array();
$variables['rows'][$id]['content'] = $row;
$variables['rows'][$id]['attributes'] = array();
- if ($default_row_class) {
- $variables['rows'][$id]['attributes']['class'][] = 'views-row';
- }
if ($row_class = $view->style_plugin->getRowClass($id)) {
$variables['rows'][$id]['attributes']['class'][] = $row_class;
}