Podręcznik Drupala

W podręczniku tym omówione są najważniejsze zagadnienia związane z Drupalem. Ich lista znajduje się w menu poniżej.

Czym jest Drupal

Drupal to program, który umożliwia użytkownikowi lub grupie użytkowników łatwe publikowanie, zarządzanie i organizowanie zawartości strony. Dziesiątki tysięci ludzi wykorzystuje Drupala do prowadzenia swoich stron internetowych, pomiędzy którymi są

Drupal wyposażony jest w funkcje, które oferują

i wiele więcej.

Drupal jest oprogramowaniem o otwartym kodzie źródłowym, udostępnianym na zasadach licencji GPL. Jest tworzony przez tysięczną społeczność użytkowników i programistów. Drupala można za darmo pobrać i używać. Jeśli doceniasz to, co Drupal może dla Ciebie zrobić, prosimy Cię byś włączył się do pracy nad nim, aby stał się jeszcze lepszy i bardziej odpowiadał Twoim potrzebom.

Powyższy tekst stanowi tłumaczenie fragmentu Drupal handbook. Udostępniany jest on na licencji Creative Commons Attribution-ShareAlike 2.0.

© Copyright 2000-2007 by the individual contributors
© Copyright 2005-2007 for the Polish translation by Arche Twist

Pobierz Drupala

Drupal, dodatkowe moduły oraz skórki dostępne są (na zasadach licencji GNU GPL, za darmo) na stronie projektu Drupal. Drupal, napisany w PHP i wykorzystujący bazę danych MySQL lub PostgreSQL, może zostać uruchomiony na wielu platformach, w tym na serwerze Apache i Microsoft IIS.

Główne założenia Drupala

Modularność i elastyczność

Drupal składa się z niewielkiego, ale oferującego duże możliwości "rdzenia", który może być w prosty sposób uzupełniony za pomocą dodatkowych modułów.

Wysokiej jakości kod

Drupal przedkłada dostarczenie wysokiej jakości, eleganckiego i dobrze udokumentowanego kodu nad multum niedopracowanych funkcji.

Zgodność ze standardami

Drupal stara się wspierać cenione i dopiero rozwijające się standardy, między innymi XHTML i CSS.

Niskie wymagania

By zapewnić świetną wydajność serwera, Drupal stawia na rozwiązania, które nie wykorzystują niepotrzebnie jego mocy (na przykład minimalizując liczbę zapytań do bazy danych).

Otwarty kod źródłowy

Drupal opiera się na filozofii wspólnego tworzenia darmowego oprogramowania. Wydawany jest na licencji GPL i jego kod źródłowy jest dostępny publicznie. Drupal wspiera i korzysta z innych projektów o otwartym kodzie, na przykład z PHP, MySQL i PostreSQL.

Łatwość korzystania

Drupal chce zapewnić twórcom, administratorom oraz użytkownikom komfort w korzystaniu z niego.

Współtworzenie

Drupal wspiera otwarte rozwiązania i systemy współdzielenia informacji.


Powyższy tekst stanowi tłumaczenie fragmentu Drupal handbook i udostępniany jest na licencji Creative Commons License, Attribution-ShareAlike 2.0.

© Copyright 2000-2007 by the individual contributors
© Copyright 2006-2007 for the Polish translation by Arche Twist

Wprowadzenie do Drupala

Drupal jest internetowym systemem zarządzania treścią. Tekst i odsyłacze do wszelkiego rodzaju treści są przez Drupala zapisywane w bazie danych, pobierane i tworzone w sposób dynamiczny oraz prezentowane użytkownikom w odpowiedzi na ich żądania wysyłane za pośrednictwem przeglądarek internetowych.

Zawartość jest w Drupalu tworzona wewnątrz „segmentów”. Użytkownicy mogą dodawać „odpowiedzi” (komentarze) do segmentów typu „artykuł” (same odpowiedzi nie są segmentami). Zależnie od ustawień strony dodawanie segmentów i/lub odpowiedzi może nie być dostępne lub może wymagać każdorazowej akceptacji ze strony moderatora. Innymi rodzajami segmentów są na przykład wpisy w „blogach”, czyli internetowych dziennikach, osobistych stronach.

Domyślny layout Drupala (tzw. „skórka”) składa się z trzech kolumn. Środkowa zwana jest kolumną treści. Zwykle znajdują się w niej skróty opublikowanych tekstów lub same teksty, wyświetlane w całości po kliknięciu w ich tytuł.

Lewa i prawa kolumna to „paski boczne”. Paski te mogą wyświetlać „bloki” menu (menu to zbiory odnośników) lub powiązanych z aktualnie przeglądanym tekstem informacji. Bloki zawierają zazwyczaj odnośniki umożliwiające nawigację (poruszanie się) po stronie, czyli wyświetlanie innych segmentów, lub odnośniki do nowości pojawiających się na niej. Administrator, osoba zarządzająca stroną, może włączyć lub wyłączyć poszczególne bloki poprzez menu zarządzaj » bloki.

Zawartość bloków może się różnić w zależności od tego, jaką „rangę” posiada użytkownik. Rangi są ustalane przez osoby zarządzające stroną. Typowym ich zastosowaniem jest kontrolowanie uprawnień użytkowników, czyli tego, do jakich części strony będą posiadać dostęp i jakie działania będą mogli wykonywać.

Wracając do segmentów: mogą być one przyporządkowywane do kategorii, zwanych inaczej „słownikami”. Ta ostatnia nazwa wzięła się stąd, że w Drupalu system zarządzania kategoriami, ich elementami oraz powiązaniami między nimi zbudowany został na zasadzie tzw. taksonomii, w której podstawowym pojęciem jest właśnie „słownik”, a także jego elementy – „terminy”. Taksonomia jest w Drupalu wszechobecna. W oparciu o nią działa między innymi wbudowane forum, które jest po prostu zbiorem segmentów (w tym wypadku wątków) pogrupowanych ze względu na ich terminy, odzwierciedlane przez poszczególne fora, oraz słowniki, odzwierciedlane przez kategorie forów. Kategorie i ich elementy mogą być porządkowane w sposób herarchiczny. Niektóre z nich są wtedy nadrzędne wobec innych.

Drupalowa taksonomia może się wydawać pojęciem niejasnym, jednak zrozumienie funkcji jaką pełni w Drupalu jest bardzo pomocne. Mówiąc prościej, taksonomia służy do grupowania dodawanych na stronę tekstów (lub innych elementów), tak by potem użytkownicy mogli przeglądać powiązane ze sobą treści.

Drupala można wzbogacać o nowe funkcje za pomocą „modułów”. Cały Drupal jest złożony z modułów. Niektóre z nich są dostępne od razu po instalacji, a inne trzeba dodatkowo pobrać. Po wysłaniu katalogu z nowym modułem dodatkowym na serwer, administrator może go włączyć poprzez stronę zarządzaj » moduły. Po aktywowaniu modułu, pojawić się mogą nowe bloki czy rodzaje segmentów.

Z Drupalem związanych jest wiele specyficznych słów i terminów, których zrozumienie pomoże Ci w korzystaniu z niego oraz podczas poszukiwania rozwiązań ewentualnych problemów.

<hr />

Część powyższego tekstu stanowi tłumaczenie fragmentu Drupal handbook. Udostępniany jest on na licencji Creative Commons Attribution-ShareAlike 2.0.

© Copyright 2000–2007 by the individual contributors
© Copyright 2005–2007 for the Polish translation by Arche Twist

Terminologia

Poniżej znajduje się objaśnienie najważniejszych terminów związanych z Drupalem.

blok
bloki to dodatkowe (względem samej treści - tekstów) elementy strony, zawierające odnośniki lub informacje. Zwykle wyświetlane są przy lewej lub prawej krawędzi strony (zależy to od ustawień skórki i samych bloków). Bloki nie są segmentami, są jedynie sposobem na umieszczenie danych na stronie. Ich wygląd może być zmieniany przez skórkę
silnik skórki
silnik skórki to zestaw skryptów, które interpretują kod Drupala i sprawiają, że tworzenie skórek (zmieniających wygląd stron) jest prostsze. Polega to na pobraniu tworzonej dynamicznie zawartości i wyświetleniu jej z użyciem języka HTML. Dostępnych jest kilka "silników", ale domyślnym jest PHPTemplate.
filtr
filtry umożliwiają zmianę sposobu wyświetlania wprowadzanych danych (np. znaczników)
moduł
moduł to kawałek kodu Drupala, który odpowiada za jakąś funkcję. Moduły "rdzenia" to moduły zawarte w standardowej paczce Drupala. Moduły dodatkowe to moduły dostępne do pobrania osobno
segment
prawie każda treść w Drupalu jest zapisywana jako segment. Segmentami są artykuły, ankiety, wątki na forum, strony drupalowych "książek" itd. Nie są nimi odpowiedzi dodawane przez użytkowników. Polska nazwa wyraża dwoistą naturę tych składników, będących zarówno osobnymi "przedmiotami" niosącymi podstawową treść, jak i elementami większej całości (Drupal to właściwie zbiór segmentów)
kontrola dostępu
kontrola dostępu posługuje się systemem uprawnień do decydowania, użytkownicy których rang mogą dodawać, modyfikować lub usuwać konkretne elementy strony. Pierwszy zarejestrowany użytkownik Drupala (z identyfikatorem nr 1) automatycznie otrzymuje wszystkie uprawnienia
rangi
rangi są zespołami uprawnień, które można przydzielać użytkownikom. Użytkownicy mogą posiadać jedną lub więcej rang. Dwie rangi, użytkownik autoryzowany (czyli zarejestrowany na stronie i zalogowany) oraz użytkownik anonimowy (niezalogowany), są rangami standardowymi, dostępnymi od razu po instalacji Drupala. Pierwszy użytkownik może tworzyć dodatkowe rangi i zmieniać ich uprawnienia
styl
plik (lub pliki) CSS, które zmieniają reguły zdefiniowane w standardowych plikach CSS skórki lub silnika skórek. Umieszczony w katalogu skórek, pojawia się na liście skórek w menu zarządzania stroną
taksonomia
taksonomia to, pierwotnie, nauka o klasyfikacji. W Drupalu taksonomia jest zbiorem kategorii, które możesz wykorzystać do klasyfikowania i organizowania zawartości strony. Więcej informacji znajdziesz w dokumentacji taksonomii
szablon
plik zawierający głównie kod HTML oraz fragmenty kodu powiązane z silnikiem skórek
skórka
skórka to plik lub (zazwyczaj) zbiór plików, które razem decydują o wyglądzie i sposobie działania strony. Pliki te zazwyczaj wykorzystywane są za pośrednictwem silnika, którego funkcje PHP zamieniają argumenty na HTML. Moduły Drupala definiują pewne funkcje jako możliwe do modyfikacji przez skórkę

Powyższy tekst stanowi tłumaczenie fragmentu Drupal handbook. Udostępniany jest on na licencji Creative Commons Attribution-ShareAlike 2.0.

© Copyright 2000-2007 by the individual contributors
© Copyright 2005-2007 for the Polish translation by Arche Twist

Adresy stron w Drupalu

Przykładowe ścieżki

node/3
taxonomy/term/6
flexinode/7
user/login (znajomość ścieżki do tej strony jest bardzo przydatna, jeśli przypadkiem wyłączysz blok logowania)

Jak sprawdzić, jaki adres ma strona

