Ottieni il nome del sito nel modello personalizzato


7

Voglio stampare il nome del sito in un modello personalizzato ( page--front.html.twig)

{{ site_name }} non funziona.

Se uso {{ page['#title'] }}ottengo solo "Benvenuto in [nome_sito]".

Sto cercando un modo per stampare solo site_name. Qualcuno sa come raggiungere questo obiettivo?

Grazie!

Risposte:


11

Aggiungi questo al YOUR_THEME.themefile:

function YOUR_THEME_preprocess_page(&$variables) {
  $variables['site_name'] = \Drupal::config('system.site')->get('name');
}

E poi questo nel tuo page--front.html.twigmodello:

{{ site_name }}

6

Le cose sono cambiate un po 'da Drupal 7 a Drupal 8. Una delle cose che sono cambiate è che è davvero una buona idea usare i blocchi invece di recuperare e renderizzare queste cose da soli. Il motivo principale è la memorizzazione nella cache.

Quello che probabilmente vuoi fare è posizionare il blocco del branding del sito da qualche parte sulla pagina (può visualizzare il nome, il logo e / o lo slogan del sito). Molte delle cose che sono state codificate nei temi, ora sono blocchi.

È stato fatto un grande sforzo nel fare ciò, poiché rende possibile la memorizzazione nella cache e enormi guadagni di prestazioni, che sono stati raggiunti in Drupal 8.

Se vuoi davvero farlo nel modo Drupal 7, la risposta di @ Aram ti mostra come farlo con un hook di pre-elaborazione.


Molto interessante. Grazie! Ho trovato un modo per implementare il blocco in un modello * .twig usando il seguente frammento: {% include 'themes / bootstrap / templates / block - system-branding-block.html.twig'%}. Va bene o consiglieresti un altro approccio?
Stefan,

@Phil Ti consiglierei di creare una regione nel tuo tema, configurare e posizionare il blocco. Se necessario, è possibile creare un modello personalizzato per modificare il markup generato, il più delle volte che non sarà necessario.
googletorp

1

Sì nei D8 twig templatefile non è possibile scrivere codice per recuperare i dati.

Se hai bisogno di dati, devi impostare le variabili in preprocessfunzione e usarle.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.