Puncte:1

Cum să adăugați clasă la mai multe blocuri de vizualizare folosind twig?

drapel br

Am patru blocuri la vedere. Vreau să adaug clasa „fancy-body” la toate cele patru blocuri. Cum pot adăuga asta.

view_id : categorii

display_id-uri de blocuri : bloc_1, bloc_2, bloc_3, bloc_4

Știu, pot adăuga clase prin crearea unui fișier șablon de crenguță individual pentru fiecare bloc. ca aceasta,

bloc--views-block--categorii-block-1.html.twig
bloc--views-block--categorii-block-2.html.twig
bloc--views-block--categorii-block-3.html.twig
bloc--views-block--categorii-block-4.html.twig

Este posibil să se realizeze într-un singur fișier șablon crenguță? Cum pot realiza asta?

Am nevoie de ajutor, multumesc!

Akshay avatar
drapel us
Ce se întâmplă dacă adăugați clasa la toate afișajele bloc din vizualizarea manual în secțiunea Avansat? Ai de gând să creezi un fișier twig pur și simplu pentru a adăuga clase?
Steve Siddu avatar
drapel br
Vreau să manipulez structura tuturor blocurilor unei anumite vederi.
Akshay avatar
drapel us
Bine. Apoi va trebui să creați un fișier twig pentru a modifica structura HTML. Vă rugăm să modificați întrebarea, deoarece indică doar adăugarea unui curs.
Puncte:3
drapel cn

Dacă aveți nevoie doar de cursuri, modulele menționate în răspunsul lui Joseph ar trebui să fie suficiente.

Dacă trebuie să faceți mai multe modificări și cu siguranță aveți nevoie de un fișier șablon personalizat, puteți implementa hook_theme_suggestions_HOOK().

Ceva asemănător cu:

function module_theme_suggestions_block(matrice $variabile) {
  $sugestii = [];

  if ($variables['elements']['#base_plugin_id'] == 'views_block') {
    if (preg_match('/views_block:categories-block_[0-9]+/', $variables['elements']['#plugin_id'])) {
      $suggestions[] = 'block__views_block__categories_all_blocks';
    }
  }

  returneaza $sugestii;
}

Cu exemplul de mai sus, un singur fișier șablon ar fi numit block--views-block--categories-all-blocks.html.twig.

Steve Siddu avatar
drapel br
care ar trebui să fie numele funcției, dacă numele modulului este „XYZ”, este `XYZ_theme_suggestions_block()` corect?
drapel cn
da, așa e
Steve Siddu avatar
drapel br
clasele și ID-urile care sunt adăugate în `block--views-block--categories-all-blocks.html.twig` se reflectă în site-ul drupal. imi puteti spune unde exact, in ce fisier sau in ce folder trebuie sa adaug acel cod. Am adăugat acel fișier în fișierul `XYZ.module`. multumesc!
Steve Siddu avatar
drapel br
Ar trebui să fie totul la fel sau trebuie schimbat? cum ar fi `#base_plugin_id` și `#plugin_id`
drapel cn
Nu ar trebui să fie nevoie să schimbați nimic, se potrivește cu id-ul de vizualizare și cu id-ul de afișare din fișierele șablon din întrebare
Puncte:2
drapel in

Există mai multe module care vă permit să adăugați clase la blocuri prin intermediul admin, în funcție de locul în care adăugați blocurile:

Modulul Atribute ale componentelor Layout Builder permite editorilor să adauge Atributele HTML ale componentelor Layout Builder (blocuri). Atributele pot să fie adăugat la 1) elementul bloc (exterior), 2) titlul blocului și 3) elementul de conținut al blocului (interior).

Block Classes permite utilizatorilor să adauge clase pentru a bloca titlul, conținutul și wrapper al oricărui bloc prin interfața de configurare a blocului. Acest modul extinde caracteristicile modulului Block Class.

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.