Puncte:0

Add class to field parent with a preprocess hook in a custom module?

drapel cn

Background:

I would like to alter the classes that are added to a rendered field in Drupal 9 in a custom module. I'm trying to use hook_preprocess_field and I'm not sure if this will work or if there is a better alternative.

based on: https://www.drupal.org/forum/support/module-development-and-code-questions/2017-03-31/add-class-to-field-in-drupal-8

I have the following:

function my_module_preprocess_field__field_pricing_grid_items(&$vars)
{
  
  foreach(array_keys($vars['items']) as $delta)
  {
    $vars['items'][$delta]['attributes']->setAttribute('class', 'my-class');
  }
}

This works for adding a class but I can't figure out how to add a class to the parent div. enter image description here

Result

 <div class ="field__items">
         <div class ="field__item CUSTOM-CLASS"></div>
      </div>

Desired result:

 <div class ="field__items CUSTOM-CLASS">
     <div class ="field__item></div>
  </div>

Questions:

  1. How can I add a class to the parent div? Is that possible with this hook?
  2. Would an alternative approach of maybe overriding the field with a template in my module work? The theme template would be field--field-pricing-grid-items.html.twig Is there a way to override the theme with a module?
  3. If neither of these approaches make sense what would be a possible way of achieving this.
Puncte:0
drapel cn

Mergeam cu o abordare greșită.

Ce a funcționat:

Trebuia să folosesc hook_theme in al meu /my_module/my_module.module fişier

funcția MY_MODULE_theme($existent, $tip, $temă, $cale) {
  întoarcere [
    'field__field_pricing_grid_items' => [
      'base hook' => 'câmp',
      'path' => $cale . „/şabloane/câmp”,
    ],
  ];
}

apoi a fost ușor de anulat field.html.twig cu /my_module/templates/field/field--field-pricing-grid-items.html.twig

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.