Drupal - Drupal

Drupal
Drupal-wordmark.svg
Tworzenie treści do Drupala 9.jpg
Zrzut ekranu przedstawiający interfejs tworzenia treści Drupal 9 w akcji
Pierwotny autor (autorzy) Susy Buytaert
Deweloper(zy) Społeczność Drupala
Pierwsze wydanie 15 stycznia 2001 ; 20 lat temu ( 2001-01-15 )
Wersja stabilna
9.2.7 / 2021-10-06 [±]
Magazyn Repozytorium Drupala
Napisane w PHP , przy użyciu Symfony
System operacyjny Uniksowy , Windows
Platforma Platforma internetowa
Rozmiar 140 MB (nieskompresowany rdzeń Drupal 9.1)
Rodzaj Zawartość ramy zarządzania , system zarządzania treścią , oprogramowanie blog
Licencja GPL-2.0-lub-później
Strona internetowa www .drupal .org

Drupal ( / d r Ü p əl / ) jest darmowy i open-source web system zarządzania treścią (CMS), napisany w PHP i rozpowszechniany na licencji GNU General Public Licence . Drupal zapewnia back-end framework dla co najmniej 13% z 10 000 najlepszych witryn na całym świecie – od osobistych blogów po witryny korporacyjne, polityczne i rządowe. Systemy wykorzystują również Drupala do zarządzania wiedzą i współpracy biznesowej.

Według stanu na marzec 2021 r. społeczność Drupala liczyła ponad 1,39 miliona członków, w tym 121 000 aktywnych użytkowników, co zaowocowało ponad 46 800 darmowymi modułami, które rozszerzają i dostosowują funkcjonalność Drupala, ponad 2 900 darmowymi motywami, które zmieniają wygląd i działanie Drupala. co najmniej 1300 darmowych dystrybucji, które umożliwiają użytkownikom szybkie i łatwe skonfigurowanie złożonego, specyficznego dla użytkownika Drupala w mniejszej liczbie kroków.

Standardowe wydanie Drupala, znane jako Drupal core , zawiera podstawowe funkcje wspólne dla systemów zarządzania treścią . Obejmują one rejestrację i utrzymanie konta użytkownika, zarządzanie menu, kanały RSS, taksonomię, dostosowywanie układu strony i administrowanie systemem. Główna instalacja Drupala może służyć jako prosta strona internetowa, blog dla jednego lub wielu użytkowników, forum internetowe lub witryna społecznościowa udostępniająca treści tworzone przez użytkowników .

Drupal określa się również jako framework aplikacji internetowych . W porównaniu z godnymi uwagi frameworkami, Drupal spełnia większość ogólnie przyjętych wymagań funkcjonalnych dla takich frameworków internetowych.

Chociaż Drupal oferuje wyrafinowany interfejs API dla programistów, podstawowa instalacja witryny internetowej i administrowanie frameworkiem nie wymaga umiejętności programistycznych.

Drupal działa na dowolnej platformie obliczeniowej, która obsługuje zarówno serwer WWW obsługujący PHP, jak i bazę danych do przechowywania treści i konfiguracji.

Historia

Najnowsze główne wydania
Wersja Data wydania
Aktualna stabilna wersja: 9.2.7 6 paź 2021
Starsza wersja, ale nadal utrzymywana: 8.9.19 15 wrz 2021
Starsza wersja, ale nadal utrzymywana: 7,82 21 lipca 2021
Stara wersja, nie jest już utrzymywana: 6,38 24 lutego 2016
Stara wersja, nie jest już utrzymywana: 5.23 11 sierpnia 2010
Legenda:
Stara wersja
Starsza wersja, nadal utrzymywana
Ostatnia wersja
Najnowsza wersja zapoznawcza
Przyszłe wydanie
Legenda:
Stara wersja
Starsza wersja, nadal utrzymywana
Ostatnia wersja
Najnowsza wersja zapoznawcza
Przyszłe wydanie

