-

Twórz złożone strony na Drupalu szybciej z narzędziami no code i code generation

Długi czas tworzenia systemu jest często wskazywany jako wada wykorzystania Drupala w web developmencie. Budowanie złożonych serwisów z użyciem tej technologii nie musi być jednak wcale czasochłonne. W tym wpisie przedstawię listę modułów i narzędzi, które wyraźnie skracają czas budowania systemów na Drupalu. 

Ogólne informacje o Drupalu

Drupal jest systemem napisanym w PHP, zbudowanym z modułów. W rdzeniu Drupala znajduje się ich aż kilkadziesiąt, a kilka tysięcy jest dostępnych do pobrania za darmo ze strony Drupal.org.

Programista PHP może też stworzyć własny moduł dla Drupala i dopisać dowolną funkcjonalność. Developerzy często wybierają taką drogę. Pozornie łatwiej jest (chociaż wcale nie szybciej) napisać wymaganą funkcjonalność, niż zapoznać się z istniejącymi modułami, z których można ją zbudować. 

Kluczem do osiągnięcia korzyści z wybrania Drupala jako technologii jest traktowanie go i jego modułów jak klocków LEGO, z których buduje się system. 

Uznanie Drupala za bazę i dopisywanie całej potrzebnej funkcjonalności w formie customowego kodu jest drogą do wysokich kosztów projektu. Finalnie, w długiej perspektywie przekłada się też na rezygnację z Drupala jako rozwiązania bazowego do budowy systemów. Dzieje się tak, ponieważ nikt nie lubi płacić więcej niż za alternatywne opcje dostępne na rynku, a obecnie w świecie web developmentu jest w czym wybierać. 

Patrząc na inne technologie, warto zwrócić uwagę na to, ile różnych trzeba użyć, aby osiągnąć to, co oferuje Drupal. Bardzo często należy skorzystać z wielu frameworków, bibliotek czy systemów i wszystko to ze sobą połączyć. Przy tych połączeniach często pojawiają się problemy i błędy (np. serwis A nie przesłał poprawnie danych do API serwisu B itp.), których debugowanie oraz naprawa zajmują czas. 

Systemy na Drupalu buduje się najczęściej jako jedną aplikację, z jedną bazą kodu, czyli tzw. codebase (w dalszej części tekstu pojawi się również informacja o headless Drupal), a to dość mocno upraszcza utrzymanie i rozwój aplikacji oraz wdrażanie nowych wersji. Przy aplikacjach, które mają regularne wdrożenia (np. raz w tygodniu) jest to istotna zaleta, która skraca ich czas, eliminuje potencjalne problemy i zmniejsza koszty utrzymania aplikacji. 

Narzędzia przyspieszające pracę w Drupalu

Narzędzia, które pozwolą Ci przyspieszyć czas tworzenia złożonych stron na Drupalu, podzieliłem na kilka grup. Znajdziesz tutaj opisy, zrzuty ekranu oraz krótkie wideo. Na bazie tych przykładów zobaczysz, jak szybko w Drupalu buduje się serwisy internetowe. 

Generatory kodu i danych

Generatory kodu oraz danych w bazie danych potrafią znacząco skrócić czas pracy programisty. Każdy webdeveloper pracujący z Drupalem powinien zapoznać się z tymi narzędziami. 

Module Builder

Module Builder to moduł dla Drupala, który generuje pliki potrzebne do zrobienia modułu. Pewne elementy są powtarzalne i ciągłe pisanie ich od zera niepotrzebnie zajmuje cenne minuty. Z pomocą Module Buildera skrócisz czas tworzenia customowych modułów. 

Drush Generate

Drush to narzędzie do zarządzania Drupalem z linii komend. Jedną z bardzo przydatnych komend dostępnych w Drush jest "generate". Podobnie jak Module Builder, komenda ta pomaga tworzyć kod potrzebny przy budowaniu modułów i pozwala oszczędzać czas. 

Devel Generate

Devel Generate to część modułu Devel. Narzędzie to potrafi wygenerować testowe dane. Jest to bardzo przydatne, kiedy testujesz, jak zachowa się albo jak będzie wyglądał system w przypadku pojawienia się dużej ilości danych. Sięgając po ten moduł, oszczędzasz czas na tworzenie testowych treści i możesz skupić się na testowaniu aplikacji. To narzędzie szczególnie polecam testerom pracującym z Drupalem.

Moduły typu “no code” 

W Drupalu istnieją moduły, dzięki którym nie musisz pisać własnych, customowych modułów. Możesz wygenerować struktury danych oraz logikę aplikacji bez pisania ani jednej linii kodu. Część z tych modułów jest już w rdzeniu Drupala. Połączenie tych narzędzi z generatorami kodu (nie wszystko da się wyklikać i czasem trzeba napisać kod) daje ogromną przewagę w czasie realizacji aplikacji i serwisów internetowych na Drupalu w stosunku do innych rozwiązań. 

Moduł Fields

Fields to moduł będący częścią rdzenia Drupala. Pozwala rozbudowywać encje o dodatkowe atrybuty, np. do profilu użytkownika możesz dodać pole “Phone”, aby zapisywać informacje o numerze telefonu lub do rodzaju zawartości “Page” możesz dodać pole “File upload”, aby umożliwić wstawianie plików PDF do pobrania.

Moduł Views 

