Come può aggiungere un blocco al layout, se esiste un blocco CMS nel layout?
-
11-12-2019 - |
Domanda
Quindi ecco la situazione. Ho bisogno di creare un blocco core/template
a livello di programmazione, se c'è CMS Block
(Static Block
) è presente nella struttura del layout. Userò questo modello per aggiungere alcuni contenuti ad esso dinamicamente.
Se c'è un osservatore per i blocchi statici, posso usarlo. Un'altra opzione sarebbe, posso ottenere lo stesso attraverso i layout, se c'è la maniglia del layout specifico del blocco statico (proprio come la maniglia del layout cms_page
).
Ma non ho ancora trovato nessun osservatore per i blocchi statici. Quindi non posso andare con l'osservatore. Cerco anche qualsiasi maniglia di layout specifica del blocco statico. Anche quella ricerca mi ha reso disperato. Non riuscivo a trovarne uno. Quindi anche l'aggiornamento del layout non è possibile.
Quindi sembra essere l'unico modo in cui posso ottenere questo è, per osservare eventi generali (potrebbero essere controller_action_layout_generate_blocks_after
). Ma sento che è troppo brutto modo ..
Allora, cosa dovrei fare ora? Quale sarebbe il metodo migliore per farlo? Posso creare un ascoltatore di eventi personalizzato per blocchi statici (non so se è possibile !!)? Condividi i tuoi pensieri.
Nota: Sto creando un'estensione. Lo voglio il più pulito possibile. :)
Soluzione 2
Sembra che, non c'è altro modo per farlo.Quindi ho ascoltato l'evento generale controller_action_layout_generate_blocks_after
.Lì ho creato un nuovo blocco se il blocco CMS presente.
Altri suggerimenti
Forse è possibile utilizzare un aiutante nell'XML e controllare una condizione al suo interno, facendo un condizionale all'interno dell'XML e quindi agire di conseguenza.Potrebbe essere meglio che osservare ogni e ogni carico di blocco con un osservatore.