Craft CMS: Matrix blocks i Graphic Module – cz1.

Matrix blocks i Graphic Module – cz1.

11 czerwca 2019

Matrix blocks

Pracując nad wdrożeniem strony internetowej można zastanawiać się czy konieczne jest przygotowanie jej w taki sposób, aby była ona w pełni połączona z systemem CMS. Z punktu widzenia developera, wypełnienie strony treścią i grafiką nie stanowi najmniejszego problemu. Schody pojawiają się jednak w momencie kiedy zleceniodawca chce mieć pełny wpływ na zarządzanie treścią a przygotowywany przez nas projekt, to serwis z wieloma podstronami. Wówczas z pomocą przychodzą różnego rodzaju systemy do zarządzania treścią, wśród których polecanym przez nas jest Craft CMS.

Ale Craft nie stanowi jedynie komfortowego narzędzia dla klienta, umożliwiającego mu wprowadzanie treści na stronę, to także ułatwienie pracy developerów!

W dzisiejszym wpisie skupimy się na opisaniu kwestii związanych z polami typu matrix.

Praktyczną funkcjonalnością jaką otrzymujemy od Craft CMS jest możliwość organizacji pól w tak zwany Matrix blocks oraz powiązanie z nimi modułów graficznych. W dużym uproszczeniu, można powiedzieć, że Matrix blocks przyśpiesza pracę developerów, ponieważ wzywa ich od konieczności stylowania powtarzających się elementów na stronie. Dzięki niemu kod i style dla danego modułu tworzymy jedynie raz i są ona powielane podczas każdorazowego wywołania danego bloku.

Pola typu matrix (Matrix Fields) umożliwiają tworzenie wielu bloków treści w jednym polu.

Można je skonfigurować w taki sposób, aby określić które typy bloków powinny być dostępne dla danego pola matrix, i jakie podpola każdy z tych bloków powinien mieć. W praktyce pola typu matrix, często tworzymy pod nazwą „treść podstrony” lub „buduj podstronę” i w ich obrębie umieszczamy takie elementy, które będą powtarzalne w różnych miejscach w serwisie.

Abyśmy mogli w pełni korzystać z możliwości pól typu matrix trzeba je odpowiednio umieścić w projekcie. W tym celu najwygodniej jest utworzyć plik o nazwie _matrix.html, w którym za pomocą odpowiedniego kodu przywołamy bloki zbudowane w matrix.

W kodzie tym, przy użyciu pętli switch przechodzimy po wszystkich blokach, które utworzyliśmy.

Natomiast dzięki zapisowi występującemu na samym jej końcu, w podglądzie strony, powinien nam się wyświetlać napis: „Nie ma obsługi NAZWA MODUŁU ” itd. Będzie tak dopóki nie podepniemy odpowiedniego szablonu.

Aby defaultowy napis o braku obsługi zastąpić odpowiednim modułem należy:

1. Przygotować plik .html (wygodnie jest go nazwać tak jak blok matrix, do którego się odnosi np. naglowek-i-cyfra-z-tytulem)

2. W utworzonym przez nas pliku należy podpiąć elementy Craft np.:

Przy czym kluczowy jest dla nas zapis zaznaczony na pomarańczowo, ponieważ to on przywołuje treść podstrony i moduły graficzne,

3. W naszym pliku _matrix.html w pętli switch dodajemy nowe odwołanie:

nazwę case najlepiej skopiować z komunikatu o braku obsługi modułu wyświetlającego się na naszym ekranie (kolor żółty) a następnie podać ścieżkę, z której mają być pobierane struktura elementu oraz jej formatowanie( kolor niebieski).

W ten sposób jeśli okodujemy i ostylujemy reużywalne bloki zaciągane z matrixa takie jak nagłówki i treści, galerie, zdjęcia, marginesy, moduły graficzne itd. Każdorazowe ich wywołanie w dowolnym miejscu w serwisie wykorzysta przygotowany przez nas kod tylko ze zmienioną przez klienta treścią.

W następnym wpisie omówię podpinanie bloku moduł graficzny, wchodzącego w skład matrixa.