Drupal
Drupal – system zarządzania treścią i framework (ang. CMF content management framework) napisany w języku PHP, używany jest przez ponad milion stron internetowych, czyli około 2% ze wszystkich stron internetowych na świecie i ponad 5% stron posiadających system CMS, są to zarówno blogi, portale informacyjne, aplikacje edukacyjne, strony korporacyjne oraz rządowe, m.in. strona whitehouse.gov, data.gov.uk czy premier.gov.pl.
Wyposażony jest w funkcje, które oferują między innymi obsługę blogów, środowiska przeznaczone do wspólnej pracy nad projektem, fora, biuletyny, galerie grafik/zdjęć, możliwość wysyłania i pobierania plików, a także rozbudowane API umożliwiające tworzenie zaawansowanych rozwiązań. Wersja 8 została zbudowana od podstaw przy użyciu komponentów frameworka Symfony wraz z implementacją serwisów i wzorca Dependency Injection.
Cechami wyróżniającymi Drupala jest system encji wspólny dla segmentów (ang. node), taksonomii, użytkowników, od wersji 8 także bloków i linków menu. Taksonomia to rozbudowany moduł służący głównie do porządkowania treści wedle kategorii. Jego zastosowania są jednak znacznie szersze. Dzięki wsparciu dla zaawansowanych rozwiązań optymalizacyjnych, takich jak Big pipe, Varnish, APC, Memcache i replikacji baz danych dlatego nadaje się do stron posiadających duże obciążenie.
Drupal automatycznie tworzy kanały informacyjne RSS zarówno dla całej strony, jak i dla kategorii zamieszczanych na niej artykułów oraz forów. Umożliwia także proste ustalanie aliasów sprawiając, że adresy stron są łatwiejsze do zapamiętania przez odwiedzających. Wyposażony jest również w system tzw. „skórek” PHPTemplate, ułatwiający zmianę wyglądu strony, od wersji 8 do zarządzania markupem wykorzystywany jest Twig.
Drupal jest oprogramowaniem o otwartym kodzie źródłowym, udostępnianym na zasadach licencji GPL. Można go wzbogacać o nowe funkcje za pomocą tzw. modułów, z których to również zbudowany jest system. Niektóre z nich (tzw. moduły Core’owe) są dostępne od razu po instalacji, a inne trzeba dodatkowo pobrać[6].
Od wersji 7 oprogramowania z jądrem systemu zintegrowano moduły CCK oraz ImageCache[7][8], które w poprzednich wersjach były modułami zewnętrznymi. Najczęściej instalowanym modułem zewnętrznym jest moduł Views, który pozwala na budowę zapytań SQL poprzez interface użytkownika[9].
System wykorzystuje język PHP, współpracuje z bazami danych takimi jak: MySQL, PostgreSQL, SQLite, MariaDB, MongoDB czy Microsoft SQL Server za pośrednictwem biblioteki PDO oraz serwerami, na których można uruchomić PHP: Apache, IIS, Lighttpd, Hiawatha, Cherokee lub Nginx.
W oparciu o Drupal powstają też inne niezależne, niszowe rozwiązania, np. system do zarządzania projektami Open Atrium[10].