Pierwotnie napisany przez Driesa Buytaerta jako forum dyskusyjne , Drupal stał się projektem open source w 2001 roku. Nazwa Drupal reprezentuje angielskie tłumaczenie holenderskiego słowa druppel , co oznacza „kroplę” (jak w kropli wody). Nazwa pochodzi od nieistniejącego już serwisu Drop.org, którego kod powoli ewoluował w Drupala. Buytaert chciał nazwać witrynę „dorp” (po holendersku „wioska”) ze względu na jej aspekty związane ze społecznością, ale błędnie wpisał ją podczas sprawdzania nazwy domeny i uznał, że błąd brzmi lepiej.

Zainteresowanie Drupalem wzrosło znacząco w 2003 roku, kiedy pomogło zbudować „DeanSpace” dla Howarda Deana , jednego z kandydatów w głównej kampanii Partii Demokratycznej USA w wyborach prezydenckich w USA w 2004 roku . DeanSpace wykorzystał udostępnianie Drupala na zasadach open source do obsługi zdecentralizowanej sieci około 50 różnych, nieoficjalnych stron prodziekańskich, które umożliwiały użytkownikom bezpośrednią komunikację między sobą, a także z kampanią. Po tym, jak Dean zakończył swoją kampanię, członkowie jego zespołu internetowego nadal interesowali się rozwojem platformy internetowej, która mogłaby wspomóc działalność polityczną, uruchamiając w lipcu 2004 r. CivicSpace Labs, „...pierwszą firmę zatrudniającą pełnoetatowych pracowników, która rozwijała się i dystrybucja technologii Drupal." Inne firmy również zaczęły specjalizować się w rozwoju Drupala. Do 2013 roku w serwisie Drupal pojawiły się setki dostawców oferujących usługi związane z Drupalem.

Od 2014 roku Drupal jest rozwijany przez społeczność. Od lipca 2007 do czerwca 2008 witryna Drupal.org dostarczyła ponad 1,4 miliona pobrań oprogramowania Drupal, co stanowi wzrost o około 125% w porównaniu z poprzednim rokiem.

Od stycznia 2017 r. ponad 1 180 000 witryn korzysta z Drupala. Należą do nich setki znanych organizacji, w tym korporacje, media i wydawnictwa, rządy, organizacje non-profit, szkoły i osoby prywatne. Drupal zdobył kilka nagród Packt Open Source CMS Awards i trzy razy z rzędu wygrał Webware 100 .

Drupal 6 został wydany 13 lutego 2008 r., 5 marca 2009 r., Buytaert ogłosił zamrożenie kodu dla Drupala 7 na 1 września 2009 r. Drupal 7 został wydany 5 stycznia 2011 r., wraz z grupami wydawniczymi w kilku krajach. Po tym, konserwacja Drupala 5 została zatrzymana, zachowany został tylko Drupal 7 i Drupal 6. Aktualizacje konserwacyjne serii Drupal 7 są publikowane regularnie. Wcześniej koniec życia Drupala 7 planowano na listopad 2021 r., ale biorąc pod uwagę wpływ COVID-19, koniec życia został przesunięty do 28 listopada 2022 r. Drupal 8 nadal będzie wycofany z eksploatacji w listopadzie 2, 2021.

7 października 2015 r. ogłoszono pierwszy kandydat do wydania Drupala 8 (rc1). Drupal 8 zawiera nowe funkcje i ulepszenia zarówno dla użytkowników, jak i programistów, w tym: odświeżony interfejs użytkownika; WYSIWYG i edycja na miejscu; ulepszone wsparcie mobilne; dodane i ulepszone kluczowe moduły, w tym widoki, data i odniesienie do jednostki; wprowadzono nowy backend zorientowany obiektowo, wykorzystujący komponenty Symfony; ulepszone zarządzanie konfiguracją; oraz ulepszone wsparcie wielojęzyczne. Drupal 8 rc1 to wspólne dzieło ponad 3200 głównych współtwórców.

Drupal 8.0.0 został wydany 19 listopada 2015 roku. Kolejne większe i mniejsze wydania, które przynoszą liczne ulepszenia i poprawki błędów (m.in. ulepszenia CKEditor WYSIWYG, dodane API, ulepszona strona pomocy) można znaleźć na stronie Wydania .

Pierwsze wydanie Drupala 9 9.0.0 miało miejsce 3 czerwca 2020 r.

Wstępny harmonogram wydań Drupala 10 to lipiec 2022 roku.