Moduł Views także stanowi część rdzenia Drupala. Umożliwia pobieranie danych z bazy danych i wyświetlanie ich w sformatowany sposób. Można rozszerzać jego możliwości, używając wiele dodatkowych modułów, np. eksportować dane do formatu CSV. 

Entity Construction Kit (ECK)

W w standardzie Drupala istnieje kilka typów encji, m.in. Content, User, Taxonomy. Czasem zachodzi potrzeba zbudowania własnej encji, zamiast używania np. nowego content type. Możesz to zrobić, tworząc nowy customowy moduł (np. za pomocą wspomnianego modułu Module Builder) albo korzystając z gotowego modułu Entity Construction Kit (ECK). Przy jego pomocy, bez pisania kodu można stworzyć nową strukturę danych w bazie danych i używać jej np. z modułami Fields i Views. W tym przypadku widać też doskonale kolejną zaletę Drupala – moduły ze sobą współpracują, a nie są oddzielnymi bytami. 

Event - Condition - Action (ECA)

Moduł ECA pozwala na tworzenie akcji przy różnych zdarzeniach, np. “wyślij e-mail, jeśli ktoś doda komentarz”. Możliwości modułu są ogromne, a w razie braku jakiejś opcji, można rozbudować go o dodatkowe akcje czy warunki. 

Webform 

Formularz na stronie internetowej i w aplikacji jest częstą formą interakcji z użytkownikami. Dla administratorów serwisów często ważne jest, aby móc łatwo tworzyć nowe formularze bez czekania na zespół developerski. Działy marketingu potrzebują dodać je do landing page’ów na potrzeby kampanii, a działy HR - do zbierania danych od pracowników w różnego rodzaju ankietach. Przykładów jest wiele. Moduł Webform doskonale rozwiązuje potrzebę łatwego budowania formularzy. 

Moduł Feeds 

Moduł Feeds pobiera dane z zewnętrznych źródeł i zapisuje je w bazie danych w Drupalu. Najprostszym użyciem modułu jest pobieranie danych z RSS, ale można go skonfigurować również dla innych źródeł, np. plików XML. Cała konfiguracja importowania danych odbywa się przez klikanie po interfejsie administracyjnym. Nie trzeba więc angażować do tego programisty. Przykładem użycia tego modułu może być np. import ofert pracy na stronę firmową z zewnętrznego systemu do zarządzania lub import ostatnich wpisów z bloga do systemu intranetowego firmy (zbudowanego na Drupalu).

Narzędzia do budowania treści

W obecnych czasach budowanie nowych podstron w serwisie internetowym polega nie tylko na dodaniu tekstu, ale także na wstawieniu wielu komponentów, które sprawią, że dana strona będzie atrakcyjna i wygodna w użyciu dla użytkownika. Redaktor potrzebuje narzędzi do zbudowania skomplikowanych witryn oraz systemu, który nie ograniczy go w tworzeniu treści. 

W Drupalu istnieje szereg tego rodzaju rozwiązań. W zależności od potrzeb osób zarządzających treścią, można wybrać jedną z wielu dostępnych opcji. Oto przykłady kilku z nich. 

Layout Builder 

Moduł Layout Builder występuje w rdzeniu Drupala. Pozwala na zarządzanie układem elementów dla typu zawartości (np. wszystkich artykułów) lub dla konkretnej zawartości. Moduł jest regularnie rozwijany i można rozszerzyć jego możliwości za pomocą dodatkowych modułów. 

Moduł Paragraphs

Paragraphs to dodatkowy moduł rozszerzający możliwości budowy struktury danych za pomocą modułu Fields. Jest on podstawą systemu Droopler – narzędzia do szybkiego budowania stron firmowych i korporacyjnych. Zbudowaliśmy tam kilkanaście gotowych komponentów, z których redaktorzy mogą korzystać podczas tworzenia treści. 

Inne narzędzia do treści

Poza wymienionymi wyżej rozwiązaniami, warto zapoznać się także z innymi narzędziami do budowania treści, takimi jak:

Integracje z zewnętrznymi aplikacjami

Obecnie liczba aplikacji używanych przez firmy i organizacje jest duża i stale rośnie. Drupal idealnie wkomponowuje się w takie środowisko, ponieważ potrafi łatwo integrować się z zewnętrznymi systemami.  

Drupal może przekazywać zapisane dane do innych systemów lub przyjmować dane z aplikacji. Posiada moduł RESTful Web Services module, który umożliwia proste i złożone konfiguracje.

Te opcje integracji otwierają możliwość stosowania Drupala jako headless CMS. Jeden z przykładów takiego użycia znajdziesz w naszym case study projektu dla PZPN, dokumentującym powstanie systemu, gdzie frontend oddzielony jest od backendu.   

Narzędzia no code i code generation - podsumowanie 

Opisane wyżej przykłady to tylko mała część możliwości modułów drupalowych. Jest tego o wiele więcej, a wszystkie te narzędzia sprawiają, że Drupal ma pozwala wyraźnie skrócić czas potrzebny na zbudowanie na nim serwisów internetowych czy aplikacji webowych. 

Jeśli planujesz budowę złożonej strony internetowej, to zdecydowanie warto rozważyć Drupala. Nie jesteś pewien, czy ta technologia nadaje się dla Twojego projektu? Skorzystaj z bezpłatnych konsultacji w naszej agencji drupalowej, podczas której pomożemy przeanalizować Twój przypadek. 

3. Najlepsze praktyki zespołów programistycznych