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
Źródła
Kategoria
Projekt