Dlaczego Twoja kolejna aplikacja
powinna bazować na platformie
Drupal?
Grzegorz Bartman
Twitter: @grzegorzbartman
E-mail: ...
Czym jest Drupal?
Drupal to platforma do tworzenia aplikacji internetowych
Za pomocą systemu Drupal oraz
tysięcy modułów m...
Drupal jest używany przez firmy
i organizacje z całego świata

http://www.whitehouse.gov/

http://www.economist.com/
http:...
Drupal jest na licencji Open Source
Klient otrzymuje dostęp do
całego kodu źródłowego
aplikacji

Nie ma opłat licencyjnych...
PHP i MySQL
Drupal jest napisany w PHP i korzysta z
bazy danych MySQL/MariaDB – działa
na większości serwerów hostingowych...
Społeczność
System Drupal jest rozwijany od 2001 roku
Aktualna wersja systemu – 7
Wersja 8 będzie wydana w na
początku 201...
Dlaczego klienci chwalą Drupala?
Prosty interfejs zarządzania
treścią w systemie

Szybkie wykonanie aplikacji
dzięki tysią...
Elementy składowe Drupala (1)
Entity

Fields

Node
Node types:

Boolean
Car

Page

News

Users

File

Image

Image

Engine...
Elementy składowe Drupala (2)

www.droptica.com

strona 9/61
Dlaczego programiści chwalą Drupala?

www.droptica.com

strona 10/61
Dlaczego programiści chwalą Drupala?
Entity API – pozwala na
tworzenie encji do
przechowywania danych w
systemie

Fields A...
Fields API

Klikając tworzymy strukturę danych, Drupal sam tworzy
odpowiednie tabele w bazie danych
www.droptica.com

stro...
Views (1)

W panelu administracyjnym tworzymy widok (zapytanie SQL +
formatowanie wyświetlania).
www.droptica.com

strona ...
Views (2)

Moduł Views automatycznie generuje odpowiednie zapytanie
SQL
www.droptica.com

strona 14/61
Views (3)

W ciągu kilku minut można wygenerować stronę pobierającą
dane z bazy danych i wyświetlającą je w wybranym forma...
Devel (1)
https://drupal.org/project/devel

www.droptica.com

strona 16/61
Devel (2)

Droptica sp. z o.o.

www.droptica.com

strona 17/61
Haki (hook)
Rdzeń Drupala

Własny moduł

Formularz dodawania
treści

Użytkownik wysłał formularz

Walidacja formularza

Za...
Haki (hook)

●

https://api.drupal.org/api/drupal/includes%21module.inc/group/hooks/7

●

https://api.drupal.org/api/views...
Views API (1)

www.droptica.com

strona 20/61
Views API (2)

www.droptica.com

strona 21/61
Rules

Wysyłanie wiadomości e-mail z powiadomieniem o nowych
Samochodach dodanych do systemu – wyklikane w kilka minut
www...
Rules API (1)

www.droptica.com

strona 23/61
Rules API (2)

http://drupalcontrib.org/api/drupal/contributions!rules!rules.api.php/7

www.droptica.com

strona 24/61
Fields API

https://drupal.org/project/link - moduł dodaje
nowy typ pola: Link. Pole służy do
przechowywania adresów stron...
Entity API

https://drupal.org/project/commerce - moduł
do tworzenia sklepu internetowego. Moduł
definiuje nowe encje w Dr...
Uprawnienia (1)

Rozbudowany system uprawnień pozwala na dowolne
zarządzanie dostępem do treści.
www.droptica.com

