您如何在Drupal 8中更新class和id标签?

时间:2018-10-21 23:50:57

标签: drupal drupal-8

是否可以在Drupal中更改或添加class / id标签?例如,我想更改一组图像,但是所有图像上列出的唯一类是“ img响应式”。

我对Drupal还是陌生的,并试图在非常有限的时间内教给自己所有东西。因此,如果您回答,请提供新手可以理解的明确说明/提供屏幕截图!我真的很感谢我对下一步可能的任何指导或指导。

1 个答案:

答案 0 :(得分:0)

这是一个绝对太大的问题。您应该花时间自学有关Drupal的主题系统及其预处理钩子。

Working With Twig Templates开始,它将教您如何创建自定义模板以及如何根据需要更改标记或属性(类,ID等)。

下一次结帐Preprocessing and modifying attributes in a .theme file。假设您已经创建了自定义主题或子主题。您可以使用一些挂钩来以编程方式更改某些元素的类。


img-responsive告诉我,您正在使用使用某些CSS框架的主题。希望您已经创建了自己的子主题。然后,您可以将以下内容添加到模块.theme文件中。

要将类直接添加到<img>标记中,可以通过其图像样式进行标识:

/**
 * Implements template_preprocess_image().
 */
function MYTHEME_preprocess_image(&$variables) {

  // Check the image style.
  if ($variables['style_name'] == 'img_fluid') {

    // Add class.
    $variables['attributes']['class'][] = 'img-fluid';
  }
}

如果要向图像字段(包装容器)添加类,则可以按其名称定位字段:

/**
 * Implements template_preprocess_field().
 */
function MYTHEME_preprocess_field(&$variables) {

  // Check for your image field.
  if ($variables['element']['#field_name'] == 'field_MYIMAGE') {

    // Add class.
    $variables['attributes']['class'][] = 'img-fluid';
  }
}

来源:How to add a class to the image tag in field.html.twig?