By sprawdzić, jaki adres posiada dana strona, przejdź do działu zarządzania i dalej na podstronę zawartość. Ukaże Ci się lista wszystkich stron, które stworzyłeś. Najedź kursorem myszy na jeden z tytułów, a zobaczysz coś takiego:

http://twojadomena.pl/?q=node/54

Ostatnia część adresu, znajdująca się po znakach /?q=, to ścieżka do segmentu - w tym przypadku node/54.

By poznać więcej ścieżek do podstron swojej witryny, obserwuj uważnie pasek stanu swojej przeglądarki, kiedy kursor znajduje się nad jednym z odnośników.

Inne miejsca

Ścieżki do stron terminów taksonomii możesz poznać przechodząc do działu zarządzania, a potem na podstronę kategorie. W tym celu najedź kursorem myszy nad tekst edytuj termin, znajdujący się przy interesującym Cię terminie. Ścieżka będzie wyglądać tak:

taxonomy/term/6


Powyższy tekst stanowi tłumaczenie fragmentu Drupal handbook i udostępniany jest na licencji Creative Commons License, Attribution-ShareAlike 2.0.

© Copyright 2000-2007 by the individual contributors
© Copyright 2006-2007 for the Polish translation by Arche Twist

Instalacja i aktualizacja

W menu poniżej znajdują się artykuły dotyczące instalacji Drupala. Omówione zostały wymagania stawiane serwerowi oraz przebieg instalacji rdzenia Drupala, ewentualnej jego aktualizacji, a także instalacja dodatkowych modułów i skórek.

Wymagania

  1. Serwer stron internetowych, który może uruchamiać skrypty PHP
    • Zalecany: Apache. Drupala tworzono z wykorzystaniem wersji 1.3.x. Pomyślne testy przeprowadzono na wersji 2.0.x.
    • Opcjonalny: IIS. Drupal powstaje także z myślą o IIS i wszystko wskazuje na to, że powinien działać pod IIS.
  2. PHP
    • Drupal 4.6 wymaga do pracy PHP w wersji 4.3.3 lub nowszej (PHP 5 jest także obsługiwany). Drupal od wersji 4.2 do 4.5.2 wymaga PHP w wersji 4.1 lub nowszej. Starsze wersje Drupala współpracować będą także z PHP 4.0.6. Zalecamy korzystanie z najnowszej podwersji PHP 4.x.
    • Rozszerzenie XML dla PHP (wykorzystywane przez moduły bloggerapi, drupal, jabber i ping). Rozszerzenie to jest domyślnie włączone w standardowej instalacji PHP; PHP w wersji dla Windows posiada to rozszerzenie wbudowane.
    • 8MB pamięci PHP dla samego rdzenia Drupala. Jeśli instalujesz dodatkowe moduły, możesz być zmuszony do zwiększenia ilości pamięci. Inne dystrybucje Drupala, takie jak dystrybucja z CivicSpace, mogą mieć wyższe wymagania co do ilości pamięci.
    • By Drupal mógł działać PHP musi posiadać następujące dyrektywy konfiguracyjne:
    • Ustawienia te znajdują się w standardowym pliku .htaccess dołączonym do Drupala, więc nie powinieneś być zmuszony do ich samodzielnego wprowadzenia. Pamiętaj jednak, że modyfikacja konfiguracji PHP poprzez plik .htaccess działa jedynie
      • w przypadku serwera Apache (lub kompatybilnego z nim),
      • jeśli plik .htaccess jest rzeczywiście odczytywany, tzn. jeśli AllowOverride nie jest ustawione na None,
      • jeśli PHP zainstalowane jest w postaci modułu serwera Apache.
    • Przeczytaj informacje na tej stronie, aby dowiedzieć się jak zmienić ustawienia PHP w inny sposób.
    • Korzystanie z bazy danych wykorzystującej PEAR (patrz niżej) możliwe jest oczywiście jedynie wtedy, gdy sam PEAR jest zainstalowany.
  3. Baza danych współpracująca z PHP
    • Zalecana: MySQL w wersji 3.23.17 lub nowszej (Drupal korzysta z INNER JOIN i join_condition). Obsługiwane jest także MySQL w wersji 4.
    • Od wersji 4.7 Drupal dobrze współpracuje z bazą danych PostgreSQL w wersji 7.3 lub nowszej (będzie działać prawdopodobnie także pod wersją 7.2, możliwe jest jednak, że napotkasz pewne błędy, jeśli masz zamiar dokonać aktualizacji z Drupala 4.6).

Powyższy tekst stanowi tłumaczenie fragmentu Drupal handbook i udostępniany jest na licencji Creative Commons License, Attribution-ShareAlike 2.0.

© Copyright 2000-2007 by the individual contributors
© Copyright 2006-2007 for the Polish translation by Arche Twist

Instalujemy Drupala

Baza danych

Przed rozpoczęciem właściwej instalacji Drupala należy najpierw przygotować bazę danych. Można ją utworzyć na przykład za pomocą panelu zarządzania witryną, który oferuje firma hostingowa (słowa-klucze: baza danych, database, MySQL, ewentualnie phpMyAdmin). Do bazy danych trzeba również przypisać konto użytkownika i ustalić dla niego hasło.

W trakcie tworzenia bazy warto zanotować wprowadzane dane, ponieważ będzie je jeszcze trzeba podać w trakcie instalacji Drupala.

Pliki

Kolejnym krokiem jest pobranie Drupala.

Pobraną paczkę należy rozpakować (użytkownicy Linuksa sami wiedzą, że tar -zxvf, a użytkownikom Windows polecić można darmowy dekompresor 7-Zip), a jej zawartość wysłać na serwer FTP, w miejsce dostępne dla odwiedzających (np. podkatalog public_html).

Instalacja

Skrypt instalacyjny ustali podstawowy adres URL witryny, połączy się z bazą danych i utworzy konieczne tabele.

By go uruchomić, wystarczy przejść pod adres witryny. Zostanie wyświetlona strona Database configuration (Konfiguracja bazy danych). Do pola oznaczonego Database name należy wpisać nazwę stworzonej w punkcie pierwszym bazy danych, do Database username – nazwę konta użytkownika bazy, a do Database password jego hasło.

W pewnych wypadkach należy również podać adres serwera bazy danych – służy do tego pole Database host znajdujące się w grupie ustawień Advanced options.

Ustawienia należy potwierdzić przyciskiem Save configuration.

Skrypt spróbuje ustawić plikowi settings.php atrybut „tylko do odczytu” (plik domyślnie znajduje się w katalogu sites/default). Jeśli będziesz w przyszłości dokonywać w nim jakichś zmian, pamiętaj by – ze względów bezpieczeństwa – po ich zakończeniu znów ustawić ten atrybut.

Pierwsze konto użytkownika

Jeśli wszystko przebiegło pomyślnie, będzie można utworzyć pierwsze konto użytkownika, posiadające całkowitą kontrolę nad witryną. W Drupalu 5 służy do tego odnośnik create the first account (utwórz pierwsze konto), znajdujący się na stronie powitalnej, do której można przejść po ukończeniu instalacji. Po zalogowaniu się jako administrator można też dokończyć konfigurację witryny.

W Drupalu 6 tworzenie pierwszego konta użytkownika jest częścią procesu instalacji i nie wymaga żadnych dodatkowych zabiegów.

Instalujemy Drupala 4.7

SPIS TREŚCI

  1. Wymagania
  2. Dodatkowe wymagania
  3. Instalacja
    • zarządzanie Drupalem
    • dostosowywanie skórek
  4. Aktualizacja
  5. Więcej informacji

WYMAGANIA

By zainstalować Drupala potrzebujesz serwera, PHP4 (4.3.3 lub nowszy) lub PHP5 oraz MySQL lub PostgreSQL.

UWAGA: zaleca się korzystanie z serwera Apache i bazy danych MySQL; inne "zestawy" serwerów i baz danych, jak na przykład IIS wraz z PostgreSQL, są obsługiwane, jednak nie tak dobrze wypróbowane.

DODATKOWE WYMAGANIA

  • By korzystać z usług opartych o XML, takich jak API Bloggera, Jabber czy kanały RSS, PHP musi być wyposażone w obsługę XML. Rozszerzenie to jest w standardowej instalacji PHP4 domyślnie włączone.
  • Jeśli chcesz korzystać z funkcji CleanURLs ("czyste" adresy), będziesz potrzebować modułu mod_rewrite, a także możliwości korzystania z lokalnych plików .htaccess (więcej informacji można znaleźć w Podręczniku Drupala - Drupal Handbook - na drupal.org).

INSTALACJA

1. POBIERZ DRUPALA

Najświeższą wersję Drupala znajdziesz na drupal.org. Pliki udostępniane są w archiwum .tar.gz, które można rozpakować korzystając z większości narzędzi dekompresujących. Komendy dla konsoli środowiska uniksowego wyglądają tak:

wget http://drupal.org/files/projects/drupal-x.x.x.tar.gz
tar -zxvf drupal-x.x.x.tar.gz

Ich uruchomienie spowoduje utworzenie katalogu Drupala o nazwie drupal-x.x.x/, zawierającego wszystkie pliki i katalogi Drupala. Przenieś zawartość tego katalogu do głównego katalogu Twojego serwera stron internetowych lub do katalogu, którego zawartość jest udostępniana odwiedzającym Twoją stronę użytkownikom:

mv drupal-x.x.x/* drupal-x.x.x/.htaccess /var/www/html

2. UTWÓRZ BAZĘ DANYCH DLA DRUPALA

Możesz pominąć tę część instalacji, jeśl posiadasz już odpowiednią bazę danych (np. utworzoną przez firmę, w której kupiłeś konto). Jeśli swoją bazę danych konfigurujesz poprzez panel kontrolny dostępny na stronie internetowej, powinieneś zajrzeć do dokumentacji tego panelu, ponieważ poniższa instrukcja pokazuje jedynie, w jaki sposób utworzyć bazę danych z poziomu wiersza poleceń.

Instrukcja dotyczy bazy MySQL. Jeśli korzystasz z innej bazy danych, przeglądnij jej dokumentację. W poniższych przykładach dba_user oznacza przykładowego użytkownika bazy MySQL, który posiada uprawnienia CREATE i GRANT. Zamiast dba_user wpisz nazwę użytkownika odpowiedniego dla Twojej bazy danych.

Po pierwsze musisz utworzyć nową bazę dla swojej strony (drupal w tym przykładzie to nazwa nowej bazy):

mysqladmin -u dba_user -p create drupal

MySQL zapyta o hasło użytkownika dba_user i utworzy podstawowe pliki. Następnie musisz zalogować się do bazy i ustalić uprawnienia dostępu do niej:

mysql -u dba_user -p

Zostaniesz ponownie poproszony o podanie hasła. Potem w wierszu poleceń MySQL wpisz następującą komendę:

GRANT ALL PRIVILEGES ON drupal.* TO nikt@localhost IDENTIFIED BY 'haslo';

gdzie:

  • drupal to nazwa Twojej bazy danych
  • nikt@localhost to nazwa użytkownika konta MySQL na Twoim serwerze
  • haslo to hasło do tego konta

Jeśli wszystko się powiedzie, MySQL odpowie Ci:

Query OK, 0 rows affected

By aktywować nowe uprawnienia musisz wprowadzić komendę:

flush privileges;

Następnie wpisz \q by wyjść z MySQL.

3. WPROWADŹ SCHEMAT BAZY DANYCH DRUPALA

Kiedy już masz bazę danych musisz wprowadzić do niej konieczne tabele.

Jeśli korzystasz z panelu kontrolnego umieszczonego na stronie internetowej, powinieneś móc wysłać plik database.mysql z katalogu database Drupala i wykonać komendy SQL znajdujące się w tym pliku.

Jeśli natomiast masz zamiar skorzystać z linii poleceń, skorzystaj (ponownie zamieniając nikt i drupal na nazwy swojego użytkownika i bazy danych) z polecenia:

mysql -u nikt -p drupal < database/database.4.0.mysql dla MySQL w wersji 4.0, lub

mysql -u nikt -p drupal < database/database.4.1.mysql dla MySQL w wersji 4.1.

4. ŁĄCZENIE SIĘ Z DRUPALEM

Domyślna konfiguracja Drupala znajduje się w pliku sites/default/settings.php, wewnątrz katalogu Drupala. Zanim będziesz mógł korzystać z Drupala, musisz wprowadzić adres swojej bazy danych i podstawowy adres URL swojej strony. Otwórz plik konfiguracyjny i zmień linię zawierającą wyrażenie $db_url tak, by wartość tam podana odpowiadała Twojej bazie danych, którą stworzyliśmy w poprzednim kroku:

$amp;db_url = "mysql://username:password@localhost/database";

gdzie username to nazwa użytkownika bazy danych, password to jego hasło, localhost - nazwa hosta (zwykle właśnie taka jest odpowiednia), a database - nazwa bazy danych.

Następnie ustaw $base_url, tak by odpowiadał adresowi Twojej strony:

&base_url = "http://www.przykladowy_adres.com";

Pojedyncza instalacja Drupala może obsługiwać kilka różnych stron, z osobną konfiguracją dla każdej z nich. Jeśli nie zamierzasz korzystać z takiego rozwiązania, pomiń tę część instrukcji.

Dodatkowe konfiguracje stron tworzone są w podkatalogach katalogu sites. Każdy podkatalog musi posiadać plik settings.php, który zawiera ustawienia strony. Najprostszym sposobem utworzenia dodatkowych stron jest skopiowanie katalogu default i odpowiednie zmodyfikowanie ustawień w pliku settings.php. Nazwa nowego katalogu powinna odpowiadać adresowi nowej strony. Konfiguracja strony www.hajdananiedzwiedzia.pl znajdowałaby się więc w pliku sites/hajdananiedzwiedzia.pl/settings.php (zwróć uwagę, że pominąć należy "www.", jeśli tylko użytkownicy mogą dostać się na Twoją stronę poprzez http://hajdananiedzwiedzia.pl/).

Owe dodatkowe strony nie muszą posiadać własnych domen. Możesz wykorzystać subdomeny lub podkatalogi w swojej starej domenie. Dla przykładu, zarówno hajdananiedziwedzia.pl, sub.hajdananiedziwedzia.pl, jak i sub.hajdananiedziwedzia.pl/strona3 mogą być niezależnymi stronami obsługiwanymi przez Drupala. W katalogu Drupala powinny się w takim przypadku znaleźć następujące pliki konfiguracyjne:

sites/default/settings.php
sites/hajdananiedziwedzia.pl/settings.php
sites/sub.hajdananiedziwedzia.pl/settings.php
sites/sub.hajdananiedziwedzia.pl.strona3/settings.php

Kiedy Drupal będzie starał się odnaleźć odpowiedni dla strony plik konfiguracyjny (na przykład plik konfiguracyjny strony www.hajdananiedziwedzia.pl.com/strona3), poszuka go w następujących miejscach (i w następującej kolejności):

sites/www.sub.hajdananiedziwedzia.pl.strona3/settings.php
sites/sub.hajdananiedziwedzia.pl.strona3/settings.php
sites/hajdananiedziwedzia.pl.strona3/settings.php
sites/www.sub.hajdananiedziwedzia.pl/settings.php
sites/sub.hajdananiedziwedzia.pl/settings.php
sites/hajdananiedziwedzia.pl/settings.php
sites/default/settings.php

Jeśli instalujesz stronę, korzystając z niestandardowego portu, pamiętaj że dwukropkowi odpowiada kropka. Na przykład: strona http://www.drupal.org:8080/mysite/test/ może być wywołana za pomocą sites/www.drupal.org.8080.mysite.test/.

Każda dodatkowa strona może posiadać swoje własne moduły i skórki, które uzupełniać będą te standardowe. By skorzystać z takich dodatkowych modułów lub skórek, po prostu utwórz katalog modules lub themes w katalogu zawierającym konfigurację strony. Na przykład, jeśli sub.hajdananiedziwedzia.pl ma dysponować własnymi skórkami i modułami niedostępnymi dla innych stron, to pliki powinny być umieszczone w ten sposób:

  • sites/sub.hajdananiedziwedzia.pl/
    • settings.php
    • themes/dodatkowa_skorka
    • modules/dodatkowy_modul

UWAGA: By uzyskać więcej informacji na temat wirtualnych hostów lub konfiguracji Drupala, zaglądnij do Podręcznika Drupala (Drupal Handbook) na drupal.org.

5. KONFIGUROWANIE DRUPALA

Powinieneś zastanowić się nad stworzeniem w głównym katalogu Drupala podkatalogu files, który zawierać może logo strony, portrety użytkowników, a także inne pliki graficzne i inne związane z Twoją stroną. Proces Drupala na serwerze musi posiadać uprawnienia do odczytu i zapisu do tego podkatalogu. Nazwę katalogu zmienić możesz w menu zarządzaj > ustawienia > Ustawienia systemu plików.

Możesz już teraz uruchomić swoją przeglądarkę internetową i wejść na swoją nową stronę.

Następnie utwórz konto użytkownika i zaloguj się. Pierwsze utworzone na stronie konto automatycznie otrzyma uprawnienia administratora strony (uprawnienia do zarządzania), dające pełną nad nią kontrolę.

6. ZADANIA CRON

Wiele modułów Drupala (na przykład wyszukiwarka) opiera swoje działanie na okresowo wykonywanych zdaniach, które muszą być uruchamiane przez demona cron. By aktywować te zadania, musisz nakazać demonowi cron wywoływanie strony http://www.tutaj_adres_twojej_strony.pl/cron.php -- spowoduje to przekazanie kontroli modułom, które zdecydują jakie kolejne zadania mają zostać wykonane.

Większość systemów obsługuje narzędzie crontab, które umożliwia planowanie wykonywania takich zadań. Poniższa, przykładowa, linijka dla konfiguracji crontaba wywołuje stronę cron.php strony hajdananiedziwedzia.pl co godzinę:

0 * * * * wget -O - -q http://www.hajdananiedziwedzia.pl/cron.php

Więcej informacji na temat skryptów demona cron dostępnych jest w części poświęconej zarządzaniu stroną Podręcznika Drupala (Drupal Handbook) na drupal.org. Przykładowe skrypty można znaleźć w podkatalogu scripts/ wewnątrz głównego katalogu Twojego Drupala.

ZARZĄDZANIE DRUPALEM

Po zainstalowaniu Drupala, Twoja nowa strona wykorzystuje bardzo podstawową konfigurację, z jedynie kilkoma modułami, jedną skórką i brakiem uprawnień dla użytkowników.

By włączyć i skonfigurować nowe usługi, przejdź do panelu zarządzania stroną. Możesz na przykład zacząć od skonfigurowania ogólnych ustawień strony, poprzez zarządzaj >
ustawienia
. Moduły włączyć możesz poprzez zarządzaj > moduły. Uprawnienia użytkowników dostosujesz poprzez zarządzaj > użytkownicy > konfiguruj > uprawnienia.

By dowiedzieć się więcej na temat różnych możliwości konfiguracji, przeczytaj opisy znajdujące się obok danych ustawień i przeglądnij dołączoną do Drupala dokumentację (zarządzaj > pomoc).

Dodatkowe moduły, stworzone przez członków społeczności Drupala, dostępne są na drupal.org.

DOSTOSOWYWANIE SKÓREK

Skoro już Twoja strona działa, będziesz zapewne chciał dostosować jej wygląd do swoich potrzeb. Do Drupala dołączonych jest kilka przykładowych skórek, a więcej znajdziesz na drupal.org.

Sposób dostosowywania skórki zależy od tego jaki "silnik" wykorzystuje, na jakim się opiera. Ogólnie rzecz biorąc każda skóka zawiera plik PHP nazwaskorki.theme, w którym zdefiniowana jest funkcja header(), i którą możesz zmienić by skórka korzystała z Twojego własnego logo.

Większość skórek zawiera także arkusze stylów CSS, zmieniające kolory i wygląd skórki; sprawdź czy w podkatalogu themes/ nie znajduje się plik README, wyjaśniający zastosowane w skórce rozwiązania.

AKTUALIZACJA

  1. Zrób kopię zapasową swojej bazy danych i katalogu Drupala - zwłaszcza pliku konfiguracyjnego sites/default/settings.php.
  2. Zaloguj się jako użytkownik o ID równym 1.
  3. Usuń wszystkie stare pliki Drupala i rozpakuj nowe pliki Drupala, do katalogu w którym go poprzednio umieściłeś.
  4. Zmodyfikuj plik konfiguracyjny, by upewnić się, że zawiera najnowsze i prawidłowe informacje.
  5. Uruchom plik update.php wchodzą na stronę http://www.tutaj_adres_Twojej_strony.pl/update.php.

WIĘCEJ INFORMACJI

By uzyskać więcej informacji na temat konkretnych problemów związanych z konfiguracją, instalacją lub konfiguracją Drupala, sięgnij po Podręcznik Drupala (Drupal Handbook) ze strony drupal.org. Możesz także zajrzeć na forum Drupala lub do list wysyłkowych (mailing lists).


Powyższy tekst stanowi tłumaczenie fragmentu Drupal handbook i udostępniany jest na licencji Creative Commons License, Attribution-ShareAlike 2.0.

© Copyright 2000-2007 by the individual contributors
© Copyright 2006-2007 for the Polish translation by Arche Twist

Aktualizowanie Drupala

Co kilka miesięcy wydawana jest nowa „duża” wersja Drupala (pomniejsze częściej). Zaleca się regularne dokonywanie aktualizacji, co pomoże uniknąć potencjalnych problemów związanych z lukami bezpieczeństwa i zapewni dostęp do nowych funkcji.

Uwaga. Przed dokonaniem aktualizacji do nowej, „dużej” wersji Drupala (np. 5, 6 czy 7), należy sprawdzić, czy zainstalowane moduły dodatkowe oraz skórki są dostępne w wersjach kompatybilnych z nowym Drupalem (czy zostały zaktualizowane).

Kroki wstępne

Aktualizację witryny warto poprzedzić zalogowaniem się do konta administratora (pierwszego konta użytkownika) oraz aktywacją trybu przerwy technicznej: ZarządzajKonfiguracja witrynyPrzerwa techniczna.

Następnie należy wyłączyć wszystkie moduły dodatkowe, czyli takie, które nie są standardowymi składnikami Drupala, a także zmienić skórkę witryny na domyślną (Garland w Drupalu 5 i 6): ZarządzajBudowa witrynyModuły oraz Skórki.

Tworzenie kopii zapasowej istniejącej konfiguracji

Przed przystąpieniem do aktualizacji należy utworzyć zapasowe kopie istniejących plików i bazy danych. Aktualizacja bazy danych nie zawsze jest konieczna, mimo to i w takich wypadkach nie zaszkodzi skopiować ją w bezpieczne miejsce.

Do pobrania plików istniejącej instalacji Drupala można wykorzystać klienta FTP lub konsolę serwera. Następnie należy skopiować zawartość bazy danych przy pomocy narzędzia phpMyAdmin lub linii poleceń serwera MySQL.

phpMyAdmin
  • zaloguj się do phpMyAdmin i wskaż odpowiednią bazę danych na liście po lewej>
  • kliknij kartę Eksport
  • kliknij Zaznacz wszystkie
  • upewnij się, że zaznaczone są opcje StrukturaDane
  • zaznacz Zapisz jako plik
  • kliknij przycisk Wykonaj i zapisz plik .sql na dysk
linia poleceń MySQL (alternatywnie)

Przed wykonaniem kolejnych czynności najlepiej jest wyłączyć wszelkie zadania cron.

Następnie należy przenieść się do katalogu instalacji Drupala i pobrać specjalny skrypt, który utworzy kopię zapasową bazy danych w pliku backup.sql:

wget -O drupalsqldump.sh "http://cvs.drupal.org/viewvc.py/drupal/contributions/sandbox/drumm/tools/drupalsqldump.sh?view=co"
chmod +x drupalsqldump.sh

Poniższa komenda spowoduje sprawdzenie ustawień w pliku settings.php, automatyczne połączenie z bazą danych i utworzenie jej kopii:

./drupalsqldump.sh sites/default/set­tings.php > backup/backup.sql

Pobranie i wysłanie na serwer nowych plików Drupala

Paczki z Drupalem znajdują się w dziale Downloads witryny oficjalnej. Za pomocą klienta FTP należy przenieść stare pliki do osobnego katalogu, np. o nazwie kopia. Najlepiej jest wysyłać pliki nowego Drupala do katalogu, w którym brak pozostałości po starym.

Następnie należy przystąpić do wysyłki nowych plików, rozpakowanych z pobranej wcześniej paczki, a po zakończeniu tego procesu – upewnić się, że możliwy jest zapis do podkatalogu files.

Na serwer trzeba także wysłać pliki wszelkich modułów dodatkowych, które mają działać w witrynie (lista dostępnych modułów). Muszą być one kompatybilne z nowym Drupalem. Podobnie należy postąpić z niestandardowymi skórkami.

Następujące pliki muszą zostać skopiowane z katalogu z kopią zapasową do katalogu instalacji Drupala:

  • .htaccess
  • sites/default/set­tings.php
  • katalog files
  • wszelkie inne pliki, które mogą okazać się potrzebne

Uruchomienie skryptu aktualizującego bazę danych

Przed wywołaniem skryptu należy się zalogować jako użytkownik nr 1, czyli administrator witryny, a jeśli jest to niemożliwe – wyedytować skrypt update.php, zmieniając ustawienie $access_checkTRUE na FALSE. Po dokonaniu aktualizacji bazy danych trzeba przywrócić poprzednią wartość! W przeciwnym razie każdy będzie w stanie uruchomiać skrypt aktualizujący.

Końcowym krokiem jest oczywiście uruchomienie skryptu, co czyni się za pomocą przeglądarki, przechodząc pod adres strony uzupełniony nazwą skryptu: http://example.com/update.php. Skrypt uruchama się jedynie raz. Gdy zakończy on pracę, warto sprawdzić, czy nie pojawiły się komunikaty o wystąpieniu błędów.

Po aktualizacji

Każda witryna jest inna

Tym jakże romantycznym hasłem autor chciał przekazać, że witryna może wymagać wykonania jakichś dodatkowych czynności, zależnie od jej konfiguracji. Większość problemów związanych z aktualizacją wynika stąd, że osoby je przeprowadzające nie pamiętają o specyficzności konfiguracji swoich witryn.

Włączenie modułów i skórek

Na stronach ZarządzajBudowa witrynyModułySkórki należy włączyć wszelkie potrzebne moduły i skórki, a na ZarządzajZarządzanie użytkownikamiUprawnienia (lub Kontrola dostępu) nadać użytkownikom odpowiednie uprawnienia.

Usunięcie plików

Ostatnim krokiem jest usunięcie bądź przeniesienie w inne miejsce plików install.php, CHANGELOG.txt, INSTALL.txt, INSTALL.mysql­.txt, INSTALL.pgsql­.txt, LICENSE.txt, MAINTAINERS.txt oraz UPGRADE.txt, znajdujących się w głównym katalogu Drupala.

Testowanie zaktualizowanej witryny

Warto przeprowadzić test funkcjonowania zaktualizowanego Drupala, odwiedzając najpopularniejsze wśród odwiedzających strony. Które? Można się tego dowiedzieć obserwując dzienniki zdarzeń w dziale zarządzania.

Potem można już odwiedzić witrynę i wyłączyć tryb przerwy technicznej, udostępniając ją odwiedzającym.

<hr />

Fragmenty tego tekstu są tłumaczeniem stron Drupal handbook, który udostępniany jest na zasadach licencji Creative Commons Attribution-ShareAlike 2.0.

© Copyright 2000–2007 by the individual contributors (Drupal.org)
© Copyright 2006–2008 Arche Twist

Aktualizacja - łatanie i porównywanie plików

Artykuł został zaktualizowany 5 stycznia 2007 roku. Dodano opis skryptu ułatwiającego łatanie katalogów.

Nawet złowrogi Sith, przebywający na co dzień po ciemnej stronie mocy, musi sobie coś czasem załatać. Inaczej mówiąc: i użytkownik Windows musi (bądź chce) mieć czasem do czynienia z łatami (*.patch).

Omówione sytuacje

  1. Co pewien czas pojawiają się nowe wersje Drupala, których wydanie podyktowane zostało wykryciem luk bezpieczeństwa. Czy nie znudziło się już Wam wysyłanie od nowa całej paczki z Drupalem?
  2. Denerwuje Was jakiś mniej znany błąd lub chcecie skorzystać z łatki dodającej niestandardowe funkcje? Mozolnie ślęczycie nad edytorem, kopiując i wklejając odpowiednie linijki?
  3. A może chcecie stworzyć własną łatkę, by móc później automatycznie dodawać poczynione przez siebie modyfikacje do oryginalnych plików?

1. Porównywanie katalogów przed aktualizacją Drupala

Korzystając z jednego z poniższych sposobów można wytypować pliki, które wymagają wysłania na serwer, a te, które nie uległy zmianie od ostatniej aktualizacji, pozostawić w spokoju.

WinMerge – tylko pod Windows

Porównywanie dwu archiwów z Drupalem w WinMerge

Dobrym darmowym windowsowym narzędziem do porównywania katalogów jest WinMerge.

Katalogi (lub nawet dwa archiwa .tar.gz) wybiera się za pomocą przycisku Porównaj. Na czerwono oznaczone zostaną pliki różniące się między sobą zawartością lub nieistniejące w jednym z katalogów.

By nie musieć wchodzić do każdego z podkatalogów po kolei, warto zaznaczyć opcję Domyślnie uwzględnij podkatalogi.

Vim – pod Unix/Linux i Windows

Za pomocą wszechstronnego edytora Vim, ze wsparciem DiffUtils w wersji dla Unix/Linux lub dla Windows, a także wtyczki DirDiff, możemy porównać zawartość dwu katalogów.

Ładne pokolorowanie różnic zapewni natomiast zestaw kolorów Twist.

Do porównania katalogów, po uprzednim zainstalowaniu wszystkich potrzebnych rzeczy, używamy poniższej komendy (którą wydajemy w gVimie):

:DirDiff <katalog A> <katalog B>

Okno gVima zostanie podzielone na 3 części – dwie pierwsze będą zajmować podglądy różnic w plikach, a w trzeciej znajdować się będzie lista plików, które okażą się nie być identycznymi. Umieszczając kursor nad linijką odnoszącą się do dwu takich plików i wciskając klawisz o, można otworzyć je na podglądzie.

2. Łatanie plików

Łaty zamieszczane na drupal.org tworzone są programem diff i zapisywane w tzw. „zunifikowanym formacie”. Podobne łaty możemy także uzyskać, tworząc je w programie WinMerge, korzystając z opisu znajdującego się pod koniec artykułu.

Patch Wizard

Patch Wizard to skrypt PHP, ułatwiający łatanie plików. Umieściwszy go na serwerze, w miejscu dostępnym z przeglądarki internetowej, możemy załatać cały wybrany katalog wprowadzoną w odpowiednim polu łatą (należy wkleić zawartość pliku z łatą – *.patch).

Fragment Patch Wizard

Strategia jest prosta. Gdy pojawia się nowa wersja Drupala, porównuję jej archiwum z zainstalowaną na serwerze, za pomocą WinMerge (widok z opcją Uwzględnij podkatalogi). WinMerge odfiltrowuje pliki, które wymagają szczególnego potraktowania (zmienione przeze mnie), a całą resztę zaznaczam i korzystam z NarzędziaGeneruj patch, gdzie wybieram opcję otwarcia w zewnętrznym edytorze. Kopiuję łatę i wklejam do przeznaczonego dla niej pola udostępnianego przez skrypt Patch Wizard. Odpalam i Drupal załatany.

Podobnie postąpić można z gotowymi łatami, dostępnymi na drupal.org.

Skrypt umożliwia przekazywanie wartości ustawień poprzez URL (np. ?dir=/home/example w adresie), dzięki czemu mogę skorzystać z zakładek, które „pamiętają” za mnie większość ustawień, a moja rola sprowadza się do wciśnięcia przycisku. Jest to pomocne zwłaszcza, jeśli konieczne jest załatanie kilku witryn.

Dostępne argumenty URL to:

  • dir – katalog do załatania
  • p – P level
  • unified – jeśli równa się 0, tzw. zunifikowany format nie jest wykorzystywany

Cały URL wyglądać więc będzie mniej więcej tak:

http://example.com/patch-wizard.php?dir=/home/example/example.com&p=0

Vim

By coś z pomocą Vima załatać, potrzebujemy programu Patch w wersji dla Windows lub dla Unix/Linux.

Przechodzimy do gVima i otwieramy w nim plik, który zamierzamy załatać. Następnie korzystamy z funkcji Podziel łatane przez (nie, nie mam pojęcia, kto ją tak przetłumaczył) i wskazujemy pobrany z drupal.org (albo innej strony) plik z roszerzeniem patch. Wyplute zostanie okienko linii poleceń z komunikatami programu Patch, które zamykamy wciskając Enter. O przebiegu łatania powiadomi nas też Vim – ponownie wciskamy Enter.

Okno gVim-a z zestawem kolorów Twist, podzielone między załatany, a oryginalny plik

Po lewej stronie okna gVima widoczny będzie nowy, jeszcze nie zapisany, plik będący wynikiem łatania pliku znajdującego się po stronie prawej. Sprawdzamy czy wszystko wygląda w porządku i – upewniwszy się, że kursor znajduje się w lewej części okna – zapisujemy plik, usuwając końcówkę .new. Można go teraz wysłać na serwer.

3. Tworzenie łat

Tworzenie łat ma sens z kilku powodów. Jeśli chcemy udostępnić nasze modyfikacje, oszczędzamy miejsce na serwerze i czas ewentualnych zainteresowanych. Poza tym przydają się w przypadku modyfikacji często aktualizowanych plików, bo nie musimy sami od nowa grzebać w plikach, które zmieniła centrala.

za pomocą WinMerge

Otwieramy do porównania oryginalny plik i jego kopię zmodyfikowaną przez nas oraz wchodzimy do menu NarzędziaGeneruj patch. W nowootwartm okienku Plikiem 1 będzie ten otwarty w lewej części okna, a Plikiem 2 – otwarty w prawej. Jeśli nie odpowiada nam ta kolejność, możemy kliknąć przycisk Zamień.

W polu Wynik wpisujemy ścieżkę i nazwę pliku oczekiwanej łatki (lub klikamy sąsiedni przycisk Przeglądaj). Z grupy opcji o nazwie Format, przy Styl wybieramy Zunifikowany. Przy Kontekst wybrać możemy ile linii sąsiadujących z linią zawierającą zmianę będzie umieszczanych w łacie – im więcej, tym mniejsze ryzyko późniejszego wprowadzenia zmiany w złym miejscu, ale i większe prawdopodobieństwo niedopasowania łaty do pliku, który bardzo się zmienił od czasu jej utworzenia.

za pomocą Patch

Wydajemy polecenie

diff -u plik1 plik2

Kapitanie, nie mam go na radarze!

W wypadku korzystania z Patch bądź DiffUtils pod Windows, konieczne jest dopisanie ścieżek do tych programów do listy zmiennych środowiskowych. Czynimy to poprzez Mój komputerWłaściwości → karta ZaawansowaneZmienne środowiskoweZmienne systemowe. Tam, na liście odszukujemy zmienną Path i na końcu zawartości pola Wartość dodajemy:

  • dla Patch: ;C:\Program Files\GNU\Patch\bin
  • dla DiffUtils: ;C:\Program Files\GNU\DiffUtils\bin

Powyższe ścieżki są domyślnymi – jeśli programy zainstalowane są w niestandardowych katalogach, trzeba je oczywiście wskazać.

Wiele witryn, jeden Drupal (multisite)

Tytuł tego artykułu to nie propozycja nowego hasła reklamowego, a skrótowy opis funkcji multisite, o której wspomina się w dokumentacji dołączonej do Drupala, a dającej możliwość wykorzystania jednej instalacji Drupala do budowy wielu witryn.

Spis treści

  • Zalety
  • Wprowadzenie
    1. nazewnictwo katalogów
    2. tabele bazy danych
    3. współdzielenie tabel
  • Instalacja
    1. settings.php
    2. dowiązanie/alias
    3. konfiguracja nowej witryny
    4. konfiguracja współdzielenia tabel (opcjonalnie)

Zalety

  • oszczędność miejsca
    wszystkie strony korzystają z tych samych plików Drupala
  • prostsza aktualizacja
    jednokrotna aktualizacja plików
  • możliwość współdzielenia tabel bazy danych
    logowanie do wszystkich stron jednym loginem i hasłem, uproszczenie zarządzania wieloma witrynami

Wprowadzenie

Poniższy opis zakłada, że korzystasz z Drupala w wersji 5.0 lub wyższej!

Drupal przechowuje informacje o obsługiwanych witrynach w podkatalogu sites. Na początku znajduje się tam kolejny podkatalog, default, wraz z plikiem settings.php. W pliku tym instalator, bądź Ty sam, umieścił konfigurację witryny, między innymi informacje o bazie danych i adresie.

1. nazewnictwo katalogów

Każda dodatkowa drupalowa witryna powinna mieć własny podkatalog w sites, z własnym plikiem konfiguracyjnym settings.php. Nazwa podkatalogu powinna odpowiadać adresowi witryny. Rozważmy trzy możliwości:

witryna w podkatalogu
adres witryny: przykładowy-adres.pl/strona

nazwa katalogu: przykładowy-adres.pl.strona

witryna jako subdomena
adres witryny: strona.przykładowy-adres.pl

nazwa katalogu: strona.przykładowy-adres.pl

witryna z własną domeną
adres witrny: przykładowy-adres.pl

nazwa katalogu: przykładowy-adres.pl

2. tabele bazy danych

Musisz podjąć decyzję, czy chcesz umieścić tabele bazy danych nowej strony wewnątrz obecnej bazy, czy w nowej bazie:

wewnątrz obecnej bazy
tabele nowej bazy będą się różnić od starych prefiksem, np. prefiks_node zamiast node
w nowej bazie
konieczne utworzenie nowej bazy o tej samej nazwie użytkownika i haśle co stara!

3. współdzielenie tabel

Jeśli zamierzasz stworzyć zupełnie niezależną witrynę, pomiń ten punkt i wszystkie kolejne dotyczące współdzielenia tabel.

Jeśli natomiast chciałbyś zapewnić użytkownikom możliwość logowania się do kilku Twoich witryn za pomocą jednego loginu i hasła lub uchronić się od konieczności instalowania tłumaczenia osobno dla każdej witryny, powinieneś rozważyć współdzielenie niektórych tabel między witrynami.

Instalacja

1. settings.php

Załóżmy, że Twoja nowa strona będzie się znajdować pod adresem strona.pl. Wyślij więc na serwer, do utworzonego przez Ciebie podkatalogu sites/strona.pl, plik settings.php z paczki Drupala. Następnie nadaj innym, już na serwerze, uprawnienia do zapisu do niego (chmod 666).

2. dowiązanie/alias

Teraz musisz spowodować by podkatalog, subdomena lub nowa domena kierowały do plików starej strony.

Uwaga, w większości przypadków przy tworzeniu subdomeny tworzony jest także podkatalog o odpowiadającej jej nazwie. Należy go usunąć!

To bardzo istotny punkt. Do jego realizacji potrzebujesz dostępu do linii poleceń serwera lub demona cron lub tworzenia wskaźników domen z opcją "alias".

W pierwszym i drugim przypadku chodzi o wydanie polecenia:

ln -s /katalog/głównej/witryny /katalog/nowej/witryny

Katalog nowej strony tak naprawdę nie istnieje fizycznie na serwerze, a zamiast niego tworzymy tak zwane dowiązanie symboliczne. Ścieżki muszą być pełne, to znaczy, rozpoczynać się muszą od głównego katalogu serwera (np. /home/użytkownik/public_html/strona).

W trzecim przypadku wykorzystujemy dostępną w panelu zarządzania stroną opcję "wskaźników domen" i tworzymy nową domenę lub subdomenę wskazującą na starą.

Zanim alias zacznie działać, może upłynąć trochę czasu.

3. konfiguracja nowej witryny

Jeśli adres Twojej nowej witryny jest już dostępny, uruchom skrypt instalacyjny, przechodząc na stronę strona.pl/install.php (adres przykładowy). Wprowadź potrzebne dane, takie jak nazwa i hasło użytkownika bazy danych, nazwa samej bazy, itd.

Jeśli nowa witryna ma korzystać z tej samej bazy danych, co poprzednia, ustal prefiks dla tabel bazy, pod Advanced options, w polu Table prefix.

Instalator utworzy tabele w bazie danych i wstępnie skonfiguruje witrynę. Jeżeli nie masz zamiaru współdzielić żadnych z nich, jest to już dla Ciebie koniec instalacji. Gratulacje! W przeciwnym wypadku wykonaj jeszcze czynności opisane w kolejnym punkcie.

4. konfiguracja współdzielenia tabel (opcjonalnie)

Każda z tabel bazy danych Drupala odpowiada za inną funkcję. To, które tabele Drupal ma współdzielić pomiędzy witrynami, ustala się w pliku settings.php nowoutworzonej witryny. Pobierz go z odpowiedniego dla Twojej nowej witryny podkatalogu na serwerze i otwórz. Instalator zapisał tam dane, więc edycja innego pliku byłaby błędem.

Zwróć uwagę na zmienną $db_prefix. To jej wartość będziesz musiał zmienić, zależnie od tego, które z tabel chcesz współdzielić, oraz tego, czy będziesz korzystać z jednej bazy danych z różnymi prefiksami tabel, czy większej ilości baz.

jedna baza danych
'default' => 'prefiks_'
dwie lub więcej baz
'default' => 'baza.'

Przykładowa konfiguracja dla witryn korzystających z jednej bazy, umożliwiająca pojedynczą rejestrację użytkowników:

$db_prefix = array(
'default' => 'prefiks_',
'authmap' => '',
'permission' => '',
'profile_fields' => '',
'profile_values' => '',
'role' => '',
'sequences' => '',
'sessions' => '',
'users' => '',
'users_roles' => ''
);

Wyróżnione tabele będą współdzielone, natomiast w przypadku innych, wyszukiwane będą te poprzedzone prefiksem prefiks_.

Uwaga! Jeśli korzystasz z Drupala 5 lub starszego i zamierzasz współdzielić konta użytkowników (a więc tabele users i sequences), koniecznie przeczytaj o problemie związanym z nadpisywaniem danych kont użytkowników. Nie dotyczy on Drupala 6.

Możesz współdzielić także inne tabele, jednak wskazana jest tutaj daleko idąca ostrożność. Współdzielenie części z nich może powodować błędy w działaniu stron. Oto inne "bezpieczne" ustawienia:

'filter_formats' => '',
'filters' => '',
'locales_meta' => '',
'locales_source' => '',
'locales_target' => '',

Powodują one współdzielenie filtrów i tłumaczeń.

To już wszystko.

Problem z nadpisywaniem kont podczas współdzielenia użytkowników

Poniżej opisane zabiegi są konieczne tylko w wypadku starszych wersji Drupala. Drupal 6 nie korzysta już z tabeli sequences, a więc problem w nim nie występuje.

Wiele wody w Wiśle upłynęło, zanim doszedłem do tego, jak bezproblemowo współdzielić konta użytkowników między różnymi witrynami opartymi o tego samego Drupala. Podstawowe informacje dotyczące tego zagadnienia znajdują się w Podręczniku.

Wracając do współdzielenia kont, wielu administratorów Drupala, pragnących współdzielić zawartość tabeli users między różnymi witrynami, może spotkać się z problemem polegającym na nadpisywaniu jednych kont przez drugie. Dzieje się tak, ponieważ mimo współdzielenia tabeli sequences dla przechowania informacji o liczbie kont użytkowników tworzone są inne rekordy – dla każdej z witryn z osobna. Jak wyjaśnił Harry Slaughter, rekordy tworzone są tak, by ich nazwa zawierała prefiks lub nazwę bazy danych właściwe danej witrynie. Powoduje to niezgodność informacji o liczbie użytkowników i nadpisywanie danych ich kont.

Co robić? Odnaleźć w module user.module poniższy kod:

$array['uid'] = db_next_id('{users}_uid');

i usunąć z niego znaki otwarcia { i zamknięcia } nawiasu klamrowego. Teraz już utworzenie nowego konta zawsze będzie powodwać zapisanie odpowiedniej informacji do rekordu o nazwie users_uid, bez prefiksów.

Uwaga! Nie jest pewne, jak modyfikacja wpływa na witryny korzystające z jednej bazy. Testowana była ona tylko w sytuacji, w której każda z witryn miała osobną bazę danych, a w tabeli sequences znajdowały się rekordy o nazwach typu users_uid, strona1.users_uid oraz strona2.users_uid.

Zarządzanie Drupalem

Po zainstalowaniu Drupala, Twoja nowa witryna wykorzystuje bardzo podstawową konfigurację, z jedynie kilkoma modułami, jedną skórką i ograniczonymi uprawnieniami dla użytkowników.

By włączyć i skonfigurować nowe usługi, przejdź do działu zarządzania witryną. Możesz na przykład:

By dowiedzieć się więcej na temat różnych możliwości konfiguracji, przeczytaj opisy znajdujące się obok danych ustawień i przeglądnij dołączoną do Drupala dokumentację (zarządzaj > pomoc).

Dodatkowe moduły, stworzone przez członków społeczności Drupala, dostępne są na drupal.org.

Instalowanie nowych modułów

Po zainstalowaniu Drupala możesz doinstalować nowe, dodatkowe moduły, by rozszerzyć jego możliwości.

W skrócie

Pobierz moduł i rozpakuj jego pliki do podkatalogu modules instalacji Drupala (zwykle sites/all/modules). Następnie przeczytaj załączone instrukcje i włącz moduł na stronie Zarządzaj » Budowa witryny » Moduły.

Bardziej wprawni użytkownicy Drupala korzystają zwykle z narzędzi w rodzaju wget i drush. Jest też moduł Plug-in Manager, który pozwala instalować moduły za pomocą interfejsu Drupala.

Szczegółowe instrukcje

  1. Pobierz nowy moduł. Upewnij się, że moduł jest kompatybilny z zainstalowaną wersją Drupala. Miej także na uwadze, że moduły w wersjach "deweloperskich" (dev) znajdują się w fazie rozwoju i powinno się do nich podchodzić ostrożnie.
  2. Rozpakuj moduł. Pobrany plik będzie zapewne skompresowanym archiwum, takim jak np. tar.gz. Jeśli korzystasz z Windows, do rozpakowania archiwum możesz użyć m.in. programu 7-Zip. Jeśli pracujesz na komputerze Macintosh, możesz skorzystać ze Stuffit Expander. Pod systemem uniksowym, z polecenia tar -zxvf nazwamodulu-4.5.tar.gz
  3. Wyślij rozpakowany folder. Po rozpakowaniu, wyślij folder na serwer FTP, do odpowiedniego folderu modules. Folder modules znajdujący się w głównym folderze Drupala jest przeznaczony dla standardowych modułów. Moduły dodatkowe należy umieszczać w folderach witryn, zazwyczaj w sites/all/modules (folder ten należy utworzyć). W przypadku instalacji wielowitrynowej istnieje możliwość instalacji modułów w odrębnych dla każdej z witryn folderach (np. sites/folder-witryny/modules).
  4. Przeczytaj instrukcje. Jeśli moduł zawiera plik z objaśnieniami (zwykle INSTALL.txt i/lub README.txt), przeczytaj go - być może instalacja modułu wymaga dodatkowych zabiegów. Czasem plik taki nie posiada rozszerzenia, a system operacyjny nie wie jakiego programu użyć do jego otwarcia. W takim wypadku należy wskazać jakiś edytor tekstu.
  5. Włącz moduł. Przejdź na stronę Zarządzaj » Budowa witryny » Moduły w swojej witrynie i zaznacz pole wyboru w kolumnie Włączony obok nazwy modułu. Następnie kliknij Zachowaj konfigurację na samym dole. Uwaga! Jeśli aktualizujesz zainstalowany już moduł, przejdź na stronę update.php swojej witryny (np. http://example.com/update.php) i uruchom proces aktualizacji.
  6. Ustal uprawnienia. Do zapewnienia prawidłowego funkcjonowania niektórych modułów konieczne będzie dokonanie zmian w konfiguracji uprawnień. Informacje na temat wymaganych zmian mogą być dołączone do modułu. Zazwyczaj należy przejść na stronę Zarządzaj » Zarządzanie użytkownikami » Uprawnienia. Przewiń stronę, by sprawdzić czy znajdują się na niej uprawnienia związane z nowym modułem, a jeśli tak, nadaj odpowiednie uprawnienia wybranym rangom użytkowników.
  7. Wprowadź ustawienia. Większość modułów wyposażonych jest w jakiegoś rodzaju stronę konfiguracyjną. Jeśli nie jest ona wymieniona w README.txt sprawdź na Zarządzaj » Budowa witryny lub Zarządzaj Konfiguracja witryny. Jeśli nie możesz znaleźć strony ustawień modułu, przejdź na admin/by-module i spróbuj odnaleźć swój moduł na liście. Jeśli i to nie pomoże, otwórz plik .module modułu i poszukaj funkcji nazwa-modulu_menu - może znajdziesz tam ścieżkę do strony ustawień modułu.
  8. Jeśli nadal masz kłopoty z uruchomieniem modułu, przeszukaj fora drupal.org i listę zgłoszeń błędów modułu.

Powyższy tekst stanowi tłumaczenie fragmentu Drupal handbook i udostępniany jest na licencji Creative Commons License, Attribution-ShareAlike 2.0.

© Copyright 2000-2007 by the individual contributors
© Copyright 2006-2010 for the Polish translation by Arche Twist (Drupal Polska)

Aktualizowanie modułów

Okresowo sprawdzaj, czy nie pojawiły się nowe wersje zainstalowanych modułów. Mogą one wnosić istotne poprawki, także te z zakresu bezpieczeństwa witryny.

By zaktualizować moduł, pobierz nową wersję i umieść pliki na serwerze. Następnie odwiedź podstronę update.php swojej witryny, by sprawdzić, czy nie należy dokonać aktualizacji tabel bazy danych.

W przeważającej liczbie przypadków aktualizacja nie stanowi zagrożenia dla danych utworzonych przez moduł ani jego ustawień. Jeśli masz wątpliwości, czy dana wersja jest kompatybilna z wersjami poprzednimi, sprawdź release notes na stronie modułu.

<hr />

Powyższy tekst stanowi tłumaczenie fragmentu Drupal handbook i udostępniany jest na licencji Creative Commons License, Attribution-ShareAlike 2.0.

© Copyright 2000–2007 by the individual contributors
© Copyright 2006–2007 for the Polish translation by Arche Twist

Instalowanie nowych skórek

Tekst został zaktualizowany z uwzględnieniem zmian w Drupalu 5 i 6.

Kiedy już zapoznasz się z różnymi funkcjami Drupala, prawdopodobnie zechcesz zmienić jego wygląd. Celowi temu służą skórki – część z nich możesz pobrać ze strony Drupala, a następnie samemu zmodyfikować.

Instalacja nowej skórki jest niezwykle prosta:
  1. Pobierz nową skórkę. Pamiętaj, że skórki przeznaczone dla danej wersji Drupala nie będą kompatybilne z inną. Skórki dla wersji 5 nie będą działać pod Drupalem 6 i odwrotnie.
  2. Przeczytaj instrukcje zawarte w pliku README lub INSTALL (jeśli w ogóle istnieją), by dowiedzieć się, czy instalacja skórki wymaga jakichś szczególnych zabiegów.
  3. Wyślij zawartość pobranej paczki ze skórką do katalogu sites/all/themes (jeśli jeszcze nie istnieje, utwórz go).
  4. Przejdź do menu Zarządzaj, a następnie na stronę Skórki (adres /admin/build/the­mes) i włącz nową skórkę.
  5. Zmień ustawienia swojego konta użytkownika, wybierając nową skórkę. Jeśli chcesz, by stała się ona skórką domyślną dla wszystkich użytkowników, zaznacz pole wyboru Domyślna na stronie zarządzania skórkami.

Zadania cron

Część modułów Drupala, w tym moduł subskrybenta kanałów informacyjnych i moduł wyszukiwarki, wymaga do poprawnej pracy regularnego wykonywania skryptu cron.php, a poprzez niego z kolei – czynności takich jak aktualizacja listy słów kluczowych czy wiadomości z kanałów.

Drupal wymaga także by skrypt był uruchamiany z zewnątrz, np. poprzez przeglądarkę.

W wypadku wątpliwości co do dostępności danych programów, zwróć się o pomoc do administratora swojego serwera.

Program cron

cron jest programem służącym do okresowego wykonywania zadań, uruchamianym z konsoli i dostępnym pod systemy uniksowe. Sprawdź czy Twój dostawca usług hostingowych dał Ci do niego dostęp i, jeśli tak – zapoznaj się z poniższym opisem konfiguracji. W przeciwnym wypadku skorzystaj z modułu Poormanscron.

Istnieją dwie podstawowe metody konfiguracji crona – z linii poleceń i panelu konfiguracyjnego.

Konfigurowanie zadań z linii poleceń

crontab

Jeśli posiadasz dostęp do linii poleceń serwera, na którym znajduje się Twoja strona (shell), zapoznaj się z dokumentacją programu crontab (polecenie man crontab) i dodaj poniższe zadanie:

45 * * * * /usr/bin/lynx -source http://przykladowy-adres.com/cron.php

Fragment przykladowy-adres.com musisz oczywiście zamienić na adres Twojej strony. Może się również zdarzyć, że przeglądarka lynx, z której usług korzystamy w tym przykładzie, znajduje się w innym katalogu (sprawdź to komendą whereis lynx), ma inną nazwę (np. /usr/bin/lynx2) lub w ogóle nie jest dostępna. W ostatnim przypadku skorzystaj z innego programu, np. wget. Zadanie będzie wtedy wyglądać mniej więcej tak:

45 * * * * /usr/bin/wget -O – -q http://przykladowy-adres.com/cron.php

skrypty cron-lynx.sh i cron-curl.sh

Alternatywnie, możesz skorzystać ze skryptu cron-lynx.sh lub cron-curl.sh (jeśli nie masz dostępu do lynx), znajdującego się w podkatalogu /scripts w paczce z Drupalem. Dostosuj skrypt i dodaj zadanie go uruchamiające do crontab:

45 * * * * /home/www/dru­pal/scripts/cron-lynx.sh

Fragment /home/www/drupal zamień na ścieżkę do Twojego katalogu z Drupalem (musi być to pełna ścieżka).

Bez dostępu do linii poleceń

Jeśli nie masz dostępu do linii poleceń, ale w panelu zarządzania Twoją stroną istnieje możliwość konfiguracji zadań cron, przejdź do niej, a Twoim oczom ukaże się zapewne jakiś formularz. W polu minut wprowadź liczbę 45, a w innych polach dotyczących czasu wykonania wprowadź gwiazdki. Jako polecenie wpisz np. /usr/bin/lynx -source http://przykladowy-adres.com/cron.php (patrz: przykłady wyżej).

<hr />

Powyższy tekst stanowi tłumaczenie fragmentu Drupal handbook. Udostępniany jest on na licencji Creative Commons Attribution-ShareAlike 2.0.

© Copyright 2000–2007 by the individual contributors
© Copyright 2005–2007 for the Polish translation by Arche Twist

Pamięć serwera dostępna dla PHP

Rdzeniowi Drupala wystarczy 8 MB pamięci, co jest domyślną wartością w konfiguracji PHP. Jednakże niektóre moduły dodatkowe – zwłaszcza te, które zajmują się przetwarzaniem dużych partii tekstu (Textile, Texy) – mogą się okazać bardziej wymagające. Informuje o tym komunikat

Fatal error: Allowed memory size of X bytes exhausted (tried to allocate Y bytes)

W takim wypadku należy zwiększyć ilość dostępnej pamięci, w jeden z opisanych niżej sposobów.

Jeśli masz dostęp do pliku konfiguracyjnego PHP php.ini (serwery dedykowane), dodaj do niego następującą linijkę:

memory_limit = 16M

Jeśli nie (tzw. "serwery wirtualne"), edytuj plik /sites/default/settings.php Drupala:

ini_set('memory_limit', '16M');

Możesz również edytować plik .htaccess z głównego katalogu Drupala:

php_value memory_limit 16M

Wartość 16M jest oczywiście sugerowana i powinna zostać dostosowana do wymagań konkretnej instalacji.


Powyższy tekst stanowi tłumaczenie fragmentu Drupal handbook. Udostępniany jest on na licencji Creative Commons Attribution-ShareAlike 2.0.

© Copyright 2000–2007 by the individual contributors
© Copyright 2005–2007 for the Polish translation by Arche Twist

Rozwiązywanie problemów

Alternatywna wersja tytułu dla wegetarian i buddystów: Sztuka bycia sobą i rozwiązywania problemów (z Drupalem). Jeśli chcesz wyzbyć się pragnień takich jak te zilustrowane na poniższym obrazku, spróbuj skorzystać z opisanych tu wskazówek.

© blaugh.com. BY-NC-SA

Jeżeli masz problem z Drupalem, istnieje duże prawdopodobieństwo, że nie jesteś pierwszą osobą, której się on przydarzył. Może dawno temu ktoś sprytny już go rozwiązał. Może nawet rozwiązało go więcej użytkowników. Może każdy z nich zadawał wcześniej to samo pytanie… Zanim do nich dołączysz, skorzystaj z wyszukiwarki znajdującej się w tej witrynie i jeśli jeszcze nie znajdziesz odpowiedzi, pomóż sobie poniższym poradnikiem.

Daj sobie chwilę

Zastanów się. Przypomnij sobie, jakich zmian w witrynie niedawno dokonałeś, jakie moduły zainstalowałeś. Zazwyczaj to w jednej z tych zmian tkwi problem. Czy na pewno wybrano odpowiednie wersje modułów? Sprawdź, czy wszystko dobrze zrobiłeś zanim zaczniesz przeklinać Drupala bądź moduł.

Czytaj komunikaty o błędach

Część użytkowników je pomija, ale Ty masz w sobie mądrość, by docenić wagę zawartych w nich informacji. Spróbuj zinterpretować komunikat. Zazwyczaj, gdy dobrze się wczytasz, okaże się, że rozwiązanie problemu jest tuż przed Twoimi oczyma. Jeżeli nie masz dostępu do komunikatu, przeszukaj dzienniki zdarzeń witryny lub serwera, zaczynając od najnowszych wpisów. W dziennikach serwera znaleźć można następujące rodzaje błędów:

Sprawdź poprawność struktury strony

Jeżeli problem dotyczy layoutu – rozmieszczenia elementów, wielkości czcionki, etc. – skorzystaj z narzędzia sprawdzającego poprawność strony. Zwróć baczną uwagę na niepoprawne „zamykanie” znaczników i inne problemy strukturalne. Inne komunikaty, na przykład te o encjach, są mniej ważne.

Zawsze czytaj pliki „README”

Naprawdę. Choć wiele modułów wystarczy po prostu włączyć, część z nich wymaga podjęcia dodatkowych kroków. One nie są zepsute, one tak już mają. Niektóre moduły potrzebują specjalnych rozszerzeń PHP lub innych modułów albo też są skonfliktowane z innymi modułami.

Skorzystaj z wyszukiwarek, by znaleźć rozwiązanie

Jeśli komunikat błędu wydaje ci się bezsensowny, wyszukaj go za pomocą wyszukiwarki internetowej, np. Google. Starannie stwórz zapytanie: "Argument #1 is not an array" drupal. Umieszczenie cudzysłowów w odpowiednich miejscach spowoduje zwrócenie stron wspominających o dokładnie tym komunikacie, a dodanie słówka „drupal” – pozwoli wyszukać te informacje, które odnoszą się do Drupala. Pamiętaj, by usunąć ścieżki do katalogów, które na serwerach innych osób mogą być zupełnie inne. Pozostaw natomiast nazwy plików, które pojawiają się w komunikatach o błędach.

Wyśledź przyczynę problemu

Przyjrzyj się następującemu komunikatowi:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(n.nid), n.title FROM category c INNER JOIN category_node r ON c.cid = r.cid INN' at line 1 query: SELECT c.*, r.DISTINCT(n.nid), n.title FROM category c INNER JOIN category_node r ON c.cid = r.cid INNER JOIN category cn ON c.cnid = cn.cid INNER JOIN node n ON c.cid = n.nid INNER JOIN node cnn ON cn.cid = cnn.nid WHERE n.status = 1 AND n.moderate = 0 ORDER BY cn.weight, cnn.title, c.weight, n.title in /var/www/html/doadance/drupal/includes/database.mysql.inc on line 120.

Choć na końcu komunikatu pojawia się plik database.mysql.inc, to nie w nim leży problem; on tylko przyczynił się do jego znalezienia. Trzeba znaleźć prawdziwego winowajcę. Spróbuj to uczynić, znajdując w komunikacie nazwę tabeli bazy danych. W tym wypadku brzmi ona category_node, co wskazuje na moduł Category, choć błędy powodować może i inny moduł, który zażądał z bazy danych informacji związanych z kategoriami (category).

Który moduł mi bruździ?

Wszystkie strony są przez Drupala „dynamicznie” generowane. Adres generowanej strony (ta część po twojej domenie) jest zazwyczaj definiowany w hook_menu() danego modułu. By odpowiedzieć sobie na pytanie typu „Jak konstruowana jest moja strona rss.xml?”, trzeba:

Przy okazji, odnośniki w powyższym przykładzie prowadzą do bardzo przydatnej strony Drupal API.

Wszystkie strony generowane dynamicznie można w ten sposób „szpiegować”. Popatrz na adres, sprawdź z jakim modułem jest związany, a następnie przyglądnij się kodowi tego modułu.

Spróbuj wycisnąć z Drupala więcej informacji

Na przykład modułem Devel. Możesz też pobawić się w hakowanie. Na przykład w przypadku komunikatu warning: in_array() [function.in-array]: Wrong datatype for second argument in /home/httpd/glo­bal/drupal/mo­dules/node.mo­dule on line 1303 otwórz plik node.module i odnajdź linię nr 1303. Jest tam zapis in_array('status', $node_options). Dodaj we wcześniejszej linii zapis print("Node options: '".print_r($node_options,1)."'");, odśwież stronę i obserwuj. Może zwrócone przez Drupala dane coś podpowiedzą.

Zadawaj właściwe pytania

Zanim jednak do tego przystąpisz, przeczytaj jak zrobić to mądrze. Jeśli znajdziesz rozwiązanie, nie zapomnij je opisać na stronie, na której wcześniej zadałeś pytanie, nawet gdy na nie nikt nie odpowiedział.

Ciąg dalszy nastąpi

Kolejne części poradnika ukażą się w przyszłości.


Powyższy tekst jest luźnym tłumaczeniem strony Troubleshooting FAQ, która udostępniona została na zasadach licencji Creative Commons License, Attribution-ShareAlike 2.0.

Copyright 2000–2008 by the individual contributors <http://drupal.org>
Portions copyright 2008 by Arche Twist <http://drupal.org.pl>

Tworzenie skórek

Drupalowy system skórek (ang. themes) jest bardzo rozbudowany. Jego struktura zapewnia łatwe łączenie ze sobą poszczególnych komponentów: silników (w oparciu o które mogą powstawać skórki), szablonów, arkuszy stylów i skryptów PHP.

Skórka może być stworzona na różne sposoby, przy użyciu różnych narzędzi (więcej informacji na stronie Theming overview). Dostępnych jest kilka tzw. silników skórek, w tym XTemplate i PHPTemplate. Ten przewodnik skupi się jedynie na ostatnim.

PHPTemplate wykorzystuje szablony zawarte w plikach o rozszerzeniu .tpl.php oraz arkusze stylów .css.

Skórki i szablony umieszcza się w osobnych podkatalogach wewnątrz katalogu themes Drupala. Silniki przeskanują wszystkie podkatalogi w poszukiwaniu odpowiednich dla siebie szablonów. Jeśli odnajdą także plik style.css, będzie on również wykorzystywany.

Możesz takze stworzyć skórkę składającą się jedynie z arkusza stylów CSS, tworząc podkatalog w katalogu istniającej skórki i umieszczając tam plik style.css. Drupal połączy ów arkusz ze skórką, w której podkatalogu się on znajduje. W ten sposób zbudowana jest na przykład popularna skórka Marvin.

Jeśli w katalogu skórki znajdzie się plik screenshot.png, Drupal wyświetli jego zawartość na liście skórek w menu zarządzania stroną.

Tworzenie własnych skórek

Jeśli chcesz stworzyć własną skórkę, możesz albo zmodyfikować istniejącą lub zacząć od podstaw.

By zmodyfikować istniejącą skórkę, po prostu skopiuj ją do nowego katalogu i nadaj jej inną nazwę (skórki nie powinny posiadać nazw istniających modułów). Następnie zmień skórkę tak jak Ci się podoba.

Jeśli zamierzasz zaprojektować skórkę od podstaw, możesz albo stworzyć ją bezpośrednio w PHP, albo wykorzystać jeden z dostępnych silników skórek. W Drupalu 4.7 standardowym silnikiem jest PHPTemplate i jest to narzędzie polecane - większość gotowych skryptów dodających nowe funkcje jest przygotowywana właśnie z myślą o PHPTemplate.

Rozmieszczenie elementów strony

Od wersji 4.7 Drupal pozwala twórcom skórek na definiowanie i implementowanie dowolnej liczby tzw. "obszarów" (ang. regions) zawartości, pozwalających kontrolować rozmieszczenie elementów na stronie.

Obszary są bardzo interesującą funkcją Drupala, ponieważ pozwalają na prawie dowolne zaprojektowanie layoutu strony. Można je także wykorzystać do budowania odmiennych layoutów dla różnych działów witryny.

W skórkach nie opartych na silnikach, dostępne obszary definiowane są przez funkcję themename_regions() w pliku .theme. Skórki wykorzystujące silniki, korzystają z ich obszarów (zdefiniowanych w plikach .engine), ale także mogą definiować własne.

Zawartość jest umieszczana w obszarach poprzez system tzw. bloków (odpowiada za to moduł block) i wywołania drupal_set_content(). Na przykład kod drupal_set_content('left','Cześć wam.') sprawiłby, że tekst "Cześć wam" zostałby umieszczony w obszarze o nazwie "left" (zazwyczaj jest to tzw. lewy pasek boczny). Wszystkie dostępne obszary znajdują się na liście na stronie konfiguracji bloków w menu zarządzania.

Pierwszy obszar zdefiniowany w pliku .theme skórki lub pliku .engine silnika staje się obszarem "domyślnym".

Więcej praktycznych informacji, uwzględniających szablony PHPTemplate, znajduje się na stronie Obszary bloków i segmentów w PHPTemplate.

Tworzenie nowego szablonu PHPTemplate

PHPTemplate to tzw. silnik skórek, napisany przez Adriana Rossouwa. Wykorzystuje on pliki o nazwach kończących się na .tpl.php do modyfikacji wbudowanych w Drupala funkcji theme_costam(). Listę dostępnych funkcji można znaleźć na stronie Development Plumbing. Każdy ze wspomianych plików zawiera szkielet HTML oraz jakiś prosty kod PHP służący do prezentowania dynamicznych danych. PHPTemplate jest więc świetnym wyborem jeśli znasz trochę PHP. Korzystając z prostych "ściągawek" możesz w łatwy sposób stworzyć rozbudowane skórki.

Jeśli natomiast nie znasz PHP, PHPTemplate i tak może być odpowiednim wyborem, ponieważ naprawdę niewielkie fragmenty kodu skórek wymagają jego użycia. Możesz po prostu skorzystać ze wspomianych już ściągawek, które użytkownicy umieszczają na drupal.org, i wkleić je do swojej skórki.

Instalowanie PHPTemplate

Jeśli posiadasz wersję 4.7 (lub późniejszą) Drupala, PHPTemplate jest już w nim zawarty. W przypadku starszych wersji, musisz go najpierw pobrać i zainstalować poprzez wysłanie na serwer, do podkatalogu /themes/engines.

Tworzenie nowego szablonu PHPTemplate

Utwórz nowy podkatalog wewnątrz katalogu themes. Następnie utwórz w nim plik page.tpl.php. Jest to jedyny plik, który jest absolutnie wymagany. Jego zadanie polega na nadpisywaniu (zastępowaniu) funkcji theme('page') Drupala, która odpowiada za generowanie stron, wraz z takimi ich elementami jak nagłówek, stopka, karty czy paski boczne.

Możesz utworzyć pliki zastępujące następujące funkcje (kliknij w nazwę pliku by przejść do strony z jego objaśnieniem):

  • theme('page') - plik page.tpl.php
    wygląd całej strony
  • theme('block') - plik block.tpl.php
    wygląd tzw. bloków, znajdujących się w paskach bocznych
  • theme('box') - plik box.tpl.php
    wygląd głównego bloku, w którym umieszcona jest główna część strony
  • theme('node') - plik node.tpl.php
    wygląd segmentów (artykułów, książek itp.)
  • theme('comment') - plik comment.tpl.php
    wygląd odpowiedzi dodawanych do segmentów

PHPTemplate zawiera przykładowe pliki szablonów - sprawdź w katalogu skórki box_grey. Możesz skopiować znajdujący się tam plik page.tpl.php do katalogu swojej skórki i tak zacząć jej tworzenie. Pamiętaj, że aby Drupal "dowiedział się" o istnieniu nowej skórki, będziesz musiał odwiedzić stronę zarządzaj » skórki.

Jeśli chcesz zastąpić jakieś inne, niewymienione tutaj funkcje, musisz postarać się o to sam.

Pliki .tpl.php

Objaśnienie wszystkich standardowych zmiennych występujących w plikach szablonów oraz przykłady tych plików można znaleźć na stronie PHPTemplete theme engine na drupal.org.

Obszary bloków i segmentów w PHPTemplate

Zanim przystąpisz do defniowania obszarów dla swojego szablonu PHPTemplate, być może będziesz chciał się zapoznać z ogólnymi informacjami na temat obszarów.

Poniżej znajdują się informacje na temat standardowych obszarów i dodawania własnych, ich wykorzystanie jednak daje o wiele szersze możliwości niż mógłbyś przypuszczać.

Standardowe obszary

Domyślnie PHPTemplate definiuje pięć podstawowych obszarów: lewy, prawy, obszar zawartości, nagłówek oraz stopkę. Ich angielskie nazwy, używane w samym szablonie, to odpowiednio: left, right, content, header, oraz footer.

Definiowanie obszarów polega jedynie na wprowadzeniu w szablonie zmiennych odwołujących się do tychże obszarów. Zmienne te to: $sidebar_left, $sidebar_right, $content, $header oraz $footer. By wyświetlić na stronie zawartość danego obszaru, wpisalibyśmy w pliku szablonu taki na przykład kod:

<?php print $header; ?>

Definiowanie własnych obszarów

No dobrze, dotychczas nie było zbyt ciekawie, ale przejdziemy do czegoś bardziej interesującego. Przypuśćmy, że chcę dodać nowy obszar ponad główną zawartością, by być na przykład w stanie umieścić bloki zarówno nad zawartością (np. artykułami), jak i pod nią. Muszę więc najpierw zdefiniować swoje obszary w pliku szablonu mojej skórki.

definiowanie obszarów

Definiowanie obszarów jest proste jak budowa cepa i odbywa się w pliku template.php w katalogu ze skórką. Jeśli jeszcze nie posiadasz tego pliku, utwórz go teraz. Następnie wprowadź do niego nową funkcję:

<?php
function moja-skórka_regions() {
  return array(
      'left' => t('left sidebar'), /* to lewy pasek boczny */
      'right' => t('right sidebar'), /* a to prawy */
      'header' => t('header'), /* to nagłówek strony */
      'top' => t('góra'), /* a to nasz nowy obszar! */
      'content' => t('content'), /* dalej zawartość */
      'footer' => t('footer') /* i stopka */
  );
}
?>