strona ...
Uprawnienia (2)
if (user_access('administer my module') {
//do something
}

www.droptica.com

strona 28/61
Forms API (1)
W Drupalu do definiowania formularzy używamy tablic PHP.
Jak modyfikować formularze? → hook_form_alter()

ht...
Forms API (2)
Własne formularze

https://api.drupal.org/api/drupal/developer%21topics%21forms_api_reference.html/7

www.dr...
Services
https://drupal.org/project/services

www.droptica.com

strona 31/61
Services (2)
https://drupal.org/project/services

www.droptica.com

strona 32/61
Services (3)

www.droptica.com

strona 33/61
Services (4)
Potrzebujesz więcej opcji w Services?
●https://drupal.org/project/services_views
●Hooki: https://drupal.org/n...
System szablonów
Wszystkie elementy kodu HTML generowane
przez rdzeń Drupala oraz moduły mogą być
nadpisane
Dedykowany pli...
Szablony bazowe
●

Lista wszystkich szablonów: https://drupal.org/project/Themes

Szablony w Drupalu mają możliwość dziedz...
There's module for that
Poszukaj gotowego modułu
zanim zaczniesz pisać własny!
Im mniej własnego kodu tym
mniejsze prawdop...
Moduł Examples

Jeśli zdecydujesz się na napisanie własnego modułu sprawdź przykłady
w module https://drupal.org/project/e...
Drush

Drush pozwala na zarządzanie Drupalem z poziomu konsoli
Instalacja w Debian/Ubuntu: apt-get install drush
Przykłado...
hook_update_N
Hook służy do aktualizacji bazy danych. Można go wykorzystać do
zarządzania wersjami aplikacji opartej na Dr...
Features
Moduł Features https://drupal.org/project/features pozwala na zapisywanie
ustawień Drupala, rodzajów zawartości, ...
Obsługa wielu domen
●

Multisite (core)
●

●

●

Jeden katalog z plikami
Drupala
Osobne bazy danych dla
każdej domeny (opc...
Serwer
Przy dużych aplikacjach istnieje konieczność optymalizacji Drupala oraz serwera pod
względem wydajności.
Możliwości...
Aegir
Aegir pozwala na zarządzanie wieloma stronami opartymi o Drupala
Bardzo pomaga w pracy jeśli zarządzamy dużą ilością...
Środowiska programistyczne
Wszystkie popularne środowiska programistyczne mają
rozszerzenia ułatwiające pracę z Drupalem
E...
Możliwości (1)
Podczas tej prezentacji przedstawiłem 6 modułów
●Devel
●Views (w rdzeniu Drupala 8)
●Rules
●Link
●Commerce
...
Możliwości (2)
Na stronie drupal.org jest ponad 22 000 modułów

www.droptica.com

strona 47/61
Przegląd modułów (1)
https://drupal.org/project/admin_menu
●https://drupal.org/project/backup_migrate
●https://drupal.org/...
Przegląd modułów (2)
https://drupal.org/project/flexslider
●https://drupal.org/project/webform
●https://drupal.org/project...
Przegląd modułów (3)
https://drupal.org/project/drupalforfirebug
●https://drupal.org/project/oauth
●https://drupal.org/pro...
Przegląd modułów (4)
https://drupal.org/project/stringoverrides
●https://drupal.org/project/og
●https://drupal.org/project...
Słabe strony systemu (1)
Szybkie tworzenie skalowalnych
aplikacji możliwe jest w Drupalu tylko
przez doświadczonych
progra...
Słabe strony systemu (2)

W początkowej fazie nauki Drupala warto mieć kontakt z doświadczonym programistą
Drupala. Taka o...
Historia
Drupal 1.0 – 2001-01-15
●Drupal 5.0 – 2007-01-15
●Drupal 6.0 – 2008-02-13
●Drupal 7.0 – 2011-01-05
●Drupal 8.0 – ...
Drupal 8
●
●

●
●
●

Object oriented code
Configuration management
(configuration in files)
Mobile
Breakpoint API
Multilan...
Drupal w sieci
http://drupal.org
●https://api.drupal.org
●http://drupalmodules.com
●http://drupal.pl
●http://dcwroc.pl/vid...
Dystrybucje
http://openatrium.com - praca w grupie
●https://drupal.org/project/commerce_kickstart - sklep oparty o moduł D...
Książki

www.droptica.com

strona 58/61
Podsumowanie
Wybierając platformę Drupal
otrzymujesz:
●Zadowolenie użytkowników (klienta)
- System prosty i wygodny w obsł...
Pytania?

www.droptica.com

strona 60/61
Dziękuję za uwagę

Grzegorz Bartman
•

https://twitter.com/grzegorzbartman

•

Grzegorz.Bartman@droptica.com

www.droptica...
Upcoming SlideShare
Loading in …5
×

Dlaczego Twoja kolejna aplikacja powinna bazować na platformie Drupal?

3,011 views

Published on

Dlaczego Twoja kolejna aplikacja powinna bazować na platformie Drupal? Prezentacja na "VI spotkanie wrocławskich programistów PHP"

Published in: Technology
5 Comments
3 Likes
Statistics
Notes
  • @grzegorzbartman Jasne, że wiele zależy od odbiorców, ale wydaje mi się, że najczęściej najważniejszy jest tytuł, potem autor, data i typ wpisu.

    Trochę lepiej (choć nie idealnie) ma to rozegrany Wordpress, gdzie tytuł jest wyróżniony wytłuszczeniem, a data i status skomasowane do 1 kolumny.

    To co daje Drupal jest funkcjonalne i można sobie pozmieniać (i chwała mu za to!:)), ale wydaje mi się, że domyślny widok można zrobić lepiej. :)
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • @PiotrKnapik Dzięki za uwagę, dodam informacje o Postgres na kolejnej wersji prezentacji. Ogólnie to mówiłem o współpracy z Postgres, ale już nie dodałem do prezentacji.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • @dajpanspokoj Opinie o interfejsie pisałem patrząc na moje doświadczenia. Może to trochę wynika, ze specyfiki projektów oraz użytkowników systemów. W projektach, które robiłem dla osób zarządzających treścią bardziej liczyło się szybkie zarządzanie tą treścią niż takie detale jak kolory. Wygląd formularzy jest dla nich wystarczający.

    > 1. nowy użytkownik przestraszy się moim zdaniem takiego formularza edycji artykułu

    Według mnie to zależy jaki użytkownik. Jesli robimy aplikacje, gdzie każdy może się zarejestrować i przejść do formularza dodawania treści to ten formularz co podałeś oczywiście trzeba zmienić np tak: http://i.imgur.com/bK1jwb8.png (to jedena z aplikacji, jakie niedawno zrobiliśmy). Drupal tutaj właściwie nie ma ogrniczeń. Można sobie zrobić widoki i formularze w dowolny sposób, jeśli domyślne nie są odpowiednie.
    Jeśli ten formularz ma być dostępny tylko dla redaktora, który już ma doświadczenie z wprowadzaniem treści w systemach CMS to dla niego wystarczy instrukcja co i gdzie wprowadzać, i ten formularz jest czytelny.

    > 2. lista wpisów w postaci http://take.ms/3lkSgL też nie przynosi chwały Drupalowi (masa tekstu, brak wizualnej hierachii w obrębie wiersza - wszystko na czarno albo niebiesko, tym samym stylem)

    To też zależy kto będzie patrzył na stronę. Widok taki jak np. ten http://i.imgur.com/NuJjI9C.png podoba się użytkownikom (redaktorom), bo może w jednym miejscu szybko znaleźć treść i wykonać operacje na wielu wpisach. Masa tekstu tutaj jest plusem, bo na jednym ekranie widać dużo informacji. Nie dostałem jeszcze opinii, że ten widok jest zły, bo kolory są nieodpowiednie.
    Jednak jakby była taka opinia to zawsze można zmienic szablon, poprzestawiać pola formularza i dostosować wygląd do swoich potrzeb. Najczęściej robimy te formularze i widoki dla osób, które mają zarządzać treścią, a im wystarcza instrukcja z opisem co i jak dodawać.

    Podsumowując zgadzam się, że wygląd trzeba dopracować dla zwykłych użytkowników. Jednak jeśli dane w aplikacji Drupalowej są wprowadzane przez kogoś z doświadczeniem to nie narzeka na wygląd strony z formularzami.

    Jest w ogóle jakiś system CMS lub framework, który ma formularze ładne i przejrzyste dla każdego rodzaju użytkownika oraz typu aplikacji? Wydaje mi się, że tego się nie da zrobić i rozwiązanie oferowane przez Drupala jest dobre: dostajemy zdefiniowany wygląd formularzy, które można w miarę dobrze używać, ale jak chcemy to możemy je poprawić jak tylko chcemy.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Jeżeli chcesz podkreślić darmowy charakter rozwiązania - warto wspomnieć też o PostgreSQL, ponieważ MySQL: 'For commercial use, several paid editions are available, and offer additional functionality.' (wiki). Tymczasem Postgres posiada darmowe moduły contrib na wzór podobny do Drupala.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Hej Grzesiek,

    fajna prezentacja!

    Jednak z jednym zupełnie się nie zgodzę: 'Prosty interfejs zarządzania treścią w systemie'.

    Drupal ma wiele zalet, ale w dziedzinie UX w wielu miejscach jest słaby:
    1. nowy użytkownik przestraszy się moim zdaniem takiego formularza edycji artykułu: http://take.ms/5Z2c9C
    2. lista wpisów w postaci http://take.ms/3lkSgL też nie przynosi chwały Drupalowi (masa tekstu, brak wizualnej hierachii w obrębie wiersza - wszystko na czarno albo niebiesko, tym samym stylem)
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
3,011
On SlideShare
0
From Embeds
0
Number of Embeds
278
Actions
Shares
0
Downloads
0
Comments
5
Likes
3
Embeds 0
No embeds

