Plik informacyjny *.INFO.yml

Czym jest YAML?

YAML - standard przyjazny dla człowieka, który serializuje dane dla wszystkich języków programowania. Można czytelnie zapisać liczby, ciągi znaków i tablice prostym nazwom. W Drupalu format YAML jest używany jako sposób zapisu plików konfiguracyjnych.

Więcej o formacie YAML:
The YAML Format
YAML Tutorial

Plik *.info.yml dostarcza metadane o nowo utworzonym motywie w systemie Drupal 8 i 9
Ważne, aby nazwy katalogu i pliku były takie same, bez spacji (zamiast tego można użyć podkreślnika)
Np.: adres.pl/themes/nazwa_motywu/nazwa_motywu.info.yml

W pliku tym są zawarte informacje w postaci "klucz: wartość"     // OBOWIĄZKOWA spacja po dwukropku

NIE używać tabulatorów. Dozwolone tylko spacje
Właściwości i listy muszą mieć 2 spacje jako wcięcie.

Jak utworzyć plik info.yml dla motywu w systemie Drupal?

Definiowanie pliku *.INFO.yml

Podstawowe (minimalne) dane w pliku, aby motyw był widziany w systemie.

  • name: Nazwa Motywu (ze spacjami, widoczna dla użytkownika)
  • type: theme     // rozróżniana wielkość liter
  • base theme: classy | stable | false     // trzy opcje do wyboru lub nazwa już dodanego motywu na podstawie, którego jest tworzony nowy. Np.: base theme: bartik. False - żaden motyw podstawowy nie jest używany (to może być ryzykowne, ponieważ w przypadku zmian w Core, może być konieczna aktualizacja motywu).
    Szerzej w tym temacie: A Tale of Two Base Themes in Drupal 8 core aa
    ERR: przy zmianach należy motyw odinstalować i zainstalować ponownie.
  • core: 8.x     // Określa wersję rdzenia Drupala, z którą kompozycja jest zgodna. Jeśli motyw ma działać w Drupalu 9 to należy dodać poniższą właściwość
  • core_version_requirement: ^8 || ^9     // wówczas core: 8.x jest niepotrzebna

Dane opcjonalne

  • description: Treść opisu motywu (Musi być umieszczona w apostrofach). Opis może zawierać elementy HTML np. odnośnik to strony autora motywu.
  • libraries: Lista dołączanych bibliotek (zasobów CSS i skryptów JavaScript)
    libraries:
    - NazwaMotywu/Nazwa Biblioteki
  • regions: Lista regionów (obszarów). Nazwy regionów nie są poprzedzone myślnikami jak w przypadku libraries. Jeśli wartość klucza składa się z 2 i więcej wyrazów to należy je umieścić między apostrofami.
    Np: sidebar_first: 'Sidebar First''.
    Więcej o definiowaniu regionów: Definiowanie i dodawanie regionów (obszarów)
  • regions_hidden - lista dziedziczonych regionów, które są do usunięcia
  • dependencies - tablica ciągów zależności. Lista wymaganych modułów do poprawnego działania motywu
  • package - umożliwia grupowanie motywów.
  • php - określa minimalną wersję PHP. Domyślnie: stała DRUPAL_MINIMUM_PHP
  • version - wersja motywu
  • libraries-override - zbiór bibliotek i zasobów do zastąpienia.
  • libraries-extend - zbiór bibliotek i zasobów do dodania za każdym razem, gdy dołączana jest biblioteka.
  • hidden - określa, czy motyw pojawi się na liście kompozycji na podstronie "Wygląd".
  • engine - system szablonów. Domyślnie: Twig
  • logo - pozwala określić ścieżkę do pliku obrazu, którego ma używać motyw.
  • screenshot - Symbol motywu na podstronie "Wygląd". Ścieżka (względem pliku *.info.yml) do pliku. Obraz powinien mieć 588 x 438 pikseli. Domyślnie: screenshot.png
  • features - lista funkcji do udostępnienia na stronie Wygląd -> Ustawienia. Np.: logo, favicon, itp. Dodanie właściwości feauters powoduje, że domyślne wyświetlanie ustawień się zmienia - trzeba wtedy juz dodać te podstawowe ustawienia.
  • styleheets-remove - PRZESTARZAŁA funkcja, usunięta w Drupalu 9. Należy w tym celu użyć libraries-override
  • ckeditor_stylesheets - lista arkuszy stylów do dodania do ramki CKEditor

Nadpisanie, wyłączenie libraries CSS

Jeśli jest base theme: stable to:

libraries-override:
  system/base:
    css:
      component:
        /core/themes/stable/css/system/components/autocomplete-loading.module.css: false

Przestarzałe

stylesheets-remove:
  - core/themes/stable/css/system/components/ajax-progress.module.css
Zaawansowana praca z YML: rozszerzanie i nadpisywanie

Definiowanie i dodawanie regionów (obszarów)

Dodawanie regionów pozostało proste. Oprócz dodania listy regionów podczas definiowania pliku: MYTHEME.info.yml należy też odpowiednio edytować plik page.html.twig.

Prosty przykład listy obszarów

regions:
  header: 'Header'
  content: 'Content'
  sidebar_first: 'Sidebar First'
  footer: 'Footer'

Kolejność wypisania regionów będzie odzwierciedlona w sekcji Układ bloków. Nie ma za to wpływu na kolejność wyświetlania w opublikowanej witrynie.

Ważne: regiony nie są dziedziczone. Lista regionów musi być skopiowana, jak ma być dostępna w nowym motywie, opartym na innym. Więcej na: SUB Theme Drupal 8 / 9

Tworzenie i rozmieszczanie bloków w systemie Drupal 9

Temat ustawiania, tworzenia i rozmieszczania bloków został mocno poszerzony i rozwinięty o nowe funkcje:

  • układ bloków - lista utworzonych bloków przez system
  • biblioteka własnych bloków - ta lista zawiera bloki tworzone przez użytkownika. Pojawiła się możliwość tworzenia typów bloków (takie blokowe rodzaje zawartości z możliwością dodawania pól), z tym że nazwa bloku jest wpisywana dopiero w sekcji układ bloków. Na tej liście blok nie posiada nazwy.
Tworzenie nowego regionu w motywie Drupal 8 / 9

Czy Ścieżka nawigacyjna BreadCrumb powinna znaleźć się pod głównym NAV?

Nie, ponieważ sekcja Ścieżka nawigacyjna Breadcrumb powinna się znaleźć w znaczniku <Main>.

Dlaczego?

  • jest elementem niepowtarzalnym w skali całej witryny (na każdej podstronie ścieżka nawigacyjna będzie inna)
  • umieszczona nad <article> w znacznikach <nav> jest elementem sekcyjnym z własnym nagłówkiem H2