Puncte:0

Ascundeți și afișați blocul personalizat în mod programatic drupal 9

drapel cn

Bună, am creat un modul pentru afișarea unui bloc. Aș dori să setez vizibilitatea blocului la vizibil și ascuns în pagina de pornire în funcție de o condiție.

ca aceasta:

Editați | ×:


//preluați starea din baza de date apoi verificați starea
dacă ($status = 1){
//face blocul vizibil
}altfel{
//ascunde blocul
}

Am căutat pe tot internetul și nu am găsit cum să funcționeze.

Am un formular care este folosit pentru a adăuga conținut la o bază de date și are o casetă de selectare pentru a face blocul vizibil sau nu.

Așa că aș prelua starea (vizibil/ascuns) a blocului din baza de date și apoi aș face blocul vizibil.

Kevin avatar
drapel in
De ce să nu creăm un nou context de vizibilitate în loc de acesta?
drapel cn
salut @Kevin, multumesc pentru comentariu. Vă rog să-mi dați mai multe informații despre asta, de fapt sunt nou în drupal.
NicklasF avatar
drapel us
Avem nevoie de mai multe informații despre stare pentru a vă oferi cea mai bună soluție ca și în Drupal, puteți face acest lucru în mai multe moduri: în configurația bloc, cârlige și/sau șabloane de crenguță
drapel cn
@NicklasMandrupFrederiksen Tocmai am actualizat întrebarea, verificați-o, vă rog
Kevin avatar
drapel in
https://www.jaypan.com/tutorial/custom-drupal-block-visibility-plugins-and-condition-plugin-api
Puncte:3
drapel cn

Când creați un modul pentru a afișa un bloc, aceasta înseamnă de obicei că implementați un plugin de bloc. Apoi puteți adăuga condiția la plugin direct:

  bloc de funcții protejatAcces(AccountInterface $cont) {
    $access = $this->languageManager->isMultilingual() ? AccessResult::allowed() : AccessResult::forbidden();
    return $access->addCacheTags(['config:configurable_language_list']);
  }

Exemplu din nucleu LanguageBlock::blockAccess().

drapel cn
Mulțumesc, asta a funcționat

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.