Zwróć uwagę na komentarze objęte znakami /* */.

Wszystkie te obszary są standardowe, z jednym wyjątkiem – wprowadziliśmy nowy obszar o nazwie „top”, który nazwaliśmy „góra”. Reszcie obszarów nie musimy nadawać polskich nazw, ponieważ zostanie to automatycznie dokonane przez moduł obsługujący tłumaczenia.

Pamiętaj by zamienić tekst moja-skórka na nazwę swojej skórki. Inaczej funkcja nie będzie działać.

wyświetlanie obszarów

Mamy obszar, ale Drupal jeszcze nie wie, gdzie go umieścić. Musimy wprowadzić obszar do pliku szablonu strony. Otwieramy więc plik page.tpl.php i w wybranym miejscu (np. powyżej zawartości) wpisujemy:

<?php print $top; ?>

W ten jakże nieskomplikowany sposób umieściliśmy obszar w naszej skórce. Możemy już umieścić w nim bloki.

Zastosowania

Wyobraź sobie co można uzyskać dzięki tej funkcji w połączeniu z alternatywnymi szablonami dla różnych działów witryny. Tak, tak, dzięki temu możemy na przykład sprawić by główna strona nie wyświetlała nawet listy najnowszych segmentów, a wybrane przez nas bloki i zmodyfikowane listy tematyczne.