Rdzeń

W społeczności Drupala „rdzeń” odnosi się do wspólnie tworzonej bazy kodu, która może być rozszerzana za pomocą modułów współautorskich i – w przypadku wersji wcześniejszych niż Drupal 8 – jest przechowywana poza folderem „sites” instalacji Drupala. (Począwszy od wersji 8 rdzeń jest przechowywany we własnym podkatalogu „core”). Rdzeń Drupala jest podstawowym elementem Drupala. Wspólne biblioteki specyficzne dla Drupala, a także proces ładowania początkowego, są zdefiniowane jako rdzeń Drupala; cała pozostała funkcjonalność jest zdefiniowana jako moduły Drupala, w tym sam moduł systemowy.

W domyślnej konfiguracji serwisu Drupal autorzy mogą dodawać treści jako zarejestrowani lub anonimowi użytkownicy (według uznania administratora). Ta treść jest dostępna dla odwiedzających witrynę internetową za pomocą różnych kryteriów do wyboru. Od Drupala 8 Drupal zaadoptował kilka bibliotek Symfony do rdzenia Drupala.

Moduły podstawowe zawierają również hierarchiczny system taksonomii , który umożliwia programistom kategoryzowanie treści lub oznaczanie ich słowami kluczowymi dla łatwiejszego dostępu.

Drupal prowadzi szczegółowy dziennik zmian aktualizacji podstawowych funkcji według wersji.

Moduły podstawowe

Drupal core zawiera moduły, które administrator może włączyć w celu rozszerzenia funkcjonalności głównego serwisu.

Podstawowa dystrybucja Drupala zapewnia szereg funkcji, w tym:

  • Dostęp do statystyk i logowania
  • Zaawansowane wyszukiwanie
  • Książki, komentarze i fora
  • Buforowanie, leniwe ładowanie treści (przy użyciu BigPipe) i funkcja ograniczania przepustowości dla lepszej wydajności
  • Niestandardowy typ i pola zawartości oraz interfejs użytkownika do tworzenia, zarządzania i wyświetlania list zawartości.
  • Opisowe adresy URL
  • Wielopoziomowy system menu
  • Obsługa wielu witryn
  • Tworzenie i edycja treści dla wielu użytkowników
  • Kanał RSS i agregator kanałów
  • Powiadomienie o aktualizacji zabezpieczeń i nowej wersji
  • Profile użytkowników
  • Różne ograniczenia kontroli dostępu (role użytkowników, adresy IP, e-mail)
  • Narzędzia przepływu pracy (wyzwalacze i akcje)

Główne motywy

Drupal zawiera podstawowe motywy, które dostosowują „wygląd i styl” witryn Drupal, na przykład Garland i Bartik.

Moduł kolorów, wprowadzony w Drupal core 5.0, umożliwia administratorom zmianę schematu kolorów niektórych motywów za pomocą interfejsu przeglądarki.

Lokalizacja

Od stycznia 2017 r. Drupal został udostępniony w 100 językach i angielskim (domyślnie). Dostępna jest obsługa języków pisanych od prawej do lewej, takich jak arabski , perski i hebrajski .

Lokalizacja Drupala jest oparta na gettext , bibliotece GNU do internacjonalizacji i lokalizacji (i18n).

Powiadomienie o automatycznej aktualizacji

Drupal może automatycznie powiadamiać administratora o nowych wersjach modułów, motywów czy rdzenia Drupala. Ważne jest, aby szybko zaktualizować po wydaniu aktualizacji zabezpieczeń.

Przed aktualizacją zaleca się wykonanie kopii zapasowej rdzenia, modułów, motywu, plików i bazy danych. Jeśli po aktualizacji pojawi się jakiś błąd lub nowa aktualizacja nie jest kompatybilna z modułem, można go szybko zastąpić kopią zapasową. W Drupalu dostępnych jest kilka modułów backupu.

15 października 2014 r. ogłoszono lukę w zabezpieczeniach sql i opublikowano aktualizację. Dwa tygodnie później zespół ds. bezpieczeństwa Drupala opublikował zalecenie wyjaśniające, że każdy powinien działać przy założeniu, że jakakolwiek strona, która nie została zaktualizowana w ciągu 7 godzin od ogłoszenia, jest zainfekowana. Dlatego bardzo ważne może być szybkie zastosowanie tych aktualizacji i wysoce zalecane jest użycie narzędzia ułatwiającego ten proces, takiego jak drush .

