Crea campo del tipo di Hosting Drupal
Blocchi in Drupal 8 sono istanze del plug-in blocco.
Il blocco direttore Drupal scansiona i moduli per tutte le classi che contengono un'annotazione @Block.
Il frammento di esempio sotto fa uso dell'annotazione @Block insieme alla proprietà "id" e "admin_label" per definire un blocco personalizzato.
Creare il file src / Plugin / blocchi / HelloBlock.php all'interno dello scheletro del modulo creato in precedenza e aggiungere il codice qui sotto. Sarà, ovviamente, hanno bisogno di ricostruire la cache.
Per aggiungere 'Ciao blocco' si può andare a Structure -> Blocca Layout (admin / struttura / blocco) e cliccare sul pulsante 'posto di blocco' associato ad ogni regione disponibili.
Facendo clic sul pulsante 'posto di blocco' per una determinata regione apparirà un "posto di blocco" dialogo pop-up, con un elenco di tutti i blocchi disponibili. Per trovare rapidamente il tuo blocco, è sufficiente utilizzare 'Filtra per nome del blocco' opzione o utilizzare il mouse-scorrimento per individuare 'Ciao block'. In questo modo è possibile aggiungere qualsiasi numero di istanze del blocco personalizzato qualsiasi parte del sito.
Risoluzione dei problemi
Il nome della classe e il nome del file deve essere lo stesso (classe HelloBlock e /src/Plugin/Block/HelloBlock.php). Se il nome della classe è diversa, il blocco appare nella lista dei blocchi disponibili, tuttavia non sarà in grado di aggiungerlo.
Assicurati di ricontrollare tutti i percorsi e nomi di file. Il tuo .php deve essere nella directory etichetta corretta (/ src / Plugin / blocchi /), altrimenti non sarà scoperto da Drupal.
Nota: Uso dei modelli Ramoscello con blocchi personalizzati
- Aggiungere un gancio _theme nel file .module. Non un nome alla funzione di tematizzazione come 'block__. '- questo non passerà alcuna variabile fino ai modelli ramoscello. Invece, è possibile utilizzare il nome del modulo come prefisso.
- Utilizzare '#theme' nella matrice di rendering nel metodo di compilazione e trasmettere le variabili allo stesso livello come il '#theme' - '#varname'.