Obtener el nombre del sitio en una plantilla personalizada


7

Quiero imprimir el nombre del sitio en una plantilla personalizada ( page--front.html.twig)

{{ site_name }} No funciona.

Si lo uso {{ page['#title'] }}, solo aparece "Bienvenido a [nombre_sitio]".

Estoy buscando una manera de imprimir solo el nombre del sitio. ¿Alguien sabe cómo lograr esto?

¡Gracias!

Respuestas:


11

Agregue esto al YOUR_THEME.themearchivo:

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

Y luego esto en su page--front.html.twigplantilla:

{{ site_name }}

6

Las cosas han cambiado algunas de Drupal 7 a Drupal 8. Una de las cosas que han cambiado es que es una muy buena idea usar bloques en lugar de buscar y renderizar estas cosas usted mismo. La razón principal es el almacenamiento en caché.

Lo que probablemente quiera hacer es colocar el bloque de marca del sitio en algún lugar de la página (puede mostrar el nombre del sitio, el logotipo y / o el eslogan). Muchas de las cosas que fueron codificadas en temas, ahora son bloques.

Se hizo un gran esfuerzo al hacer esto, ya que hace posible el almacenamiento en caché y enormes ganancias de rendimiento, lo que se logró en Drupal 8.

Si realmente quiere hacerlo de la manera Drupal 7, la respuesta de @ Aram le muestra cómo hacerlo con un gancho de preproceso.


Muy interesante. ¡Gracias! Encontré una manera de implementar el bloque en una plantilla * .twig usando el siguiente fragmento: {% include 'themes / bootstrap / templates / block - system-branding-block.html.twig'%}. ¿Está bien o recomendaría otro enfoque?
Stefan

@ Phil Recomendaría que haga una región en su tema, y ​​configure y coloque el bloque. Si es necesario, puede crear una plantilla personalizada para alterar el marcado generado, la mayoría de las veces no será necesario.
googletorp

1

Sí, en los D8 twig templatearchivos no puede escribir código para obtener datos.

Si necesita datos, debe configurar las variables en preprocessfunción y usarlas.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.