Devo eseguire il rendering di un blocco visualizzazioni nel mio modello page.html.twig. In D7 farei questo:
<?php
$block = module_invoke('module_name', 'block_view', 'block_delta');
print render($block['content']);
?>
In Drupal 8 module_invoke è obsoleto e si consiglia di utilizzare questo: (Ho aggiunto il nome del blocco come secondo parametro)
Drupal::moduleHandler()->invoke($block, 'views_block__blog_block_1', $args = array());
Ho provato alcune cose. Per prima cosa ho provato a farlo in un modello di ramoscello ma non so come chiamare le funzioni php in un modello di ramoscello, quindi non è andata troppo bene.
Quindi ho chiamato la funzione nella funzione preprocess_page () nel file .theme ma prima che potessi farlo funzionare ho provato qualcosa di più semplice solo per provare a far funzionare una variabile all'interno del modello di ramoscello che non funzionava neanche, ad esempio:
Nella funzione template_preprocess_page (& $ vars) nel file .theme:
$test = 'Hello World';
$vars['$my_var'] = $test;
Ho provato a chiamare my_var all'interno del modello di ramoscello ma non ha funzionato e ho ricevuto un messaggio di errore che diceva "Il sito ha un errore, si prega di contattare l'amministratore"
Quindi, per riassumere, ecco le mie domande:
- Come posso rendere disponibili le variabili all'interno dei modelli di ramoscello?
- Come posso chiamare le funzioni all'interno dei modelli di ramoscello?
- Rendo i blocchi all'interno del file .theme o del modello di ramoscello?