O tym jednak napiszę w specjalnym poradniku, w którym omówię wykorzystanie obszarów, alternatywnych szablonów oraz genialnego modułu Views.

Alternatywne szablony w zależności od rodzaju strony

Zawarte tu informacje dotyczą modyfikacji wyglądu segmentów i całej strony w zależności od typu wyświetlanego segmentu (artykuł, wątek, książka). Mogą być one przydatne np. gdy chcesz w inny sposób zaprezentować użytkownikom statyczne strony typu „o nas” czy „regulamin korzystania” (pozbyć się informacji o dacie dodania itp.).

Drupal i PHPTemplate oferują dwie podstawowe możliwości:

  • nadanie innego wyglądu segmentowi (tytuł, informacje o autorze, dacie dodania, odnośniki kontekstowe itp.)
  • nadanie innego wyglądu całej stronie

poprzez stworzenie alternatywnych szablonów PHPTemplate.

Wygląd segmentów

Skopiuj swój plik node.tpl.php, odpowiadający za wygląd segmentu i nadaj mu nową nazwę, zgodnie ze schematem node-rodzaj_zawartości.tpl.php, gdzie rodzaj_zawartości to np. page czy story.

Następnie zmodyfikuj zawartość tego pliku zgodnie z Twoimi wymaganiami. Możesz usunąć pewne fragmenty albo dodać nowe. Zwróć uwagę, że – korzystając z funkcji Clean URLs – możesz zamieścić swoją stronę pod adresem typu /o-nas czy /pomoc.

