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.
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
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.
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