Puncte:0

hook_theme_suggestions_image_alter() nu returnează ['data-responsive-image-style']

drapel ru

Poate am o problemă similară cu asta Cârligul Drupal 9.2 template_preprocess_image nu funcționează.

Când am pus acest cod în myTheme.theme

function HOOK_theme_suggestions_image_alter(array &$suggestions, array $variables)
{
 $responsive_style = $variables['atribute']['data-responsive-image-style'];
 $suggestions[] = 'image__'.$responsive_style;
}

Cârligul funcționează bine pe imaginile inline cu aceasta modul Imagini receptive inline si se intoarce ['data-responsive-image-style'].

Dar nu funcționează cu imagini de articole obișnuite, se întoarce nul.

Când depanez $variables['atribute'] are doar această valoare

$variables[...] matrice (1)
  proprietate => matrice (1)
    => șir (12) „schema:image”
No Sssweat avatar
drapel ua
Folosesc acel modul. „Stilul de imagine receptiv la date” este adăugat doar la imaginile editorului de text, nu este conceput pentru a funcționa cu câmpuri de imagine. Pentru câmpurile de imagine trebuie să utilizați modulul de imagini receptive al core.
apaderno avatar
drapel us
@NoSssweat Sună ca un răspuns.
Drazen avatar
drapel ru
Știu că modulul de imagini receptive Inline este folosit doar pentru editorul de text, dar funcționează bine. și returnează datele corecte $variables['attributes']['data-responsive-image-style']. Folosesc modulul de bază pentru imagini receptive, dar în majuscule returnează null.
Puncte:0
drapel ru

am gasit solutie. Am invocat de la crenga părinte responsive_image_style_id

funcția hook_preprocess(&$variabile, $hook) {
  if ($hook == 'imagine_responsive') {
    $GLOBALS['responsive_image_style_id'] = $variables['responsive_image_style_id'];
  }
}

function hook_theme_suggestions_alter(matrice &$sugestii, matrice $variabile, $hook) {
  if ($hook == 'imagine') {
    returnează $suggestions[] = 'image__'.$GLOBALS['responsive_image_style_id'];
  }
}

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.