Download: CoverDrupal
Transkrypt
Download: CoverDrupal
Drupal TEMAT MIESIĄCA Drupal – platforma dla społeczności KROPLE W SIECI Oparta na PHP platforma Drupal ułatwia tworzenie i prowadzenie dynamicznych stron WWW. System ten można rozszerzać za pomocą darmowych modułów, a jego wygląd konfiguruje się za pomocą szablonów. W tym artykule zagłębiamy się w funkcje programu, omawiamy sposób jego instalacji oraz postawy konfiguracji. UWE HERMANN S erwisy WWW zrzeszające różne społeczności należą do najczęściej odwiedzanych stron w Sieci. Użytkownicy mogą rejestrować się na stronie, publikować swoje artykuły i komentować zamieszczone w serwisie teksty. Drupal [1] został zaprojektowany z myślą o takim właśnie zastosowaniu i oferuje wszystkie funkcje, niezbędne do założenia serwisu WWW dla społeczności. Przede wszystkim jednak, Drupal to rozwinięty system zarządzania treścią (CMS), umożliwiający obsługę wielu rodzajów stron internetowych – od prostych blogów po profesjonalne strony firmowe. Drupal napisany został w PHP i wykorzystuje bazę danych do przechowywania przeznaczonych na stronę materiałów. Kompletny kod źródłowy systemu objęty został Powszechną Publiczną Licencją GNU, może więc być swobodnie używany, modyfikowany i rozpowszechniany. W Ramce „Jak narodził się Drupal” przedstawiamy krótko historię systemu i genezę jego nazwy. Wystarczy rozpakować Instalacja systemu Drupal nie jest szczególnie trudna, nieco trudniejsza jednak, niż można by oczekiwać, znając inne systemy CMS. Użytkownicy Debiana muszą tylko wpisać apt-get update && apt-get install drupal (i odpowiadać na pytania programu konfiguracyjnego). Jeżeli nie masz Debiana, nie możesz skorzystać z tego luksusu – musisz zainstalować program ręcznie. Wymagania systemowe nie są niczym niezwykłym: potrzebujesz serwera WWW (na przykład Apache, ale w ostateczności wystarczy IIS) i PHP w wersji 4.1 lub nowszej. W czasie pisania tego tekstu Drupal nie obsługiwał w pełni PHP 5, ale twórcy programu pracują cały czas nad rozwiązaniem problemów ze zgodnością. Musisz ustawić opcję session.save_handler user dla PHP; autorzy zalecają też ustawienie session.cache_limiter none. Obie opcje znajdują się w pliku konfiguracyjnym PHP, php.ini. Drupal udostępnia również plik .htaccess, zawierający te opcje (i kilka innych rozsądnych ustawień domyślnych). Niezbędna będzie również baza danych. Drupal obsługuje zarówno MySQL 3 (najlepiej co najmniej 3.23.17) i 4, jak i PostgreSQL. Aby móc korzystać z funkcji wymagających XML, np. RSS lub Blogger-API, potrzebne będą rozszerzenia XML do PHP – zwykle są one uwzględnione w konfiguracji domyślnej. Funkcja „Clean URLs” potrzebuje też modułu mod_rewrite serwera Apache i praw do plików .htaccess. Aby działało to prawidłowo, unikaj ustawiania wartości polecenia AllowOverride na None. Funkcja ta zamienia adresy WWW.LINUX-MAGAZINE.PL typu http://www.example.com?q=node/34 na http://www.example.com/node/34 – zwiększa to czytelność i ułatwia indeksowanie strony przez boty wyszukiwarek. Jeżeli chcesz uprościć im zadanie, możesz włączyć moduł path, co pozwoli na przypisanie do każdego wierzchołka dowolnego, łatwego do odczytania adresu URL. Dzięki temu adres typu Jak narodził się Drupal Dries Buytaert [2], belgijski informatyk i pierwszy autor systemu, rozpoczął prace nad stworzeniem systemu zarządzania materiałami przeznaczonymi na dynamicznie tworzone strony WWW w 2000 r. System miał obsługiwać wspólnego bloga społeczności internetowej, którego Dries zamierzał nazwać Dorp. („dorp” to po niderlandzku wioska). Sprawdzając dostępność domeny dorp.org, Dries pomylił się i wpisał „drop.org”. Nazwa spodobała mu się tak bardzo, że zdecydował się zarejestrować domenę drop.org i zmienić nazwę tworzonego systemu na „Drupal”. („drupal” to wymawiane z angielska niderlandzkie słowo „druppel” – kropla.) Teraz, 5 lat później, Drupal jest dopracowanym, elastycznym systemem zarządzania treścią. Nad jego ciągłym rozwojem i rozbudową pracuje kilkuset programistów. NUMER 17 CZERWIEC 2005 31 TEMAT MIESIĄCA Drupal http://www.example.com/node/123 zastąpić można adresem w rodzaju http://www.example.com/about. Nawet niezbyt doświadczony webmaster z minimalną znajomością Linuksa nie powinien mieć problemów z zainstalowaniem systemu Drupal przez FTP i PhpMyAdmin. Instalacja na komputerze zdalnym przez SSH lub na lokalnej maszynie linuksowej przebiega w sposób opisany poniżej. Po ściągnięciu aktualnej wersji (w chwili pisania tekstu jest to wersja oznaczona numerem 4.5.2) ze strony http://drupal.org, wpisz następujące polecenia, aby rozpakować archiwum i przenieść jego zawartość do głównego katalogu dokumentów serwera WWW (w naszym przykładzie jest to /var/www): tar xfvz drupal-4.5.2.tar.gz Rozwiązywanie problemów Rysunek 1: Bloki zawierają dodatkowe informacje dla użytkowników strony WWW. Wyświetlane są z boku każdej ze stron (lub tylko stron o adresach określonych za pomocą wyrażeń regularnych [5]). Wielu problemów związanych z instalacją można łatwo uniknąć. ■ Jednym z najczęściej spotykanych błędów jest przypisanie wartości localhost zmiennej $base_url w pliku includes/conf.php, mimo że Drupal nie został zainstalowany na komputerze lokalnym, ale na zdalnym serwerze. W takim przypadku wiersz ten powinien wyglądać tak: $base_url = „http://www.example.com”;. Jeżeli DNS albo nazwy hostów nie działają prawidłowo, możesz tam podać adres IP. ■ Inny częsty błąd to podanie nieprawidłowej ścieżki do serwera. Jeżeli Drupal nie został zainstalowany w katalogu /var/www, ale na przykład w /var/www/drupal, wpis musi przyjąć wartość $base_url = „http://www. example.com/drupal”;. ■ Wartość zmiennej $base_url nie może kończyć się ukośnikiem /; inaczej mówiąc, trzeba wpisać http://www.example.com, a nie http://www.example.com/. ■ Jeżeli konto użytkownika MySQL, hasło i baza danych założone zostały przez dostawcę usług internetowych, należy pominąć krok GRANT i procedurę tworzenia bazy danych. Zamiast drupaluser, secret i drupal użyj wartości podanych przez osobę lub firmę udostępniającą konto i bazę. W przypadku problemów z instalacją niezłym pomysłem jest też przejrzenie archiwum na stronie internetowej programu [1]. Na forum [3] i liście dyskusyjnej [4], poświęconych systemowi Drupal, znajdziesz sporo chętnych do pomocy i doświadczonych programistów. 32 NUMER 17 CZERWIEC 2005 mv drupal-4.5.2/* §§ drupal-4.5.2/.htaccess /var/www Polecenia MySQL mysqladmin i mysql zakładają bazę danych i tworzą konto jej użytkownika: $ mysqladmin -u root -p §§ create drupal Enter password: $ mysqladmin -u root -p §§ mysql> GRANT ALL PRIVILEGES ON §§ drupal.* TO §§ drupaluser@localhost §§ IDENTIFIED BY 'secret'; mysql> FLUSH PRIVILEGES; Założona w ten sposób baza danych nosi nazwę drupal. Użytkownik bazy, drupaluser, któremu przyznane zostało hasło secret, ma pełne uprawnienia dotyczące wszystkich tabel w bazie. Naciśnij teraz klawisze [Ctrl]+[D], aby zakończyć sesję MySQL. Plik database/database.pgsql, znajdujący się w katalogu instalacyjnym systemu Drupal, zawiera zbiór definicji tworzący bazę danych PostgreSQL. Jego odpowiednikiem dla MySQL jest plik database/database.mysql. Plik może zostać przetworzony za pomocą następującego przekierowania: $ mysql -u drupaluser -p §§ drupal < WWW.LINUX-MAGAZINE.PL /var/www/database/§§ database.mysql Enter password: Jeżeli MySQL nie zgłasza w tym momencie żadnych komunikatów o błędach, możesz uznać, że wszystko przebiegło zgodnie z planem. Aby zakończyć instalację, musisz dodać do (zaskakująco czytelnie napisanego) pliku includes/conf.php dwa wpisy: informację o danych dostępowych MySQL oraz o położeniu katalogu z programem Drupal. Potrzebujemy tu zmiennych $db_url i $base_url; przypiszemy im przykładowe wartości: $db_url = „mysql://drupaluser:§§ secret@ localhost/drupal”; $base_url = „http://localhost”; Pierwszy wiersz przekazuje systemowi Drupal informację o typie bazy danych (tutaj jest to mysql), nazwie użytkownika, haśle, komputerze, na którym znajduje się baza oraz nazwie bazy. W drugim wierszu podana jest ścieżka do programu, widoczna dla odwiedzających stronę WWW. Nasz nowy serwis można już obejrzeć pod adresem http://localhost. Trzeba teraz zacząć od stworzenia konta użytkownika systemu. Niezależnie od tego, jak go nazwiesz, będzie on administratorem – będzie więc miał pełne prawa do konfigurowania serwisu i zarządzania nim. Drupal TEMAT MIESIĄCA Tabela 1: Drupal – wbudowane moduły Moduł Opis aggregator Umożliwia administratorom odczytywanie kanałów RSS z innych serwisów lub blogów i wyświetlanie ich w blokach. ping W razie zmiany zawartości strony moduł ten powiadamia zainteresowane serwisy, takie jak technorati.com, weblogs.com czy blo.gs. Funkcja bardzo przydatna w przypadku blogów. search Obsługa przeszukiwania wierzchołków według słów kluczowych. Do aktualizowania indeksu wyszukiwania niezbędny jest program cron. statistics Tworzy statystyki odwiedzin strony. Rejestruje adresy IP, adresy stron, z których nastąpiło przekierowanie, liczbę wizyt itd. throttle W przypadku dużego ruchu na stronie, moduł ten wyłącza niektóre bloki i moduły, aby zwiększyć szybkość ładowania się serwisu. Do jego działania niezbędny jest moduł statistics. watchdog Rejestruje wszystkie zdarzenia na stronie: logowanie się użytkowników, informacje o tym, kto i kiedy tworzył treść strony, komunikaty o błędach itp. Rysunek 2: System Drupal można rozbudowywać za pomocą modułów. Tabela 2: Drupal – moduły opcjonalne Rysunek 3: Szablony umożliwiają administratorom (a w razie potrzeby tak- Moduł Opis atom Tworzy kanał Atom (wersja 0.3), dostępny do pobrania z http://localhost/atom/feed. dba Najmniejsze narzędzie do zarządzania bazą danych w systemie Drupal. Pozwala uniknąć konieczności korzystania z PhpMyAdmin lub podobnych narzędzi. flexinode Obsługuje definicje mniej lub bardziej dowolnych formatów treści. Pozwala na przykład, za pomocą myszy, utworzyć definicję dla wierzchołka „przepis”, zawierającego takie pola jak nazwa, składniki, ilości, sposób przygotowania itp. print Dla każdego wierzchołka tworzy wersję strony przeznaczoną do wydrukowania (Link printer friendly page). trackback Niezbędne narzędzie dla blogujących. Umożliwia innym blogowiczom wysyłanie tzw. trackbacków (informacji o zamieszczeniu na swoim blogu odnośnika do danej strony) do naszego serwisu, a nam – wysyłanie trackbacków do innych stron. scheduler Umożliwia publikowanie materiałów w określonym dniu i o określonej godzinie. htmlarea Umożliwia prostą graficzną edycję tekstu w oparciu o JavaScript. że użytkownikom) zmienianie wyglądu strony. Jeżeli podczas instalacji pojawi się jakiś błąd, przeczytaj wskazówki i podpowiedzi przedstawione w Ramce „Rozwiązywanie problemów”. Koncepcja programu Terminologia wykorzystywana przez system Drupal różni się od tej używanej w innych systemach zarządzania treścią. Poniżej omawiamy najważniejsze części systemu i objaśniamy znaczenie kluczowych terminów. Wierzchołek (node) to podstawowy element składowy strony WWW. Może to być artykuł, obrazek albo wpis na forum. Domyślnie dostępne są następujące typy wierzchołków: page (strona) dla stron statycznych oraz story (tekst) dla artykułów. Instalując i włączając kolejne moduły, możesz dodać więcej typów wierzchołków. Na przykład moduł forum definiuje nowy typ wierzchołka – forum topic (temat forum), a moduł blog typ personal blog entry (wpis na blogu). Lista typów wierzchołków znajduje się w menu administracyjnym w pozycji create content. Blok (block) to zawierająca dowolną treść ramka, pojawiająca się na stronie WWW po lewej lub prawej stronie. Drupal posiada kilka wstępnie skonfigurowanych bloków, takich jak User Login, Who's online czy Recent Comments. Nowo instalowane moduły zawierają dodatkowe bloki, które następnie mogą zostać włączone przez administratora (patrz Rysunek 1). Administrator może także definiować nowe bloki, zawierające HTML, tekst albo (w przypadku bardziej skomplikowanej zawartości) kod w PHP i zapytania SQL. Pole Custom w każdym bloku określa, czy użytkownik zalogowany na stronie może włączać lub wyłączać bloki, zmieniając w ten sposób wygląd serwisu. Przydatny zbiór bloków znaleźć można w repozytorium bloków stworzonych przez użytkowników (Custom Blocks Repository) na stronie programu. WWW.LINUX-MAGAZINE.PL Drupal ma budowę modułową – sam system stanowi tylko szkielet dla kluczowych funkcji, rozbudowywanych elastycznie za pomocą modułów (patrz Rysunek 2). Moduł zawiera najczęściej plik PHP o nazwie nazwa.module i opcjonalne pliki, takie jak obrazki lub arkusze stylów. W sekcji „Download” na stronie programu [6] znaleźć można bogaty wybór modułów, pełniących wiele różnych funkcji (patrz Tabela 1 i 2). Sposób organizacji słownictwa (taksonomia), wykorzystywany przez autorów systemu, wymaga bliższego omówienia; za pomocą słowników i terminów tworzy bowiem coś, co większość ludzi określiłaby słowem „kategorie”. Każdy słownik ma swoją nazwę (np. Topic) i zawiera najczęściej zestaw słów kluczowych, które się w nim pojawiają (np. Politics, Sport czy Technology). Dla każdego serwisu WWW można zdefiniować wiele słowników i przypisać wierzchołki do konkretnych NUMER 17 CZERWIEC 2005 33 TEMAT MIESIĄCA Drupal kategorii lub terminów z tych słowników. System ten jest bardzo elastyczny i daje się zastosować w wielu sytuacjach. Na przykład struktura forów lub galerii jest w systemie Drupal modelowana właśnie za pomocą tej taksonomii. Tak zwane themes (szablony) pozwalają administratorowi na ustalanie wyglądu strony (Rysunek 3). Ze strony [6] ściągnąć można wiele gotowych szablonów. Nietrudno też zmodyfikować szablon zgodnie z własnymi potrzebami. W serwisie Drupal Theme Garden [7] dostępnych jest wiele szablonów, które można najpierw wypróbować online, bez konieczności ich instalowania. Zarządzanie kontami i prawami użytkowników w systemie Drupal opiera się na nazwach użytkownika, rolach i uprawnieniach. Zarejestrowany użytkownik (user) może zalogować się do serwisu. Może później korzystać z określonych opcji – ich liczba zależy od ról (roles), przypisanych użytkownikom przez administratora, i związanych z daną rolą uprawnień (permissions). Jest to szczegółowo omówione w dalszej części artykułu, poświęconej zarządzaniu kontami użytkowników. Tworzenie treści serwisu Zalogowani użytkownicy mają możliwość tworzenia treści (create content) lub wierzchołków poprzez wybranie odpowiedniej opcji z menu. W zależności od aktywnych modułów, mogą to być artykuły, notki blogowe, obrazki, ankiety itp. Sposób tworzenia wierzchołka typu strona (page) przedstawiony jest na Rysunku 4. Każdy wierzchołek musi mieć tytuł i zawartość (body). Jeżeli moduł path jest włączony, użytkownik może również przypisać do wierzchołka intuicyjny adres URL. Dostępnych jest wiele innych ustawień dotyczących wierzchołków – na przykład dostępność komentarzy, pojawianie się wierzchołka na stronie głównej czy umieszczenie go na początku listy wierzchołków (sticky). Ramka published pozwala administratorowi na usuwanie poszczególnych wierzchołków w dowolnym momencie. Wierzchołki pozostają zapisane w bazie – można je zawsze opublikować ponownie. Aby skasować wierzchołek, wystarczy kliknąć delete na stronie edit. Rysunek 4: Przy tworzeniu wierzchołka dostępnych jest wiele opcji (przykład: wierzchołek typu strona). e-mail administratora, stopkę (np. informację o ochronie prawem autorskim) itp. Domyślna strona główna (Default front page) to strona startowa, wyświetlana użytkownikowi odwiedzającemu serwis. Domyślnie jest ona wierzchołkiem (node); inaczej mówiąc – zawiera listę najnowszych artykułów lub wierzchołków (tylko tych, które mają być promowane na stronie startowej (Promoted to front page)). Bezpośrednio po instalacji serwis nie będzie zawierał żadnych artykułów, zamiast nich wyświetlony zostanie krótki tekst pomocy. Na usprawnienie działania systemu wpływa mechanizm buforowania. Wszystkie strony, do których dostęp jest anonimowy (użytkownicy nie muszą się logować, aby je zobaczyć) zapisywane są w bazie danych – pozwala to uniknąć konieczności dynamicznego generowania wielu kopii tej samej strony. Menu to umożliwia również włączenie omawianej wcześniej funkcji Clean URLs. Niektóre moduły dodają swoje własne ustawienia w sekcji administer | settings – na przykład moduł odpowiedzialny za tworzenie statystyk dopisuje do menu pozycję administer | settings | statistics. Szczegółowe informacje dotyczące konfiguracji systemu Drupal znaleźć można w podręczniku użytkownika tego systemu [8]. Podstawowa konfiguracja Najważniejsze ustawienia dostępne są w menu administracyjnym w administer | settings (patrz Rysunek 5). Można tu wpisać nazwę serwisu, opcjonalne hasło przewodnie, adres 34 NUMER 17 CZERWIEC 2005 Powtarzające się zadania Obsługa powtarzających się zadań jest w systemie Drupal realizowana przez zewnętrz- WWW.LINUX-MAGAZINE.PL nego demona cron albo regularne odwołania do strony http://www.example.com/cron.php. Strona ta regularnie wywołuje działania takie, jak na przykład kasowanie przestarzałych wpisów dziennika albo aktualizacja indeksów wyszukiwania. Do strony dostać się można za pomocą dowolnej przeglądarki działającej w trybie tekstowym, np. wget czy lynx. Za realizację zadania odpowiada następujący wiersz w pliku /etc/crontab: 0 * * * * root §§ /usr/bin/wget -o /dev/null -O /dev/null §§ http://localhost/cron.php Przykład ten uruchamia cron.php raz na godzinę (uwaga: adres URL musi należeć do domeny serwisu i nie może przyjmować wartości localhost ani 127.0.0.1 – nawet jeśli demon cron działa na komputerze lokalnym). Jeżeli nie masz demona cron, nie szkodzi – zawsze możesz zdać się na moduł poormanscron [9], opisany bardziej szczegółowo poniżej. Zarządzanie kontami użytkowników W sekcji administer | users znajduje się lista zalogowanych użytkowników. Administrator może sprawdzić dotyczące ich ustawienia i zmienić je, klikając odnośnik edit. Jeżeli na przykład użytkownik zachowuje się niewłaściwie, można zablokować mu konto. Drupal TEMAT MIESIĄCA su w rodzaju Slashdota, gdzie większość użytkowników ma tylko prawo dodawania komentarzy, do intranetowych serwisów firmowych z różnymi poziomami uprawnień dla zwykłych pracowników, zarządu, dostawców itp. Instalowanie nowych modułów Rysunek 5: Menu administracyjne: administer | settings. Administrator może skorzystać z podmenu administer | users | configure, aby zakładać nowe konta użytkowników i tworzyć dla nich ogólne reguły i uprawnienia: ■ settings (ustawienia): Ta pozycja menu pozwala określić, kto ma prawo zakładania nowych kont oraz ustalić, czy użytkownicy mogą rejestrować się sami, czy administrator musi zatwierdzić każde zarejestrowane konto. Można też zezwolić użytkownikom na ładowanie obrazków, które będą następnie wyświetlane we wpisach na forum. ■ access rules (reguły dostępu): Administrator może zablokować konkretne nazwy użytkowników albo adresy e-mail (jeśli na przykład są obraźliwe lub nieprzyzwoite), definiując jedną lub więcej reguł, zawierających symbole wieloznaczne „%” (dowolny – również pusty – ciąg znaków) lub „_” (dokładnie jeden znak). ■ roles (role): Użytkownikowi przyznać można jedną lub wiele ról. Domyślne role to anonymous user (anonimowy użytkownik) dla niezalogowanych użytkowników (w tym także botów i pająków wyszukiwarek) i authenticated user (użytkownik uwierzytelniony) – dla użytkowników zalogowanych do serwisu. Administrator może zdefiniować dowolną liczbę dodatkowych ról i nadać im dowolnie wybrane nazwy. Przykłady najczęściej spotykanych ról to administrator forum, redaktor albo klient. ■ permissions (uprawnienia): Każda rola powiązana jest ze zbiorem uprawnień, określonych przez administratora. Na przykład uprawnienie post comments pozwala użytkow- nikom na wysyłanie komentarzy. Teoretycznie każdy moduł może dopisać do listy nowe uprawnienia (patrz Rysunek 1). Moduł poll (ankieta) dodaje na przykład uprawnienia create polls, pozwalające użytkownikom na tworzenie ankiet, oraz vote on polls, umożliwiające głosowanie. Drupal nie jest monolitem – za pomocą modułów można go rozbudowywać podczas działania. Domyślna instalacja oferuje bogaty wybór modułów; nie wszystkie jednak są od razu włączone. Zbiór ponad stu dodatkowych modułów dostępny jest na stronie programu. Wszystkie są dziełem społeczności programistów i znajdują się w repozytorium CVS [10] – prace nad nimi cały czas trwają. Rzecz jasna, wszystkie objęte są licencją GPL. Instalacja modułów jest nieco bardziej kłopotliwa, niż można by oczekiwać – podobnie jak instalacja samego systemu. Proces instalacji każdego z modułów przebiegać może ponadto inaczej, choć właściwie zaczyna się już kształtować pewien standard, a wiele modułów przestrzega go. W ramach przykładu zainstalujemy moduły poormanscron i image. Rysunek 6: Każdej roli (tu pokazano użytkowników anonimowych i zalogowanych) przypisać można odrębny zestaw reguł. Każdy moduł może dodać własne uprawnienia. Opcje te dają administratorom wyjątkowo elastyczne narzędzia do zarządzania kontami użytkowników, sprawdzające się w wielu różnych sytuacjach i warunkach – od serwi- WWW.LINUX-MAGAZINE.PL Moduł poormanscron to zamiennik programu cron. Drupal uruchamia ten moduł, kiedy wywołana jest jakaś strona, aby sprawdzić, czy upłynął już pewien konkretny NUMER 17 CZERWIEC 2005 35 TEMAT MIESIĄCA Drupal (dowolnie ustalony) okres. Jeżeli tak, wywołuje działania, które zostałyby wykonane przy odwołaniu do strony cron.php i zeruje licznik czasu. Moduł ten przydaje się zwłaszcza wtedy, gdy dostawca usług internetowych nie umożliwia dostępu do „prawdziwego” crona. Instalacja przebiega całkiem prosto: $ wget http://drupal.org§§ /files/projects/ poormanscron-4.5.0.tar.gz $ tar xfvz §§ poormanscron-4.5.0.tar.gz poormanscron/ poormanscron/LICENSE.txt poormanscron/README.txt poormanscron/poormanscron.module $ cp poormanscron/§§ poormanscron.module /var/www/modules Moduł zawiera jeden plik, poormanscron.module, który wystarczy zapisać w katalogu modules programu Drupal, a następnie włączyć w sekcji administer | modules. Ustawienia modułu znajdują się w podmenu administer | settings | poormanscron. Moduł image przydaje się w znacznej większości serwisów, umożliwia bowiem ładowanie plików graficznych i zarządzanie nimi. Do jego działania niezbędne są biblioteki ImageMagick, GD lub ImLib2. Twój dostawca internetowy udostępnia najprawdopodobniej co najmniej jedną z tych usług. Po ściągnięciu i rozpakowaniu archiwum, administrator musi zmodyfikować bazę danych, przetwarzając plik image.sql. Pliki należy następnie skopiować do katalogu modules: $ wget http://drupal.org§§ /files/projects/§§ image-4.5.0.tar.gz $ tar xfvz image-4.5.0.tar.gz [...] $ mysql -u drupaluser -p §§ drupal < image/image.sql $ mkdir /var/www/modules/image $ cp image/image.module §§ image/image.inc /var/www/modules/image Następny krok to włączenie modułu w menu administer | modules i przejście do sekcji administer | settings | image, aby go skonfigurować. Moduł potrzebuje, na przykład, kata- 36 NUMER 17 CZERWIEC 2005 logów na obrazki i miniaturki oraz ścieżki dostępu do programu convert z pakietu ImageMagick (najczęściej jest to /usr/bin/convert). Możesz także tworzyć galerie obrazków w administer | categories. Stwórz w tym celu słownik, zawierający co najmniej jeden termin. Zapisz go jako Gallery Navigation Vocabulary (nadal w administer | settings | image). Na koniec przejdź do sekcji administer | users | configure | permissions i wybierz użytkowników lub role, posiadających uprawnienia do ładowania plików graficznych i zarządzania nimi. Umożliwi to uprawnionym użytkownikom tworzenie nowych obrazków za pomocą polecenia create content, znajdującego się w menu administracyjnym. Plany na przyszłość Niebawem pojawi się kolejne wydanie systemu Drupal, 4.6. Możemy oczekiwać, że znajdzie się w nim wiele istotnych zmian. W nowej wersji znacznie ulepszona będzie funkcja wyszukiwania, używająca kodowania UTF-8, obsługująca więc wiele języków. Wiele ułatwień dotyczących korzystania z programu i konfiguracji ułatwi życie administratorom. Nowy moduł contact udostępni zalogowanym użytkownikom możliwość wysyłania poprzez formularz wiadomości do innych użytkowników. Nowa opcja konfiguracji umożliwi zarządzanie wieloma opartymi na systemie Drupal serwisami WWW w ramach jednej jego instalacji. Pojawi się też sporo funkcji zwiększających szybkość – dzięki nim system powinien działać wydajniej i bez kłopotu obsługiwać wiele jednoczesnych wywołań stron. Błyskawicznie postępują też prace nad lokalizacją interfejsów administracyjnych. Można już korzystać z ponad 20 wersji językowych. Dzięki zaangażowaniu niektórych programistów, niedługo pojawią się także nowe szablony. Znajdą się wśród nich popularne szablony blogowe: Kubrick, Persian czy Manji, przeniesione z serwisu Wordpress [11]. Podsumowanie Drupal to bezpłatny, niewielki i bardzo elastyczny system zarządzania treścią, oferujący bogate możliwości konfiguracji i tworzony przez dużą i aktywną społeczność programistów i użytkowników. Można go z łatwością dostosować do wielu różnych sytuacji i warunków. Programiści docenią solidność platformy i jakość dokumentacji API [12], roz- WWW.LINUX-MAGAZINE.PL szerzalnego za pomocą modułów PHP. Struktura modułowa, mechanizm buforowania i moduł throttle sprawiają, że Drupal jest wysoce skalowalny i ma ogromne możliwości – serwis drupal.org ma na przykład ponad 18 tysięcy zarejestrowanych użytkowników i 17 tysięcy wierzchołków. ■ AUTOR Uwe Hermann studiuje informatykę na Politechnice w Monachium i aktywnie działa na rzecz Wolnego Oprogramowania. W wolnym czasie pracuje nad rozwojem systemu Drupal i zajmuje się projektami porzuconymi [13] i martwymi [14]. Nie trzeba chyba dodawać, że do prowadzenia swojego bloga i strony wykorzystuje właśnie system Drupal [15]. INFO [1] Oficjalna strona programu Drupal: http://www.drupal.org [2] Strona Driesa Buytaerta, autora programu: http://www.buytaert.net [3] Forum Drupal: http://drupal.org/forum [4] Lista dyskusyjna Drupal: http://drupal.org /mailing-lists [5] Wyrażenia regularne w Wikipedii: http://www.wikipedia.org/wiki/Regular_ Expression [6] Pliki do pobrania (wydania, moduły, szablony, tłumaczenia): http://drupal.org/project/releases [7] Drupal Theme Garden: http://webschuur.drupaldevs.org [8] Podręcznik użytkownika Drupal: http://drupal.org/handbook [9] Moduł Poormanscron: http://drupal.org/project/poormanscron [10] Repozytorium CVS poświęcone systemowi Drupal: http://cvs.drupal.org/viewcvs/contributions/ [11] Wordpress, bezpłatne oprogramowanie blogowe: http://wordpress.org [12] Dokumentacja API systemu Drupal 4.5.x: http://drupaldocs.org/api/4.5 [13] Crazy Hacks - zaniedbane projekty: http://www.crazy-hacks.org [14] Unmaintained Free Software - projekty szukające nowych opiekunów: http://www.unmaintained-free-software.org [15] Blog i strona WWW Uwe Hermanna: http://www.hermann-uwe.de