Drupal 8 更改视图列表第一行的图像样式
Drupal 8 change image style in first row on views list
我创建了在第 10 页显示最新文章的视图。我有两个字段:图像和内容。在图像字段的设置中,我选择了图像样式(例如:中等)。如何仅在第一行将图像样式更改为另一种样式(例如:大)?
我在预处理中尝试过,但我不知道图像样式信息存储在哪里:
function theme_preprocess_views_view_unformatted__lista_depesz_default(&$variables) {
$view = $variables['view'];
$rows = $variables['rows'];
$style = $view->style_plugin;
$options = $style->options;
$variables['default_row_class'] = !empty($options['default_row_class']);
foreach ($rows as $id => $row) { $variables['rows'][$id] = array();
$variables['rows'][$id]['content'] = $row;
$variables['rows'][$id]['attributes'] = new Attribute();
if ($row_class = $view->style_plugin->getRowClass($id)) {
$variables['rows'][$id]['attributes']->addClass($row_class);
}
if ($id == 0 && $row['content']['#row']->_entity->field_image[0] != NULL) {
//some php code to change image style
}
}
}
此致
关于您的代码和您的解释,我不确定您要实现的目标是什么。
1/ 您尝试将 CSS class 添加到视图的第一张图片。为什么不使用以下 CSS 路径 .my_view .first img {}
2/ 如果您尝试调用另一种图像样式,是否可以创建仅包含第一项或已提升的视图?然后再查看其余项目?
3/如果你尝试调用其他图片样式,无需任何代码即可实现。
您安装模块 http://drupal.org/project/views_conditional,然后添加 2 张具有 2 种不同图像样式的图像,然后在条件字段集中应用您的条件。
我真的更喜欢解决方案 3,因为它是纯 Drupal 构建。
希望对您有所帮助。
干杯
您可以使用原始图像创建视图,并在您的 twig 文件中设置样式,例如使用 twig tweak:
https://www.drupal.org/project/twig_tweak
在 twig 文件中你可以设置任何带条件的样式
{{ 'public://images/ocean.jpg' | image_style('thumbnail') }}
我创建了在第 10 页显示最新文章的视图。我有两个字段:图像和内容。在图像字段的设置中,我选择了图像样式(例如:中等)。如何仅在第一行将图像样式更改为另一种样式(例如:大)?
我在预处理中尝试过,但我不知道图像样式信息存储在哪里:
function theme_preprocess_views_view_unformatted__lista_depesz_default(&$variables) {
$view = $variables['view'];
$rows = $variables['rows'];
$style = $view->style_plugin;
$options = $style->options;
$variables['default_row_class'] = !empty($options['default_row_class']);
foreach ($rows as $id => $row) { $variables['rows'][$id] = array();
$variables['rows'][$id]['content'] = $row;
$variables['rows'][$id]['attributes'] = new Attribute();
if ($row_class = $view->style_plugin->getRowClass($id)) {
$variables['rows'][$id]['attributes']->addClass($row_class);
}
if ($id == 0 && $row['content']['#row']->_entity->field_image[0] != NULL) {
//some php code to change image style
}
}
}
此致
关于您的代码和您的解释,我不确定您要实现的目标是什么。
1/ 您尝试将 CSS class 添加到视图的第一张图片。为什么不使用以下 CSS 路径 .my_view .first img {}
2/ 如果您尝试调用另一种图像样式,是否可以创建仅包含第一项或已提升的视图?然后再查看其余项目?
3/如果你尝试调用其他图片样式,无需任何代码即可实现。 您安装模块 http://drupal.org/project/views_conditional,然后添加 2 张具有 2 种不同图像样式的图像,然后在条件字段集中应用您的条件。
我真的更喜欢解决方案 3,因为它是纯 Drupal 构建。
希望对您有所帮助。
干杯
您可以使用原始图像创建视图,并在您的 twig 文件中设置样式,例如使用 twig tweak: https://www.drupal.org/project/twig_tweak
在 twig 文件中你可以设置任何带条件的样式
{{ 'public://images/ocean.jpg' | image_style('thumbnail') }}