No notes for slide

Dlaczego Twoja kolejna aplikacja powinna bazować na platformie Drupal?

  1. 1. Dlaczego Twoja kolejna aplikacja powinna bazować na platformie Drupal? Grzegorz Bartman Twitter: @grzegorzbartman E-mail: grzegorz.bartman@droptica.com
  2. 2. Czym jest Drupal? Drupal to platforma do tworzenia aplikacji internetowych Za pomocą systemu Drupal oraz tysięcy modułów można budować takie aplikacje internetowe jak: ●Sklepy internetowe ●Serwisy z aktualnościami ●Intranety i extranety ●Bazy wiedzy ●Strony korporacyjne ●Serwisy społecznościowe ●Systemy rezerwacji Dries Buytaert – autor systemu Drupal www.droptica.com strona 2/61
  3. 3. Drupal jest używany przez firmy i organizacje z całego świata http://www.whitehouse.gov/ http://www.economist.com/ http://www.mbca.org/ http://www.nokiasiemensnetworks.com/ http://about.van.fedex.com/ http://research.nokia.com/ http://www.allegrogroup.com http://mcdonalds.com.au/ www.droptica.com https://events.jftc.nato.int/ https://drupal.org/case-studies strona 3/61
  4. 4. Drupal jest na licencji Open Source Klient otrzymuje dostęp do całego kodu źródłowego aplikacji Nie ma opłat licencyjnych za korzystanie z platformy Drupal oraz tysięcy modułów dostępnych na stronie www.drupal.org www.droptica.com strona 4/61
  5. 5. PHP i MySQL Drupal jest napisany w PHP i korzysta z bazy danych MySQL/MariaDB – działa na większości serwerów hostingowych Drupal działa na darmowym serwerze Apache, ale także na serwerach Nginx, IIS, Lighttpd www.droptica.com strona 5/61
  6. 6. Społeczność System Drupal jest rozwijany od 2001 roku Aktualna wersja systemu – 7 Wersja 8 będzie wydana w na początku 2014 roku Drupal.org to: - 24 000 modułów - 1 800 szablonów - 600 dystrybucji Drupala - 29 000 programistów W Polsce społeczność drupalowa spotyka się na corocznych konferencjach DrupalCamp Wrocław http://dcwroc.pl http://2012.dcwroc.pl www.droptica.com strona 6/61
  7. 7. Dlaczego klienci chwalą Drupala? Prosty interfejs zarządzania treścią w systemie Szybkie wykonanie aplikacji dzięki tysiącom darmowych modułów i rozbudowanemu API Możliwość integracji z innymi systemami w firmie Niższe koszty wdrożenia w porównaniu z komercyjnymi systemami Praktycznie nieograniczone możliwości rozbudowy systemu www.droptica.com System sprawdzony w wielu wdrożeniach na całym świecie, co potwierdza jego solidność i niezawodność. strona 7/61
  8. 8. Elementy składowe Drupala (1) Entity Fields Node Node types: Boolean Car Page News Users File Image Image Engine size Job Description Taxonomy Vocabularies Tags Custom entities (for example: Drupal Commerce module) www.droptica.com Text Cities Term reference Node reference User reference Field collection News categories strona 8/61
  9. 9. Elementy składowe Drupala (2) www.droptica.com strona 9/61
  10. 10. Dlaczego programiści chwalą Drupala? www.droptica.com strona 10/61
  11. 11. Dlaczego programiści chwalą Drupala? Entity API – pozwala na tworzenie encji do przechowywania danych w systemie Fields API – umożliwia rozbudowanie struktury encji przez przeglądarkę internetową, bez konieczności pisania kodu Views – generator zapytań SQL – za pomocą przeglądarki można pobierać dowolne informacje z bazy danych i prezentować je w dowolnej formie dla użytkowników (HTML, JSON, XML, PDF, XLS, inne) Rules – moduł oparty o strukturę Zdarzenie-Warunek-Akcja (Event Condition Action ECA). Pozwala wyklikać akcje, które mają być wykonywane przy konkretnych zdarzeniach systemowych (np. wysyłanie e-mail po dodaniu treści do systemu) www.droptica.com strona 11/61
  12. 12. Fields API Klikając tworzymy strukturę danych, Drupal sam tworzy odpowiednie tabele w bazie danych www.droptica.com strona 12/61
  13. 13. Views (1) W panelu administracyjnym tworzymy widok (zapytanie SQL + formatowanie wyświetlania). www.droptica.com strona 13/61
  14. 14. Views (2) Moduł Views automatycznie generuje odpowiednie zapytanie SQL www.droptica.com strona 14/61
  15. 15. Views (3) W ciągu kilku minut można wygenerować stronę pobierającą dane z bazy danych i wyświetlającą je w wybranym formacie. www.droptica.com strona 15/61
  16. 16. Devel (1) https://drupal.org/project/devel www.droptica.com strona 16/61
  17. 17. Devel (2) Droptica sp. z o.o. www.droptica.com strona 17/61
  18. 18. Haki (hook) Rdzeń Drupala Własny moduł Formularz dodawania treści Użytkownik wysłał formularz Walidacja formularza Zaczepiamy się w momencie walidacji formularza Tytuł treści musi być sprawdzony w zewnętrznej bazie danych przed zapisaniem danych. Zapisanie formularza Przekierowanie do strony www.droptica.com W ten sposób można dowolnie zmieniać i rozbudowywać Drupala bez jego modyfikacji, używając własnych modułów. strona 18/61
  19. 19. Haki (hook) ● https://api.drupal.org/api/drupal/includes%21module.inc/group/hooks/7 ● https://api.drupal.org/api/views/views.api.php/group/views_hooks/7 www.droptica.com strona 19/61
  20. 20. Views API (1) www.droptica.com strona 20/61
  21. 21. Views API (2) www.droptica.com strona 21/61
  22. 22. Rules Wysyłanie wiadomości e-mail z powiadomieniem o nowych Samochodach dodanych do systemu – wyklikane w kilka minut www.droptica.com strona 22/61
  23. 23. Rules API (1) www.droptica.com strona 23/61
  24. 24. Rules API (2) http://drupalcontrib.org/api/drupal/contributions!rules!rules.api.php/7 www.droptica.com strona 24/61
  25. 25. Fields API https://drupal.org/project/link - moduł dodaje nowy typ pola: Link. Pole służy do przechowywania adresów stron internetowych https://api.drupal.org/api/drupal/includes!module.inc/group/hooks/7 hook_field_* www.droptica.com strona 25/61
  26. 26. Entity API https://drupal.org/project/commerce - moduł do tworzenia sklepu internetowego. Moduł definiuje nowe encje w Drupalu, np. „Order” www.droptica.com strona 26/61
  27. 27. Uprawnienia (1) Rozbudowany system uprawnień pozwala na dowolne zarządzanie dostępem do treści. www.droptica.com strona 27/61
  28. 28. Uprawnienia (2) if (user_access('administer my module') { //do something } www.droptica.com strona 28/61
  29. 29. Forms API (1) W Drupalu do definiowania formularzy używamy tablic PHP. Jak modyfikować formularze? → hook_form_alter() https://api.drupal.org/api/drupal/developer%21topics%21forms_api_reference.html/7 www.droptica.com strona 29/61
  30. 30. Forms API (2) Własne formularze https://api.drupal.org/api/drupal/developer%21topics%21forms_api_reference.html/7 www.droptica.com strona 30/61
  31. 31. Services https://drupal.org/project/services www.droptica.com strona 31/61
  32. 32. Services (2) https://drupal.org/project/services www.droptica.com strona 32/61
  33. 33. Services (3) www.droptica.com strona 33/61
  34. 34. Services (4) Potrzebujesz więcej opcji w Services? ●https://drupal.org/project/services_views ●Hooki: https://drupal.org/node/783460 www.droptica.com strona 34/61
  35. 35. System szablonów Wszystkie elementy kodu HTML generowane przez rdzeń Drupala oraz moduły mogą być nadpisane Dedykowany plik dla strony /mypage: page--mypage.tpl.php Dedykowany plik dla node typu car: node--car.tpl.php Dedykowany plik dla pola field_body w rodzaju zawartości Car: field--body--car.tpl.php Funkcje w pliku template.php pozwalają na nadpisywanie lub dodawanie zmiennych, np: ●template_preprocess_page(&$variables, $hook) ●template_preprocess_node(&$variables) https://drupal.org/node/171194 www.droptica.com strona 35/61
  36. 36. Szablony bazowe ● Lista wszystkich szablonów: https://drupal.org/project/Themes Szablony w Drupalu mają możliwość dziedziczenia dlatego często używa się szablonów bazowych i na ich podstawie tworzy własne ● ● Najpopularniejsze szablony bazowe ● https://drupal.org/project/zen ● https://drupal.org/project/omega ● https://drupal.org/project/adaptivetheme ● https://drupal.org/project/fusion ● https://drupal.org/project/bootstrap ● https://drupal.org/project/basic www.droptica.com strona 36/61
  37. 37. There's module for that Poszukaj gotowego modułu zanim zaczniesz pisać własny! Im mniej własnego kodu tym mniejsze prawdopodobieństwo błędów w aplikacji Jak szukać? ●Wyszukiwarka na drupal.org nie daje dobrych wyników ●http://drupalmodules.com ●Google.pl → site:drupal.org www.droptica.com strona 37/61
  38. 38. Moduł Examples Jeśli zdecydujesz się na napisanie własnego modułu sprawdź przykłady w module https://drupal.org/project/examples www.droptica.com strona 38/61
  39. 39. Drush Drush pozwala na zarządzanie Drupalem z poziomu konsoli Instalacja w Debian/Ubuntu: apt-get install drush Przykładowe komendy: ●Pobieranie modułu devel: drush dl devel ●Czyszczenie cache: drush cc all ●Uruchomienie crona: drush cron ●Aktualizacja bazy: drush updb ●Wszystkie polecenia: drush help www.droptica.com strona 39/61
  40. 40. hook_update_N Hook służy do aktualizacji bazy danych. Można go wykorzystać do zarządzania wersjami aplikacji opartej na Drupalu. Hook jest wywoływany podczas uruchomienia skrypty /update.php Hook o zadanym numerze (np.. mymodule_update_7101) wykona się tylko raz (nie zostanie ponownie wywołany po uruchomieniu procesu na stronie /update.php) Więcej: http://designhammer.com/blog/managing-drupal-site-updates-hookupdaten www.droptica.com strona 40/61
  41. 41. Features Moduł Features https://drupal.org/project/features pozwala na zapisywanie ustawień Drupala, rodzajów zawartości, widoków, pól w plikach (specjalne moduły). Opcja eksportu wszystkich ustawień z bazy danych do kodu pozwala na użycie wersjonowania plików (GIT, SVN) do zarządzania aplikacja i ułatwia pracę w grupie programistów. W połączeniu z Drush można zbudować środowisko do automatycznego budowania aplikacji oraz przenoszenia wersji aplikacji pomiędzy serwerami. Przykład skonfigurowanego serwera: https://drupal.org/project/droptica_devserver www.droptica.com strona 41/61
  42. 42. Obsługa wielu domen ● Multisite (core) ● ● ● Jeden katalog z plikami Drupala Osobne bazy danych dla każdej domeny (opcja współdzielenia wybranych tabel) Każda domena ma swoich użytkowników I administratorów www.droptica.com ● Domain Access Module ● ● ● Jeden katalog z plikami Drupala Jedna baza danych Jedna baza użytkowników, jeden panel zarządzania stronami strona 42/61
  43. 43. Serwer Przy dużych aplikacjach istnieje konieczność optymalizacji Drupala oraz serwera pod względem wydajności. Możliwości Drupala: ●Integracja z Memcache https://drupal.org/project/memcache ●Integracja z Varnish https://drupal.org/project/varnish ●Integracja z Solr https://drupal.org/project/search_api_solr ●Obsługa baz danych Master/Slave https://drupal.org/node/1952990 ●Content delivery network https://drupal.org/project/cdn https://drupal.org/project/storage_api ●Mongodb https://drupal.org/project/mongodb ●Redis https://drupal.org/project/redis www.droptica.com strona 43/61
  44. 44. Aegir Aegir pozwala na zarządzanie wieloma stronami opartymi o Drupala Bardzo pomaga w pracy jeśli zarządzamy dużą ilością podobnych stron. Więcej: http://www.youtube.com/watch?v=NE5b5qZ4vto http://www.aegirproject.org/ www.droptica.com strona 44/61
  45. 45. Środowiska programistyczne Wszystkie popularne środowiska programistyczne mają rozszerzenia ułatwiające pracę z Drupalem Eclipse https://drupal.org/project/eclipse https://drupal.org/node/75242 Netbeans https://drupal.org/project/netbeans Sublime http://realityloop.com/blog/2012/08/09/drupal-development-using-s ublime-text-2-5-steps www.droptica.com strona 45/61
  46. 46. Możliwości (1) Podczas tej prezentacji przedstawiłem 6 modułów ●Devel ●Views (w rdzeniu Drupala 8) ●Rules ●Link ●Commerce ●Services www.droptica.com strona 46/61
  47. 47. Możliwości (2) Na stronie drupal.org jest ponad 22 000 modułów www.droptica.com strona 47/61
  48. 48. Przegląd modułów (1) https://drupal.org/project/admin_menu ●https://drupal.org/project/backup_migrate ●https://drupal.org/project/devel_themer ●https://drupal.org/project/search_krumo ●https://drupal.org/project/feeds ●https://drupal.org/project/migrate ●https://drupal.org/project/field_collection ●https://drupal.org/project/l10n_update ●https://drupal.org/project/addressfield ●https://drupal.org/project/context ●https://drupal.org/project/date ●https://drupal.org/project/filefield_sources ●https://drupal.org/project/WYSIWYG ●https://drupal.org/project/media ●https://drupal.org/project/menu_breadcrumb ●https://drupal.org/project/panels ●https://drupal.org/project/pathauto ●https://drupal.org/project/smtp ●https://drupal.org/project/views_bulk_operations ●https://drupal.org/project/views_php ●https://drupal.org/project/views_slideshow ● www.droptica.com strona 48/61
  49. 49. Przegląd modułów (2) https://drupal.org/project/flexslider ●https://drupal.org/project/webform ●https://drupal.org/project/print ●https://drupal.org/project/colorbox ●https://drupal.org/project/imagecache_actions ●https://drupal.org/project/nodequeue ●https://drupal.org/project/revisioning ●https://drupal.org/project/globalredirect ●https://drupal.org/project/metatag ●https://drupal.org/project/page_title ●https://drupal.org/project/redirect ●https://drupal.org/project/xmlsitemap ●https://drupal.org/project/captcha ●https://drupal.org/project/recaptcha ●https://drupal.org/project/libraries ●https://drupal.org/project/transliteration ●https://drupal.org/project/token ●https://drupal.org/project/strongarm ●https://drupal.org/project/fboauth ●https://drupal.org/project/facebook_rules ● ● www.droptica.com strona 49/61
  50. 50. Przegląd modułów (3) https://drupal.org/project/drupalforfirebug ●https://drupal.org/project/oauth ●https://drupal.org/project/quicktabs ●https://drupal.org/project/popup_message ●https://drupal.org/project/service_links ●https://drupal.org/project/userpoints ●https://drupal.org/project/email ●https://drupal.org/project/simplenews ●https://drupal.org/project/menu_attributes ●https://drupal.org/project/flag ●https://drupal.org/project/auto_nodetitle ●https://drupal.org/project/archive ●https://drupal.org/project/diff ●https://drupal.org/project/menu_block ●https://drupal.org/project/site_map ●https://drupal.org/project/coder ●https://drupal.org/project/masquerade ●https://drupal.org/project/fivestar ●https://drupal.org/project/calendar ●https://drupal.org/project/privatemsg ● www.droptica.com strona 50/61
  51. 51. Przegląd modułów (4) https://drupal.org/project/stringoverrides ●https://drupal.org/project/og ●https://drupal.org/project/boost ●https://drupal.org/project/securepages ●https://drupal.org/project/tagadelic ●https://drupal.org/project/content_access ●https://drupal.org/project/acl ●https://drupal.org/project/simple_access ●https://drupal.org/project/views_data_export ●https://drupal.org/project/views_load_more ●https://drupal.org/project/picture ●https://drupal.org/project/breakpoints ●https://drupal.org/project/ldap ● http://drupalmodules.com/top-downloads www.droptica.com strona 51/61
  52. 52. Słabe strony systemu (1) Szybkie tworzenie skalowalnych aplikacji możliwe jest w Drupalu tylko przez doświadczonych programistów. Osoby z małym doświadczeniem zbudują aplikację na Drupalu ale jej użytkowanie i rozbudowa nie będą wygodne, co przełoży się na wyższe koszty utrzymania aplikacji oraz niezadowolenie klienta ●Realizacja w Drupalu interfejsu użytkownika projektowanego (layout w PSD) bez udziału osoby znającej budowę Drupala może być czasochłonna z uwagi na pewną narzuconą strukturę prezentacji danych. ● www.droptica.com strona 52/61
  53. 53. Słabe strony systemu (2) W początkowej fazie nauki Drupala warto mieć kontakt z doświadczonym programistą Drupala. Taka osoba szybciej pomoże w rozwiązywaniu problemów niż najlepsza książka czy dokumentacja. www.droptica.com strona 53/61
  54. 54. Historia Drupal 1.0 – 2001-01-15 ●Drupal 5.0 – 2007-01-15 ●Drupal 6.0 – 2008-02-13 ●Drupal 7.0 – 2011-01-05 ●Drupal 8.0 – 2014-?? ● drupal 8.0-alpha4 2013-10-18 ● www.droptica.com strona 54/61
  55. 55. Drupal 8 ● ● ● ● ● Object oriented code Configuration management (configuration in files) Mobile Breakpoint API Multilangual ● ● ● ● ● ● ● Views Web Services PHPUnit Backbone Twig Symfony (HttpKernel) CKEditor http://www.sensiolabs.co.uk/ - strona oparta o Drupal 8! ●http://www.youtube.com/watch?v=8uhNFoOnz_g DrupalCon Prague 2013 Keynote ●http://www.palantir.net/blog/how-i-learned-stop-worrying-and-love-drupal-8 http://www.palantir.net/sites/default/files/Drupal8ATL.pdf ● www.droptica.com strona 55/61
  56. 56. Drupal w sieci http://drupal.org ●https://api.drupal.org ●http://drupalmodules.com ●http://drupal.pl ●http://dcwroc.pl/videos ●http://2012.dcwroc.pl/videos ●http://drupalidzienastudia.pl ●http://3drupal.pl ●http://nodeone.se/sv/learn-drupal ●http://dropbucket.org/ ●http://www.droptica.com/pl/blog ●http://www.drupalday.pl ● www.droptica.com strona 56/61
  57. 57. Dystrybucje http://openatrium.com - praca w grupie ●https://drupal.org/project/commerce_kickstart - sklep oparty o moduł Drupal Commerce z przykładową konfiguracją ●https://drupal.org/project/openpublish - publikacja treści, artykułów ●https://drupal.org/project/commons - budowanie społeczności ●https://drupal.org/project/erpal - CRM, Project management, document management, employee management, calendars, idp ●https://drupal.org/project/civicrm_starterkit - dystrybucja oparta o CiviCRM ●https://drupal.org/project/panopoly - bazowa platforma do budowania serwisów w oparciu o moduł Panels, pozwala na wygodną edycję zawartości stron, na Panopoly oparte jest OpenAtrium 2 ●https://drupal.org/project/distributions - lista dystrybucji ● www.droptica.com strona 57/61
  58. 58. Książki www.droptica.com strona 58/61
  59. 59. Podsumowanie Wybierając platformę Drupal otrzymujesz: ●Zadowolenie użytkowników (klienta) - System prosty i wygodny w obsłudze, krótki czas realizacji, brak opłat licencyjnych ●Zadowolenie programistów – dużo modułów i rozbudowane API pozwala łatwo i przyjemnie pracować nad rozbudową aplikacji www.droptica.com strona 59/61
  60. 60. Pytania? www.droptica.com strona 60/61
  61. 61. Dziękuję za uwagę Grzegorz Bartman • https://twitter.com/grzegorzbartman • Grzegorz.Bartman@droptica.com www.droptica.com strona 61/61

×