Wygląd całej strony

Alternatywne szablony modyfikujące wygląd całej strony osiągnąć można na wiele sposobów. Tutaj przedstawiony zostanie jeden z najprostszych, a zarazem najbardziej wygodnych.

Mechanizm tego rozwiązania polega na wywołaniu z głównego pliku szablonu całej strony innych szablonów, w zależności od rodzaju segmentu.

Skopiuj swój plik page.tpl.php w bezpieczne miejsce oraz do pliku page-default.tpl.php. Zawartość page.tpl.php zastąp poniższym kodem, którego autorem jest PhilK:

<?php
switch ($node->type) {
  case 'book': $inc = 'page-book.tpl.php'; break;
  case 'blog': $inc = 'page-blog.tpl.php'; break;
  case 'image': $inc = 'page-image.tpl.php'; break;
  case 'forum': $inc = 'page-forum.tpl.php'; break;
  default: $inc = 'page-default.tpl.php';  break;
}
include ($inc);
?>

Działanie kodu:

  • jeśli rodzaj segmentu to książka – odczytanie pliku page-book.tpl.php
  • jeśli blog – page-blog.tpl.php
  • jeśli grafika dodana przez moduł image – page-image.tpl.php
  • jeśli wątek na forum – page-forum.tpl.php
  • w innych przypadkach – page-default.tpl.php