Abstrakcja bazy danych

Przed wersją 7 Drupal posiadał funkcje, które wykonywały zadania związane z bazami danych, takie jak czyszczenie zapytań SQL, prefiksowanie nazw tabel w wielu witrynach oraz generowanie odpowiednich zapytań SQL. W szczególności Drupal 6 wprowadził warstwę abstrakcji, która umożliwiła programistom tworzenie zapytań SQL bez pisania SQL.

Drupal 9 rozszerza warstwę abstrakcji danych, dzięki czemu programista nie musi już pisać zapytań SQL jako ciągów tekstowych. Używa PHP Data Objects do abstrakcji bazy danych. Firma Microsoft napisała sterownik bazy danych dla swojego programu SQL Server . Drupal 7 obsługuje oparty na plikach silnik bazy danych SQLite , który jest częścią standardowej dystrybucji PHP.

Programowanie Windows

Dzięki nowej warstwie abstrakcji bazy danych w Drupal 9 i możliwości uruchamiania na serwerze sieciowym Windows IIS , programiści systemu Windows mogą teraz łatwiej uczestniczyć w społeczności Drupal.

Grupa na Drupal.org poświęcona jest zagadnieniom Windows.

Dostępność

Od czasu wydania Drupala 7 dostępność sieciowa w społeczności Drupala stale się poprawia. Drupal jest dobrym frameworkiem do budowania witryn dostępnych dla osób niepełnosprawnych, ponieważ wiele najlepszych praktyk zostało włączonych do Drupal Core.

Drupal 8 zawierał wiele ulepszeń w wytycznych Authoring Tool Accessibility Guidelines (ATAG) 2.0, które wspierają zarówno dostępne środowisko tworzenia, jak i wsparcie dla autorów w tworzeniu bardziej przystępnych treści.

Zespół ds. dostępności prowadzi prace nad identyfikacją i rozwiązywaniem barier dostępności oraz podnoszeniem świadomości w społeczności.

Drupal 8 ma dobre wsparcie semantyczne dla bogatych aplikacji internetowych poprzez WAI-ARIA . Wprowadzono wiele ulepszeń zarówno po stronie gościa, jak i administratora Drupala, w szczególności:

  • Funkcja przeciągnij i upuść;
  • Poprawiony kontrast i intensywność kolorów;
  • Dodanie pomijania nawigacji do głównych motywów;
  • Domyślne dodawanie etykiet dla formularzy wejściowych;
  • Naprawianie wyświetlania CSS: brak ze spójnymi metodami ukrywania i eksponowania tekstu na fokus;
  • Dodanie obsługi regionów ARIA Live za pomocą Drupal.announce(); oraz
  • Dodanie TabbingManager w celu obsługi lepszej nawigacji za pomocą klawiatury.

Społeczność dodała również bramkę dostępności dla głównych problemów w Drupal 8.

Rozszerzenie rdzenia

Rdzeń Drupala jest modułowy , definiując system podpięć i wywołań zwrotnych , które są dostępne wewnętrznie przez API . Ten projekt pozwala modułom i motywom dostarczonym przez osoby trzecie rozszerzać lub zastępować domyślne zachowania Drupala bez zmiany kodu rdzenia Drupala.

Drupal izoluje podstawowe pliki z przesłanych modułów i motywów. Zwiększa to elastyczność i bezpieczeństwo oraz pozwala administratorom na bezproblemowe uaktualnianie do nowych wersji bez nadpisywania dostosowań ich witryny. Społeczność Drupala ma powiedzenie „Nigdy nie hackuj rdzenia”, co jest silną rekomendacją, aby twórcy witryn nie zmieniali plików rdzenia.

Moduły

Moduły współtworzone oferują takie dodatkowe lub alternatywne funkcje, jak galerie obrazów, niestandardowe typy treści i listy treści, edytory WYSIWYG , prywatne wiadomości, narzędzia integracyjne innych firm, integracja z portalami BPM i wiele innych. Według stanu na grudzień 2019 r. na stronie Drupal znajduje się ponad 44 000 darmowych modułów .

