Drupal Rules - Drupal Idzie Na Studia - Jarosław Sobiecki
1. Rules
Wprowadzenie
prezentujący:
Jarosław, Sobiecki
Senior software developer
2. Rules – kilka słów wprowadzenia
Rules – to narzędzie to implentacji logiki biznesowej w myśl modelu ECA:
➔Event - „nasłuchujemy” na zdarzenie w systemie
➔Condition – sprawdzamy czy zdarzenie nas interesuje
➔Action – jeśli tak – wykonujemy operację
Oprócz tego rules to framework dla programisty, pozwalający tworzyć te
wszystkie komponenty. O tym mówić nie będziemy.
3. Rules – Ćwiczenie 1
Zadanie 1.
Włącz moduł rules, rules ui wraz z zależnościami.
Potrzebujemy:
● http://drupal.org/project/rules
● http://drupal.org/project/entity
5. Rules – zdarzenia
Event, czyli zdarzenia, np.:
➔Wyświetlono stronę
➔Użytkownik zalogował się
➔Usunięto treść
➔Dodano komentarz
➔Itp...
Wykorzystujemy bibliotekę istniejących zdarzeń dostarczanych
przez moduły i moduł rules lub brudzimy sobie ręce i dodajemy
własne korzystając z API.
6. Rules – warunki
Condition, czyli warunki dotyczące zdarzenia, np.:
Czy treść jest artykułem?
●
Kim jest użytkownik?
●
Czy dzisiaj jest środa?
●
Czy w tytule mamy słowo „Hej”
●
Warunki można łączyć operatorami logicznymi „i” oraz „lub”
7. Rules – podstawy akcji
Action, czyli akcje/operacje. Przykłady:
➔ Wyświetl informację dla użytkownika
➔ Wyślij wiadomość elektroniczną
➔ Przekieruj użytkownika na inną stronę
➔ Zablokuj użytkownika
Mamy do dyspozycji bogatą bibliotekę akcji dostarczaną przez moduł rules
oraz inne moduły z drupal.org. Jak i to nie starczy, API modułu pozwala
dodawać nowe.
10. Rules – podstawianie danych
O potędze rules decyduje to, że możemy w warunkach i akcjach
odwoływać się do danych powiązanych z podmiotem zdarzenia, np. autor
treści, tytuł i temu podobne. Używamy do tego tokenów (zwanych różnie,
replacement patterns, data source etc.)
12. Rules – ćwiczenie 2
Ćwiczenie 2.
Dodajmy rules, który po zapisaniu treści wyświetli użytkownikowi
komunikat:
„Dodano treść o tytule {tytuł}. Czy chcesz {link do strony dodawania treści|
dodać kolejną}?
13. Rules – ćwiczenie 3
Warunki mogą być łączone operatorami koniunkcji i alternatywy.
14. Rules – ćwiczenie 3
Ćwiczenie 3.
Dodaj do poprzednio utworzonego rule dwa warunki.
Treść jest typu „Artykuł”
i
Treść jest opublikowana (status = 1)
15. Rules – Pętle
Rules obsługuje także iteracje po strukturach danych.
Na przykład:
➔Możemy wykonać akcję dla każdego termu dodanego dla artykułu osobno.
➔Możemy dla każdego użytkownika powiązanego z artykułem wysłać
wiadomość.
Pętle dodajemy jako specyficzny rodzaj operacji.
16. Rules – Ćwiczenie 4
Ćwiczenie 4.
Do utworzonego wcześniej rules, dodaj pętlę, która dla każdego taga
dodanego do artykułu wyświetli wiadomość: „Ta treść ma tag: {tag}”
17. Rules – Komponenty
Pojedynczy rules może stać się skomplikowany.
Jak współdzielić kod między rules i zaoszczędzić własnego czasu?
Odpowiedzią są komponenty. Komponenty pozwalają na tworzenie:
- Sparametryzowany zestaw warunków
- Sparametryzowany zestaw akcji
- Sparametryzowany rules lub ich zestaw
18. Rules – Komponenty
Ćwiczenie 5.
Utwórz komponent (Warunek typu „I”), który sprawdzi czy
- Po zapisaniu treść jest opublikowana (status opublikowany)
- Przed zapisaniem treść nie istniała (była nowa) lub treść nie była
opublikowana
Następnie, użyj komponentu w rules, który wyświetli ostrzeżenie „Uwaga,
treść została opublikowana. Widzi ją teraz każdy!”
19. Rules – Import / Eksport
Rules można importować oraz eksportować. W ramach eksportu utworzony
zostanie kod rules, który na drugim środowisku można zaimportować.
20. Rules – Import/export
Ćwiczenie 6.
Korzystając z panelu eksportu, wyeksportuj rules z poprzedniego ćwiczenia
do postaci kodu. Zmień w kodzie wypluwany komunikat i zaimportuj rules
ponownie (pamiętaj o opcji override).
21. Rules – Przykłady użycia
➔Powiadom moderatora o treści oczekującej na publikację.
➔Powiadom autora artykułu o komentarzu
➔Powiadom o odpowiedzi na komentarz
➔Zmień okruszki chleba
➔Warunkowo opublikuj artykuł (moderacja)
➔Czyszczenie cache aplikacji
➔Współpraca z modułem views (zaawansowany panel administracji)
➔Rules link
22. Rules – Podsumowanie
➔ W rules używa się podejścia „Co” a nie „Jak”.
➔Logika biznesowa to trójki ECA – Event / Condition / Action
➔Warunki można ze sobą łączyć (proste wyrażenia logiczne)
➔Można tworzyć pętle po strukturach danych
➔Gdy chcemy ponownie wykorzystywać „kod” – tworzymy komponenty
23. Rules – Podsumowanie
➔ Rules pozwalają wyeliminować potrzebę użycia wielu modułów.
Zmniejszają więc liczbę własnego kodu w projekcie.
➔ Rules pozwalają wyręczyć programistę w wielu prostszych zadaniach,
potrafią więc przyspieszyć proces deweloperski (ale nie zawsze).
Więcej informacji: http://drupalize.me/videos/introduction-rules