Możesz usunąć wybrane linijki rozpoczynające się od case albo dodać własne, wywołujące szablony wyglądu innych rodzajów segmentów.

Następnie powinieneś oczywiście wyedytować każdy z potrzebnych plików .tpl.php i odpowiednio dostosować wygląd.

W ten sposób zmienić możesz nie tylko strukturę stron (HTML), ale i ich ostylowanie. W sekcji <head> danego szablonu umieść wywołanie alternatywnego arkusza stylów CSS, np. tak:

<style type="text/css" media="all">@import "/katalog_skórki/image.css";</style>

Możesz także sprawić by pierwsza, główna strona witryny posiadała inny wygląd. W tym celu stwórz szablon page-front.tpl.php i dodaj następującą linijkę na początek kodu w pliku page.tpl.php:

if ($is_front) {include 'page-front.tpl.php'; return; }

Inne możliwości

Jest wiele innych sposób na zmianę wyglądu w zależności od typu segmentu, włączają w to uzależnienie wyglądu od kategorii, w której umieszczony został dany segment. Więcej informacji znajdziesz na poniższych stronach:

Zastępowanie funkcji theme_

Jeśli chciałbyś zastąpić (nadpisać) funkcję inną niż block, box, comment, node czy page, musisz poinformować o tym PHPTemplate.

By to uczynić, w katalogu swojej skórki musisz stworzyć plik template.php. Plik ten powinien rozpoczynać się znacznikiem <?php a kończyć znacznikiem ?>, a w jego treści winny się znajdować nadpisane funkcje. Decydują one o wykorzystaniu danego szablonu albo zmiennych.

Po pierwsze zacząć musisz od zlokalizowania funkcji, którą chcesz zastąpić. Ich lista znajduje się na stronie API documentation.

Przykładem takiego nadpisania funkcji jest zmiana sposobu wyświetlania odnośników nawigacyjnych na stronach książek, opisana w artykule Nawigacja w książkach po staremu.

Funkcje nadpisuje się poprzez stworzenie w pliku template.php nowej funkcji o takiej samej nazwie, jednak z tą różnicą, że przedrostek theme zamienia się na phptemplate. Na przykład funkcja odpowiadająca za wyświetlanie elementów list theme_item_list będzie teraz nosić nazwę phptemplate_item_list.

Najwygodniej jest po prostu skopiować oryginalną funkcję Drupala i zmodyfikować ją.