Niektóre z najczęściej używanych modułów to:

  • Content Construction Kit (CCK): umożliwia administratorom witryn dynamiczne tworzenie typów zawartości poprzez rozszerzanie schematu bazy danych. „Typ treści” opisuje rodzaj informacji. Typy treści obejmują między innymi wydarzenia, zaproszenia, recenzje, artykuły i produkty. CCK Fields API znajduje się w rdzeniu Drupala w Drupalu 7.
  • Widoki: ułatwia pobieranie i prezentację treści osobom odwiedzającym witrynę za pomocą systemu abstrakcji bazy danych. Podstawowe funkcje widoków zostały dodane do rdzenia w Drupal 8.
  • Panele: menedżer układu przeciągnij i upuść, który umożliwia administratorom witryn wizualne projektowanie ich witryny.
  • Reguły: warunkowo wykonywane akcje na podstawie powtarzających się zdarzeń.
  • Funkcje: umożliwia przechwytywanie i zarządzanie funkcjami (elementami, widokami, polami, konfiguracją itp.) do niestandardowych modułów.
  • Kontekst: pozwala zdefiniować sekcje strony, na których można warunkowo aktywować funkcje Drupala
  • Media: ułatwia przesyłanie zdjęć i zarządzanie multimediami
  • Usługi: udostępnia API dla Drupala.
  • Lista mailingowa grup organicznych

Motywy

Od grudnia 2019 r. dostępnych jest ponad 2800 bezpłatnych motywów tworzonych przez społeczność . Motywy dostosowują lub zastępują domyślny wygląd i działanie witryny Drupal.

Motywy Drupala używają standardowych formatów, które mogą być generowane przez popularne mechanizmy projektowania motywów innych firm. Wiele z nich jest napisanych w silniku PHPTemplate lub, w mniejszym stopniu, w silniku XTemplate . Niektóre szablony używają zakodowanego na stałe języka PHP . Drupal 8 i przyszłe wersje Drupala integrują silnik szablonów Twig .

Włączenie silników PHPTemplate i XTemplate do Drupala rozwiało obawy użytkowników dotyczące elastyczności i złożoności. System motywów Drupal wykorzystuje silnik szablonów do dalszego oddzielania HTML / CSS od PHP. Popularny moduł tworzony przez Drupala o nazwie 'Devel' dostarcza programistom i tematom informacji GUI na temat budowy strony.

Motywy udostępnione przez społeczność na stronie Drupal są udostępniane na wolnej licencji GPL .

Dystrybucje

W przeszłości ci, którzy chcieli w pełni dostosować instalację Drupala, musieli pobrać wstępnie dostosowaną wersję niezależnie od oficjalnego rdzenia Drupala. Dziś jednak dystrybucja definiuje spakowaną wersję Drupala, która po instalacji udostępnia stronę internetową lub aplikację zbudowaną w określonym celu.

Dystrybucje oferują korzyści płynące z nowej witryny Drupal bez konieczności ręcznego wyszukiwania i instalowania modułów dostarczonych przez osoby trzecie lub dostosowywania ustawień konfiguracyjnych. Są to kolekcje modułów, motywów i powiązanych ustawień konfiguracyjnych, które przygotowują Drupala do niestandardowego działania. Na przykład dystrybucja może skonfigurować Drupala jako witrynę „broszury”, a nie witrynę z wiadomościami lub sklep internetowy .

Architektura

Drupal jest oparty na architekturze Presentation Abstraction Control (PAC).

System menu pełni rolę kontrolera. Akceptuje dane wejściowe z jednego źródła ( HTTP GET i POST ), kieruje żądania do odpowiednich funkcji pomocniczych, wyciąga dane z abstrakcji (węzły i, począwszy od Drupala 5, formularze), a następnie przepuszcza je przez filtr, aby uzyskać Prezentacja tego (system tematyczny).

Ma nawet wiele równoległych agentów PAC w postaci bloków, które wypychają dane na wspólne płótno (page.tpl.php).

Społeczność

