Paragraph View Mode - przegląd modułu dla Drupala
Tworzenie komponentów z wykorzystaniem modułu Paragraphs daje niesamowitą elastyczność w budowaniu stron na Drupalu. Jednym z częstych ograniczeń jest kwestia ponownego wykorzystania tych samych paragrafów w bardzo zbliżonych komponentach. Jeśli jedyne co Cię ogranicza to zestaw oraz układ pól, z pomocą przyjdzie Ci moduł Paragraph View Mode.
Pierwsze linie kodu modułu powstały jako dedykowany moduł na potrzeby jednego z realizowanych przez nas projektów. Szybko jednak zauważyłem, jak bardzo taka funkcjonalność przydałaby się w całym ekosystemie modułu Paragraphs. Obecnie moduł posiada wersję stabilną 1.4 i jest objęty Security Advisory Policy.
Daty
Pierwsza wersja modułu została wydana w lipcu 2019. Od tego czasu aktywnie śledzę listę zgłoszeń, wdrażam poprawki i nowe funkcjonalności. Ostatnie poprawki do wersji deweloperskiej wprowadzone zostały w lipcu 2020.
Popularność modułu
Według statystyk zamieszczonych na stronie modułu https://www.drupal.org/project/paragraph_view_mode obecnie korzysta z niego około 450 stron, co w przybliżeniu daje około 10 użyć tygodniowo.
Autorzy modułu
Pierwszy szkic modułu powstał na potrzeby bieżącego projektu. Po pierwszej publikacji na portalu drupal.org wprowadziłem kilka dodatkowych usprawnień oraz nowych funkcjonalności. Nie zabrakło też pomocy ze strony społeczności, m.in w doprowadzeniu modułu do kompatybilności z Drupal 9.
Obecnie jestem jedyną osobą, która pracowała bezpośrednio nad kodem modułu. Nad samym modułem czuwa 2 opiekunów reagujących możliwie szybko na wszelkie zgłoszenia.
Do czego służy moduł
Paragraph View Mode to podmoduł do modułu Paragraphs. Jego zalety docenią zarówno developerzy, jak i osoby odpowiedzialne za redakcję treści na stronie. Może on wydać się niezbędny gdy:
- budujemy stronę z wielu komponentów, a część z nich jest bardzo zbliżona do siebie, np. posiada podobny zestaw pól;
- chcemy zminimalizować liczbę komponentów po stronie admnistracyjnej;
- myślimy o uspójnieniu warstwy frontendowej;
- chcemy zapewnić sobie lepszą organizację szablonów po stronie UI i bezpośrednio w kodzie;
- chcemy uniknąć użycia wielu złożonych modyfikatorów opartych na polach np. typu lista.
Jak zatem widać moduł ten może zaoferować szereg przydatnych funkcji, a wszystko to idzie w parze z prostotą rozwiązania zgodną z tzw. "The Drupal Way".
Unboxing
Moduł możesz pobrać ze strony https://www.drupal.org/project/paragraph_view_mode lub standardowo przy użyciu composera:
composer require drupal/paragraph_view_mode
Po instalacji przejdź do edycji wybranego typu paragrafu, domyślna ścieżka to zazwyczaj:
[your_domain]/admin/structure/paragraphs_type/[your_paragraph_bundle]
W rozwijanej sekcji "Paragraph View Mode" należy zaznaczyć opcję "Enable Paragraph view mode field on this paragraph type", a następnie zapisać formularz.
Moduł automatycznie utworzy pole "Paragraph view mode", które posiada widget z konfiguracją (dostępny z zakładki zarządzania wyświetlaniem formularza).
Konfiguracja widgetu składa się z dwóch pól. Pierwsze pole to wybór dostępnych trybów wyświetlania. Moduł automatycznie pobiera listę tylko tych, które są odblokowane na obecnym typie paragrafu, my natomiast możemy zdecydować, które z nich chcemy wyświetlać na liście opcji w formularzu.
Drugie pole służy natomiast do zdefiniowania domyślnej wartości pola w przypadku braku jego wartości (np. dla nowo tworzonego paragrafu).
Z skonfigurowanym w ten sposób modułem możemy dynamicznie przełączać tryby wyświetlania, bezpośrednio w formularzu dodawania/edycji strony.
Plany na przyszłość
Zasadnicza funkcjonalność modułu jest już ukończona i ciężko pokusić się o nowe funkcjonalności. Ostatnio jednak założyłem nowe zgłoszenie https://www.drupal.org/project/paragraph_view_mode/issues/3150153, w którym planuję (przy odrobinie pomocy ze strony społeczności) rozwijać funkcjonalność powiązania wartości pola z trybem wyświetlania formularza i jego dynamiczną podmianą. Zamierzam także kontynuować wspracie dla Drupal 9 i przyszłych wersji.
Podsumowanie
Moduł Paragraph View Mode pomimo swojej małej złożoności wnosi sporo w temacie efektywności, wygody, a przede wszystkim elastyczności pracy redaktorów. Co więcej, pozwala zespołowi programistów lub osobie odowiedzialnej za stronę zmniejszyć nakład pracy potrzebny na organizację i utrzymanie komponentów na stronie, zmniejszając tym samym ogólny koszty utrzymania strony internetowej.