Plik ustawień nazwa_motywu.theme

Funkcja node_is_page()

Sprawdza, czy bieżąca strona jest pełnym widokiem strony przekazanego węzła.
https://api.drupal.org/api/drupal/core!modules!node!node.module/function/node_is_page/9.3.x

Dodanie dodatkowej zmiennej przy renderowaniu węzła

function nazwa_motywu_preprocess_node(&$variables) 
{
   $variables['dodatek'] = 'Dodatkowy tekst';
}

A następnie w dowolnym pliku szablonu node.html.twig

<h2> {{ dodatek }} </h2>

Powyższy kod spowoduje wyświetlenie tekstu: Dodatkowy tekst w nagłówku H2.

<h2>Dodatkowy tekst</h2>

Dodawanie klas

NODE - dodanie klasy do tytułu H1 strony

function nazwa_motywu_preprocess_node(&$variables) 
{
  $variables['title_attributes']['class'][] = 'moja-klasa-w-tytule';
}

Dodanie klasy do pola w WIDOKU

DO SPRAWDZENIA

function hook_preprocess_views_view_fields(&$variables)
{
  if (!empty($variables['fields']['field_name'])) {
    $variables['fields']['field_name'] -> wrapper_attributes -> addClass('klasa');
  }
}

Implementacja dla sugestii szablonów CONTAINER.html.twig

function nazwa_motywu_theme_suggestions_container_alter(array &$suggestions, array $variables) {
  $pieces = [
    $variables['element']['#type'],
    $variables['element']['#name'],
    $variables['element']['#display_id'],
  ];
  $suggestions[] = 'container__' . $variables['element']['#type'];
  $suggestions[] = 'container__' . implode('_', $pieces);
}

Wynik:


FILE NAME SUGGESTIONS: 
* container--view-frontpage-page-1.html.twig 
x container--view.html.twig (podlinkować)
* container.html.twig

Wyświetlenie sloganu, nazwy, ścieżki loga i tytułu H1

function theme_name_preprocess_page(&$site_information)
{
    $system_site = \Drupal::config('system.site');
    $site_information['site_name'] = $system_site -> get('name');
    $site_information['site_slogan'] = $system_site -> get('slogan');
    $site_information['logopath'] = theme_get_setting('logo.url');
    $site_information['site_title'] = $site_information['page']['#title'];
}

W pliku szablonu page.twig.html można wtedy użyć następujących zmiennych:

{{ site_name }}
{{ logopath }}
{{ site_title }}
{{ site_slogan }}

Źródło: https://drupal.stackexchange.com/questions/210740/how-can-i-display-site-logo-name-and-slogan/210744

Dodanie pliku w bibliotekach (libraries.yml)

function nazwa_motywu_preprocess_page(&$variables) 
{
   $variables['#attached']['library'][] = 'nazwa_motywu/nazwa_biblioteki;
}

W pliku nazwa_motywu.libraries.yml:

nazwa_biblioteki:
  css:
    base:
      css/WoskingAdminstyle.css: {}
  
  // warunek: nazwa_biblioteki nie może być wpisana w pliku *info.yml
  // libraries:
       - nazwa_motywu/nazwa_biblioteki

Dodanie pliku dla konkretnej podstrony

Dla wpisu o ID =1 (/node/1)

function nazwa_motywu_preprocess_page(&$variables) 
{
  if($variables['node'] == 1)  {
    $variables['#attached']['library'][] = 'nazwa_motywu/nazwa_biblioteki;
  }
}

Dla strony głównej

function nazwa_motywu_preprocess_page(&$variables) 
{
  if($variables['is_front'])  {
    $variables['#attached']['library'][] = 'nazwa_motywu/nazwa_biblioteki;
  }
}

Źródło: https://drupal.stackexchange.com/questions/229079/loading-a-library-only-for-the-front-page

Kategoria