Drupal.org ma dużą społeczność użytkowników i programistów, którzy zapewniają aktywne wsparcie społecznościowe, wymyślając nowe aktualizacje, które pomagają ulepszyć funkcjonalność Drupala. Od stycznia 2017 r. aktywnie uczestniczy ponad 105 400 użytkowników. Półroczna konferencja DrupalCon odbywa się na przemian w Ameryce Północnej, Europie i Azji. Frekwencja na DrupalCon wzrosła z 500 osób w Szeged w sierpniu 2008 roku do ponad 3700 osób w Austin w Teksasie w czerwcu 2014 roku.

Mniejsze imprezy, znane jako „Drupal Camps” lub DrupalCamp, odbywają się przez cały rok na całym świecie. Coroczny DrupalCamp na Florydzie gromadzi użytkowników w ramach programu Kodowanie w interesie, z którego korzysta lokalna organizacja non-profit, podobnie jak coroczne wydarzenie GLADCamp ( Greater Los Angeles Drupal Camp), Coders with a Cause .

Społeczność Drupala organizuje również profesjonalne i półprofesjonalne spotkania zwane meetupami w wielu miejscach na całym świecie.

Wokół drupal.org działa ponad 30 narodowych społeczności oferujących wsparcie językowe.

Znani użytkownicy Drupala to NBC , Taboola , Patch i We the People .

Bezpieczeństwo

Polityka Drupala polega na ogłaszaniu charakteru każdej luki w zabezpieczeniach po wydaniu poprawki.

Administratorzy witryn Drupala są automatycznie powiadamiani o nowych wydaniach za pośrednictwem modułu Status aktualizacji (Drupal 6) lub Menedżera aktualizacji (Drupal 7).

Drupal utrzymuje listę mailingową z ogłoszeniami dotyczącymi bezpieczeństwa, historię wszystkich biuletynów bezpieczeństwa, stronę domową zespołu ds. bezpieczeństwa oraz kanał RSS z najnowszymi biuletynami bezpieczeństwa.

W połowie października 2014 r. Drupal wydał „wysoce krytyczny” poradnik bezpieczeństwa dotyczący błędu wstrzykiwania SQL w Drupal 7, znanym również jako Drupalgeddon.

Pobranie i zainstalowanie aktualizacji do Drupala 7.32 naprawia lukę, ale nie usuwa żadnego backdoora zainstalowanego przez hakerów, jeśli witryna została już przejęta . Ataki rozpoczęły się wkrótce po ogłoszeniu luki. Według zespołu ds. bezpieczeństwa Drupala, jeśli witryna nie została załatana w ciągu kilku godzin od ogłoszenia, należy ją uznać za skompromitowaną i przełączyć w tryb offline poprzez zastąpienie jej statyczną stroną HTML, podczas gdy administrator jej serwera musi zostać poinformowany, że inne witryny na tym samym serwer mógł również zostać naruszony.

Aby rozwiązać ten problem, witryna musi zostać przywrócona przy użyciu kopii zapasowych sprzed 15 października, załatana i ręcznie zaktualizowana, a wszystko, co zostało scalone z witryny, musi zostać poddane audytowi.

Pod koniec marca 2018 r. została wydana łata dla luki CVE-2018-7600, również nazywanej Drupalgeddon2 . Podstawowy błąd umożliwia zdalnym atakującym bez specjalnych ról lub uprawnień przejęcie pełnej kontroli nad witrynami Drupal 6, 7 i 8. Drupal 6 zakończył swoją działalność 24 lutego 2016 r. i nie otrzymuje oficjalnych aktualizacji zabezpieczeń (rozszerzone wsparcie jest dostępne od dwóch płatnych dostawców usług długoterminowych). Od początku kwietnia zaobserwowano zautomatyzowane ataki na dużą skalę na wrażliwe witryny, a 20 kwietnia odnotowano wysoki poziom penetracji niezałatanych witryn.

23 grudnia 2019 r. Drupal załatał usterkę wgrywania dowolnego pliku. Błąd przesyłania plików dotyczy Drupala 8.8.x przed 8.8.1 i 8.7.x przed 8.7.11, a luka ta jest uznana przez Drupala za umiarkowanie krytyczną.

Zobacz też

Bibliografia

Dalsza lektura

Zewnętrzne linki