Am un bloc personalizat care afișează numărul de evenimente adăugate la favorite (modul Flag). Folosesc șablonul TWIG pentru a afișa acele rezultate. Vreau să reîmprospăt conținutul blocului imediat după ce utilizatorul semnalează/anulează semnalizarea unui nod. În prezent, pot obține valoarea actualizată numai dacă reîncarc pagina.
build() arată astfel:
clasa FavoritesBlock extinde BlockBase
{
/**
* {@inheritdoc}
*/
funcția publică getCacheMaxAge()
{
returnează 0;
}
construirea funcției publice ()
{
$uid = \Drupal::currentUser();
if ($uid->isAuthenticated()) {
$flag = \Drupal::service('flag')->getFlagById('favorite');
$număr = \Drupal::service('flag.count')->getUserFlagFlaggingCount($flag, $uid);
$test = "Evenimente adăugate la favorite: " . $count;
$link_url = Url::fromUri("https://site-ul meu/evenimentele-meu-favorite");
$text = Link::fromTextAndUrl(t($test), $link_url)->toString();
}
întoarcere [
'#markup' => $text,
'#cache' => matrice(
'tags' => ['config:node_type_list'],
'max-age' => 0,
),
];
}
}
Am dat si pe EventSubscriber care pare sa fie declansat exact cand vreau eu, adica pe flagging/unflagging dar nu stiu daca este util in aceasta situatie, nu am prea multa experienta.
Cum ar putea fi realizată reîncărcarea automată a blocului?