Download as pdf or txt
Download as pdf or txt
You are on page 1of 76

Spis treci

6
8

Opis CD
Joomla! i Web 2.0

Stefan 'Zwiastun' Wajda


Web 2.0 sta si na naszych oczach. Zwiastun opowiada o pocztkach Joomla!
Po przeczytaniu tego artykuu przekonasz si, e Joomla! jest dla kadego: dla prawnuczka i
prababci, dyrektora i portiera.

Joomla! i kapelusze

10

Stefan 'Zwiastun' Wajda


Razem ze Zwiastunem stworzysz zrb witryny firmowej dla fikcyjnej spki Kapelusze S.A..
Krok po kroku przejdziesz kolejne etapy projektowania w Joomla! W trakcie lektury poznasz
istot Joomla!, bdziesz rozumie specyfik Joomla!, nauczysz si korzysta ze wszystkich
podstawowych narzdzi Joomla!

SDJ Extra! jest wydawany przez Software-Wydawnictwo Sp. z o. o.


Dyrektor wydawniczy: Sylwia Pogroszewska
Redaktor naczelny: Patrycja Wdoowska patrycja.wadolowska@software.com.pl
Redaktorzy: Magdalena Sobi magdalena.sobis@software.com.pl
Anna Kozio anna.koziol@software.com.pl
Producent: Marta Kurpiewska marta@software.com.pl
Opracowanie CD: Micha Kozowski michal.kozlowski@software.com.pl
Opracowanie graficzne: Robert Zadrony robert.zadrozny@software.com.pl
Skad: Robert Zadrony robert.zadrozny@software.com.pl
Projekt okadki: Agnieszka Marchocka
Dzia prenumeraty: Marzena Dmowska pren@software.com.pl
Nakad: 6000 egz.

Adres korespondencyjny:
Software-Wydawnictwo Sp. z o. o., ul. Bokserska 1, 02-682 Warszawa
e-mail: redakcja@software.com.pl, tel. (22) 427-36-77, fax (22) 427-36-69
Redakcja dokada wszelkich stara, by publikowane w pimie i na towarzyszcych mu nonikach informacje i programy byy poprawne,
jednake nie bierze odpowiedzialnoci za efekty wykorzystania ich; nie gwarantuje take poprawnego dziaania programw shareware,
freeware i public domain. Uszkodzone podczas wysyki pyty wymienia redakcja.
Wszystkie znaki firmowe zawarte w pimie s wasnoci odpowiednich firm i zostay uyte wycznie w celach informacyjnych.

Druk: 101 Studio, Firma Tegi


Pyty CD doczone do magazynu przetestowano programem AntiVirenKit firmy G DATA Software Sp. z o.o
Redakcja uywa systemu automatycznego skadu
Sprzeda aktualnych lub archiwalnych numerw pisma po innej cenie ni wydrukowana na okadce bez zgody wydawcy - jest dziaaniem
na jego szkod i skutkuje odpowiedzialnoci sdow.

www.sdjournal.org

Software Developers Journal Extra! 26

Strojenie i dostrajanie komponentw

48

Stefan 'Zwiastun' Wajda


Na przykadzie komponentu DocMan i pokrewnych dodatkw, Zwiastun pokae Ci, jak udostpnia treci komponentw na witrynie, jak korzysta z moduw i botw oraz jak modyfikowa stron prezentacyjn komponentu.

Instalacja Joomla!

20

Stefan 'Zwiastun' Wajda


Zwiastun przedstawi wymagania rodowiska instalacyjnego Joomla!, opisze przebieg instalacji oraz doradzi, krok po kroku, jak rozwiza problemy podczas instalacji. Na wszelki
wypadek, bo raczej nie powinny si przydarzy.

Tworzymy szablon

26

Micha 'Viking' Sobkowiak


Razem z Vikingiem poznasz wygodny sposb tworzenia szablonw. Razem z nim zbudujesz swj szablon, ktry bdzie oparty na najczciej spotykanym w Internecie trzykolumnowym ukadzie treci. Przekonasz si, e przy podstawowej znajomoci HTML i CSS, poradzisz sobie z tym bez problemu.

Szablony... troch bardziej

32

Micha 'Viking' Sobkowiak


Viking rozbudowuje wiedz na temat szablonw. W tym artykule opisuje pozostae elementy
PHP interesujce ze wzgldu na tworzenie szablonw. Poznasz sposoby poprawienia funkcjonalnoci stworzonego szablonu oraz dowiesz si, jak go poszerzy.

Tworzenie rozszerze dla Joomla! 1.5

36

Mateusz Krzeszowiec
Mateusz na przykadzie komponentu sownika pokae jak budowa
rozszerzenia dla nowej wersji Joomla! 1.5 Release Candidate 1 oraz omwi
moliwoci nowego wydania. Warto zapozna si z tym rozwizaniem, poniewa bdzie ono
przydatne do tworzenia aplikacji internetowych.

Rozszerzamy moliwoci

42

Stefan 'Zwiastun' Wajda


W jaki sposb poszerzy moliwosci Joomla! ? W tym artykule Zwiastun przedstawia na
przykadzie komponentu DocMan i pokrewnych dodatkw, jak rozszerza uyteczno
Joomla!, rozszerza jego moliwoci. Poznasz wszystkie aspekty instalacji i konfiguracji
rozszerze.

Software Developers Journal Extra! 26

Aktualizacje, migracje, przenosiny

54

Stefan 'Zwiastun' Wajda


Zwiastun prezentuje kilka wybranych problemw aktualizacji Joomla! i rozszerze dla
Joomla! oraz migracji midzy odmiennymi wydaniami Joomla. Dowiesz si rwnie, jak przenosi baz danych oraz przenie na Joomla! witryn stworzon w innym CMS.

Krtka historia

60

Stefan 'Zwiastun' Wajda


Zwiastun opowiada, jak doszo do narodzin Joomla!. Jakie dramatyczne deyczje towarzyszyy tym narodzinom, jakie byy konsekwencje przedsiwzitych krokw. Ponadto autor przedstawia pokrtce podobiestwa i rnice midzy Mambo i Joomla!

Wsplnota Joomla! i Centrum Projektu

62

Stefan 'Zwiastun' Wajda


W krtkiej prezentacji Zwiastun przestawia zasady dziaania i organizacj wsplnoty
Joomla!, Centrum projektu oraz paszczyzny dziaania Polskiego Centrum Joomla!Dowiesz
si czym jest spoeczno Joomla!, kto wchodzi w jej skad oraz jakie korzyci daje przynaleno do niej.

Optymalizacja...
ludziom i wyszukiwarkom

64

Stefan 'Zwiastun' Wajda


Zwiastun przeorientuje Twoje spojrzenie na pozycjonowanie witryny i jej optymalizacj
pod ktem wyszukiwarek. Poznasz aspekty witryny dobrej jakoci, witryny profesjonalnej.
Ponadto, dowiesz si, jak uzyska w Joomla! przejrzyste adresy URL.

Antylopa, otwarto i rdo

68

Micha 'Viking' Sobkowiak


Viking przedstawia histori powstania licencji. Autor opisuje konsekwencje zwizane z rozpowszechnianiem kopi Joomla! Dziki temu artykuowi dowiesz si jakie licencja ma konsekwencje dla twrcw rozszerze, ich uytkownikw i osb wdraajcych serwisy oparte na
Joomla!

www.sdjournal.org

Zawarto
CD-ROM

Joomla 1.0.13

tabilne wydanie Joomla! 1.0.13 opublikowano 21 lipca 2007


roku. W wydaniu 1.0.13 wprowadzono:

kilka poprawek bezpieczestwa;


doskonalszy system przechowywania hase;
kontrol ustawie Register Globals z poziomu zaplecza;
doskonalszy system obsugi sesji administratorw;
obsug przeczania protokow HTTP/HTTPS.

Oficjalne pakiety instalacyjne mona pobra na www.joomla.org oraz


www.joomla.pl.

Na pytce
Zamieszczone na pytce nieoficjalne, zmodyfikowane wydania Joomla! International Edition rozwizuj problem lokalizacji zaplecza administracyjnego. Oryginalny Joomla! obsuguje jedynie lokalizacj
strony frontowej.

Rysunek 1. Prezentacja multimedialna

Joomla! 1.0.13 International Edition UTF8

Joomla! 1.0.13 International Edition ISO

Wydanie przygotowane dla polskich uytkownikw przez Stefana Wajd na kanwie dowiadcze z wasnego projektu Joomla!PlusAdmin oraz projektu J!IE mongolskiego programisty Adriana
Mummeya.

Wersja JIE-iso przeznaczona jest do aktualizacji poprzednich wyda


Joomla!PlusAdmin oraz migracji z oficjalnych wyda Joomla!, dziaajcych w oparciu o baz danych kodowan w ISO-8859-2. Nie jest zalecana do zakadania nowych witryn.

Joomla International Edition zapewnia:

Przebieg aktualizacji i migracji opisane zostay wewntrz numeru.


Licencje:
Joomla!: licencja GNU GP: wersja druga
Przykadowe dane: Creative Coommons

pen obsug kodowania utf-8;


pen lokalizacj instalatora, witryny i zaplecza;
moliwo przeczania jzyka zaplecza podczas pracy;
generowanie uproszczonych PDF-w;
lokalizacj kalendarza.

Prezentacja Multimedialna : Stwrz wasny szablon

Opublikowane na pytce wydanie zawiera:

przykadowe polskie dane;


dodatkowe szablony: Kapelusze i eGov;
peny pakiet jzyka polskiego;
peny pakiet jzyka angielskiego;
dodatkowy modu zaplecza Przecznik jzyka.

Szablon Kapelusze pomylany zosta jako podstawa do wasnych


rozwiza jak dostosowa szablon do wasnych wymaga opisuje w numerze Micha Sobkowiak. Instalacja J!IE wymaga bazy danych
MySQL w wersji powyej 4.1 (z obsug kodowania).
Instalacja przebiega w standardowy, opisany wewntrz numeru
sposb:

rozpakuj pakiet instalacyjny;


przelij je na serwer do katalogu instalacyjnego;
wywoaj w przegldarce adres witryny;
wybierz jzyk instalacji;
wykonaj polecenia instalatora;
przed uruchomieniem witryny usu katalog instalacyjny.

Joomla International Edition UTF8 zalecany jest do nowych instalacji!

Prezentacja kurs opisuje metody stosowane podczas tworzenia


szablonw graficznych dla Joomla! CMS. Nauczysz si jak na podstawie gotowego projektu graficznego wykona templatk od podstaw.
Krok po kroku prezentujemy podstawowe czynnoci zwizane z przygotowaniem szablonu, poczwszy od wykonania odci
a do stylizacji caoci w CSS. Dowiesz si jak poci plik graficzny na odpowiednie elementy i w jaki sposb zaimplementowa je
w templatce. Pokaemy te, jak wykorzysta instrukcje warunkowe co umoliwi dynamiczn zmian szerokoci poszczeglnych kolumn strony.
Prezentacja demonstruje pewien styl pracy, ktry umoliwia
szybkie i sprawne zrealizowanie zadania polegajcego na wykonaniu
szablonu. Praktycznie pracujemy cay czas na ywym organizmie co
umoliwia biece testowanie zastosowanych rozwiza.
Kurs bazuje na przykadowym projekcie, ktrego rda zaczylimy w prezentacji. W katalogu z prezentacj znajdziesz rwnie pliki rdowe php i css.
Twrcy kursu zachcaj do samodzielnej pracy, dlatego szablon realizowany w czasie prezentacji wymaga jeszcze drobnych
modyfikacji. Zaczone pliki pozwol wykona to we wasnym zakresie.
Na CD znajdziesz te 5 gotowych do wykorzystania templatek.
Dziki wiedzy z naszego kursu bez problemu bdziesz mg dostosowa je do swoich potrzeb i wykorzysta na wasnej stronie internetowej opartej na Joomla! Zwaszcza, e udostpnilimy rwnie
rda PSD projektw graficznych.

www.sdjournal.org

Software Developers Journal Extra! 26

Joomla!

Joomla! i Web 2.0

Stefan Wajda

perspektywy ponad 30 lat rozumiem studentw, ktrzy


nie mogli poj wizji McLuhana w Galaktyce Gutenberga. Jak mogli rozumie, skoro i ja nie rozumiaem, cho
wszystko zdawao si jasne. Dzi yjemy w globalnej wiosce i
gdyby opowiada studentom, czeg to z dzisiejszego wiata
nie byo przed laty trzydziestu, te nie rozumieliby w gruncie
rzeczy, o czym mowa.
Przemiewcy susznie zauwaaj, e jeli Web 2.0 ma polega na bajerach typu livebox czy slimbox, to mamy jedynie
do czynienia z kolejnym chwytem reklamowym. Argumentw
wci dostarczaj im projektanci WWW, epatujcy internautw
i klientw modnymi szatkami. Ale dubanymi w edytorze HTML,
jak za krla wieczka.
Web 2.0 sta si na naszych oczach. Nawet jeli pojcie
pjdzie w zapomnienie, to na pewno jest zwiastunem nowej
ery powszechnego uczestnictwa ludzi w wirtualnej rzeczywistoci Internetu. Dwa aspekty przeomu dokonujcego si
na naszych oczach s bowiem niewtpliwe:

pierwszy, to dostp do rnych treci i mediw tylko za pomoc przegldarki, bez instalacji innych programw;
drugi, to zacieranie si granic midzy nadawcami i a odbiorcami treci - kady moe by twrc i uytkownikiem
treci dostpnych w Sieci.

Krtko mwic: przegldarka internetowa z przekanika informacji i rozrywki staje si systemem zarzdzania treci!
Ju dzi kady na swoim komputerze moe stworzy aplikacj umoliwiajc tworzenie, gromadzenie i udostpnianie dowolnych materiaw elektronicznych tekstw, obrazw, animacji, nagra dwikowych, programw radiowych i telewizyjnych czy caych stron internetowych. Czegokolwiek, co ma posta elektroniczn.

To jest sedno
dokonujcego si przeomu!
I moe stworzy sam dla siebie lub z rodzin dla rodziny, z pracownikami swojego biura czy firmy, wsptworzon przez pracownikw, dla spoecznoci lokalnej, regionalnej i globalnej,
wsptworzon przez t spoeczno.
W przeszo odchodzi czas, w ktrym kiedy inni decydowali, co mamy oglda w swoich przegldarkach, a przegldarki byy tylko narzdziami do przegldania stron internetowych. Web 2.0 najkrcej mwic niesie ze sob nowy wymiar wolnoci swobodny dostp do informacji i swobod dysponowania informacj.
I nie chodzi bynajmniej o to tylko, e atwo mona stworzy swoj wasn stron internetow. I nawet nie o moliwo, jak oferuje np. Yahoo! stworzenia osobistej, wywietlajcej podane informacje strony My Yahoo! . Nie chodzi
wreszcie o to, e mona sta si redaktorem wsptworzonej
przez ludzi z caego wiata, internetowej encyklopedii. To zale-

www.sdjournal.org

Rysunek 1. Stefan Wajda


dwie czstki naszej nowej wolnoci: wolnoci dostpu do rnych treci, wolnoci ich gromadzenia, wolnoci posugiwania
si nimi, wolnoci udostpniania.
Na swoich komputerach, w swoich domach, firmach i instytucjach moemy tworzy wasne, niepowtarzalne, indywidualne strony, wydobywajce z zasobw sieci to, co jest
nam potrzebne do nauki, pracy, zabawy, dziaalnoci gospodarczej, kontaktw z innymi. Do ycia we wspczesnym
wiecie.
T now wolno i szans zarazem daj nam technologie informatyczne, w tym systemy zarzdzania treci,
wrd nich system niezwyky, wszechstronny, wielofunkcyjny, wielokrotnie nagrodzony najwyszymi wyrnieniami, uywany na caym wiecie Joomla! wolny program
z otwartym kodem rdowym. Inny ni wszystkie pozostae CMS-y.

Joomla! jest
rzeczywicie dla kadego!
W jeden dzie nauczy si korzysta z Joomla! praprawnuczek
i jego wiekowa praprababcia. A szef firmy wesp z portierem
stworz profesjonaln witryn. Nie potrzebuj znajomoci
adnych jzykw stworzonych przez informatykw dla informatykw. Wystarczy, e otworz przegldark, w niej Joomla! i mog umieszcza w Internecie cokolwiek zechc. Wcznie z bajerami, jakie w wyobrani projektantw WWW s jedynie w ich zasigu. Zainstaluj i sprawd! Korzystaj i ciesz si! Zapraszamy do lektury! n
Software Developers Journal Extra! 26

Joomla!

Joomla! i kapelusze

Stefan Wajda

o instalacji Joomla! jest witryn gotow do wypeniania


treci. Nie musisz niczego programowa. Od razu moesz publikowa w sieci swoje treci. Stworzymy krok
po kroku zrb witryny firmowej dla fikcyjnej spki Kapelusze
SA. Na prostym przykadzie dowiesz si:

jak Joomla! generuje strony;


jak prezentowane s w Joomla! pozycje treci;
jak jest zorganizowana tre w Joomla!;
jak prezentuj informacje komponenty i moduy;
jak projektowa w Joomla! struktur treci i nawigacj.

Pewno mylisz, e zaraz zaczniemy tworzy kolejne strony?


Lubisz pokazy iluzjonistw. Ogldasz czasem? Oto do kapelusza wdruj kwiatuszki, hokus-pokus, abrakadabra i wyskakuje... zajczek. Siedzisz? Na pewno? Mocno? Bo ta wiadomo
moe Ci zwali z ng! Nie bdziemy w ogle tworzy stron!
Wicej w Joomla! w ogle nie ma stron! Joomla! nie opiera si
na stronach! Nie polega na tworzeniu stron. Nielogiczne? Przecie w przegldarkach s strony. No tak, troch nielogiczne. A
na pokazie iluzjonisty logiczne? Przyjmij wic na pocztek, e
wkadasz kwiatuszki, dostajesz zajczki!
Joomla! jest systemem zarzdzania treci. Nie polega na
tworzeniu stron o ustalonej treci. Zawarto w Joomla! jest dynamiczna! Zmienia si za kadym razem, gdy wchodzisz na stron otwierajc witryn albo gdy wywoujesz konkretny odnonik
w menu. Dopiero wtedy Joomla! odszukuje potrzebne treci w bazie danych i umieszcza je w dokumencie przesyanym do przegldarki internetowej, czyli generuje stron. Krtko mwic: Ty dodajesz treci, a Joomla! generuje dokumenty wywietlajce strony
na ekranach internautw! Kiedy Ty mylisz o stronach, Joomla!
myli o pozycjach menu i pozycjach moduw! To s dwa kluczowe
pojcia dla Joomla!: pozycje menu i pozycje moduw. Gdy to zrozumiesz, wszystko inne bdzie dla Ciebie jasne i oczywiste.

Tworzenie witryny w Joomla!


Tworzenie witryny w Joomla! sprowadza si do trzech czynnoci:
dodajesz treci;
dodajesz pozycje menu;
przypisujesz moduy do pozycji menu i pozycji moduw.

Stefan Wajda [Zwiastun] jest liderem PCJ!, koordynatorem


Zespou Tumaczy i Dokumentacji akredytowanym przy Translation Work Group projektu Joomla!, wydawc witryn PCJ, autorem
w peni zlokalizowanych wersji Mambo i Joomla! (MLI MamboPL,
J!PlusAdmin,) komponentw josDirectory i josResource. Spolonizowa okoo 150 rozszerze dla Joomla!, opublikowa ponad 600
artykuw powiconych wszystkim aspektom Joomla!
Kontakt z autorem: zwiastun@zwiastun.net.

10

www.sdjournal.org

Jak zajczki z kapelusza

Rysunek 1. Projekt witryny


Ca reszt wykonuje za Ciebie Joomla! Oczywicie, ciut przesadziem. Zanim iluzjonista wyjdzie na scen pokaza publicznoci swoje sztuczki, musi troch popracowa. To przecie nie
tak, e zajczki wyskakuj, kiedy chc i jak im si ywnie podoba. Pokazuj si dokadnie wtedy, kiedy chce iluzjonista, w precyzyjnie okrelonych okolicznociach.
Podobnie w Joomla! Obrazowo mona powiedzie, e
gromadzisz materiay, jak zbiory w bibliotece, okrelasz Joomla! co, w jakich okolicznociach i skd ma pobiera, a Joomla! wybiera odpowiednie teksty, obrazy, dwiki, filmy i
umieszcza je na witrynie.... wedle Twojego rozkazu, Twojej
woli, Twojego planu!

To zaczynamy projekt witryny


Przyjmuj, e abecado projektowania uytecznych witryn
znasz i nie trzeba tu przypomina, e tworzysz witryn dla
uytkownikw, aby zaspakaja ich cele, ich potrzeby, a nie potrzeby wydawcy. Biznesowy cel wydawcy to zaciekawi uytkownikw, zatrzyma ich na witrynie jak najduej, zapewni
pen satysfakcj z obsugi. Jeli tak bdzie, na pewno bd
na witryn powraca z przyjemnoci.
Okrelamy wic adresatw i cele witryny, jakie zechc
na niej realizowa adresaci, do celw dobieramy treci.
Spjrz na t kwestie, jak sprzedawca, ktry wystawia swj
towar, swoj ofert klientom: chcesz tego prosz bardzo,
szukasz tego jest tutaj, to ci jest potrzebne - pobierz std.
Taka ma by nasza witryna.
Stwrz jej wstpny projekt. Wypisz adresatw, wypisz ich
cele i potrzeby, na tej podstawie okrel 3-5-7 gwnych celw witryny (nie wicej! zoty rodek jest naprawd zotym
rodkiem). Na koniec stwrz szkic spisu treci. Uwzgldnij
w nim wszystkie elementy zawartoci, jakie uznajesz w tym
momencie za wane i potrzebne. Aby nie zapomnie o czym
istotnym, przejrzyj opublikowany w serwisie www.uzytecznosc.pl artyku Anatomia witryny. Ta problematyka wykracza
poza ramy artykuu, tych kilka podstawowych uwag wystarczy, by zacz.
Software Developers Journal Extra! 26

Witryna firmy Kapelusze SA

Chcemy:

przedstawi firm i uatwi uytkownikom zdobycie informacji;


zaprezentowa ofert firmy kapelusze oraz zwizane z nimi usugi;
umoliwi uytkownikom wysanie pytania lub zamwienia;
informowa uytkownikw o nowociach, promocjach, zrealizowanych kontraktach.

Czego potrzebujemy? Niezbdne minimum to:

jedna strona o firmie;


dzia Produkty z ofert uporzdkowan w kategoriach;
jedna strona o Usugach;
jedna strona z formularzem kontaktowym;
dzia Aktualnoci.

eby cokolwiek opublikowa, trzeba to oczywicie najpierw stworzy.

Cztery gwne typy treci


Wszystkie treci prezentowane w Joomla! dzielimy na cztery podstawowe typy:

W projektowaniu stron internetowych bardzo uytecznym narzdziem jest


mapa witryny. Mapa nie pokazuje struktury witryny, ale raczej cieki, jakimi
mog poda uytkownicy. Nasza mapa witryny mogaby wyglda tak jak
na Rysunku 2. Gdy internauta trafi na witryn, zobaczy pi pozycji menu.

Natomiast na stronie Nowoci znajduje szereg krtkich informacji o nowych seriach kapeluszy, o naszych sukcesach w wiatowych konkursach kapelusznikw, o trendach w kapeluszowej modzie, itp. Jeli jaka
wiadomo go zainteresuje, klika odnonik Czytaj cao.

Dodajemy pierwsze treci

Mapa witryny

Wybiera menu Usugi i trafia na stron z artykuem mwicym o wykonywaniu kapeluszy na zlecenie, na rne okazje, a take np. o odnawianiu starych kapeluszy.
Chce zoy zamwienie, wic wybiera menu Kontakt, na ktrej gdzie
znajduje formularz umoliwiajcy wysanie wiadomoci do naszego
dziau obsugi klientw.

Wybiera menu O firmie i trafia na stron z artykuem, z ktrego dowiaduje si, e jestemy firm z 50-letni tradycj i mamy swoje ugruntowane miejsce na wiatowym rynku. Kapelusze zamawiali i zamawiaj u nas. Kto te ich nie zamawia, itd. W informacji dostarczamy
danych, ktre mona gdzie sprawdzi.
Wybiera menu Produkty i trafia na stron przejciow, z odnonikami do kilku kategorii kapeluszy, np. Kapelusze dla pa, Kapelusze dla
panw, Kapelusze dla milusiskich kotw, pieskw, mapek cokolwiek firma ma w ofercie. Nastpnie moe przej na strony prezentujce interesujc go kategori kapeluszy.

materiay statyczne;
artykuy (dynamiczne);
komponenty;
moduy.

Wykorzystamy tutaj kady z nich, aby pozna ich waciwoci i sposoby


prezentacji.

O firmie i Usugi. Materiay statyczne


Rozpocznijmy od formy najprostszej. Na stronie o firmie chcemy zamieci artykuy o:

celach, misji, historii, osigniciach naszej firmy;


oferowanych usugach.

Strona startowa
Nowoci
O firmie
Kapelusze
Usugi
Kontakt

NOWOCI

O FIRMIE

xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxx

xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxx

xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxx

KAPELUSZE

xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxx

DLA PA
100 000 kapeluszy
xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxx

Wiosenne
Letnie
Zimowe
W ieczorowe

Dla pa
Dla panw
Dla milusiskich

DLA PANW
Ciemne
Jasne
Plaowe

USUGI

KONTAKT

xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxx

xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxx

xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxx

DLA MILUSISKICH
Dla pieskw
Dla kotkw

xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxx

Rysunek 2. Mapa witryny


Software Developers Journal Extra! 26

www.sdjournal.org

11

Joomla!

Do takich celw mona skorzysta z materiau statycznego. Materia


statyczny to pozycja samodzielna, niepowizana z adnym innym elementem treci: artyku, prosta galeria zdj czy obrazw na jednej stronie, zestawienie adresw URL, zestawienie plikw do pobrania, cokolwiek w nim umiecisz. Z materiaw statycznych mona by stworzy
ca witryn. Takie rozwizanie bywa czasem przydatne, ale nie jest
zbyt efektywne. Dla naszego celu nadaje si wymienicie. Jedynym sposobem opublikowania materiau statycznego na witrynie jest umieszczenie go w menu. Tak, jak klasycznych dokumentw HTML. Najpierw
stwrzmy potrzebne materiay statyczne.

Tworzenie materiau statycznego


Stworzenie nowego materiau statycznego jest bardzo proste (Rysunek 3.).

w menu administratora przejd do pozycji Materiay => Materiay


statyczne;
kliknij Utwrz w pasku narzdzi w prawym grnym rogu;
nadaj materiaowi jaki tytu, np. Kapelusze z tradycj;
wpisz tre informacji, cokolwiek chcesz tam umieci. Wystarczy
kilka znakw;
kliknij Zapisz w pasku narzdzi.

To wszystko.

Materia statyczny w menu


Materia zosta stworzony i zapisany. Spjrz na wykaz materiaw (Rysunek 4.) ikona w kolumnie Publikacja mwi, e materia jest take opublikowany. Zajrzyjmy wic na stron frontow... Hmm, opublikowany, ale
go nie ma... Wniosek: to, e co jest opublikowane, nie znaczy jeszcze, e
jest widoczne na witrynie. Aby byo widoczne, musi by na niej umieszczone, udostpnione. Materiay statyczne mog by udostpniane na witrynie tylko jako pozycja menu:

wr do menedera materiaw statycznych (Menu > Artykuy >


Materiay statyczne);
kliknij na licie materiaw statycznych tytu artykuu. Przejdziesz
do okna edycji;
kliknij zakadk cze w menu po prawej stronie ekranu. Odsonisz
kart umoliwiajc dodanie cza w menu,
wska, w ktrym menu chcesz umieci odnonik, np. Menu gwne
[[mainmenu]];
wpisz nazw cza, ktra bdzie wywietlana w menu, np. O firmie;
kliknij przycisk: Utwrz menu [Create menu];
w pasku narzdzi w prawym grnym roku kliknij ikon lub odnonik Zapisz.

Rysunek 4. Wykaz materiaw statycznych


Gotowe. Wr na witryn i sprawd materia jest ju dostpny. To jeden
z dwch sposobw umieszczania materiaw w menu. Drugi poznamy
pniej. Stwrz teraz drugi z planowanych materiaw Usugi i udostpnij go w menu gwnym. Zapamitaj: eby udostpni jakkolwiek pozycj w menu, trzeba j najpierw stworzy.

Kapelusze w kategoriach i sekcjach.


Treci dynamiczne
Pierwsze koty, za poty. Kolej na nastpny krok. Teraz poznasz moc Joomla! Chcemy na witrynie zaprezentowa oferowane przez firm produkty kapelusze. Moglibymy stworzy o kadym kapeluszu materia statyczny. Albo o kadym rodzaju kapeluszy na wiosn, lato, jesie, zim.
Metod kopiuj-wklej nie zajoby to nam pewno sporo czasu. Ale, jako si
rzeko, to nieefektywny sposb. Joomla! ma dla nas o wiele lepsze rozwizanie: materiay dynamiczne.

Materiay dynamiczne
Nazywamy je w polskim tumaczeniu artykuami, gwnie dlatego, aby
nie uywa niezbyt jasnego okrelenia materiay dynamiczne. Za chwil
bdzie ono jednak dla Ciebie w peni zrozumiae.

Sekcje i kategorie artykuw


Zanim stworzysz jakikolwiek artyku, trzeba stworzy przynajmniej jedn
sekcj, a w niej przynajmniej jedn kategori. Bo artyku musi by umieszczony w kategorii, a kategoria w sekcji. Sekcje i kategorie mona tworzy
wedug dowolnego, ale rozsdnego kryterium. Sekcje i kategorie pozwalaj utrzyma ad w gromadzeniu treci, ale przede wszystkim usprawniaj
zarzdzanie artykuami, ich prezentacj na w witrynie.

Sekcja: Kapelusze
Wszystkie artykuy o kapeluszach zgromadzimy w sekcji Kapelusze, w
ktrej zaoymy trzy kategorie: Kapelusze dla pa, Kapelusze dla panw
i Kapelusze dla milusiskich.

Tworzenie nowej sekcji


Tworzenie sekcji w Joomla! jest... Tak! Masz racj! Jest proste: W panelu
administratora wybierz menu Materiay => Sekcje artykuw albo kliknij
na stronie startowej administratora ikon skrtu do sekcji artykuw.

Rysunek 3. Tworzenie nowego materiau statycznego za pomoc edytora

12

Kliknij Utwrz w pasku narzdzi w prawym grnym rogu. Przejdziesz


do edytora sekcji;
wpisz tytu i nazw sekcji. Tytu powinien by krtki, np. Kapelusze. Joomla! uywa tytuu sekcji w menu. Nazwa natomiast moe by dusza, jest wykorzystywana jako tytu strony z sekcj artykuw. Niech
bdzie, np. Kapelusze na kad gow. Powtrz w nazwie sowo z tytu-

www.sdjournal.org

Software Developers Journal Extra! 26

Rysunek 5. cze w menu

u to wane: gdy uytkownik zobaczy nagwek strony, nie powinien


si zastanawia, czy trafi we waciwe miejsce. To wane rwnie ze
wzgldu na pozycjonowanie strony przez wyszukiwarki internetowe;
nie mamy jeszcze w bibliotece mediw adnego obrazka z kapeluszem, wic nie bdziemy niczego wybiera z listy Grafika;
natomiast w polu Opis moesz wpisa dowolny tekst promujcy, np.
Kapelusze na kad gow! Do wyboru, do koloru! Na wiosn, lato, jesie i zim! I dla pa, i dla panw, I dla milusiskich. Moesz, oczywicie, zostawi rwnie to pole puste;
Kliknij Zapisz w pasku narzdzi.

Gotowe.

Tworzenie nowej kategorii


Kategorie tworzymy w podobny sposb. Jedyna rnica trzeba przypisa kategori do sekcji.

Podobno od przybytku gowa nie boli. Spjrz, jedn kategori moemy umieci na witrynie na trzy rne sposoby. W przypadku sekcji s nieco inne moliwoci. Sprawdzisz pniej. Mao tego, nie dodalimy jeszcze adnego artykuu, ale moemy ju w menu witryny umieci cza i do sekcji artykuw, i do kategorii artykuw. Bo
sekcje i kategorie to pozycje treci na witrynie, to jedne z elementw struktury witryny.
Precyzyjnie rzecz biorc, to nie sekcje i kategorie bd elementami
struktury witryny, ale elementy, ktrych waciwoci okrel wybrane
typy pozycji menu tabela z odnonikami do artykuw w kategorii czy
blog artykuw z kategorii albo z archiwum kategorii.
Zapamitaj: to, co bdzie widoczne na witrynie, nie zaley
wprost od tego, jakie pozycje treci zgromadzimy w naszych zbiorach na zapleczu. Na zapleczu moemy mie mnstwo materiaw. Dopki jednak nie umiecimy do nich cza w menu, okrelajcego zakres i
sposb prezentacji, to nie bd one na witrynie widoczne.

Decyzja jak pokaza kapelusze?


Przed nami powana decyzja projektanta witryny. Mamy do wyboru
kilka sposobw prezentacji kapeluszy. Blogi archiww tymczasem
nas jeszcze nie interesuj. Niemniej, mamy do wyboru cztery typy
pozycji menu:

cze typu Lista Sekcja artykuw generuje w strukturze witryny element trzypoziomowy, w ktrym:

w panelu administratora wybierz menu Materiay > Kategorie artykuw albo kliknij na stronie startowej administratora ikon skrtu do
kategorii artykuw;
kliknij Utwrz w pasku narzdzi w prawym grnym rogu;
wpisz krtki tytu i dusz, peniejsz nazw kategorii;
wypenij pole Opis lub pozostaw je tymczasem puste;
kliknij Zapisz w pasku narzdzi;
za wszystkie trzy potrzebne nam kategorie: Kapelusze dla pa,
Kapelusze dla panw, Kapelusze dla milusiskich.

Lista Sekcja artykuw;


Blog Artykuy z sekcji;
Blog Artykuy z kategorii;
Tabela Artykuy z kategorii.

pierwszy poziom to strona otwierajca z czami do kategorii artykuw w sekcji;


drugi poziom to strony przejciowe z czami do artykuw w kategoriach;
trzeci poziom to strony docelowe z penymi tekstami artykuw.

cze typu Blog Artykuy generuje w strukturze witryny element dwupoziomowy, zoony:

ze strony otwierajcej z sygnaami informacji - skrtami, zapowiedziami, odnonikami;

A skoro mamy ju i sekcje, i kategorie, a wic stworzylimy... nasze kolejne pozycje treci, moemy je umieci w menu.

Sekcje i kategorie w menu witryny


Jake to? Przecie nie napisalimy jeszcze nic o adnym kapeluszu.
Wic gdzie te pozycje treci? Spokojnie! Joomla! to zdolny iluzjonista.
Pamitasz zajczki?

Kategoria artykuw w menu


Zajrzyj najpierw do jednej z utworzonych przed chwil kategorii. Kliknij w
wykazie na licie menedera np. nazw Kapelusze dla pa, by otworzy
edytor kategorii. Z prawej strony pojawia si moliwo dodania w menu cza do kategorii. Rozwi list wyboru: Typ pozycji menu. Ciekawe? W
przypadku kategorii mona utworzy trzy rne typy pozycji menu:

tabel artykuy z kategorii;


blog artykuy z kategorii;
blog archiwum artykuw z kategorii.

Software Developers Journal Extra! 26

Rysunek 6. Edytor materiau statycznego


www.sdjournal.org

13

Joomla!

ze stron potomnych z tekstami artykuw, sygnalizowanych na stronie otwierajcej.

cze typu Tabela Artykuy z kategorii generuje w strukturze witryny


element dwupoziomowy, zoony:

ze strony otwierajcej z czami do artykuw w kategorii;


ze stron z penymi tekstami artykuw (drugi poziom).

Treci z rnych pozycji


Spjrz jeszcze raz na opisy poszczeglnych typw pozycji i zwr uwag,
e treci stron otwierajcych oraz treci stron przejciowych bd pochodzi z wielu rnych pozycji!
Nie bdziemy tworzy strony z odnonikami do artykuw w kategoriach. Joomla! stworzy takie strony sam. Zbuduje jej tre z opisu kategorii i danych o umieszczonych w kategorii artykuach. Nie bdziemy te
tworzy strony zoonej z, nomen omen, zwiastunw skrtw, wstpw czy zapowiedzi artykuw. Te rwnie Joomla! wygeneruje sam.
Taki efekt w tradycyjnych stronach internetowych jest nieosigalny.
Za kadym razem, gdy zostanie dodana jaka pozycja, trzeba by poprawia dokumenty zawierajce wykazy pozycji w sekcjach i kategoriach.
I trzeba by je w ogle stworzy.
A Joomla! tworzy je sam, generuje dynamicznie, na podstawie informacji pobranych z bazy danych. I co wane, nigdzie, w adnym miejscu
takie strony nie s zapisane. Bo one po prostu fizycznie nie istniej!
Decyzja, ktry z tych typw wybra wymaga pewnej orientacji w
dziaaniu Joomla! Brakuje nam jeszcze pewnych informacji. Pozwolisz
wic, e na razie wstrzymamy si z umieszczaniem kapeluszy w menu, a
dodamy przynajmniej jeden artyku do ktrej z kategorii. Musisz po prostu zobaczy efekt w caej okazaoci.

Premierowy kapelusz. Tworzymy artyku


Moe by i kapelusz dla premiera. Ale tytu nawizuje raczej do sowa
pierwszy. Stwrzmy pierwszy artyku. Dopiero teraz z dwch powodw:

aby przekona si w praktyce, co znaczy, e to Joomla! tworzy strony, a my dodajemy treci,


aby lepiej zrozumie, na czym polega decydowanie o wyborze typu
pozycji menu.

W czterech miejscach
Tworzenie nowego artykuu moemy rozpocz w czterech miejscach:

nacisn na stronie Start zaplecza ikon skrtu Dodaj artyku


wybra z menu pozycj Materiay > Wszystkie artykuy, a nastpnie
klikn Utwrz
wybra z menu pozycj Materiay > Artykuy w sekcjach > [nazwa
sekcji] i klikn Utwrz

zalogowa si na stronie frontowej i skorzysta z udostpnianego na


niej edytora.

Zatem nacinij w menu zaplecza pozycj Start, a nastpnie ikon Dodaj


artyku. Znajdziesz si w znanym Ci ju edytorze, nieco rnym od edytora materiau statycznego. Bogatszym. Pierwsza rnica artykuy musz by przypisane do sekcji i kategorii, std w czci Szczegy, po lewej
stronie, mamy dwie rozwijane listy wyboru kategorii i sekcji.
Druga rnica to podzia tekstu artykuu na wymagany prolog wprowadzenie i niewymagany tekst gwny. Ten podzia tekstu artykuu na
dwie czci ma niebagatelne znaczenie dla organizacji treci na witrynie.
Wprowadzenie moe by wywietlane w blogach i w poytecznym
module Migawki. Mona je wyczy w widoku caego artykuu. Nie musi
to wic by wstp moe to by skrt artykuu, dowolny fragment, zapowied, a nawet cay artyku (informacja). Tekst gwny jest wywietlany
na stronie docelowej w penym widoku artykuu, z wprowadzeniem lub
bez zalenie od ustawie w parametrach.
Kolejne rnice dotycz parametrw publikacji. Tutaj zwrcimy uwag tylko na jeden. Na pierwszej karcie, po prawej stronie, dostpnej pod
zakadk Publikacja, mamy opcj Na startow. Zaznacz od razu t opcj i
stwrz swj pierwszy artyku. Wywoamy zajczka z kapelusza!

Tworzenie artykuu
Sposb tworzenia artykuu ju waciwie znasz (Twj edytor moe si nieco rni od naszego, ale teraz to nie ma znaczenia):

nadaj artykuowi tytu, np. Kapelusz niebieski;


nadaj krtk nazwa, np. Niebieski (ta nazwa nie jest konieczna, ale
przydatna);
wpisz tymczasem cokolwiek w czci Wprowadzenie;
wpisz cokolwiek w czci Tekst gwny;
zaznacz opcj Poka na startowej;
na karcie Parametry zaznacz pola opcji:
ukryj przy parametrze Tekst wprowadzajcy;
poka przy parametrach Nazwa sekcji i Nazwa kategorii.
zaznacz tak przy parametrach Nazwa sekcji czem i Nazwa kategorii czem;
kliknij Zapisz w pasku narzdzi.

Przywoujemy zajczka. Strona startowa


Przejd teraz na stron startow witryny, by zobaczy efekt... Zaskoczony?
Przecie nie dodawalimy adnego artykuu do menu! Jedynie go stworzylimy A jest! Wywietla si na pierwszej stronie. Ba, nie cay, a jedynie to, co
wpisalimy w czci wstpnej. Co wicej. Mamy dat dodania, autora, mamy
nazw kategorii i sekcji, w ktrej zosta umieszczony. Moemy w nie klikn.
I to jeszcze nie wszystko. W moduach Nowoci i Popularne pojawiy
si odnoniki do artykuu Kapelusz niebieski. Zdajesz sobie ju spraw z
potgi Joomla!? Czy to nie wspaniae? Stworzylimy tylko jeden artyku, a
Joomla! zrobi za nas reszt sam! No, prawie sam. Bo to my stworzylimy
sekcj i kategori oraz ucililimy niektre parametry prezentacji artykuu. Ale efekt w porwnaniu z nakadem woonej w jego uzyskanie pracy moe szokowa. Czy moe by co prostszego? Dodalimy tre, jedn
pozycj, a Joomla! wygenerowa nie jedn, ale kilka stron! Zatrzymajmy
si nad stron szczeglnie wan dla struktury witryny stron startow.

Komponent: Strona startowa

Rysunek 7. Typy pozycji menu

14

Komponenty to niewielkie aplikacje. Mog posuy do rnych zada.


W Joomla! oprcz komponentw obsugujcych zaplecze administracyjne i ca witryn mamy kilka dodatkowych, m.in. Banery, Kontakty, Katalog WWW.
www.sdjournal.org

Software Developers Journal Extra! 26

>
>
>
e
n
a
w
o
d
n
e
m
o
k
e
r
S tr o ny

Serwis informacyjny, na ktrym znajduj si


opisy programw, artykuy, forum dyskusyjne.
Portal zawiera recenzje najciekawszych czasopism o tematyce komputerowej.
http://www.tweaks.pl

Wortal php jest powicony najwieszym aktualnociom. Zawiera recenzje takich pism jak
php i sdj. Jest take moliwo wzicia udziau
w forum dyskusyjnym.
http://www.php.pl

Serwis informacyjny, na ktrym Internauci bd


mogli znale niezbdne informacje dotyczce
aktualnoci ze wiata informatycznego.
http://programista.ueuo.com/news.php

Portal zawierajcy ciekawe linki, gry on-line.


Tutaj dowiesz si niezbdnych informacji ze
wiata hackingu.
http://www.hackme.pl

Strona internetowa powicona KNI (Koo Naukowe Informatyki). Zawiera materiay i recenzje zgromadzone dla potrzeb studentw.
http://www.kni.ae.krakow.pl/

Portal, na ktrym dowiesz si wszystkiego o


programowaniu w php, a mianowicie aktualnoci, ciekawe artykuy oraz porady.
http://www.strefaphp.net

Prawdziwa i rzetelna kopalnia wiedzy o jzykach programowania stron WWW zawarta w


aktualnych tutorialach, artykuach i kursach.

Serwis informacyjny zawierajcy programy,


instalki, kodeki jak rwnie opisy produktw
wprowadzanych na rynek.
http://www.loader.pl

Jest portalem tworzonym przez studentw, ale


zawierajcym wszelkie tematy oraz ciekawostki
mogce zainteresowa i wcign do lektury nie
tylko studentw.
http://www.polibuda.pl

Wszystko na temat PHP, PHP5, MySQL, SQLite itp. Technologia w subie Internetu to ich
motto przewodnie.
http://www.kess.com.pl/

Jest to skarbnica wiedzy dla webmastera i programisty. Skrypty PHP, Skrypty java, porady, download, rda, forum oraz pomocne artykuy.
http://www.webpacket.net

http://www.webinside.pl

Jeeli wanie szukasz nowej pracy lub chciaby zmieni dotychczasow koniecznie powiniene tutaj zajrze.
http://www.pracuj.pl

Strony rekomendowane

Joomla!

Komponenty nie zawieraj treci pobieraj j z rnych rde,


przede wszystkim z naszej bazy danych. Ale mog j pobiera skdkolwiek, nawet z innych. Szerzej o komponentach powiemy nieco pniej, teraz skupimy si na komponencie Strona startowa. To unikalny komponent
o specjalnym przeznaczeniu do publikacji strony startowej.
Nie oznacza to jednak, e tylko on moe by wykorzystany do generowania strony startowej. Na stronie startowej moemy umieci cokolwiek materia statyczny, artyku. Wystarczy, e umiecimy tak pozycj jako pierwsz w gwnym menu witryny.
Zapamitaj: Pierwsza pozycja w menu gwnym zawsze bdzie stron startow Twojej witryny. Komponent Strona startowa nadaje si do tego celu szczeglnie. Jego waloryw nie sposb przeceni:

Kady wybr ma swoje konsekwencje. Szybko je rozpoznasz, prbujc


rnych rozwiza. Wybierzemy trzecie z rozwiza. Nie dlatego, e jest
najlepsze. A jedynie, by pozna inny sposb dodawania pozycji do menu i
typowe ustawienia.

Blog artykuw
Dodawanie cza w menu za pomoc menedera pozycji menu jest rwnie proste, jak pozostae czynnoci w Joomla!

sam generuje strony z artykuw oznaczonych do publikacji na stronie startowej;


jako jedyny generuje blog artykuw z dowolnych sekcji i kategorii;
wywietla artykuy w porzdku chronologicznym (mona to oczywicie zmieni);
wsppracuje z Kolporterem RSS wskazuje mu, ktre wiadomoci
umieci w kanale informacyjnym, jeli zechcesz taki kana udostpni na swojej witrynie.

Wanie ze wzgldu na ten niepowtarzalny komponent i jego moliwoci


wstrzymalimy si z decyzj, jaki typ pozycji menu wybra dla prezentacji kapeluszy.

Dynamiczna zawarto
Strona startowa jest wymienitym przykadem zawartoci generowanej
dynamicznie, strony, ktra nie istnieje wczeniej, powstajcej dopiero wwczas, gdy kto z uytkownikw wywoa w przegldarce adres witryny.
Tre tej strony generowana jest z pozycji umieszczonych w bazie
danych, kolejno ustalana na podstawie czy to daty utworzenia, czy innego, okrelonego w parametrach pozycji menu, kryterium. W momencie
gdy do bazy danych zostanie dodana nowa pozycja, tre strony startowej rwnie ulegnie zmianie. To jest zasadnicza rnica midzy witrynami statycznymi, zbudowanymi ze statycznych dokumentw, a witrynami
tworzonymi w takich programach jak Joomla!, w systemach zarzdzania
treci [CMS, Content Management System].
Wystarczy tylko doda now pozycj treci albo jednym klikniciem
myszki opublikowa lub zakoczy publikacj pozycji stworzonej wczeniej, aby zawarto witryny zmienia si.

wybierz w menu panelu administracyjnego opcj Menu => mainmenu.


To jest wanie gwne menu witryny. Jak widzisz, na licie mamy ju
3 pozycje: Start, O firmie i Usugi;
kliknij Utwrz a pasku narzdzi. Otworzy si okno wyboru typu pozycji menu;
zaznacz pole opcji Blog artykuy z sekcji i kliknij przycisk Dalej w pasku narzdzi albo od razu kliknij t nazw typu pozycji
menu;
ustal szczegy pozycji: nazw (Kapelusze) i sekcj, pozostae pozostaw bez zmian;
przejrzyj kolejno parametry prezentacji po prawej stronie moesz
pozostawi wszystkie domylne ustawienia. Zwr wszake uwag
na cztery z nich:
# kolumn: wpisz, na ile kolumn podzieli obszar bloga, np. 2;
# wprowadze: ustal, ile pozycji wywietla na caej szerokoci
bloga, np. 1;
# wstpw: ustal, ile pozycji wywietla w kolumnach, np. 10;
# odnonikw: ustal, ile odnonikw wywietla pod wstpami, np. 7.
kliknij przycisk Zapisz w pasku narzdzi.

Nie trzeba ustala duej iloci liczby odnonikw. Jeli artykuw bdzie
wicej, Joomla! umieci na dole strony pasek nawigacyjny, udostpniajcy kolejne artykuy.

Tabela artykuw z kategorii


Dodawanie pozycji typu Tabela artykuy z kategorii przebiega podobnie. Nieco odmienne s parametry prezentacji. Ale i w tym przypadku w wikszoci mona pozostawi ustawienia domylne. Warto je wszake przynajmniej raz przejrze dokadniej i przeczyta,
o czym decyduj. Inaczej nasz zajczek moe nie by odpowiednio
wytresowany!

Kapelusze do menu
Dysponujesz ju prawie pen wiedz, by podj decyzj o sposobie prezentacji kapeluszy. Oto peniejsza lista moliwoci:

16

umieszczasz w menu pozycj typu Lista Sekcja artykuw, nazwan np. Oferta;
umieszczasz w menu pozycj typu Lista Sekcja artykuw, nazwan np. Oferta, a pod ni, jako podrzdne pozycje menu, pozycje typu
Tabela artykuy z kategorii, tworzc dla kadej kategorii now pozycj menu;
umieszczasz w menu pozycj typu Blog artykuy z sekcji, a pod ni,
jako podrzdne pozycje menu, pozycje typu Tabela artykuy z kategorii;
umieszczasz w menu pozycj typu Separator Wzorek lub Napis, a
pod ni, jako podrzdne pozycje menu, pozycje typu Tabela artykuy z kategorii;
umieszczasz jako podrzdne do umieszczonego wczeniej materiau
statycznego pozycje typu Tabela artykuy z kategorii.

Rysunek 8. Wane parametry pozycji menu

www.sdjournal.org

Software Developers Journal Extra! 26

Na cztery z parametrw warto zwrci szczegln uwag rozway, czy na stronie z wykazem odnonikw ma by wywietlany
peny zestaw informacji o kadym z artykuw data utworzenia,
nazwa autora, ilo liczba odson, i w zwizku z tym, czy maj by
wywietlane nazwy tych kolumn. A moe wystarcz tylko same tytuy artykuw? Wszak uytkownikw interesuje przede wszystkim,
co kryje odnonik.
Najlepszym rozwizaniem wydaje si podjcie decyzji w odniesieniu do caej witryny. Dziki temu procedura ustawiania parametrw poszczeglnych pozycji menu ulegnie znacznemu skrceniu. Jedynie w
przypadku gdy zechcemy zastosowa inne ni domylne ustawienie,
trzeba bdzie wprowadzi tutaj modyfikacje. Dodajc kolejno trzy potrzebne nam pozycje, zwr w sekcji Szczegy uwag na waciwo:
Pozycja nadrzdna. W kadym przypadku zaznacz na licie nazw utworzonej wczeniej pozycji blog artykuw z sekcji, nazwanej Kapelusze.
cza do tabeli z artykuami w kategoriach maj jak ustalilimy by
pozycjami podrzdnymi.

Komponent w menu
Pozosta nam jeszcze jeden planowany element struktury witryny formularz kontaktowy. Do stworzenia formularza kontaktowego mona by
wykorzystywa materia statyczny albo artyku. Kopotliwe, wymaga
umiejtnoci programowania, ale wykonalne.
Joomla! z zaoenia jednak mia by i jest atwy w obsudze! Rzeczy
trudne czyni moliwie prostymi tak brzmi dewiza twrcw projektu. I
tak jest w istocie. Do udostpniania treci i funkcji specjalnych zastosowano rozwizania specjalne: komponenty i moduy.

Komponenty
To wanie komponenty s zdolne uczyni z Joomla! program dla kadego, dostosowany do przernych potrzeb publikacji internetowych,
prowadzenia osobistego menedera informacji i dokumentw elektronicznych, wspomagania organizacji pracy i obiegu dokumentw w firmie
i urzdzie, obsugi e-sklepw, wypoyczalni, serwisw pomocy technicznej, zarzdzania edukacj na odlego. Cokolwiek chcesz.
Komponenty speniaj rne funkcje. Jedne umoliwiaj tworzenie
i modyfikowanie treci, inne pozwalaj organizowa struktur, kolejne
dostarczaj narzdzi nawigacji, jeszcze inne narzdzi zarzdzania kontami uytkownikw.
Kady komponent to mniej lub bardziej rozbudowany program komputerowy, zdolny do wsppracy z innymi, z wasnym interfejsem spisem moliwoci wyboru (menu) lub przyciskami realizujcymi konkretne

zadania. Do standardowej dystrybucji Joomla! wczono kilka podstawowych komponentw:

banery [Banners] umoliwia publikacj reklam graficznych i tekstowych oraz zarzdzanie danymi klientw;
kontakty [Contacts] umoliwia prowadzenie ksigi adresowej i korzystanie z poczty elektronicznej;
katalog WWW [Weblinks] obsuguje zarzdzanie adresami stron internetowych i innych zasobw;
sondy [Polls] umoliwia sondowanie opinii i prezentowanie wynikw;
spinacz RSS [NewsFeed] umoliwia wywietlanie skrtw wiadomoci z innych witryn;
syndykator - Kolporter RSS [Syndicate] umoliwia udostpnianie
wasnego kanau informacyjnego.

Jak wida z wykazu, dysponujemy komponentem Kontakty, za pomoc ktrego moemy udostpni formularz kontaktowy. Komponent Kontakty jest
bardzo dobrym i prostym sposobem na udostpnienie uytkownikom witryny wszystkich niezbdnych danych adresowych o firmie kadego dziau,
referatu, komrki organizacyjnej.

Dostp do komponentw
Opcje zarzdzania wszystkimi komponentami witryny poza komponentem Strona startowa zostay wyodrbnione w panelu administracyjnym, w grupie pozycji menu nazwanej Komponenty. Ze strony startowej
mona rwnie dotrze do nich na skrty, korzystajc z karty kryjcej si
pod zakadk Komponenty. Skorzystaj z jednego lub drugiego sposobu i
wybierz opcj Kontakty => Kategorie kontaktw. Zanim stworzymy jakikolwiek kontakt, musimy najpierw stworzy cho jedn kategori.

Kategorie w komponentach
Niektre komponenty, wrd nich Kontakty, pozwalaj na tworzenie kategorii (precyzyjniej: wymagaj stworzenia kategorii!). Od tworzenia kategorii artykuw tworzenie kategorii w komponentach rni si jednym tylko szczegem nie przypisujemy kategorii do sekcji. Komponent w hierarchii treci Joomla! jest bowiem odpowiednikiem sekcji artykuw. Stwrz kategori pod nazw: Nasza firma lub podobn. Jeli chcesz, moesz od razu stworzy kategori przeznaczon na dane kontaktowe kontrahentw czy innych
firm produkujcych kapelusze bd wiadczcych usugi w tej dziedzinie.

Dane kontaktowe
Po utworzeniu kategorii kontaktw wybierz z menu administratora pozycj
Komponenty => Kontakty => Ksiga kontaktw, a nastpnie kliknij Utwrz.
Wypenienie pl informacji kontaktowych nie sprawi Ci zapewne kopotu. Nazwy pl s oczywiste. Koniecznie podaj adres poczty elektronicznej. Aby Joomla! wygenerowa formularz kontaktowy, adres e-mail musi by podany
w szczegach kontaktu, cho nie musi by wywietlany na stronie. Warto
przy tym wiedzie, e jeli ktrej z informacji nie umiecisz w szczegach
kontaktu, to po prostu nie bdzie ona widoczna na witrynie. Moesz rwnie
umieci wszystkie informacje, a w parametrach kontaktu zdecydowa, ktre z nich bd wywietlane na witrynie, a ktre ukryte.

cza do komponentu w menu


W przypadku kilku standardowych komponentw w menu mona utworzy pozycj typu:

Rysunek 9. Okno wyboru typu pozycji menu


Software Developers Journal Extra! 26

komponent: wywouje stron gwn komponentu z interfejsem


jego obsugi;
tabela kategoria... [np. kontaktw]: wywouje stron z odnonikami
do pozycji w kategorii;

www.sdjournal.org

17

Joomla!

Rysunek 10. Parametry prezentacji na stronie frontowej

cze pozycja [np. kontakt]: wywoujc konkretn pozycj udostpnian przez komponent;
cze komponent: wywoujc stron gwn komponentu umieszczonego ju w innym menu (komponent mona bowiem umieci w
menu jeden raz).

W naszym przypadku najlepszay bdzie trzeci z wymienionych typw:


cze kontakt.

Kolporter RSS [Syndicate] udostpnia odnoniki do generatorw kanau informacyjnego RSS;


Logowanie [Login Form] umoliwia logowanie si, rejestracj i wysanie proby o nowe haso;
Menu [Main Menu] wywietla menu;
Migawki [NewsFlash] wywietla zwiastuny (wstpy skrty) losowo
wybranych artykuw;
Nowoci [Latest News] wywietla odnoniki do opublikowanych
ostatnio artykuw;
Obraz losowy [Random Image] wywietla obrazy z okrelonego katalogu;
Popularne [Most Read] wywietla odnoniki do artykuw najczciej przegldanych;
Sekcje [Sections] wywietla odnoniki do blogw prezentujcych
zawarto sekcji artykuw;
Ssondy [Polls] wywietla ankiety opublikowane w komponencie Sondy;
Statystyki [Statistics] wywietla zestaw informacji o witrynie i jej
serwerze;
Szukaj [Search] - wywietla formularz wyszukiwarki;
Tematy pokrewne [Related Items] wywietla odnoniki do artykuw na podobny temat;
Zmie szat [Template Chooser] umoliwia uytkownikom zmian
szablonu;
Wasny lub RSS [Custom] umoliwia stworzenie wasnego moduu
lub czytnika RSS;
Wraper [Wrapper] wywietla inn witryn lub niezalen aplikacj.

Modu w naszej witrynie

Treci w moduach

Kilka moduw jest opublikowanych standardowo podczas instalacji


Joomla!: Menu witryny, Nowoci, Popularne. W zamieszczonym powyej przegldzie moduw znajdziemy co najmniej kilka, ktre mona
wykorzysta w naszym projekcie: Banery lub Obraz losowy do prezentacji oferowanych kapeluszy, Migawki np. do wywietlania informacji o promocjach, Popularne do wywietlania informacji o najczciej przegldanych artykuach w kadej z kategorii. I inne. Zobaczmy
na dwch przykadach, jak wykorzystywa moduy.

Aby wzbogaci treci strony i wyczerpa prezentacj sposobw udostpniania treci w Joomla! - pokamy jeszcze przykady zastosowania moduu.

Modu Popularne. Kopiowanie moduw

przejd do menedera pozycji menu i kliknij Utwrz;


w kreatorze menu wybierz z grupy Komponenty typ cze kontakt;
w edytorze okrel waciwoci pozycji i ewentualnie zmodyfikuj parametry prezentacji. Kliknij Zapisz, aby utworzy now pozycj w menu.

Moduy
Moduy s - podobnie jak komponenty - rozszerzeniami Joomla! Wywietlaj informacje towarzyszce treci gwnej, udostpniaj rne funkcje, np.
moliwo zalogowania si, rejestracji. Mog zawiera waciwie wszystko: czysty tekst, tre generowan przez kod HTML, kompletn, niezalen aplikacj. Od komponentw rni si zakresem moliwoci nie posiadaj interfejsu umoliwiajcego gromadzenie, redagowanie i przechowywanie danych. Niektre z moduw s oknami prezentacyjnymi komponentw
(stronami frontowymi), np. moduy Menu witryny, Banery i Sondy. Zwykle
jednak prezentuj wasn tre lub treci pobrane z innych rde.

Podejdziemy do sprawy kompleksowo. Moduy posiadaj waciwo,


jakiej nie maj inne skadniki Joomla! Mona je kopiowa. Na przykad
jeden modu Menu witryny [Main Menu] suy do wywietlania rnych
menu. Korzystanie z moduw pokaemy na dwch przypadkach. Modu Popularne wywietla standardowo odnoniki do najczciej przegldanych artykuw ze wskazanych kategorii. A co zrobi, gdy na rnych stronach chcemy wywietla popularne pozycje w rnych kategoriach? Na stronach dla pa popularne kapelusze dla panw i odwrotnie? Potrzebujemy dwch, a nawet trzech (milusiscy!) moduw. Rozwizanie jest banalnie proste wystarczy skopiowa modu Popularne
dwukrotnie i dostosowa parametry kadej kopii do naszych potrzeb.
Aby skopiowa modu:

Moduy witryny
W skad standardowej dystrybucji Joomla! wchodzi 30 moduw, 10 moduw zaplecza i 20 moduw witryny. Szczegowe opisy ich konfiguracji
znajdziesz w serwisie pomocy:

18

Archiwum [Archive] wywietla odnoniki do artykuw w Archiwum


uporzdkowane wg miesicy;
Banery [Banner] wywietla reklamy opublikowane w komponencie
Banery;
Bocimy [Who's Online] wywietla ilo liczb anonimowych goci i
zalogowanych uytkownikw;

wybierz w menu administratora opcj Moduy > Moduy witryny;


zaznacz pole wyboru obok nazwy moduu Popularne;
kliknij dwukrotnie przycisk Kopiuj w pasku narzdzi.

Rysunek 11. Parametry prezentacji bloga

www.sdjournal.org

Software Developers Journal Extra! 26

Kopie moduu dziaaj w oparciu o ten sam skrypt co modu-rodzic. Modu


Popularne, jak wiele innych, nie posiada wasnej treci pobiera j z rnych rde, zgodnie z ustaleniami w parametrach moduu, w tym przypadku z naszej bazy danych.

Umieszczanie moduu na stronach witryny


Moduy s skojarzone z pozycjami menu. Aby modu by widoczny na
stronach witryny, trzeba modu:

opublikowa;
przypisa do konkretnej pozycji w szablonie;
skojarzy z pozycj menu przypisa do stron generowanych przez
pozycje menu.

O pozycjach moduw piszemy szerzej w innym artykule. Tu podkrelmy


jedynie, e pozycja moduu to miejsce oznaczone w szablonie witryny albo
w artykule, przeznaczone na publikacj moduw.

Konfiguracja moduu
Konfiguracji moduw dokonujemy w specjalnych edytorach dostpnych
po wybraniu na zapleczu menu Moduy => Moduy witryny. Niekiedy potrzebne s informacje dostpne w innych czciach zaplecza. Tak jest w
przypadku moduu Popularne. Aby skonfigurowa np. modu Popularne
dla pa, przejd najpierw do menederw sekcji i kategorii i zanotuj numery ID sekcji Kapelusze oraz ID kategorii Kapelusze dla pa. Moesz spisa te ID pozostaych kategorii. Nastpnie:

wybierz w menu zaplecza pozycj Moduy > Moduy witryny;


kliknij na licie nazw moduu Popularne albo jednej z jego kopii;
ustal szczegy moduu:
tytu [Title]: Wpisz: Popularne dla Pa;
poka tytu [Show Title]: Zaznacz Tak;
pozycja [Position]: Zaznacz wybran pozycj, np. user1 lub pozostaw user2;
kolejno moduw [Module order]: Pozostaw bez zmian;
uprawnienia [Acces Level]: Pozostaw bez zmian opcj public;
publikacja [Published]: Pozostaw Tak.
w sekcji Parametry wpisz w polach:
ID kategorii [Category ID]: zanotowany wczeniej numer ID kategorii Kapelusze dla pa;
ID sekcji [Section ID]: zanotowany wczeniej numer ID sekcji Kapelusze;
w sekcji Przypisz do stron/pozycji menu zaznacz cze w menu Kapelusze dla pa.

Powtrz te czynnoci dla pozostaych dwu moduw.

Modu Migawki
Modu Migawki doskonale nadaje si do przedstawienia uytkownikom
oferty specjalnej, np. kapeluszy oferowanych w promocyjnej cenie. W
standardowych zastosowaniach modu wywietla czci wprowadzajce do artykuw wybranych losowo ze wskazanej kategorii jednej
lub kilku. Moemy jednak zaoy specjaln kategori, do ktrej bdziemy kopiowa artykuy przeznaczone do prezentacji w module Migawki.
Nazwiemy j np. Okazja! albo Promocja.
To rozwizanie bdzie miao w przypadku witryny firmowej szczeglny walor pozwoli zachowa oryginalne teksty artykuw o produktach, a w artykuach skopiowanych zmodyfikowa tre wprowadzenia w
zwizku z przeznaczeniem kapeluszy do sprzeday promocyjnej. Utwrz
zatem w sekcji Kapelusze now kategori Promocje, a nastpnie skopiuj
do niej przynajmniej jeden artyku i zmie w kopii tre wprowadzenia. W
tym celu:

wybierz w menu zaplecza pozycj Materiay =>Wszystkie artykuy;


zaznacz na licie pole wyboru przy nazwie artykuu;
kliknij przycisk Kopiuj w pasku narzdzi;
zaznacz na licie moliwoci na kolejnym ekranie nazw kategorii
Promocje;
kliknij przycisk Zapisz;
kopia artykuu pojawi si na licie jako pierwsza pozycja. Kliknij nazw artykuu i zmie w edytorze jego tre.

Dodaj jeszcze jeden krtki artyku, aby zobaczy na stronie gwnej


efekt zmian treci w module przy odwieaniu strony. Modu Migawki jest standardowo opublikowany, co oczywicie moesz dodatkowo
sprawdzi. Ale sposb ju znasz. Przejdmy na stron gwn witryny.
Nasz szkielet strony firmy Kapelusze SA jest ju bowiem prawie gotowy. Jeszcze tylko dobra szablon, doda treci...

Podsumowanie
Stworzylimy niewielk witryn firmow. Praca nad projektem pozwolia
Ci pozna najistotniejsze waciwoci Joomla! Wiesz ju, e:

Joomla! jest dynamicznym systemem zarzdzania treci. Strony s


generowane przez oprogramowanie serwera dopiero w chwili, gdy je
odwiedzasz;
w Joomla! mamy dwa podstawowe typy treci:
statyczn materiay statyczne;
dynamiczn artykuy w sekcjach i kategoriach;
udostpnianie artykuw i materiaw statycznych wymaga dodania
w menu pozycji generujcych strony. Wybr typu pozycji zaley od
celw witryny i potrzeb uytkownikw;
treci s rwnie udostpniane przez komponenty i moduy. Komponenty s zawsze prezentowane w gwnym obszarze prezentacji za
pomoc pozycji menu, moduy w pozycjach moduw ustalonych w
szablonie witryny;
aby wywietla moduy, trzeba je przypisa do pozycji szablonu i pozycji menu.

Projektujc witryn, trzeba przemyle:

Rysunek 12. Tworzenie nowej sekcji


Software Developers Journal Extra! 26

co bdzie publikowane w witrynie, a wic jakie materiay gromadzi?


jakie informacje udostpnia w artykuach i materiaach statycznych, a jakie za pomoc komponentw i moduw?
jak porzdkowa, jak pogrupowa artykuy i treci tworzone za pomoc komponentw? n

www.sdjournal.org

19

Joomla!

Instalacja Joomla!

Stefan Wajda

nstalacja Joomla! przebiega w sposb intuicyjny.


Sprowadza si do umieszczenia rozpakowanego archiwum instalacyjnego na serwerze, uruchomienia instalatora w przegldarce internetowej i odpowiedzi na kilka podstawowych pyta. Krtk instrukcj instalacji zamieszczamy wic w drugiej czci artykuu, o wiele waniejsze od przebiegu instalacji jest bowiem odpowiednie
rodowisko instalacyjne, na ktrym przede wszystkim
skupimy uwag.

dows. Najlepszym serwerem internetowym dla Joomla!


jest jednak Apache, co najmniej w wersji 1.13.19. Oczywicie, im nowsze wydanie, tym lepiej. Podanym, ale
niewykluczajcym moliwoci obsugi Joomla! jest Apache skonfigurowany z moduem mod _ rewrite. Konfiguracja taka pozwoli na korzystanie z wbudowanej w Joomla! funkcji generowania przejrzystych adresw URL. Gdy
budujemy wasny serwer, podana jest take kompilacja
Apache z mod _ security.

Wymagania instalacyjne

Serwer baz danych


i klient obsugi bazy danych

Joomla! wymaga serwera internetowego do dziaania, a


przegldarki internetowej do obsugi. Cho z zaoenia jest
programem przeznaczonym do dziaania w sieci lokalnej
i globalnej, to mona go zainstalowa take na komputerze
domowym. rodowisko serwera internetowego na komputerze domowym mona atwo stworzy za pomoc jednego z pakietw XAMPP czy pakietw przygotowanych specjalnie dla Joomla!

Oprogramowanie komputera klienta


Obsuga Joomla! wymaga jedynie komputera z dowoln
przegldark internetow. Zalecamy korzystanie z przegldarek projektowanych zgodnie ze standardami sieciowymi: Firefox, Opera, Safarii. W najmniejszym stopniu spenia te wymagania Internet Explorer, zwaszcza wczeniejsze wersje ni IE7.

Oprogramowanie
komputera serwera
Do instalacji Joomla! niezbdne s trzy programy:

serwer stron internetowych z obsug PHP Apache,


windowsowy IIS lub inny;
jzyk PHP w wersji 4.2.x lub nowszej;
serwer bazy danych MySQL w wersji 3.23.x lub nowszej.

Serwer WWW
Joomla! moe by zainstalowany niemal na wszystkich
platformach systemowych, na kadym serwerze WWW,
ktry obsuguje PHP, w tym: Linux, FreeBSD, Solaris, WinStefan Wajda [Zwiastun] jest liderem PCJ!, koordynatorem
Zespou Tumaczy i Dokumentacji akredytowanym przy Translation Work Group projektu Joomla!, wydawc witryn PCJ, autorem w peni zlokalizowanych wersji Mambo i Joomla! (MLI
MamboPL, J!PlusAdmin,) komponentw josDirectory i josResource. Spolonizowa okoo 150 rozszerze dla Joomla!, opublikowa ponad 600 artykuw powiconych wszystkim aspektom Joomla!
Kontakt z autorem: zwiastun@zwiastun.net.

20

www.sdjournal.org

Joomla! korzysta z bazy danych MySQL. Musi to by co najmniej MySQL w wersji 3.23.x. Wersje zamieszczone na naszej pytce wymagaj MySQL obsugujcego kodowanie
znakw, a wic od wersji 4.1 wzwy. Zastosowanie rozwiza umoliwiajcych korzystanie z rnych baz danych
przewidziane jest dopiero w kolejnych wersjach Joomla!
W codziennych pracach administracyjnych na pewno zdarzy si konieczno wykonania pewnych czynnoci bezporednio w bazie danych.
W takich przypadkach niezbdny jest program umoliwiajcy obsug bazy, np. phpMyAdmin bd inny. Brak klienta obsugi bazy danych powinien w zasadzie przemawia za rezygnacj z usug dostawcy. Jeli jednak rezygnacja nie wchodzi
w gr, mona zainstalowa w Joomla! komponent, ktry w razie potrzeby pozwoli obsuy problemy z baz danych z poziomu panelu administracyjnego. Trzeba si jednak liczy z
moliwoci uszkodzenia np. tabeli sesji, w wyniku czego zalogowanie si do panelu administracyjnego Joomla! nie bdzie w
ogle moliwe.
Nie naley take lekceway kwestii bezpieczestwa. Dostp do bazy danych bezporednio z zaplecza administracyjnego Joomla! niewtpliwie poziom bezpieczestwa systemu
obniy.

Ustawienia PHP
Ustawienia PHP dla Joomla! mona podzieli na podstawowe, zalecane i podane. Trzy wymagania s dla penej obsugi Joomla! niezbdne:

wczona obsuga XML;


wczona obsuga biblioteki zlib;
wczona obsuga biblioteki GD lub GD2.

Bez wczonej obsugi XML Joomla! dziaa nie bdzie.


Skrypty XML zawieraj m.in. instrukcje konfigurujce pozycje menu, komponenty, moduy, boty i szablony. Bez biblioteki zlib mona si wprawdzie oby, ale jej brak stanowi
powane utrudnienie. Zlib umoliwia kompresj i dekompresj spakowanych plikw. Jeli jej nie ma na serwerze,
wszystkie rozszerzenia trzeba instalowa z rozpakowaSoftware Developers Journal Extra! 26

nych i przesanych na serwer pakietw rdowych. Niemoliwe jest


rwnie korzystanie ze wszystkich funkcji komponentw obsugujcych plikownie czy galerie grafik. Rwnie bez biblioteki graficznej,
GD lub GD2, umoliwiajcej manipulacj obrazami, m.in. dynamiczne tworzenie miniatur, mona si posugiwa Joomla! Ale jej brak w
gruncie rzeczy powinien by czynnikiem dyskwalifikujcym serwer.
Zwaszcza e GD dostpna jest na warunkach GNU GPL pod adresem
www.libgd.org.

Wyczony tryb bezpieczny


Obsuga Joomla! wymaga PHP z wyczonym trybem bezpiecznym
[safe _ mode= OFF]. Wczony tryb bezpieczny ogranicza wykonywanie skryptw PHP, co jest uciliwe dla administratorw Joomla!
szczeglnie w okresie tworzenia zrbw witryny. Niemoliwe jest
bowiem instalowanie rozszerze komponentw, moduw, botw,
szablonw (dokadniej utworzenie katalogw niezbdnych do zainstalowania nowego skadnika).
W skonfigurowanym Joomla! wczony tryb bezpieczny stwarza
rwnie spore kopoty przy wczytywaniu plikw, tote na serwerach z
wczonym trybem bezpiecznym najlepiej nie instalowa Joomla! Szanse na przekonanie administratora, by t opcj wyczy, s raczej znikome. Nawet argument, e w PHP 6.0 safe_mode zostanie zlikwidowany nie
jest go czsto w stanie przekona do zastpienia tego wtpliwej jakoci
zabezpieczenia innymi dziaaniami. Jeli ju musimy korzysta z takiego serwera, warto poszuka w zasobach Joomla! specjalnej atki eliminujcej problemy wczonego safe_mode.

Wyczona
rejestracja zmiennych globalnych
Bezpieczestwo Joomla! wymaga ustawienia opcji register _ globals=0. Ustawienie register _ globals=1 stwarza powane zagroenia w przypadku le napisanych skryptw. Powoduje, e wszystkie zmienne wysane do skryptu tworzone s jako globalne i nadpisuj wczeniej ustalone wartoci tych zmiennych lub tworz zmienne jeszcze nieistniejce, ale wykorzystywane pniej w skrypcie. T
sytuacj mog wykorzysta nawet rednio zaawansowani rozbjnicy internetowi, aby np. oszuka procedur autoryzacji. W Joomla!
dostp do zmiennych EGCPS (Environment, GET, POST, COOKIE i Server) realizowany jest za pomoc skadni typu $HTTP _ GET _ VARS['zmienna'], tote wczanie register _ globals jest zbdne. Ponadto jej wyczenie zwiksza wydajno PHP. Rejestrowanie zmiennych globalnych mona wyczy na serwerze lokalnie, dla katalogu witryny. Wystarczy w pliku .htaccess wpisa wiersz: php _ flag
register _ globals 0.

Rysunek 1. Test przedinstalacyjny


Software Developers Journal Extra! 26

Emulacja RG
Wyczona rejestracja zmiennych globalnych bywa jednak rdem problemw w obsudze niektrych rozszerze starszej daty. Joomla! posiada na t okoliczno nieco bezpieczniejsze rozwizanie emulacj RG. Warto wszake zdawa sobie spraw, e
cho skorzystanie z emulatora RG jest nieco bezpieczniejsze ni
stae ustawienie RG na ON, to problemu nie rozwizuje. W gruncie
rzeczy moe oznacza bezpieczniejsze. Kopoty z obsug wadliwych komponentw trzeba moliwie najszybciej rozwiza, poprawiajc ich kod.

Wczone wywietlanie bdw


Moliwo poznania przyczyn bdw w dziaaniu skryptw jest administratorom Joomla! niezbdna. Wywietlanie komunikatw o bdach
zapewnia opcja display _ errors= ON.
Wczenie tej opcji stwarza jednak zagroenia! Wszak komunikaty o bdach zawieraj m.in. pene cieki do plikw, wersje oprogramowania, fragmenty zapyta SQL, ktre mona zoliwie wykorzysta. Problem jest w Joomla! rozwizany w konfiguracji globalnej mona ograniczy poziom wywietlania komunikatw o bdach lub wyczy je zupenie, a wcza jedynie na czas rozwizywania problemw. Do tego celu suy rwnie specjalny tryb diagnostyczny, ktry mona zarzdzi w konfiguracji globalnej. Domylnie jest on wyczony. Pocztkujcym administratorom zdarza si przypadkowe ustawienie tej opcji na Tak, koczce si zwykle alarmami na forum uytkownikw, ze na stronie pojawiaj si
dziwne komunikaty. No c, dziwne, e si pojawiaj, bo diagnostyk strony mona prowadzi w specjalnym trybie administracyjnym, wyczajc widoczno witryny w Sieci na czas testw i prac
konserwacyjnych.

Moliwe wczytywanie plikw


Moliwoci wczytywania plikw binarnych, wysyanych metod
POST, jest czsto dla Joomla! nieodzowna. PHP powinno wic dziaa
z wczon dyrektyw file _ uploads. Bez takiego ustawienia nie bdzie moliwe instalowanie rozszerze ani przesyanie plikw do biblioteki mediw czy innych katalogw.

Cytowanie znakw niebezpiecznych


Trzy ustawienia PHP odpowiadaj za cytowanie znakw niebezpiecznych: magic _ quotes, magic _ quotes _ gpc i magic _ quotes _
runtime. Gdy magiczne ukoniki() s wczone, wszystkie znaki apostrofu ('), cudzysowiu (), lewe ukoniki (\) oraz znaki NULL s
poprzedzane znakiem lewego ukonika (\). Takie ustawienie chroni Joomla! przed atakami typu SQL Injection [wstrzykiwania zapyta SQL] w przypadkach, gdy programista zapomni gdzie przefiltrowa dane przesyane przez uytkownikw w formularzach. Wczenie opcji magic _ quotes _ gpc powoduje, e PHP automatycznie dodaje lewy ukonik do wszystkich operacji posugujcych si zmiennymi z tablic superglobalnych [POST, GET COOKIE], wykonujc wczeniej funkcj addslashes().
Dyrektywa magic _ quotes _ runtime natomiast ma wpyw tylko na niektre funkcje wykonujce operacje addslashes() i na niektre ich niewykonujce. W efekcie jej wczenia wikszo funkcji, ktre
zwracaj dane z dowolnych zewntrznych rde, wcznie z danymi
z baz danych i plikw tekstowych, bdzie zwracaa dane z apostrofami i cudzysowami poprzedzonymi znakiem lewego ukonika (\) funkcje wykonujce operacj addslashes() to file(), file _ get _ contents(), fread(), fgets(); a niewykonujce to readfile(), parse _
ini _ file(), fgetss(), fgetc(), fgetcsv(), fscanf().

www.sdjournal.org

21

Joomla!

Buforowanie danych wyjciowych


Opcja output_buffering domylnie jest w ustawieniach PHP, zgodnie z zaleceniami dla Joomla!, wyczona. Jej wczenie spowoduje, e adna informacja z serwera nie zostanie wysana do przegldarki do momentu zakoczenia skryptu. Spowoduje to np. wysaniem nagwka dokumentu wynikowego, zanim zostan wysane ciasteczka [cookies]. Joomla! bdzie dziaa poprawnie zarwno przy wczonym, jak i wyczonym buforowaniu danych wyjciowych.

Automatyczny start sesji


HTTP, jak zapewne wiesz, jest protokoem bezstanowym. Dopki
mamy do czynienia z anonimowymi uytkownikami witryny, dopty nie ma znaczenia, jak jest ustawiona zmienna session _ auto _
start . Ale w przypadku uytkownikw zalogowanych, a zwaszcza
administratorw, niezbdny jest mechanizm ledzenia zachowa
uytkownika.
Identyfikator sesji moe by przechowywany w plikach cookies lub przekazywany przez URL. Ustawienie session _ auto _ start=0" automatycznie rozpoczyna sesj i dlatego jest podane. Alternatywnie moe by ustawiona na ON zmienna session.use _ cookies setting Jeli ustawione bd session _ auto _ start= ON" albo jeli zmienna session.use _ cookies setting="OFF", nie bdzie moliwe zalogowanie si do witryny ani do
panelu administracyjnego. Naley je skorygowa. W drugim przypadku konieczne jest odpowiednie skonfigurowanie przegldarki
uytkownika, ktra musi dopuszcza moliwo zapisywania ciasteczek.

Ustawienia podane
odtwarzanie plikw na serwerze

Tote chocia ustawienie allow _ url _ fopen= ON jest przyjazne, specjalici od bezpieczestwa Joomla! przekonuj do ustawienia bezpieczniejszego: allow _ url _ fopen= OFF. Ze wzgldw bezpieczestwa wczenie i wyczenie tej funkcji jest moliwe tylko w
pliku php.ini.

Maksymalny rozmiar przesyanych plikw


Dwa ustawienia decyduj o dopuszczalnych rozmiarach plikw przesyanych na serwer: upload _ max _ file _ size: okrela maksymalny dopuszczalny rozmiar wczytywanych plikw, post _ max _ size :
okrela maksymalny rozmiar danych przesyanych metod POST. Odpowiednie ustawienie zaley od potrzeb witryny. Standardowo administratorzy zezwalaj na wczytywanie plikw o rozmiarach do 8 MB.
Jeli nasze potrzeby s wiksze, trzeba poprosi o podwyszenie tej
wartoci.
Warto dla post _ max _ size powinna by wiksza ni dla upload _ max _ file _ size, np. o 1, a warto memory _ limit powinna by
jeszcze wiksza.

Czas wykonywania skryptw


Maksymalny czas wykonywania skryptw ustawiany jest standardowo max _ execution _ time =30. Jeli po upywie tego czasu skrypt nie zostanie wykonany, jego dziaanie jest przerywane.
Owe 30 sekund jest ustawieniem wystarczajcym, chroni przed
blokowaniem serwera przez le napisane skrypty. Jeli ustawienie to staje si powodem bdu, naley odszuka wadliwy skrypt i
albo go poprawi, albo zrezygnowa z niego, zastpujc innym rozwizaniem.

Czas oczekiwania na przesanie danych

Ustawienie allow _ url _ fopen wcza moliwo wykorzystania funkcji fopen(), aby uzyska dostp do plikw na dysku lokalnym serwera przez podanie adresu URL z wykorzystaniem protokow HTTP i FTP, znajdujcych si na zdalnych serwerach. Ustawienie to moe by jednak wykorzystane w ataku na serwer. Powoduje
ono, e w funkcjach takich jak fopen(), include(), require() mona
uywa adresw URL jak plikw, co moe prowadzi do wielu problemw: wama do serwisu, blokady serwera WWW czy znacznego spowolnienia odczytywania strony. Jeli allow _ url _ fopen
zostanie wyczone, niemoliwa bdzie m.in. automatyczna aktualizacja rozszerze posiadajcych tak opcj. Ale bez tego uatwienia mona si obej.

Maksymalny czas oczekiwania na przesanie strumienia danych


ze rda zaley od ustawienia default _ socket _ timeout. Najczciej spotykanym jest ustawienie default _ socket _ timeout=0. Jeli ustawienie to stwarza problemy, mona zwrci si do
administratora z prob o modyfikacj na default _ socket _ timeout=30.

Krtkie znaczniki
Ustawienie short _ open _ tag decyduje o rozrnianiu w skryptach skrconej formy znacznikw otwierajcych <? zamiast
<?php.
Poniewa Joomla! uywa PHP w poczeniu z XML, opcja ta winna by wyczona [short _ open _ tag= OFF]. Zdarza si wszake, e na wielu serwerach jest wczona. W efekcie mog pojawia
si rnego typu bdy, w przypadkach, gdy PHP napotka skrcone
znaczniki otwierajce.
Wykonywanie skryptu jest zatrzymywane, a niekiedy wywietlany jest rwnie kod skryptu. Jeli proba do administratora o
zmian tego ustawienia nie przyniesie rezultatu, nie ma co wpada
w panik. Wystarczy przejrze skrypty rozszerzenia, ktre sprawia kopoty, wyszuka w nich sekwencje <? i zastpi je tekstem <?php.

Instalujemy!

Rysunek 2. Test przedinstalacyjny krok 1

22

d formularza;
rda na serwer.

Skorzystaj z klienta FTP lub SSH, aby przesa rozpakowany pakiet instalacyjny na serwer.
www.sdjournal.org

Software Developers Journal Extra! 26

Rozpakowanie pakietu rdowego

Wybr jzyka i wyniki testu

Pakiety rdowe to archiwa spakowane dla Windows programem WinZip, co sygnalizuje rozszerzenie .zip, a dla Linuksa archiwizerem tap
archive i kompresorem gzip, co sygnalizuje rozszerzenie .tar.gz. Archiwum zawiera:

Tej opcji w wydaniu oficjalnym nie ma. Jzyk witryny mona w wydaniu oficjalnym skonfigurowa dopiero po zakoczeniu instalacji. W
umieszczonym na pytce wydaniu Joomla International Edition moesz wybra jzyk polski lub angielski. Wymagania rodowiska instalacyjnego scharakteryzowalimy dokadnie wczeniej. Jeeli ktre
z rozpoznanych ustawie wywietlane jest w kolorze czerwonym, a
moesz je poprawi, uczy to teraz. Czasem dostawcy usug internetowych umoliwiaj lokaln modyfikacj globalnych ustawie serwera za pomoc pliku .htaccess. Moesz zignorowa komunikat ostrzegawczy, e plik konfiguracyjny jest niezapisywalny [ang. unwritable]. W ostatnim kroku instalator wywietli wszystkie zmienne konfiguracyjne. Skopiujesz je, wkleisz do pliku configuration.php, a nastpnie przelesz na serwer. Jeli niezapisywalny jest katalog tymczasowy, sprbuj zaoy katalog /tmp w gwnym folderze Joomla! i ustawi mu prawa dostpu na 707. Powinno wystarczy. W przeciwnym przypadku zwr si o rozwizanie problemu do administratora serwera. Instalacja bez moliwoci zapisywania w katalogu tymczasowym raczej si nie powiedzie. Zwr uwag na prawa do plikw
i katalogw. W trakcie instalacji Joomla! do adnego z tych katalogw
niczego nie zapisuje, wic instalacja o ile nie wystpi inne problemy, przebiegnie pomylnie. Niemniej po instalacji prawa do plikw
musz by skorygowane.

wszystkie skrypty rdzenia Joomla! umieszczone we waciwych


katalogach;
skrypty instalatora, umieszczone w katalogu /installation.

Do rozpakowania pakietu potrzebujesz np. programu 7Zip, wydanego na zasadach GNU/LGPL. Moesz go pobra bezpatnie z polskiej lustrzanej strony projektu: http://www.7zip.org/pl.

Umieszczenie plikw na serwerze


Jeli chcesz zainstalowa Joomla! na swoim komputerze, to pakiet
rdowy naley rozpakowa:

Windows: zwykle w katalogu:


talogu _ dla _ joomla ;
Linux: zwykle w katalogu
dla _ joomla.

C:\Apache\htdocs\ _ nazwa _ ka/var/www/ _ nazwa _ katalogu _

Jeli bdziesz przesya rda na zdalny serwer, umie rozpakowane archiwum w specjalnie zaoonym katalogu. Do przesania plikw
rdowych na zdalny serwer potrzebny jest klient FTP. Po przesaniu
plikw na serwer, sprawd wyrywkowo, czy klient FTP nie zmieni wielkoci znakw w nazwach plikw.

Uruchomienie instalatora
Instalacj Joomla! odbywa si za pomoc dowolnej przegldarki internetowej. Proces instalacji jest intuicyjny. Wszystkich niezbdnych instrukcji udzieli Ci instalator. Aby rozpocz instalacj Joomla! na odlegym serwerze WWW, w pasku adresu przegldarki internetowej wpisz
adres internetowy swojej domeny: http://twojastrona.com/ lub http:/
/twojastrona.com/folder_z_joomla/, gdy pliki z pakietu instalacyjnego
zostay umieszczone w podkatalogu. Aby rozpocz instalacj Joomla! na komputerze domowym lub w sieci lokalnej, wpisz w pasku adresu
przegldarki internetowej adres: http://localhost/twoj _katalog_Joomla
lub http://xxx.xxx.xxx.xxx/twoj _katalog_Joomla/, gdzie xxx.xxx.xxx.xxx
to IP serwera sieciowego. Znajdziesz si na stronie testowej wygenerowanej przez Joomla! Tre strony testowej w wydaniach zmodyfikowanych moe si nieco rni od widocznej w wydaniu oficjalnym.

Licencja
Gdy klikniesz przycisk Dalej, zostanie wywietlona licencja GNU
GPL okrelajca warunki korzystania z Joomla! Zapoznaj si z tekstem licencji i zakceptuj j. Jeli nie zgadzasz si z warunkami korzystania z Joomla!, przerwij instalacj. W polskiej wersji instalatora zamieszczone jest nieoficjalne tumaczenie licencji GNU GPL.
Nieoficjalne, bo nie zostao ono opublikowane przez Free Software Foundation, nie jest wic dokumentem prawnym. T rol spenia jedynie oryginalny angielski tekst licencji. Tekst w jzyku polskim znalaz si w Instalatorze gwnie dlatego, aby kady, kto instaluje Joomla! rozumia licencj. W standardowej wersji Joomla! nie ma pola akceptacji licencji. Nie szukaj go. Po prostu przejd
Dalej. Rozpocznie si instalowanie Joomla zakadanie bazy danych lub tylko tabel, gdy baza ju istnieje, oraz stworzenie i zapisanie pliku konfiguracyjnego. Std nawet jeli instalacja si nie powiedzie, to atwo mona przeprowadzi j rcznie. Ale najpewniej
si powiedzie!

KROK 1 konfiguracja MySQL


Podaj przygotowane wczeniej informacje o bazie danych:

Rysunek 3. Test przedinstalacyjny krok 3


Software Developers Journal Extra! 26

Nazwa hosta [Host Name]: zwykle wystarczy wpisa localhost.


Czasem trzeba poda adres internetowy komputera, na ktrym
umieszczona jest baza. Dowiesz si wwczas o tym od administratora serwera;
Uytkownik MySQL [MySQL User Name]: wpisz nazw swojego konta uytkownika bazy danych, wasn lub podan przez administratora serwera;
Haso uytkownika MySQL [MySQL Password]: wpisz haso do bazy
danych, zwykle podane przez administratora serwera lub stworzone przy zakadaniu bazy;
Nazwa bazy danych MySQL [MySQL Database Name]: wpisz nazw
bazy danych;
Przyrostek nazw tabel MySQL [Prefix MySQL table]: domylnie wpisany jest przyrostek _jos. Jeli to pierwsza instalacja, pozostaw
go. Wielu dostawcw udostpnia wacicielowi konta tylko jedn

www.sdjournal.org

23

Joomla!

Pakiety instalacyjne Joomla!


Znajduj si na doczonej pytce. Najlepiej skorzysta z wersji w kodowaniu utf8. Z
witryny www.joomla.pl mona pobra najaktualniejsz wersj pakietu instalacyjnego, take do wykorzystania na serwerach, na ktrych uywany jest jeszcze MySQL
w wersji niszej ni 4.1.

baz. W takim przypadku trzeba odrni nazwy tabel dla kolejnych instalacji Joomla! odmiennym przyrostkiem. Jeli w tej samej bazie masz ju tabele z wczeniejszej instalacji, moesz zmieni przyrostek na inny. Nie moe to by jedynie old _ . Instalator oznacza nim archiwizowane tabele
Jeli wczeniej ju prbowae instalowa Joomla!, moesz wybra
opcje:

Usu istniejce tabele [Drop existing tables?] usunitych tabel


nie odzyskasz;
Zarchiwizuj tabele [Backup Old Tables] istniejcym tabelom instalator zmieni nazwy, dodajc przyrostek old _ .To bezpieczne
rozwizanie;
Instaluj przykadowe dane [Install Sample Data]; zaznacz, jeli nie
masz dowiadcze z Joomla;
kliknij polecenie Dalej [Next].

Instalator poprosi Ci o potwierdzenie, e wprowadzie poprawne dane, a nastpnie podejmie prb zaoenia bazy danych lub tylko przesania danych, jeli baza ju istnieje. W tym kroku mog zdarzy si
bdy. Zostaniesz o tym poinformowany odpowiednim komunikatem.
Przeczytaj dokadnie, jakie zdarzyy si bdy, usu ich przyczyn i
sprbuj wznowi instalacj.

KROK 2 Nazwa witryny


Po pomylnym utworzeniu bazy danych, ukae si strona, na ktrej
wprowadzisz tylko nazw witryny.

Nazwa witryny [Site name]: nazwa bdzie wywietlana w pasku


nagwkowym przegldarki internetowej, wykorzystywana jest
jako nazwa adresata w poczcie elektronicznej rozsyanej z witryny, a take w innych miejscach. Mona j w kadym momencie
zmodyfikowa w konfiguracji globalnej witryny;
kliknij przycisk Dalej [Next];

znakw, ale standardy bezpieczestwa mwi, e hasa powinny skada si co najmniej z 8 znakw. Instalator generuje losowe haso. Jeli je pozostawisz, instalator przypomni je na zakoczenie;
Twj email [Your email]: wpisz swj adres poczty elektronicznej (gwnego administratora). Na ten adres bdzie przekazywana bdzie poczta przychodzca do witryny. Adres mona pniej
zmieni w konfiguracji witryny;
kliknij przycisk Dalej [Next].

Jeeli adres witryny i cieka fizyczna wygldaj poprawnie nie


zmieniaj ich. Wartoci wygenerowane przez Instalatora s zwykle
prawidowe i gwarantuj waciwe dziaanie witryny. Gdyby jednak
pojawiy si problemy, skontaktuj si ze swoim dostawc usug internetowych. Hasa bdziesz uywa do logowania si na konto
gwnego administratora. Pamitaj, e odpowiednie haso stanowi
o bezpieczestwie witryny. Jeli wybierzesz haso atwe do odgadnicia, miej pewno, e wczeniej czy pniej kto wamie si na
zaplecze i wyrzdzi Ci niepowetowane straty.

Prawa do katalogw i plikw


Zgodnie z komunikatem ekranowym, jeli nie masz w tej mierze dowiadczenia, pozostaw ustawienia domylne. Prawa te zawsze mona
modyfikowa, korzystajc z funkcji zaplecza administracyjnego.

KROK 4 nie tylko gratulacje


Jako ostatni pojawi si ekran z gratulacjami, e oto zainstalowae swojego Joomla! Znajdziesz tu rwnie szczegy logowania
administratora oraz przyciski umoliwiajce uruchomienie witryny lub zaplecza. Instalator przypomni Ci, e przed uruchomieniem
witryny naley usun katalog instalacyjny. Ale raczej wstrzymaj si z tym dziaaniem. Wystarczy, e zmienisz nazw katalogu. Usuniesz go, gdy na pewno nie bdzie Ci ju potrzebny. Wszak
po zainstalowaniu Joomla! z przykadowymi danymi i zapoznaniu si z moliwociami moesz chcie przeprowadzi ponown
instalacj z czyst baz danych. Jeli jednak nie usuniesz katalogu instalacyjnego i nie zmienisz jego nazwy, witryny nie da si
uruchomi, zostanie wywietlone wezwanie do usunicia katalogu /installation. Zanotuj swoj nazw uytkownika (username) i
swoje haso.

Wybierz Witryna [Site], aby zobaczy stron frontow;


Wybierz Zaplecze [Administrator], aby zarzdza witryn.

KROK 3 podstawowe dane konfiguracyjne


Ukae si ekran, w ktrym wprowadzasz dane administratora oraz
zatwierdzasz ciek wirtualn, czyli adres URL strony i ciek fizyczn (absolutn), czyli do katalogu zawierajcego pliki instalacyjne. Moesz tu rwnie ustali prawa dostpu do plikw i katalogw:

24

Adres URL [Site URL]: instalator sam wygeneruje odpowiedni wpis,


nie zmieniaj go;
ieka absolutna [Path]: instalator rwnie sam wygeneruje wpis.
Nie zmieniaj go;
Uytkownik [Username]: wpisz swj login nazw uytkownika.
Jeli instalator wpisze w tym polu domylnie sowo admin, zmie
je koniecznie;
Haso administratora [Admin password]: wpisz swoje haso. Powinno by zoone z liter i cyfr. Joomla! wymaga co najmniej 6

Rysunek 4. Test przedinstalacyjny krok 4

www.sdjournal.org

Software Developers Journal Extra! 26

Gdy pojawi si problemy


W sprzyjajcych okolicznociach instalacja Joomla! przebiega bezproblemowo. Gdy jednak zdarz si problemy instalator si nie
uruchamia. Jeli nie widzisz strony testowej instalatora Joomla!,
sprawd dokadnie:

czy wszystkie pliki zostay przesane na serwer;


czy podczas transferu plikw klient FTP nie zmieni ich nazw;
czy poprzednia witryna zostaa usunita lub spakowana;
czy rzeczywicie dysponujesz serwerem Apache z obsug
MySQL i PHP;
czy w gwnym katalogu nie masz przypadkiem starego pliku configuration.php.

Jeli po naprawie ewentualnych usterek nadal nie widzisz strony instalatora, wpisz w pasku adresu przegldarki http://
twojastrona.com/installation/index.php. To bezporedni adres do
skryptu instalacyjnego. Gdy i to nie pomoe, to prawdopodobnie
masz niepoprawnie skonfigurowany serwer Apache lub PHP. Skonsultuj si w takim przypadku ze swoim usugodawc internetowym albo zapoznaj si z dokumentacj zainstalowanego przez siebie serwera.

Kopoty z baz danych


Na komputerze lokalnym w domu lub sieci firmowej instalator
sam zakada baz danych. Moe si jednak zdarzy, e bez wczeniejszego zaoenia bazy, instalacja nie powiedzie si. Jak zaoy baz danych, dowiesz si z artykuu umieszczonego w serwisie pomocy, pod adresem: www.pomoc.joomla.pl/content/view/
437/51.
Przetestowalimy pliki kwerend wielokrotnie i dokadnie. Nie powinny si wic przydarzy adne niespodziewane sytuacje. Gdyby jednak
tak si stao, najlepiej sprawdzi za pomoc programu typu phpMyAdmin,
czy instalator poradzi sobie z usuniciem starych tabel bazy danych. Jeli nie, naley je usun rcznie.
Listing 1. Instalacja rczna
$mosConfig_absolute_path='/sciezka/joomla'; podaj ciek
fizyczn bez ukonika na kocu!
$mosConfig_live_site='http://domena.com';

wpisz adres

witryny bez ukonika na kocu!


$mosConfig_host='localhost'; podaj adres serwera bazy
danych MySQL, np. 'localhost'
$mosConfig_user='twojaNazwa';

wpisz nazw uytkownika

bazy danych MySQL


$mosConfig_password='twojeHaslo'; wpisz haso do bazy
danych MySQL
$mosConfig_db='nazwaBD'; wpisz nazw bazy danych MySQL
Do pliku data.sql, ktry znajdziesz w katalogu
instalacyjnym, dodaj nastpujce instrukcje:
INSERT INTO mos_users VALUES (62, 'Administrator', 'admin',
'twoj@adres.net ', '21232f297a57a5a743894a0e4a801fc3'
, 'Super Administrator', 0, 1, 25, '20050101
00:00:00', '00000000 00:00:00', '', '');
IN_SERT INTO `mos_core_acl_aro` VALUES (62,'users','62',0,'
Administrator',0);
IN_SERT INTO `mos_core_acl_groups_aro_map` VALUES
(25,'',62);

Software Developers Journal Extra! 26

Stwrz testowe rodowisko dla Joomla!


za pomoc jednego z poniszych pakietw:

XAMPP (wszystkie platformy): www.apachefriends.org;


VertigoServ (Windows): http://vertrigo.sourceforge.net;
WAMP (dla Windows): http://webserv.pl ;
XJ! (XAMPP z Joomla!): http://joomlaos.de.

Prawa dostpu
Przyczyn najczstszych problemw podczas instalacji Joomla! s
niepoprawnie ustawione prawa dostpu do plikw i katalogw. Gdy
zobaczysz zowrogo brzmicy komunikat Permission denied, z ca
pewnoci chodzi o to, e Instalator nie ma nawet prawa do odczytu. Skontaktuj si z administratorem serwera, popro, by sprawdzi, czy poprawnie ustawione s prawa wasnoci katalogw i plikw (instalatorowi wystarczy prawo czytania w gwnym katalogu
Joomla! i w katalogu /installation, Joomla! wymaga praw do wszystkich katalogw ustawionych na 755, a do plikw w gwnym katalogu na 644).
Podpowiedzi znajdziesz w artykuach w witrynie pomocy: Ustaw
prawa dostpu (www.pomoc.joomla.pl/content/view/439/51/) i Ustawianie praw dostpu z powoki systemu (www.pomoc.joomla.pl/
content/view/440/51/).

Operacja pomylna, ale pacjent


Tak rwnie moe si zdarzy wszystko przebiegnie pomylnie, a zamiast witryny w przegldarce zostanie wywietlona czysta biaa jak
nieg strona. Przyczyny trzeba wwczas poszuka spokojnie w pliku
konfiguracyjnym. Przede wszystkim sprawdzi, czy plik moe by odczytywany. A jeli tak, trzeba przejrze jego zawarto. Moe np. niepoprawnie zostaa rozpoznana cieka fizyczna czy niepotrzebnie dodany znak ukonika na kocu adresu URL witryny. Moe by to bd w
nazwie bazy danych czy jej lokalizacji. Szczegowe omwienie treci
pliku konfiguracyjnego znajdziesz zarwno w pakiecie instalacyjnym,
w pliku nazwanym configuration.phpdist, jak i w witrynie www.pomoc.joomla.pl

Instalacja rczna
W wyjtkowych sytuacjach jeli np. serwer WWW pracuje w bezpiecznym trybie [safe _ mode= ON] albo pojawiaj si podczas instalacji inne problemy mona sprbowa rcznej metody instalacji.
Jest nieco kopotliwsza, ale niezbyt skomplikowana. Trzeba wykona
dwie czynnoci (oczywicie, poza przesaniem plikw na serwer) zaoy baz danych i przynajmniej jej struktur pliki kwerend znale mona w katalogu /installation pakietu instalacyjnego. Trzeba je
wyedytowa i zastpi cig znakw # _ _ przyrostkiem nazw tabel
bazy danych oraz doda zapytania tworzce konto gwnego administratora, umieci podstawowe dane konfiguracyjne w pliku configuration.php i zapisa go w gwnym katalogu Joomla! na serwerze. Jeli bdziesz zmuszony zainstalowa Joomla! rcznie, pozostaw domylne ustawienia w pliku konfiguracyjnym configuration.phpdist
bez zmian, poza nastpujacymi:(Listing 1). Stworzy ona konto administratora z nazw admin i hasem admin. Po pierwszym logowaniu
trzeba je oczywicie zmieni.
Rczna instalacja Joomla! zostaa opisana w artykule Nietypowa
instalacja, ktrego zapewne nie bdziesz szuka pod adresem http:/
/www.pomoc.joomla.pl/content/view/435/51/ , bo nie powinien Ci by
potrzebny. n

www.sdjournal.org

25

Joomla!

Micha Sobkowiak

Tworzymy szablon

oomla! posiada wygodny sposb tworzenia szablonw. Kady, kto posiada odrobin znajomoci HTML
i CSS, powinien sobie z tym poradzi. Szablony su do
nadania wygldu treciom zarzdzanym przez Joomla! Rozdzielenie (w duym stopniu) mechanizmw zarzdzajcych
i generujcych tre od mechanizmw jej prezentacji pozwala na stworzenie dowolnie wygldajcej witryny. Szablon, ktry bdziemy wsplnie budowa, bdzie oparty na najczciej
spotykanym w Iinternecie trzykolumnowym ukadzie treci.
Kady ukad treci jest moliwy, lecz wybraem ten, poniewa w odniesieniu do innych, cho trudniejszych do wymylenia, jest zwykle bardziej skomplikowany w realizacji. Nasz
szablon nie bdzie uywa do tworzenia struktury strony tabel i bdzie zgodny z zaleceniami W3C dotyczcymi poprawnoci HTML i CSS. Bdzie te sprzyja dobremu pozycjonowaniu witryny poprzez umieszczenie gwnej treci na samym
pocztku dokumentu. Dostp do szablonw w Joomla! uzyskujemy poprzez wybranie Witryna>Szablony >Szablony
witryna na zapleczu Joomla! System pozwala wybra szablon
domylny, przypisa inny szablon do wybranych pozycji menu oraz zmieni tre obydwu gwnych dokumentw szablonu. Szablony s przechowywane w oddzielnych katalogach
w katalogu /templates.

Zobaczmy, jakich
znacznikw uywa Joomla!
mwi Joomla!, z jakim rozszerzeniem ma
do czynienia. Informacja ta jest podana za pomoc atrybutu type="" w przypadku szablonw bdzie to "template",
a cay wpis bdzie mia posta: <mosinstall type=
"template"></mosinstall>. Wewntrz tego znacznika podamy wszystkie informacje potrzebne systemowi do zainstalowania szablonu.
<mosinstall>

<name> zawiera nazw szablonu wywietlan na zapleczu

<creationDate> data utworzenia (wywietlana na zaple-

<author> imi i nazwisko lub pseudonim autora (wywie-

<copyright>Licencja szablonu np. GNU/GPL (szczeglnie

Joomla! na licie szablonw;

czu Joomla! na licie szablonw);

tlany na zapleczu Joomla! na licie szablonw);

Runda I. Przygotowania
Do stworzenia szablonu bdziemy potrzebowa kilka plikw
i dwa katalogi, wyczajc katalog, w ktrym go umiecimy.
Podstawowy plik szablonu odpowiedzialny za dobre kontakty z Joomla! to index.php, znajdujcy si w gwnym katalogu
szablonu. Za zarzdzanie ochami i achami, czyli cz prezentacyjn, odpowiada natomiast plik template_css.css. Do kompletu plikw podstawowych potrzebujemy jeszcze pliku, ktry powie Joomla!, co to za szablon, poda informacje o autorze i powie, jakie pliki zainstalowa. Zaczniemy od ostatniego
z nich, templateDetails.xml, poniewa w nim wanie jest zarysowana struktura szablonu.
Po rozszerzeniu pliku mona si spodziewa, e bdzie
on formatowany wedug zasad XML (Rozszerzalnego Jzyka Znacznikw), i tak jest w istocie. Oznacza to w praktyce, e
moemy w nim umieci dowolne znaczniki wedug pewnych
prostych regu skadni. Podstawowymi zasadami i jedynymi,
ktre nas bd interesowa, s: obowizek zamknicia kadego znacznika (<znacznik> </znacznik> lub jeli dany
znacznik nie posiada elementw wewntrznych skrtowo:
Autor jest koordynatorem do spraw Promocji i Kontaktw Polskiego Centrum Joomla!, tumaczem akredytowanym przy midzynarodowym projekcie Joomla!, projektantem WWW, autorem Techniki EM projektowania w peni skalowalnych szablonw dla Joomla!
Kontakt z autorem: viking@joomla.pl

26

oraz zasada tworzenia znacznika zakazujca


uycia w jego nazwie odstpw (spacji).
<znacznik />

www.sdjournal.org

dla innych licencji naley poda odwoanie do penej treci


licencji np. w pliku doczonym do szablonu ewentulanie
poprzez adres internetowy);
<authorEmail> email autora (doczany do nazwy autora za pomoc odsyacza mailto: na zapleczu Joomla! na
licie szablonw);
<authorUrl> adres internetowy autora (wywietlany na
zapleczu Joomla! na licie szablonw);
<version> wersja (wywietlana na zapleczu Joomla! na licie szablonw);
<description> opis szablonu (wywietlany w trakcie instalacji);
<files> znacznik obejmujcy pliki znajdujce si w katalogu gwnym szablonu;
<images> znacznik obejmujcy grafiki szablonu znajdujce si w katalogu /images szablonu;
<css> znacznik obejmujcy grafiki szablonu znajdujce
si w katalogu /images szablonu.

Jak mona zobaczy na listingu 1, poza znacznikami na samym


pocztku dokumentu znajdziemy rwnie okrelenie wersji
XML i kodowania znakw w nim zawartych: <?xml version=
"1.0" encoding="utf8"?>.

template_css.css
To plik typu CSS, czyli arkusz stylw kaskadowych. Suy do
okrelenia wygldu elementw skadowych oraz ich relacji w
przestrzeni. Arkusz stylw to innymi sowy zapis waciwoci stylistycznych rnych elementw. Wielu autorw zapomina zazwyczaj o ostatnim czonie nazwy. Zwykle kaskadowo tumaczona jest w odniesieniu do kolejnoci dokumentw okrelajcych atrybuty danego elementu na zasadzie
Software Developers Journal Extra! 26

stworzymy miejsca dla ich umieszczenia. Bdziemy potrzebowa miejsca na tre gwn, nagwek i stopk, praw oraz lew kolumn.

Listing 1. Arkusz stylw


#szukaj { position: absolute;
top: 10px;

index.php, czyli tre

left: 50%;

Plik generuje kod (X)HTML, ktry zostanie wywietlony przez przegldark, kiedy zajrzy na nasz stron. Na samym pocztku okrelimy typ i kodowanie pliku (bd si wic tu stosoway opisane wczeniej reguy zamykania znacznikw) oraz typ dokumentu przechowywanego w pliku:

marginleft: 125px;
padding: 6px 3px 3px 3px;
border: 1px dotted #700;
bordertop: 0;
background: #900}

strumienia wodospadu, od arkusza przegldarki poczwszy, przez arkusze zewntrzne (w odniesieniu do dokumentu (X)HTML, czyli takie, jak
nasz plik), a po style zdefiniowane w dokumencie. Jest to niezbyt dokadne wyjanienie, ta sama zasada dotyczy rwnie stylw w pojedynczym arkuszu.
Elementy stylizowane na pocztku mog zosta dookrelone w dalszej czci arkusza. Jeli zdefiniujemy czcionk dla nadrzdnego elementu, nie musimy jej w caoci definiowa ponownie dla elementw
podrzdnych, zmienimy w razie potrzeby tylko ten atrybut, ktry nam
bdzie potrzebny. Dlatego moemy mwi o wodospadzie stylu rozdzielanym na pojedyncze strumienie za pomoc nastpujcych po sobie definicji, tak jak strumie kaskady jest rozbijany przez gazy na mniejsze
strumienie. Przy takim rozumieniu kaskadowoci stylw staje si jasne,
e naley najpierw zdefiniowa style oglne a nastpnie coraz bardziej je
uszczegawia. Wynikiem takiego podejcia s krtsze i bardziej zrozumiae arkusze stylw.

index.php
Suy do przekazania Joomla!, w jakim otoczeniu umieci poszczeglne elementy treci. Plik ten jest zwykle napisany w (X)HTML z krtkimi wstawkami kodu PHP. Znajomo jzyka PHP nie jest konieczna, elementy potrzebne do stworzenia szablonu s atwe do zrozumienia i zapamitania:

suy do wskazania, w ktrym miejscu umieci informacje o dokumencie, takie jak autor, sowa kluczowe, opis witryny dla wyszukiwarek. Element ten umieszczamy wewntrz znacznika <head>;
<?php if ( $my>id ) { initEditor(); } ?> przydatny, jeli
chcemy uywa edytora artykuw nie tylko od strony zaplecza, lecz
rwnie od strony witryny:
<?php require ("mainbody.php"); ?> umieszcza gwn tre;
<?php mosLoadModules (nazwa _ obszaru , styl ); ?> suy do umieszczenia moduw przypisanych do okrelonego obszaru
(pozycji moduw). Dostpne s nastpujce style:
(wywietla czyst tre moduu, bez nazwy moduu);
(wywietla tre moduu ujt w pojedynczy znacznik <div> opatrzony klas moduletable, przed treci moduu wywietla jego nazw w znaczniku <h3>);
(wywietla tre moduu ujt w cztery znaczniki <div> pierwszy z
nich jest opatrzony klas module, wywietla nazw moduu w znaczniku <h3> przed treci moduu);
<?php mosShowHead(); ?>

<?php

require(

<?php echo <?xml version="1.0" encoding="utf8"?>; ?>

(musi zosta wpisany poprzez komend PHP ze wzgldu na uycie


tych samych nawiasw);

<!DOCTYPE html PUBLIC "//W3C//DTD XHTML 1.0 Transitional


//EN"

dtd">.

Pliki (X)HTML skadaj si z dwch gwnych elementw zamknitych w


znaczniku <html>:

<head> gdzie podane s informacje o dokumencie, doczonych sty-

<body> gdzie znajduje si tre dokumentu.

lach i skryptach;

W znaczniku <head> okrelimy, po pierwsze, typ i kodowanie dla dokumentu, dla uniknicia problemw takie samo jak XML. Nastpnie kaemy
Joomla! wstawi informacje o treci oraz w tym samym nawiasie php zainicjujemy edytor:<?php mosShowHead(); if ( $my>id ) { initEditor(); } ?>. Teraz pozostaje nam wywoa nasz arkusz stylw i okreli adres ikony witryny. W <body> moemy wreszcie okreli miejsce na
nagwek, tre kolumny i stopk. Kad z tych czci umiecimy wewntrz znacznika <div>, nadajc mu odpowiedni identyfikator (pamiListing 2. Typowa zawarto pliku templateDetails.xml
<?xml version="1.0" encoding="utf8"?>
<mosinstall type="template">
<name>Kapelusze</name>
<creationDate>13/08/2007</creationDate>
<author>Michal Viking Sobkowiak</author>
<copyright>GNU/GPL see license.php</copyright>
<authorEmail>michal@joomlagarden.com</authorEmail>
<authorUrl>www.joomlagarden.com</authorUrl>
<version>1.0</version>
<description>Szablon przygotowany dla wydania
PHPSolutions </description>
<files>
<filename>index.php</filename>
<filename>template_thumbnail.png</filename>
</files>
<images>
<filename>images/grafika_1.png</filename>
<filename>images/grafika_n.png</filename>

$GLOBALS['mosConfig _ absolute _ path'].'/

</images>

includes/footer.php' ); ?> umieszcza stopk.

<css>
<filename>css/template_css.css</filename>

Runda II. Ukad strony


Zajmiemy si teraz utworzeniem ukadu strony. Nie bdziemy na razie
umieszcza elementw treci generowanych przez Joomla!, a jedynie
Software Developers Journal Extra! 26

"http://www.w3.org/TR/xhtml1/DTD/xhtml1transitional.

</css>
</mosinstall>

www.sdjournal.org

27

Joomla!

tajmy, e identyfikator nie moe si powtarza w treci dokumentu, ma


identyfikowa, wic musi by jednoznaczny).
Poniewa ze wzgldu na sposb dziaania wyszukiwarek, chcemy,
eby tre gwna bya jak najbliej pocztku dokumentu, umiecimy
j przed kolumnami i stopk. A e nagwek bdzie zawiera wycznie
nazw witryny, pozostawimy go na pocztku. Chcemy, eby strona bya na rodku okna przegldarki, wic kad z poziomych czci umiecimy wewntrz znacznika z klas center (klasa moe by uywana wielokrotnie). Moglibymy umieci wszystko w jednym znaczniku <div>, ale
pniej moe si okaza przydatne posiadanie ich w osobnych znacznikach. Bdziemy te mie dziki temu mniej problemw z interpretacj dokumentu przez przegldarki. Na kocu kontenera zawierajcego tre i
kolumny umiecimy pusty znacznik <div> z klas clr, eby przegldarki
nie przeoczyy, kiedy ten element si skoczy. Cao dokumentu (bez
deklaracji rodzaju pliku i dokumentu wyszczeglnionych powyej) jest
przedstawiona na listingu 2.

template_css.css, czyli forma


Poniewa przegldarki posiadaj swoje arkusze stylw i, niestety, s
one wzajemnie rne, szczeglnie w przypadku okrelania domylnych
odstpw midzy elementami, eby nie wika si w zawioci ich szablonw, rozpoczniemy nasz arkusz od globalnego wyzerowania marginesw i odstpw (margin:0;padding:0). Gwiazdka oznacza wszystkie elementy, ale poniewa niektre przegldarki zapominaj w tym wypadku
uwzgldni elementy input i select, uwzgldnimy je rwnie. Przy okazji
zdefiniujemy domyln czcionk dla wszystkich elementw.
Dla klasy center okrelimy zerowy margines grny i dolny oraz automatyczny margines z lewej i prawej strony. Osigniemy podane wyListing 3. index.php
<html>
<head>
<meta httpequiv="ContentType" content="text/html;
charset=utf8" />

<?php mosShowHead(); if ( $my>id ) { initEditor(); } ?>


<link rel="stylesheet" href="templates/kapelusze/css/

template_css.css" type="text/css" />


<link rel="shortcut icon" href="images/favicon.ico" />
</head>
<body id="body">
<div class="center">
<div id="naglowek">
<h1>Nazwa witryny</h1>
</div>
</div>
<div class="center">
<div id="glowny">
<div id="tresc"> tresc </div>
<div id="lewa"> lewa </div>
<div id="prawa"> prawa </div>
<div class="clr"></div>
</div>
</div>
<div class="center">
<div id="stopka"> stopka </div>
</div>
</body>
</html>

28

Wybrane usugi W3C

Sprawdzanie poprawnoci HTML: http://validator.w3.org/


Sprawdzanie poprawnoci CSS: http://jigsaw.w3.org/cssvalidator/

rodkowanie w honorujcych standardy przegldarkach, jednak niezgodny z nimi Internet Explorer bdzie mia kopoty. Obrcimy je jednak na nasz korzy, wykorzystujc to, e wbrew standardom uywa wyrwnania
tekstu rwnie do pozycjonowania elementw blokowych. Dziki nadaniu
wyrwnania do rodka dla elementu #body osigniemy podany efekt
rwnie w przegldarce Microsoftu. Pozostaje nam tylko odwoa wyrodkowanie dla elementw z klasw center.
eby przegldarki mogy obliczy automatyczn warto marginesw dla klasy center, musimy jeszcze poda szeroko. Zamy, e bierzemy pod uwag te kilkanacie procent uytkownikw internetu, ktrzy cigle uywaj rozdzielczoci 800x600 pikseli. Biorc pod uwag,
e moe si pojawi boczny pasek przewijania, ustalmy szeroko naszej strony na 766 pikseli. Cao otoczymy ramk o szerokoci 3 pikseli. Dla elementw z identyfikatorem #naglowek, #stopka, #glowny
zdefiniujemy j w caoci na 3 piksele, pen w kolorze #BB0000 zapisanym skrtowo. Poniewa ramka nie ma oddziela treci od nagwka ani
stopki, dla elementu #glowny zmniejszymy jej grubo grn i doln do
zera. Podobnie postpimy z doln ramk nagwka oraz grn stopki. W
ten sposb, okrelajc atrybuty obramowania jeden raz dla grupy elementw i dookrelajc j tylko dla kadego z nich, korzystamy wanie
z kaskadowoci CSS. Dlatego te style dla znacznikw HTML definiujemy na pocztku, dookrelajc je nastpnie dla ich wystpie wewntrz
innych elementw. Na razie spord nich zdefiniowalimy tylko znacznik <h1>, ktry posuy nam do wywietlenia nazwy witryny, ale pod nim
znajd si wkrtce definicje dla pozostaych nagwkw, dla odsyaczy,
akapitw i innych.
Pozostaje nam jeszcze umieci praw i lew kolumn po odpowiednich stronach treci. Uzyskamy to przy wykorzystaniu wasnoci float
(dryfuj). Z praw nie ma problemu, moemy jej kaza dryfowa w lewo
lub w prawo, ale ostatecznie znajdzie si tam, gdzie pozostae zostawi
jej miejsce. Tylko, w jaki sposb przy takiej kolejnoci, jak przyjlimy
umieci lew kolumn po lewej stronie i to jeszcze, pozostawiajc miejsce na praw tam, gdzie chcemy by si znalaza? Proponuj przerwa
lektur i si zastanowi.
Kaemy obydwu dryfowa w lew stron, co normalnie spowodowaoby, e tre bdzie pierwsza, wic ustalimy jej margines szerokoci lewej kolumny (160), a lewej kolumnie margines ujemny o szerokoci obydwu (160+440). Efekt powinien wyglda tak, jak na rysunku 2.
Poniewa IE bdzie stara si umieci tre na rodku, specjalnie dla niego zmniejszymy jej margines o poow. eby prawomylne przegldarki
nie miay z tym problemu, uyjemy absurdalnej kombinacji elementw:
* html #tresc (dla elementu identyfikowanego jako tresc znajdujcego si wewntrz znacznika <html>, ktry znajduje si wewntrz czegokolwiek). Poniewa wszystkie przegldarki wiedz, e <html> nie
znajduje si wewntrz niczego, zignoruj tak zaadresowan regu. Nie
zrobi tego Explorer w wersji starszej ni sidma. i o to nam wanie chodzi. Ten sposb nazywany jest star html hack. O ile uwaam, e uywanie hackw jest bdem ze wzgldu na to, e kiedy mog zosta poprawione bdy, na ktrych bazuj, i strony nagle przestan wywietla si
poprawnie, o tyle ten sposb uwaam za poprawny ze wzgldu na to, e
wersje IE, ktrych on dotyczy, ju nie bd poprawiane.
Sposb, mimo e znaczeniowo bezsensowny, jest pod wzgldem
skadni poprawny, a wic zgodny ze standardami. Po dodaniu jeszcze

www.sdjournal.org

Software Developers Journal Extra! 26

kilku atwych do zrozumienia atrybutw arkusz bdzie wyglda tak,


jak na listingu 2.

Runda III. Niech si stanie


Czas wreszcie umieci tre w naszym szablonie. Najpierw umiecimy <?php require("mainbody.php"); ?> wewntrz bloku tresc,
nastpnie moduy za pomoc <?php mosLoadModules(left , 3
); ?> i <?php mosLoadModules(right , 3 ); ?>. Jeszcze tylko
stopka, i to wszystko. Tak atwo czy si Joomla! z jakimkolwiek szablonem napisanym w (X)HTML! Teraz pozostaje zdefiniowa style dla
moduw i innych elementw, ale s to niesprawiajce adnych kopotw zabiegi. Mona je obejrze w arkuszu stylw przynalenego tej
rundzie.

Runda IV. Dopieszczamy


Stworzony szablon nie jest jeszcze zachwycajcy ani wizualnie, ani
funkcjonalnie. Opatrzymy stylem jedynie kilka ze specyficznych elementw Joomla! Nie bdziemy tego szczegowo omawia, tym bardziej e zaley to gwnie od osobniczego indywidualnego poczucia
smaku i proporcji i woonego czasu. Dla uatwienia klasy i identyfikatory Joomla! s opatrzone komentarzami w pliku. Zajmijmy si za to
dodaniem paru nowych rozwiza do naszej witryny. Poszerzmy jednak wczeniej nasz wiedz o miejscach, w ktrych moemy je umieci.

Obszary (pozycje) moduw


Do tej pory umiecilimy w naszym szablonie dwa predefiniowane obszary, w ktrych Joomla! Moe umieszcza moduy (left i right).
Takich wstpnie ustalonych obszarw Joomla! ma wicej, a do niektrych
z nich domylnie s przypisane standardowe moduy:

banery reklama wywietla losowo wybran reklam spord opublikowanych w komponencie Banery (obszar: banner);
migawki wywietla przy kadym odwieeniu strony wstp losowo
wybranego
artykuu (obszar: top);
nowoci wywietla odnoniki do ostatnio opublikowanych artykuw (obszar: user1);
popularne wywietla odnoniki do najczciej czytanych artykuw (obszar: user2);
menu grne wywietla jedno z wybranych menu, domylnie topmenu (obszar: user3);
szukaj wywietla wyszukiwark, pozwalajc na przeszukanie witryny (obszar: user4).

Domylnie uywanymi obszarami s (banner, left, right, top, user1, user2,


user3, user4), domylnie zdefiniowanych obszarw jest wicej, nic nie
stoi jednak na przeszkodzie, eby dopisa wasne. Mona to zrobi na zapleczu, wybierajc Witryna > Szablony > Pozycje moduw. Tame moemy usun niepotrzebne obszary, zostawiajc jednak obszary uywane przez zaplecze (cpanel, header, inset, pathway, toolbar).
Obszar, w ktrym wywietlany bdzie dany modu ustawiamy w Moduy > Moduy witryna. Moemy go zmieni dla kadego moduu, wybierajc odpowiedni obszar (pozycj moduu) z rozwijanej listy w ustawieniach danego moduu.

Nowoci i popularne
Nowoci i popularne to bardzo przydatne moduy, wic zapewne chcielibymy mc je umieci w naszym szablonie. Umiecimy je nad treci.
Do pliku index.php dodamy nastpujcy fragment kodu: <div id="gorne"><?php mosLoadModules(user2,3); ?><?php mosLoadModule-

Software Developers Journal Extra! 26

Joomla!

s(user1, 3); ?><div class="clr"></div></div>. Trzeba jeszcze je

odpowiednio sformatowa w arkuszu stylw:

W Sieci

#gorne div.module {

width: 185px;

http://www.pomoc.joomla.pl/sdj/ miejsce pobrania plikw przydatnych w


trakcie lektury i pracy wasnej

margin: 0px 5px 20px 12px;


float: left;}

przednio. Przed samym zamkniciem znacznika <body> wpiszemy: <img

Wyszukiwarka
Kod potrzebny przegldarce nijak nie jest nam potrzebny na pocztku strony, nie pomoe jej pozycjonowa, a oddali gwn tre od pocztku dokumentu. Zamy jednak, e chcemy mie okienko wyszukiwarki w nagwku. Na kocu index.php, ale przed zamkniciem <body> umiecimy kod:

id="kapelusz" src="templates/kapelusze/images/kapelusz.png"

width="150" height="130" alt="kapelusz" /> pamitajc o popraw-

nym zamkniciu skrtowego znacznika <img


lajcym, co jest na rysunku. I CSS:

/>

i o atrybucie alt, okre-

#kapelusz { position: absolute;


<div id="szukaj">

top: 1px;

<?php mosLoadModules(user4,1); ?> </div>

left: 50%;

a reszt zrobimy w arkuszu stylw: Listing 1


Pozycja absolutna pozwoli nam umieci wyszukiwark na grze
strony, a dokadnie 10 pikseli od gry. Poniewa nasza strona jest wyrodkowana i nie wiemy, jaka bdzie dokadna odlego od brzegu okna, pozycj od lewej strony ustalimy na 50% i majc lew krawd wyszukiwarki na
rodku okna, moemy ustawi j dokadnie tam, gdzie chcemy za pomoc marginesu. Pozostae wasnoci su efektom czysto wizualnym.

Kapelusz
Zgodnie z mrocznymi planami Zwiastuna, chcemy bycie sprzedawali kapelusze. Jako ostatnie dotknicie pdzla umiecimy grafik przedstawiajc w produkt. Mamy ju przygotowany obrazek kapelusz.png
z przezroczystoci wielostopniow, eby nie tworzy brzydkiej otoczki
wok siebie. Do okrelenia jego pozycji uyjemy tej samej techniki co poListing 4. Plik template_css.css ukad kolumn
*, input, select { margin:0; padding:0;
fontsize:24px;lineheight:1.2em;
fontfamily:Verdana, Helvetica, Arial, sansserif }
#body { textalign:center; padding:10px 0; background:

.clr { clear:both }
.center { width:766px;margin:0 auto; textalign:left }
#naglowek, #stopka, #glowny { border:3px solid #900 }
#stopka, #naglowek { height:70px; padding:15px;
borderwidth:3px 3px 0 3px;
background:brown; color:#fff }
#stopka { height:30px; borderwidth:0 3px 3px 3px}
#glowny { borderwidth:0 3px; padding:10px 0; background:
#fff }

width:440px; marginleft:160px;
background:blue }

#prawa { position:relative; float:left;


width:160px; background:red }

#lewa { position:relative; float:left;

width:160px; marginleft:600px;
background:green }

#tresc, #prawa, #lewa, #glowny { height:200px }


* html #tresc { /* hack dla IE */ marginleft:80px }

30

Ze wzgldu na tak podan alfa przezroczysto po raz kolejny popadniemy w konflikt z nasz ulubion przegldark. eby zmusi j do poprawnego wywietlenia takich grafik, naley dokona odpowiedniego
zabiegu, ktry zostanie opisany w drugim artykule dotyczcym szablonw. Tymczasem dodamy tylko definicj CSS, ktra pozwala uruchomi
przygotowany wczeniej mechanizm:
*

html

#kapelusz

{behavior:

url(templates/kapelusze/css/

pngbehavior.htc)}

W3C
Konsorcjum W3C zaoy Tim BernersLee, twrca WWW, eby poprzez
tworzenie protokow i wytycznych, zapewni trway wzrost sieci. W3C
przedstawia rekomendacje dotyczce uywania rnych rodzajw dokumentw w Ssieci. Dostarcza informacji, programw i usug pomagajcych tworzy poprawne dokumenty. Nasz szablon jest zgodny ze standardami z jednym wyjtkiem: wasno behavior nie jest wasnoci standardow. O tym, jak z tego wybrn i jak zwikszy moliwoci szablonw
dowiesz si w kolejnym artykule.

Instalacja szablonu

#777 }
h1 {fontsize:36px; margin:8px 20px }

#tresc { position:relative; float:left;

marginleft: 245px}

Podczas gdy Joomla! 1.5 posiada tylko jeden automatyczny instalator, Joomla! 1.0.x posiada instalatory przeznaczone do kadego typu
rozszerze. Tu przydadz nam si wszystkie wpisy o plikach, ktrych
tak pieczoowicie dokonalimy w pliku templateDetails.xml. Dziki
niemu system bdzie wiedzia, jakie pliki i do jakich katalogw przekopiowa.
eby zainstalowa szablon, musimy go spakowa lub wgra do
katalogu dostpnego dla systemu. Na zapleczu wybieramy Instalatory>Szablony witryna i odpowiednio: podajemy ciek do spakowanego pliku w naszym komputerze lub ciek do katalogu na serwerze. Joomla! nie bdzie mia jednak nic przeciwko, jeli po prostu
wgramy szablon do katalogu /templates. Nie musimy wtedy w pliku
instalacyjnym wylicza wszystkich plikw nalecych do szablonu.
Jest to przydatne w trakcie pracy nad szablonem, nie potrzeba wtedy np. zmienia pliku templateDetails.xml za kadym razem, kiedy dodamy nowy obrazek.
Szablon, ktry stworzylimy nie zachwyca wygldem i mgby by
bardziej funkcjonalny ni jest w tej chwili. Kwestie wygldu pozostawiam
wasnemu uznaniu, zgodnie z gustem i zdolnociami. Sposoby poszerzenia i poprawienia funkcjonalnoci omwi w drugim, bardziej szczegowym artykule. n

www.sdjournal.org

Software Developers Journal Extra! 26

Joomla!

Szablony... troch bardziej

Micha Sobkowiak

ajbardziej podstawowe elementy PHP uywane w


szablonach, zostay opisane w poprzednim artykule.
Tu wymienimy pozostae interesujce ze wzgldu na
tworzenie szablonw. Zmienne globalne:

$mosConfing _ live _ site

adres internetowy (URL wi-

tryny);

$mosConfing _ absolute _ path

cieka absolutna do

plikw;

$cur _ template

nazwa katalogu zawierajcego bie-

cy szablon;

$mosConfig _ sitename nazwa witryny;

$mosConfing _ metadesc

$mosConfing _ metakeys sowa kluczowe dla caej wi-

tryny;

opis oglny witryny;


Funkcja mosCountModules('obszar') zwraca dokadn ilo liczb moduw, ktre maj zosta wywietlone
na danej stronie w danym obszarze;
Funkcja mosPathway() wywietla ciek powrotu;
Instrukcja <?php if ( $my>id ) initEditor(); ?>
umoliwia uruchomienie edytora (dla zalogowanego uytkownika).

Pierwsz rzecz, ktr powinnimy umieci na pocztku pliku index.php jest <?php defined( ' _ VALID _ MOS' ) or
die( 'Czego tu szukasz?' );?>. Ta linia sprawdza, czy plik
zosta wywoany przez Joomla! i w przeciwnym razie Jeli tak
si nie stao, zabrania dostpu do reszty pliku, wywietlajc
komunikat Czego tu szukasz?. Ma to due znaczenie dla bezpieczestwa caego serwisu.
Jeli chcemy mie moliwo zmiany treci artykuw od
strony witryny, musimy te przygotowa edytor dla zalogowanych uytkownikw. Odpowiedni kod zosta podany wyej.
Najczciej uywan w szablonach konstrukcj wykorzystujc zmienne globalne jest: <?php echo $GLOBALS['mosConfig _ live _ site'].'/templates/'.$GLOBALS['cur _

template']; ?> i jej pochodne. Ta konkretna suy do automa-

tycznego wygenerowania adresu do katalogu gwnego szablonu. Za jej pomoc moemy uniezaleni si od zmian nazwy
tego katalogu oraz zmiany adresu witryny (np. jeli instalujemy ten sam szablon w rnych witrynach lub z nieprzewidzianych wczeniej powodw przyjdzie nam zmieni adres serwisu). W ostatecznej wersji przygotowywanego wsplnie szablonu uyjemy jej do podczenia pliku arkusza stylw.

Rysunek 1. Trzy kolumny


Zmiennej $mosConfig _ sitename uyjemy do wypisania nazwy witryny, w miejscu gdzie do tej pory wpisywalimy Kapelusze na sztywno w kodzie szablonu. Dziki temu bdziemy mogli w kadej chwili zmieni nazw witryny
w Konfiguracji globalnej na zapleczu Joomla! Poniewa przyjtym standardem jest, e nazwa lub logo witryny odsyaj
do strony gwnej witryny, uyjemy ponownie $mosConfig _
live _ site. Wewntrz znacznika <h1> wpiszemy nastpujcy kod: [Listing 1]
Jak wida w na powyszym przykadzie, zmienn globaln
moemy wywoa na dwa sposoby: albo za pomoc $GLOBALS[nazwa _ zmiennej], albo $nazwa_zmiennej. Oba sposoby s
poprawne. Pierwszy pobiera j z tablicy zawierajcej wartoci
tych zmiennych, a drugi bezporednio.

Ukrywanie moduw
Przy wywietlaniu rnych podstron witryny przydatne
moe by ukrycie niektrych obszarw, szczeglnie kiedy
s one puste. W naszym szablonie dokonamy takiego zabiegu dla prawej kolumny. W tym celu wykorzystamy warunkow struktur kontroln PHP z instrukcj if (jeeli)
oraz funkcj mosCountModules do sprawdzenia, czy w tym

Autor jest koordynatorem do spraw Promocji i Kontaktw Polskiego Centrum Joomla!, tumaczem akredytowanym przy midzynarodowym projekcie Joomla!, projektantem WWW, autorem Techniki EM projektowania w peni skalowalnych szablonw dla Joomla!
Kontakt z autorem: viking@joomla.pl

Rysunek 2. Z ukryt praw kolumn

32

www.sdjournal.org

Software Developers Journal Extra! 26

obszarze s wywietlane jakie moduy. Skadnia struktury kontrolnej: [Listing 2]


Nasz warunek bdzie mia nastpujc form: if (mosCountModules(right))(kada warto wiksza ni zero bdzie zinterpretowana jako prawda). Jeeli chcielibymy, eby warunek by speniony, gdy liczba moduw wynosi wicej ni dwa, musielibymy sformuowa go w ten
sposb: if (mosCountModules(right) > 2)
W nawiasie klamrowym, po podaniu warunku, umieszczamy kod, ktry ma zosta wypisany na stronie w przypadku, kiedy warunek jest speniony, czyli: [Listing3]
Po tym nawiasie moemy doda instrukcj else, informujc, co zrobi w przypadku, jeli warunek nie jest speniony. Kod do umieszczenia w
szablonie wyglda nastpujco: [Listing 4]
Nie wystarczy jednak tylko ukry ten obszar, trzeba jeszcze sprawi, by pozostae obszary wypeniy puste miejsca. Mona to zrobi na
dwa kilka sposobyw. Po pierwsze, definiujc za pomoc drugiego, takiego samego warunku dodatkow klas dla elementu nadrzdnego
wobec wszystkich trzech kolumn (glowny). Po drugie, poprzez objcie tym warunkiem caej zawartoci elementu glowny. Po trzecie, poprzez napisanie dwch osobnych fragmentw kodu HTML dla obu sytuacji i uycie instrukcji else. Zalet pierwszego rozwizania jest krtszy
i czytelniejszy plik PHP, podczas gdy zalet drugiego jest nieznacz-

nie wiksza szybko generowania strony (warunek jest sprawdzany


tylko raz). Moliwe jest jeszcze trzecie rozwizanie polegajce na pozostawieniu pustej prawej kolumny w wygenerowanym kodzie HTML,
i ukrycie jej za pomoc CSS. W kadym z przypadkw element glowny otrzyma klas bez_prawej, jeli w prawej kolumnie nie bdzie adnego moduu. Dziki temu bdziemy mogli zmieni atrybuty dla podlegajcych mu elementw wedle naszych potrzeb. Poniewa wszystkie elementy, dla ktrych chcemy zmieni wartoci s wewntrz klasy
bez _ prawej, moemy si do nich odnie na nastpujcej zasadzie:
Listing 5. Ukrywanie prawej kolumny
Rozwizanie pierwsze:
<div id="glowny" <?php if ( !mosCountModules(right)) {
echo 'class="bez_prawej"'; } ?> >
<div id="tresc"> </div>
<div id="lewa">
<?php mosLoadModules(left , 3 ); ?></div>

<?php if ( mosCountModules(right) > 2) { ?>


<div id="prawa">

<?php mosLoadModules(right , 3 ); ?></div> <?php }


?>
<div class="clr"></div> </div>

Listing 1. Kod,ktry ma zosta wpisany wewntrz znacznika <h1>

Rozwizanie drugie:

<a id="home" name="home" href="<?php echo

<?php if ( mosCountModules(right)) { ?>

$mosConfig_live_site; ?>" title="<?php echo

<div id="glowny">

$GLOBALS[mosConfig_sitename]; ?>">

<div id="tresc"> </div>

<?php echo $mosConfig_sitename; ?>

<div id="lewa"><?php mosLoadModules(left , 3 ); ?></

</a>

div>
<div id="prawa">
<?php mosLoadModules(right , 3 ); ?>
</div><div class="clr"></div></div>

Listing 2. Skadnia struktury kontrolnej

<?php } else { ?>

if (warunek)

<div id="glowny" class="bez_prawej" >

{ wyraenie_jeli_warunek_prawdziwy; }

<div id="tresc"></div>

else

<div id="lewa"><?php mosLoadModules(left , 3 ); ?></

{ wyraenie_jeli_warunek_faszywy; }

div>
<div class="clr"></div></div>
<?php }?>
Rozwizanie trzecie:

Listing 3. Kod, ktry ma zosta wypisany na stronie w przypadku,


kiedy warunek jest speniony
<?php if ( mosCountModules(right)) { ?>

<div id="glowny" <?php if ( !mosCountModules(right)) {


echo 'class="bez_prawej"'; } ?> >
<div id="tresc"> </div>
<div id="lewa"><?php mosLoadModules(left , 3 ); ?></

<div id="prawa">

div>

<?php mosLoadModules(right , 3 ); ?>

<div id="prawa">

</div>

<?php mosLoadModules(right , 3 ); ?> </div>

<?php } ?>

<div class="clr"></div></div>

Listing 4. Dodajemy instrukcj else, informujc, co zrobi w


przypadku, jeli warunek nie jest speniony

Listing 6. Arkusz ie.css

<?php if ( mosCountModules(right))

<link rel="stylesheet" href="<?php echo $GLOBALS['mosConfig_

<![if lte IE 6]>

{ ?>

live_site'].'/templates/

<div id="prawa"><?php mosLoadModules(right , 3 ); ?>

'.$GLOBALS['cur_template']; ?> /css/

</div>
<?php } ?>

Software Developers Journal Extra! 26

ie.css" type="text/css" />


<![endif]>

www.sdjournal.org

33

Joomla!

Rysunek 3. Z ukryt praw kolumn i odpowiednio zmienionymi


wartociami dla pozostaych
np. .bez _ prawej #tresc {} Kod dla
kadego z wszystkich rozwiza jest pokazany na: [Listingu 4] W
ostatecznym szablonie zastosowano pierwsze z rozwiza.
bez _ prawej #element {}

Grafiki z wielostopniow przezroczystoci


Formatem w peni obsugujcym odcienie przezroczystoci (alfa
przezroczysto) jest PNG (Portable Network Graphics). Wszystkie nowoczesne przegldarki dobrze radz sobie z tym formatem.
Internet Explorer do wersji 6, ktrego ze wzgldu na powszechno
nie mona pomin, niestety, nie. Obsuguje on natomiast wiele
niestandardowych metod, midzy nimi innymi wasno behevior
w CSS i filtry obrazw.
Wikszo z tych filtrw jest bezuyteczna, aczkolwiek jeden
z nich zasuguje na nasz uwag jest to filtr AlphaImageLoader.
Suy on oryginalnie do zaadowania obrazka pomidzy tre elementu i a jego to. Szczliwie, jeli tym obrazkiem jest PNG, filtr
obsuguje odcienie przezroczystoci (co prawda obrazek wywietla ju nie Internet Explorer lecz DirectX, ale efekt jest zgodny z
oczekiwaniami).
Dziki Angusowi Turnbullowi dysponujemy skryptem, ktry wywoany z poziomu CSS za pomoc wasnoci behavior, pozwala na w miar atw implementacj tego rozwizania. Skrypt jest rozpowszech-

Rysunek 5. Po zastosowaniu proponowanego rozwizania

niany na licencji GNU/LGPL i do funkcjonowania wymaga przezroczystego obrazka do swojego funkcjonowania. W wersji dostarczonej z kodem rdowym szablonu skrypt bdzie go poszukiwa w katalogu /
images pod nazw blank.png (standardowa instalacja Joomla! powinna zawiera ten plik). Skrypt jest umieszczony w katalogu /css szablonu. Jak zdylimy zauway w poprzednim artykule, wasno behavior nie jest standardowa i powoduje wywietlanie komunikatu o bdzie podczas sprawdzania poprawnoci CSS. Zobaczmy, jak pozby si
tego problemu.

Komentarze warunkowe w (X)HTML


Raz na jaki czas Microsoft okazuje si askawy dla projektantw WWW.
Od wersji 5 przegldarki umoliwi przesanie skierowanych wycznie do
IE informacji i to dosy dokadnie skierowanych, poniewa pozwalajcych
okreli rwnie wersj. Jak napisano w witrynie giganta z Redmond, zdecydowa si on na ten krok, poniewa najczciej dokonywan przez witryny operacj byo sprawdzenie, z jak przegldark ma do czynienia.
Dla penej cisoci naley doda, e najczciej byo to sprawdzenie binarne (IE czy nie IE?).
Poniewa programici Microsoftu, naprawiajc jedne rzeczy,
czsto psuli inne, istotne jest rwnie to, e pozwolili na dokadne
identyfikowanie wersji. Zwyky komentarz w HTML wyglda tak: <!
tre komentarza >

Natomiast komentarz warunkowy: <![if warunek]> tre ko<![endif]> przy czym jeli przegldarka spenia warunek, tre komentarza jest przez ni wykonywana, tak jakby nie bya wewntrz komentarza.
Dziki warunkowym komentarzom moemy si wreszcie pozby
z CSS definicji dla IE. Wyrzucimy je do osobnego pliku, eby niepotrzebnie nie obcia innych przegldarek (zwykle, w zalenoci od
stopnia skomplikowania szablonu i umiejtnoci projektanta, potrafi si ich uzbiera pokana lista) i zaadujemy arkusz ie.css za pomoc komentarza:[Listing 6]. Explorer w wersji sidmej radzi sobie z PNG,
wic zostawimy go w spokoju.
Na koniec dodam rwnie, e przy uyciu do skomplikowanej
skadni, mimo e warunkowe komentarze s obsugiwane wycznie
przez IE (pozostae przegldarki nie czytaj ich zawartoci), mona
ukry co przed IE, jednoczenie pokazujc to pozostaym przegldarkom. Poniewa jest to ciekawe i dostarczajce rozrywki zagadnienie, nie bd go tu przedstawia. Miej zabawy! n
mentarza

Rysunek 4. Wielostopniowa przezroczysto w Internet Explorerze

34

www.sdjournal.org

Software Developers Journal Extra! 26

Joomla!

Tworzenie rozszerze dla Joomla! 1.5

Mateusz Krzeszowiec

a pewno gwn przyczyn ogromnej popularnoci


Joomla! jest prostota interfejsu uytkownika. Jednak
niezwykle istotna dla rozwoju projektu jest aktywna
i twrcza grupa programistw piszcych rozszerzenia. W tej
chwili lista rozszerze dostpnych w oficjalnym portalu http:
//extenstions.joomla.org wynosi prawie 2 dwa tysice! Tak dua ilo liczba dodatkowych komponentw wynika z prostoty
pisania rozszerze dla Joomla!, atwoci integracji z pozostaymi czciami skadowymi CMS'a. Na kilku nastpnych stronach poka podstawowe zasady tworzenia aplikacji z wykorzystaniem Joomla! Rozszerzenie, ktre omwimy, bdzie
skadao si z trzech czci:

komponentu prostego sownika poj;


moduu wywietlajcego statystyki naszego sownika;
bota wyszukujcego wystpienia poj w tekcie i wywietlajcego opisy po najechaniu myszk na wyraz.

Z racji ograniczonej objtoci, w treci artykuu znajduje si


omwienie tylko komponentu, dociekliwi czytelnicy powinni
zajrze na doczony do pisma krek, eby zobaczy jak wyglda modu i bot.

Komponent cz administracyjna
Komponent, ktry napiszemy bdzie zgodny z wzorcem projektowym MVC. W czci administracyjnej pozwala bdzie
na zarzdzanie wprowadzonymi hasami oraz dodawanie nowych. Struktura katalogw, by moe z pocztku zawia, uatwi nam w przyszoci modyfikowanie naszego komponentu.
Jednak najwaniejsz przyczyn takiej wanie struktury jest
to, i Joomla! zaaduje wszystkie potrzebne pliki automatycznie. Jedyn wskazwk dla frameworka jest utworzenie w pliku wejcia kontrolera - o czym za chwil.
Plik wejcia w czci administracyjnej to admin.glossary.
php. Klasa kontrolera znajduje si, jak sama nazwa wskazuje, w pliku controller.php, w katalogu views znajduj si widoki, models modele. Katalog tables zawiera klas ORM dla pojedynczego pojcia. W katalogu elements znajduje si generator listy dla kreatora linkw. Plik glossary.xml to plik instalatora. W plikach install.sql oraz uninstall.sql znajduje si kod SQL
tworzcy potrzebn tabel w trakcie instalacji oraz usuwajcy
j przy odinstalowaniu komponentu.

Plik wejcia oraz kontroler


W pliku wejcia, admin.glossary.php, tworzymy obiekt kontrolera i wywoujemy metod (Jcontroller::execute), ktra spowoduje wykonanie zadania stosownie do zmiennej z

Listing 1. Ciao metody GlossaryController::cancel, w


ktrej wykorzystany jest mechanizm przekierowania
$msg = JText::_( 'Anulowano edycj.' );
$link = 'index.php?option=com_glossary';
$this->setRedirect( $link, $msg );

zapytnia HTTP task. Na koniec przekierowujemy sterowanie przez wywoanie JController::redirect. To ostatnie
ma znaczenie szczeglnie w czci administracyjnej komponentu. Przyjto, e po wykonaniu jakiego zadania, na
przykad po zapisaniu nowego sowa w bazie danych, nastpuje powrt do widoku listy (u nas listy hase w sowniku).
Aby nie komplikowa kodu, wykonuje si to w nastpujcy
sposb. Pod koniec wykonywania metody, w tym przypadku NazwaNaszegoKontrolera::save, nastpuje przekierowanie do widoku listy. Przekierowanie definiujemy za pomoc wywoania JController::setRedirect, parametrami
tej metody s: link, pod ktry ma zosta przekazane sterowanie oraz tre wiadomoci, ktra zostanie pokazana uytkownikowi. Przykad wykorzystania tego mechanizmu znajduje si na Listingu 1.
Klasa bazowa jest zbudowana w ten sposb, e
zmienna przekazywana w URL-u task odpowiada bezporednio nazwie metody kontrolera, ktra ma zosta wywoana. Ten wygodny mechanizm wymaga czasem naszej interwencji, tak jak w przypadku wykonywania zada dodania (add) oraz edycji (edit) hasa. Dziki temu,
e mapowanie obiektowo-relacyjne w Joomla! zapisuje
nowy rekord w ten sam sposb jak rekord ju istniejcy,
do obsugi tych dwch zada wystarczy nam jedna metoda. Aby dla zadania add kontroler wywoa metod dla zadania edit, w ciele konstruktora dopisujemy $this->registerTask( 'add', 'edit' ). Omwmy teraz pokrtce
metod GlossaryController::edit , ma ona kilka ciekawych elementw.
Kontroler komponentu, gdy nie zdefiniujemy innego
zachowania, zaaduje domylny widok. W widoku pobierzemy dane z domylnego modelu, nastpnie widok zaaduje
domylny layout i zostanie on wyrenderowany. W przypadku edycji chcielibymy jednak zmieni widok oraz layout
(model zostanie zmieniony stosownie do zmiany widoku).
Chcemy tak zrobi, poniewa gwny widok naszego komListing 2. Ciao metody GlossaryController::edit
JRequest::setVar( 'view', 'term' );

Autor naley do Joomla! Core Team grupy zarzdzajcej projektem oraz Development Working Group developerw projektu.
Kontakt z autorem: mateusz.krzeszowiec@joomla.org

36

www.sdjournal.org

JRequest::setVar( 'layout', 'form'

);

JRequest::setVar('hidemainmenu', 1);
parent::display();

Software Developers Journal Extra! 26

Widok oraz layout


Rozszerzanie funkcji Joomla!
Joomla! umoliwia rozszerzanie swoich funkcji na trzy sposoby. S to: komponent,
modu i bot. Komponenty peni funkcj gwnych rozszerze do Joomla!
Mona je traktowa jako osobne aplikacje dziaajce wewntrz Joomla!
Moduy to mniejsze rozszerzania, wywietlane zwykle w boxach, pokazuj zazwyczaj rne informacje, statystyki, umoliwiaj kontakt z
uytkownikiem (shoutbox, maa ankieta etc.). Moduy czsto, lecz nie zawsze powizane s z komponentami. Dobrym przykadem bdzie modu
wywietlajcy ankiet lub pokazujcy ilo liczb hase w naszym komponencie sownika.
Boty pozwalaj na wykonanie kodu w odpowiedzi na zdarzenie, ktre zaszo. Jest to bardzo potne narzdzie umoliwiajce rozszerzanie funkcji Joomla! o wiele interesujcych rozwiza, takich jak logowanie z uyciem zewntrznej autentyfikacji (np. za pomoc konta GMail) czy dokonywanie zmian
w zawartoci renderowanej strony (np: ukrywanie adresw e-mail).

ponentu w czci administracyjnej wywietla list hase, a my chcielibymy wywietli tylko jedno. Widok ten nazwiemy term. Dodatkowo, domylny layout, default.php, powinien suy raczej wywietlaniu danych a ni nie ich edycji. Zmienimy wic nazw layoutu na
lepiej pasujc form. Operacje te widzimy na Listingu 2. Dodatkowo
ukryjemy menu, aby nie zezwoli uytkownikowi na jakie niestandardowe zachowanie. Po wykonaniu wszystkich operacji renderujemy widok za pomoc wywoania metody display. Po wykonaniu tych
operacji Joomla! w katalogu komponentu sprbuje znale widok, bdzie to plik views/term/view.html.php, w tym przypadku klasa widoku
musi mie nazw GlossaryViewTerm. Umoliwi to frameworkowi automatyczne utworzenie instancji tej klasy. Nastpnie widok zaaduje layout, ktry wybralimy views/term/tmpl/form.php. Formularz
edycji sowa, zgodnie z naszymi oczekiwaniami, zostanie poprawnie
wyrenderowany. Powimy teraz par sw klasie widoku.
Listing 3. Ciao metody GlossaryModelTerm::store zapisujcej haso
/*
* Pobierz instancj klasy ORM, pobrana zostanie
* ona z pliku o tej samej nazwie co model
*/
$row =& $this->getTable();
// Przepisz dane z zapytania HTTP do klasy
if (!$row->bind($data)) {

$this->setError($this->_db->getErrorMsg());

return false;

// Dokonaj sprawdzenia danych


if (!$row->check()) {

$this->setError($this->_db->getErrorMsg());

return false;

O konwencji nazewniczej mwilimy przy okazji omawiania kontrolera,


skupmy si teraz na tym, co klasa widoku powinna zrobi.
Pierwszym zadaniem widoku bdzie wywietlenie ikon/przyciskw
na pasku narzdziowym. W przypadku omawianej wczeniej edycji bd
to przycisk zapisu oraz anulowania edycji. Przycisk zapisu wywietlamy
za pomoc wywoania JToolBarHelper::save(). Wywietlenie przycisku anulowania edycji wyglda niemal identycznie. Dziki temu, e dopasowano nazwy wykonywanych operacji (task) do nazw metod kontrolera
odpowiednie metody wywouj si automatycznie.
Drugim zadaniem widoku jest pobranie danych z modelu i przekazanie ich do layoutu. Metoda JView::get dziaa w ten sposb, e wywouje metod modelu o nazwie podanej jako parametr z przedrostkiem get. Wywoanie, ktre pobiera haso z modelu wyglda bdzie
nastpujco: $term =& $this->get('data'). Nastpnie, aby przypisa dane do layoutu, wywoujemy metod assign lub assignRef, aby
utworzy odpowiednio kopi lub przekaza referencj do danej zmiennej. Pierwszym parametrem obu metod bdzie nazwa, pod jak dane
bd dostpne w layoucie, drugim parametrem jest zmienna, ktr
chcemy przekaza.
Layout jest zwykym plikiem PHP, w ktrym znajduj si gwnie wywoania konstruktu echo oraz struktury sterujce. Listing i objanienie
budowy layoutu znajduje si w opisie czci prezentacyjnej komponentu.
Dokadny opis wszystkich funkcji wykorzystywanych przy renderowaniu
widoku w czci administracyjnej zajby kilka rozdziaw ksiki. Z perspektywy naszego prostego komponentu wystarczy powiedzie, e layout edycji hasa to po prostu formularz, a layout widoku listy hase to tabela, ktrej wiersze tworzone s przez wypisywanie kolejnych elementw tablicy z hasami pobranymi z bazy danych.

Model i klasa ORM


Model we wzorcu MVC jest po to, eby dostarczy dane dla widoku. Tak
bdzie te w tym przypadku. Nasz komponent w czci administracyjnej wykorzystuje dwa modele, jeden do pobierania danych do wywietlania listy i drugi umoliwiajcy operacje na pojedynczym hale. Omwimy
tutaj ten drugi.
Temat pobierania danych z modelu do widoku omawiamy w innych fragmentach artykuu, przyjrzyjmy si wic sposobowi, w jaki zapisujemy dane,
korzystajc z frameworka w wersji 1.5. W omawianym modelu, GlossaryModelTerm , za zapisywanie nowych oraz zmian ju utworzonych hase odpowiada metoda store. Ciao tej metody znajduje si na Listingu 3.
W pierwszej linii pobieramy instancj klasy ORM, w tym domylnym przypadku bdzie to klasa o nazwie TableTerm znajdujca si w
pliku tables/term.php. Nazwa pliku oraz drugi czon nazwy klasy jest
ostatnim fragmentem nazwy modelu, dziki temu ponownie pliki aListing 4. Kod kontrolera dla czci prezentacyjnej komponentu
// bezporedni dostp do pliku zabroniony
defined('_JEXEC') or die();
// zaaduj klas bazow
jimport('joomla.application.component.controller');

// Zapisz haso w bazie danych


if (!$row->store()) {

$this->setError($this->_db->getErrorMsg());

return false;

return true;

Software Developers Journal Extra! 26

/**
* Definicja klasy kontrolera.
* W tym przypadku ciao nie jest potrzebne
*/
class GlossaryController extends JController {}

www.sdjournal.org

37

Joomla!

Listing 5. Kod widoku listy


$pathway

// bezporedni dostp do pliku zabroniony


defined('_JEXEC') or die();
// zaaduj klas bazow

$terms

=& $this->get('data');

jimport( 'joomla.application.component.view');

$total

=& $this->get('total');

/**

$letter = & $this->get('letter');

* Klasa widoku listy

// Pobierz parametry wywietlanej strony

*/

$params = &$mainframe->getPageParameters();

class GlossaryViewList extends JView

/*

* Ustaw domylne wartoci dla parametrw,


/**

* zostan one uyte jeeli parametry bd

* Metoda wywietlajca komponent

* nieobecne

* w jej ciele moemy pobra dane z modelu

*/

* i przekaza je do layoutu oraz wykonywa inne

$params->def('add_letter_to_pathway', 0);

* operacje takie jak zmiana tytuu strony, pobieranie

$params->def('show_page_title', 1);

* parametrw i tym podobne

/*

*/

* W zalenoci od parametru (jego warto

function display( $tpl = null)

* administrator ustawia, tworzc link w panelu

* administracyjnym) dodaj tekst 'litera /*

* nazwalitery' do cieki oraz nazwy strony

* Udostpnij zmienn globaln wewntrz funkcji,

*/
if($params->get('add_letter_to_pathway')) {

* jest to instancja klasy JSite umoliwiajca

$params->def('page_title', $item->name .

* pobranie i zmian parametrw wywietlanej strony

' - litera ' . $letter);

*/
global $mainframe;

$pathway->addItem('litera ' . $letter);

} else {

/*

$params->def('page_title', $item->name);

* Pobierz referencj do dokumentu. Klasa JDocument


* zawiera metody umoliwiajce wykonywanie operacji

* na renderowanej stronie, na przykad zmian

// Ustaw nazw strony

* tytuu, dodanie skryptw JavaScript, plikw lub

$document->setTitle($params->get('page_title'));

* kodu CSS

// Przeka referencj do danych z modelu do layoutu

*/

$this->assignRef('total',

$total);

$document =& JFactory::getDocument();

$this->assignRef('terms',

$terms);

/*

$this->assignRef('letter',

$letter);

$this->assignRef('params',

* Pobierz aktywny element menu

$params);

* umoliwi nam to pobranie nazwy elementu


* menu, ktry zosta wywoany

// Wywoaj metod klasy nadrzdnej,

*/

// komponent zostanie zrenderowany

$menu = &JMenu::getInstance();

parent::display($tpl);

$item = $menu->getActive();

// pobierz obiekt odpowiedzialny za ciek nawigacji

dowane s automatycznie, absolutnie bez naszego udziau. Dalej nastpuje przypisanie danych pochodzcych z zapytania HTTP do pozyskanej instancji (metoda JTable::bind w najprostszym przypadku
bdzie przypisywa polom klasy wartoci ze zmiennych z zapytania o
tych samych nazwach). Dalej nastpuje sprawdzenie, czy dane s prawidowe (Jtable::check), a na koniec waciwe zapisanie danych w
bazie danych (JTable::store).
Jeeli chcielibymy przypisa dane z zapytania HTTP do klasy
ORM w bardziej wyszukany sposb ni przez proste przepisanie danych ze zmiennej zapytania do pola klasy, nic nie stoi na przeszkodzie, aby przeciy metod JTable::bind w swojej klasie ORM. Warto rwnie zwrci uwag, e metoda JTable::check zwraca zawsze
true, jeeli chcielibymy dokona sprawdzenia danych na serio, powinnimy przeciy rwnie t metod. W wikszoci przypadkw
dla prostych komponentw bdziemy czciej pisa swoj wersj
metody check ni bind.

38

= & $mainframe->getPathWay();

// Pobierz dane z modelu

Przejdmy na chwil do naszej klasy ORM. W konstruktorze obowizkowo musi znale si nastpujca linia: parent:: _ _ construct('# _ _ glossary', 'id', $db). Informuje ona klas ORM,
na jakiej tabeli ma wykonywa operacje oraz ktra z kolumn jest kluMVC (ang. Model-View-Controller Model-Widok-Sterownik) to wzorzec projektowy w informatyce, ktrego gwnym zaoeniem jest wyodrbnienie trzech
podstawowych warstw aplikacji:

modelu danych;
interfejsu uytkownika;
logiki sterowania.

w taki sposb, aby modyfikacje jednego komponentu minimalnie wpyway na pozostae. Czasem w odniesieniu do MVC stosuje si nazw modelu trjwarstwowego. rdo: Wikipedia

www.sdjournal.org

Software Developers Journal Extra! 26

czem gwnym tabeli. Jeeli przyjrzymy si polom klasy, zauwaymy, e maj one takie same nazwy jak kolumny tabeli. Dziki temu
framework potrafi wykonywa proste operacje na bazie danych bez
koniecznoci pisania kodu SQL.

Generowanie listy liter dla kreatora linkw


W katalogu elements znajduje si plik letters.php, w ktrym generowany jest combo box. Zastosowanie klasy znajdujcej si w tym pliku stanie si jasne, gdy przyjrzymy si wynikowi dziaania kreatora
linkw. W pierwszym kroku wybierzemy nasz komponent (Sownik),
a nastpnie opcj lista poj. Po wygenerowaniu ekranu zawierajcego parametry linka przyjrzyjmy si prawej stronie ekranu. Widoczny
tam combo box (w sekcji Parameters Basic) zawiera dane wygenerowane wanie przez klas JElementLetter. Jest to dobry przykad
na dynamiczne generowanie linkw, widzimy, e lista jest aktualizowana w zalenoci od iloci liczby wyrazw na dan liter.
Po zapoznaniu si z czci administracyjn przejdmy do omwienia kodu odpowiadajcego za wywietlanie tego, co widzi uytkownik odwiedzajcy nasz stron.

Komponent cz prezentacyjna
Nasz komponent bdzie renderowa zawarto bazy danych na dwa
sposoby. Bdzie wywietla list liter polskiego alfabetu wraz z iloci
liczb hase na dan liter. Drugi widok bdzie wywietla ju waciwe hasa, zaczynajce si na wybran liter alfabetu. Widok ten bdzie
wywietlany na przykad po klikniciu na liter w licie pierwszego widoku. Umoliwimy rwnie dodawanie linkw do naszego komponentu,
zarwno do podsumowania, jaki i listy. Przyjrzyjmy si strukturze czci prezentacyjnej komponentu.
Cz prezentacyjna skada si bdzie, podobnie jak cz administracyjna, z pliku, do ktrego przechodzi sterowanie, tutaj bdzie to glossary.php, kontrolera controler.php, modeli dla listy hase models/list.php oraz podsumowania models/summary.php. W
katalogu views znajd si widoki dla listy views/list/view.html.php
oraz podsumowania views/summary/view.html.php. W katalogach
Listing 6. Kod layoutu listy

Kreator linkw
Kreator linkw, o ktrym mowa w kilku miejscach, to po prostu komponent, dostpny w panelu administracyjnym, sucy do tworzenia linkw. Aby zobaczy
efekty dziaania klasy JElementLetter wsplnie z deskryptorami widokw i
layoutw, naley z menu w panelu administracyjnym wybra na przykad Menus->Main Menu, nastpnie nacisn przycisk New, wybra nasz komponent (opcja
Sownik), layout Lista poj widoku Lista. Wygenerowany combo box widoczny bdzie po prawej stronie.

tmpl poszczeglnych widokw znajduj si domylne layout default.php oraz default.xml. Plik default.php zawiera layout natomiast
default.xml opis layout opisujce go na potrzeby generatora linkw, na ktrym skupimy si pniej. W katalogu views i o jeden poziom gbiej (np: views/summary/) mog znajdowa si pliki metadata.xml. W plikach tych mog znajdowa si opisy gazi dla generatora linkw informacje na ten temat znajdziecie w dalszej czci
artykuu. W naszym komponencie wykorzystamy te pliki, eby zmieni domylne nazwy, ktre wywietla generator na bardziej swojsko
brzmice. Po zapoznaniu si ze struktur komponentu zacznijmy wypenia pliki kodem.

Kontroler oraz plik wejcia


Pliki te, podobnie jak w czci administracyjnej, zawieraj jedynie kilka linii kodu, ca prac wykonuje za nas framework. Warto
zwrci uwag na rnic w nazwach. W czci administracyjnej
plik wejcia nazywany jest admin.nazwa_komponentu.php, natomiast w czci prezentacyjnej nazwa_komponentu.php. eby pokaza jak potnym narzdziem jest framework w wersji 1.5, kontroler pozostawiem pusty. Jest to tylko definicja klasy dziedziczcej
po klasie JController. Kod kontrolera znajduje si na Listingu 4. Plik
wejcia glossary.php jest identyczny jak ten w czci administra-

Konwencje nazewnicze klas


skadajcych si na komponent
Obok ukadu katalogw bardzo istotn spraw, w przypadku gdy chcemy wykorzystywa mechanizmy frameworka, s konwencje nazewnicze klas skadajcych si
na komponent napisany w oparciu o wzorzec MVC.

<?php
// bezporedni dostp do pliku zabroniony
defined('_JEXEC') or die(); ?>

<?php if ( $this->params->get( 'show_page_title' )) : ?>


<div class="componentheading<?php echo $this->params->

get( 'pageclass_sfx' ); ?>">

<?php echo $this->params->get( 'page_title' ); ?>

</div>

<?php endif; ?>

<h2>Ilo poj na liter <strong><?php echo $this->letter;


<dl>

?></strong>: <?php echo $this->total; ?></h2>

<?php foreach ( $this->terms as $term ) : ?>


<dt>

<?php echo $term->name;?>

</dt>
<dd>

<?php echo $term->description;?>

</dd>

<?php endforeach; ?>


</dl>

Software Developers Journal Extra! 26

Kontroler zwyczajowo bdzie nazywany KomponentController, gdzie komponent to nazwa naszego komponentu. Nazwy kolejnych kontrolerw utworzymy przez dodanie postfiksu, na przykad KatalogControllerWpis. Dla kontrolera konwencja nazewnicza pozostaje jedynie konwencj, wane jest jedynie, eby nazwa nie kolidowaa z nazwami innych klas.
Widok ten renderujcy HTML powinien znajdowa si w pliku
view.html.php i mie nazw, ktrej pierwszy czon jest nazw komponentu, drugi czon to sowo View, a nastpnie nazwa widoku odpowiadajca
nazwie katalogu, w ktrym si znajduje, na przykad GlossaryViewTerm.
Model oraz klasa ORM (Object-Relational Mapping mapowanie obiektowo-relacyjne) jeeli chcemy, by widok zaadowa domylny model (tak
bdzie w znakomitej wikszoci przypadkw), plik powinien znajdowa
si w katalogu models i mie nazw tak, jak ostatni czon nazwy widoku,
w omawianym przypadku term.php. Nazwa klasy modelu bdzie bardzo
podobna do nazwy widoku: GlossaryModelTerm. Domylna klasa ORM dla
modelu powinna znajdowa si w pliku tables/summary.php zauwamy, e plik ma tak sam nazw jak plik modelu. Nazwa klasy powinna by utworzona ze sowa Table oraz ostatniego czonu nazwy modelu,
czyli TableTerm.

www.sdjournal.org

39

Joomla!

Listing 8. Zawarto pliku metadata.xml dla widoku listy

Pobieranie referencji do instancji obiektu

<?xml version="1.0" encoding="utf-8"?>

Pomimo tego e istnieje metoda umoliwiajca pobranie danych z modelu bez


bezporedniego odniesienia do jego obiektu, istnieje moliwo pobrania referencji do jego instancji. Odwoanie takie wyglda bdzie nastpujco: $model
=& $this->getModel(). Po pobraniu obiektu w ten sposb bdziemy mieli
do niego bezporedni dostp.

<metadata>
<view title="Lista">
<message><![CDATA[Wybierz layout dla listy.]]>
</message>
</view>
</metadata>

cyjnej. Warto zwrci uwag na fakt, e staa JPATH _ COMPONENT w


czci prezentacyjnej wskazuje inny katalog, tym razem bdzie to
cieka_do_instalacji/components/com_glossary, a nie cieka_do_
instalacji/administrator/components/com_glossary jak poprzednio. Kod znajdujcy si w pliku wejcia aduje jedynie kontroler i
po utworzeniu instancji wykonuje zadanie (metoda Jcontroller:
:exectue), a nastpnie, jeeli w ciele kontrolera nie bdzie przekierowania (w tym przypadku nie ma, metoda Jcontroller::redirect), komponent koczy dziaanie.
Pomimo tego e klasa kontrolera jest pusta framework bdzie
wiedzia, ktre pliki powinien zaadowa. Dziki temu, e w adresie
(URL) wywoania komponentu umiecimy nazw widoku framework
znajdzie i zaaduje potrzebny plik. Argument view=nazwa _ widoku
spowoduje zaadowanie, w naszym przypadku, pliku views/nazwa_
widoku/view.html.php. Gdyby istnia domylny widok w pliku views/
glossary/view.html.php, zosta by on zaadowany nawet pomimo braku argumentu view w wywoaniu. W naszym przypadku, by pokaza
ten mechanizm, stworzylimy widoki summary oraz list. adowanie

domylnego widoku wida w czci administracyjnej. Dalej, po wybraniu widoku, nastpuje wybr layoutu. Layouty znajduj si w katalogu tmpl widoku, w naszym komponencie bdzie jedynie domylny layout default.php. Moglibymy jednak doda kolejne, na przykad
floating.php, wtedy, aby zosta on wybrany, w URL naleaoby dopisa layout=floating.

Widok i layout
W naszym komponencie napiszemy dwa widoki, jeden wywietlajcy alfabet wraz z iloci liczb wystpie sw na dan liter oraz drugi, wywietlajcy hasa zaczynajce si od danej litery. Pierwszy nazwiemy
summary, a drugi list. Kod mao skomplikowanego widoku bdzie skada
si z jednej, wymaganej, metody display. Metoda ta ma za zadanie pobra potrzebne dane z modelu i przekaza je do layoutu. Kod znajduje si
na Listingu 5. Odrobin niejasnoci wzbudzaj zapewne linie zawierajce
wywoanie $this->get('data'), $this->get('total') oraz $this>get('letter'). Framework automatycznie aduje model o nazwie ta-

Listing 7. Fragmenty klasy modelu


// bezporedni dostp do pliku zabroniony

// ustawiona

defined('_JEXEC') or die();

if (empty($this->_data))

jimport('joomla.application.component.model');

class GlossaryModelList extends JModel

// pobiera zapytanie

$query = $this->_buildQueryData();

(...)

// wykonuje je
$this->_data = $this->_getList($query);

/**
}

* Konstruktor

return $this->_data;

*
}

*/
function __construct()

(...)

/**
parent::__construct();

* Tworzy zapytanie, pobierajce pojcia na zadan

// pobierz liter, dla ktrej ma zosta wywietlona

* liter

// lista

*/
function _buildQueryData()

$letter = JString::substr(JRequest::getVar(
'id', 'a'), 0, 1);

$this->_letter = $letter;

// zapytanie obliczajce liczb poj zaczynajcych

// si na kolejne litery alfabetu

(...)

$query = 'SELECT *'


.' FROM `#__glossary`'

/**
* Zwraca list poj na dan liter

.' WHERE LOWER( name) LIKE \'' . $this->_letter

. '%\''
.' ORDER BY name';

* @return array
*/
function getData()

(...)

// wykonuje, jeeli warto nie zostaa poprzednio

40

return $query;

www.sdjournal.org

Software Developers Journal Extra! 26

kiej samej jak widok i udostpniea wszystkie jego metody postacji KlasaModelu::getXXX za pomoc wywoa $this->get('XXX') wewntrz
klasy widoku. Umoliwia to atwe pobranie danych z modelu i przekazanie ich do layoutu.
Jak wspomniaem, pliki znajdujce si wewntrz katalogu nazwa _
widoku/tmpl to layouty. Umoliwiaj one wywietlanie danych na wiele
rnych sposobw, na przykad w formie tabeli, listy i tak dalej. W naszym
komponencie wykorzystamy tylko jeden layout dla kadego widoku. Kod
layoutu jest bardzo prosty, zazwyczaj bd to fragmenty HTML-a przeplatane kodem PHP wywoaniami echo oraz konstrukcjami sterujcymi.
W layoucie dostp do danych z modelu mamy dziki przypisaniu danych
w widoku za pomoc wywoa JView::assign oraz JView::assignRef.
Zgodnie z nazw ta druga przypisuje referencj. Jest to mechanizm znany na przykad ze SMARTY.
Na Listingu 6 znajduje si kod layoutu wywietlajcy list poj. Na
pocztku pliku, w zalenoci od parametru, wywietlany jest lub nie tytu, nastpnie po wszystkich sowach dostarczonych z modelu tworzona
jest lista poj. Dziki zastosowaniu alternatywnej skadni PHP kod wydaje si bardziej przejrzysty.

Model
Model znajduje si na Listingu 7. W konstruktorze pobieramy wszelkie potrzebne dane, nastpnie za pomoc getterw udostpniamy dane dla widoku. Warto zwrci uwag na wykorzystanie klasy JString jest to
wygodny sposb na pozbycie si kopotw zwizanych z tym, e znaki
Listing 9. Zawarto pliku default.xml dla domylnego layoutu
widoku listy
<?xml version="1.0" encoding="utf-8"?>
<metadata>
<layout title="Lista poj">
<message>
<![CDATA[Lista poj na jedn liter komponentu
sownik]]>
</message>
</layout>
<state>
<name>Lista poj na jedn liter komponentu
sownik</name>
<description>Wywietla list poj na jedn liter
wraz z opisami</description>
<url addpath="/administrator/components/com_glossary/
elements">
<param name="id" type="letter" default=""
label="Wybierz liter" description="Litera
na ktr pojcia bd wywietlane" />
</url>
<params>
<param name="add_letter_to_pathway" type="radio"
default="0" label="Poka liter w nazwie
strony i ciece" description="Pokazuje/
Ukrywa liter w nazwie strony i ciece">
<option value="0">Ukryj</option>
<option value="1">Poka</option>
</param>
</params>
</state>
</metadata>

Software Developers Journal Extra! 26

W Sieci

http://www.joomla.org gwna strona projektu;


http://dev.joomla.org zasoby dla programistw;
http://www.joomlacode.org instalacja GForge udostpniona dla wszystkich programistw, ktrzy chc pisa rozszerzenia do projektu. Najwaniejsze zalety to wasne repozytorium SVN oraz bugtracker;
http://www.pomoc.joomla.pl/sdj/ miejsce pobrania plikw przydatnych
w trakcie lektury i pracy wasnej.

w UTF-8 s wielobajtowe. Do frameworka w wersji 1.5 doczono biblioteki umoliwiajce operacje na stringach zawierajcych znaki wielobajtowe
nawet w przypadku, gdy niedostpna jest biblioteka mbstring.

Informacje dla kreatora linkw


Na koniec omawiania komponentu zwrmy uwag na kilka niepozornych
plikw XML znajdujcych si w drzewie katalogw w gazi z widokami.
Pliki metadata.xml znajdujce si bezporednio w katalogach poszczeglnych widokw umoliwiaj nam zmian domylnych tekstw wywietlanych w panelu administracyjnym w momencie wyboru widoku. Jeeli
nie dostarczylibymy frameworkowi danych zawartych w tych plikach, to
nazwy widokw odpowiadayby nazwom katalogw, czyli List oraz Summary. Po wpisaniu szeciu linijek prostego XML-a uzyskujemy moliwo
zmiany domylnych wartoci. Zawarto pliku znajduje si na Listingu 8.
Pliki te istotne na pewno z punktu widzenia interfejsu uytkownika
mog zosta pominite. Zdecydowanie istotniejsze znajduj si w katalogu tmpl widoku. Pozwala on okreli dane, jakie ma zawiera link, jest
to o tyle istotne, e pozwala nam na generowanie dynamicznych list parametrw. Dla kadego widoku przygotowa musimy plik XML o odpowiadajcej mu nazwie. Tak jak wspominalimy, dla domylnego layoutu
bd to default.php oraz default.xml. Przed omwieniem pliku opisu layoutu przyjrzyjmy si jego zawartoci na Listingu 9. Pocztek pliku ma
podobn funkcj jak poprzednio - odpowiada za tekst wywietlany przez
kreatora. Fragment pliku wewntrz tagw <state> umoliwia nam odwoanie do dynamicznie generowanych danych w momencie tworzenia
linka. Linijka <url addpath="/administrator/components/com _
glossary/elements"> informuje framework, e ma pobra dane ze
wskazanej cieki (bdzie to ju przygotowany combo box). W nastpnej linii znajduje si informacja o tym, w jaki sposb kreator ma traktowa
przygotowany combo box. Jako e u nas generujemy list liter do wyboru,
informujemy framework, e opcja wybrana z combo boxa ma w URL-u wystpi jako parametr id. W ten sposb umoliwiamy uytkownikom tworzenie linkw nie tylko do samego komponentu, ale rwnie na odwoania
do specyficznych stron generowanych przez komponent, nawet tych generowanych dynamicznie. Funkcja ta pozwala nam na bardzo mocn integracj naszego komponentu z innymi komponentami, a take z bazowymi komponentami Joomla!

Podsumowanie
Joomla! w wersji 1.5 posiada wiele mechanizmw uatwiajcych prac
deweloperom aplikacji internetowych. Poza frameworkiem wspierajcym
MVC otrzymujemy do dyspozycji wiele narzdzi przydatnych w codziennej pracy. Klasy narzdziowe sprawdzane s pod ktem atakw zarwno bardziej tradycyjnych SQL-injection, jak i nowszych, takich jak XSS czy
CSRF/XSRF zarwno przez automatyczne narzdzia, jak i wielu dowiadczonych programistw. Wersja 1.5 RC1 nie zalecana na razie dla rodowisk produkcyjnych, ju za niedugo doczeka si stabilnego nastpcy.
Warto zapozna si z tym rozwizaniem, gdy bdzie coraz czciej wykorzystywane do tworzenia aplikacji internetowych. n

www.sdjournal.org

41

Joomla!

Stefan Wajda

Rozszerzamy moliwoci

odstawowa wersja Joomla! wystarczy, by zbudowa


duy portal o bogatej uytecznoci. Ale moc Joomla!
objawia si w peni, gdy wykorzystasz najlepsze spord 2000 dostpnych rozszerze, dobranych stosownie do
celw i potrzeb uytkownikw. Wybierzemy przydatny na kadej witrynie komponent, ktrego nazwa sugeruje, e suy do
zarzdzania dokumentami, udostpniania plikw. Ale jak si
przekonasz jego moliwoci s znacznie wiksze. Jak wielu
innych dobrych komponentw.

na mona te pobra z www.joomla.pl. Przed instalacj


kadego nowego skadnika, zgodnie z zasad ufaj tylko sobie:

Instalujemy komponent

Dwie metody instalacji

Rozszerzenia pozwalaj dostosowa Joomla! do najbardziej


wyrafinowanych potrzeb. Kwestii ich doboru rozwaa nie
bdziemy. Poza jedn uwag: kady dodatkowo instalowany skadnik czyni Joomla! bardziej skomplikowanym, trudniejszym w obsudze, konserwacji, wraliwszym na zagroenia, w tym zagroenia bezpieczestwa. Warto o tym pamita. Recepta jest prosta: jeli czego na pewno nie da si
zrobi dobrze za pomoc rozwiza standardowych, to rzeczywicie trzeba poszuka rozszerzenia dobrego, wielofunkcyjnego.

Joomla! umoliwia instalacj rozszerze dwoma sposobami: ze spakowanego, oryginalnego pakietu instalacyjnego oraz pakietu rozpakowanego, przesanego na serwer. Zatem, do dziea. Instalacja komponentu z pakietu
instalacyjnego:

DocMan przykad wymienity


Instalacja komponentu nie powinna sprawi uytkownikom
Joomla! Kopotu. Przeprowadzana jest bowiem standardowo za pomoc wbudowanego instalatora. Skorzysta mona przy tym zarwno z opcji Instaluj ze spakowanego archiwum, jak i Instaluj z plikw w katalogu na serwerze, w ktrym wczeniej zosta umieszczony rozpakowany pakiet instalacyjny.

Przygotowanie
Przed przystpieniem do instalacji zaopatrujemy si w pakiet instalacyjny. Oryginalne spakowane archiwum mona
pobra na stronie internetowej projektu www.mambodocman.com. Rejestracja nie jest konieczna. Aktualnie dostpna jest wersja 1.3 RC 2. Mona tu rwnie pobra polskie
pliki jzykowe.
Najwikszy zbir oficjalnych pakietw instalacyjnych
oferuje JoomlaCode centralne repozytorium. DocMan
dostpny jest tam pod adresem: http://joomlacode.org/
gf/project/DocMan/frs/. Polsk wersj jzykow DocMaStefan Wajda [Zwiastun] jest liderem PCJ!, koordynatorem
Zespou Tumaczy i Dokumentacji akredytowanym przy Translation Work Group projektu Joomla!, wydawc witryn PCJ, autorem
w peni zlokalizowanych wersji Mambo i Joomla! (MLI MamboPL,
J!PlusAdmin,) komponentw josDirectory i josResource. Spolonizowa okoo 150 rozszerze dla Joomla!, opublikowa ponad 600
artykuw powiconych wszystkim aspektom Joomla!
Kontakt z autorem: zwiastun@zwiastun.net.

42

www.sdjournal.org

przetestuj pobrany pakiet programem antywirusowym;


sprawd poprawno dziaania komponentu na roboczej,
testowej wersji Joomla!;
wykonaj na wszelki wypadek kopi zapasow bazy danych
dziaajcego serwisu na wszelki wypadek.

zaloguj si na zaplecze swojego Joomla!;


przejd np. do menu Instalatory > Komponenty;
w oknie instalatora przejd do opcji Instaluj ze spakowanego archiwum > Pakiet instalacyjny;
kliknij przycisk Przegldaj [Browse], wska plik pakietu
instalacyjnego, a nastpnie kliknij przycisk Wczytaj plik
i zainstaluj [Upload file].

Otrzymasz komunikat, e instalacja nowego skadnika zakoczya si pomylnie. Kliknij wwczas odnonik Dalej [Next],
aby powrci do wykazu zainstalowanych komponentw.

Instalacja
komponentu z katalogu na serwerze
Jeli serwer uniemoliwia instalacj z pakietu instalacyjnego
(powodem jest zwykle nieobsugiwanie biblioteki GZIP), sprbuj instalacji drug z metod z katalogu na serwerze:

rozpakuj pakiet archiwum w katalogu na swoim komputerze;


korzystajc z FTP, przelij wszystkie pliki do katalogu instalacyjnego na serwerze (np. specjalnie utworzonego /
media/instaluj);
zaloguj si na zaplecze swojego Joomla!;
przejd np. do menu Instalatory > Komponenty;
w oknie instalatora przejd do opcji Instaluj z katalogu
[Install from Directory];
wpisz w polu tekstowym ciek dostpu do pliku instalacyjnego .xml w katalogu, do ktrego przesae
pliki archiwum), np. /usr/local/www/data/joomla/
media/instaluj/;
kliknij przycisk Instaluj [Install].

Jeli instalacja przebiegnie pomylnie, a pewno przebiegnie,


kliknij odnonik Dalej [Next], Komponent pojawi si na licie zainstalowanych i w menu Komponenty.
Software Developers Journal Extra! 26

Twrc i pierwszym liderem DocMana by Vasco Nunes, dzi zaszczycajcy honorowe ju grono projektantw. S w tym gronie jeszcze Charls Gentry,
Alex Kempkens, i Timothy Beutels. Aktualnie prace nad rozwojem projektu prowadzi Johan Janssens, wspierany od wersji 1.3 RC 2 przez zesp w skadzie:
Marko Schmuck, Michael Kulec i Andy Troozers. Kolejne wydanie komponentu
ma by w peni dostosowane do Joomla 1.5.

Konfiguracja
Kade nowo zainstalowane rozszerzenie trzeba skonfigurowa,
a przynajmniej sprawdzi, czy odpowiadaj nam ustawienia domylne. W DocManie ustawienia konfiguracyjne umieszczono na
piciu kartach.
Przejd np. do menu Komponenty > DocMan > Ustawienia. Na
karcie Oglne [General] dokonujemy tylko jednego ustawienia cieki do katalogu z plikami. Instalator Joomla! wprowadza ciek dostpu do tworzonego przez siebie folderu w gwnym katalogu Joomla! W
systemach *NIX standardowa cieka moe wyglda nastpujco: /
var/usr/www/twoja_joomla/dmdocuments bez kocowego ukonika.
Natomiast w przypadku Windows, wpisz np. C:/inetpub/www/ twoja _ joomla/dmdocuments rwnie bez ukonika na kocu. Oczywicie, pliki mona przechowywa w dowolnie nazwanym katalogu,
umieszczonym take poza katalogiem Joomla! Jeli pliki s zlokalizowane w standardowym katalogu, zawsze mona skorzysta z przycisku Przywr domylne [Reset default].
Przejd na kart Front [Frontend]. Przejrzyj ustawienia domylne. Nie bdziemy ich modyfikowa. Przyjdzie na to czas po
udostpnieniu komponentu na stronie frontowej. Jeli chcesz si

dowiedzie, co oznaczaj poszczeglne opcje, ustaw wskanik


myszki nad ikon z literk I.
Przejd na kart Uprawnienia [Permissions]. Ustawienia na tej karcie maj szczeglne znaczenie. Okrelasz tu uprawnienia uytkownikw do przegldania i modyfikowania dokumentw oraz czytania lub
pobierania plikw. DocMan oferuje szersze moliwoci kontroli dostpu ni Joomla! W grupie wszystkich uytkownikw wyrnia dodatkowo Przegldajcych [Uprawnion, Viewers], Dysponentw [Maintain]
oraz Kreatorw [Creator]. Ponadto pozwala tworzy specjalne grupy
uytkownikw DocMana. Wrcimy do tej kwestii pniej.
Na kolejnej karcie Wczytywanie [Upload] ustalamy dopuszczalne metody wczytywania oraz reguy dotyczce plikw formatu, nazewnictwa, itd. Na karcie Ochrona [Security] moemy uchroni si przed linkowaniem do naszych dokumentw na innych stronach oraz zdecydowa,
czy DocMan ma prowadzi dziennik przegldania dokumentw. Ostatnia
karta Aktualizacja [Update] zawiera adres strony projektu, umoliwiajcy
sprawdzenie, czy nie pojawia si nowa wersja komponentu.
Poznalimy zakres ustawie konfiguracyjnych. Na razie niczego
nie modyfikowalimy. Nie znamy jeszcze komponentu, a tym samym
wpywu ewentualnych ustawie na jego dziaanie. Wiemy, e po dodaniu treci i opublikowaniu komponentu na stronie frontowej, bdziemy mogli:

okreli parametry prezentacji dokumentw;


uprawnienia uytkownikw do przegldania, pobierania i zarzdzania
dokumentami;
zasady wczytywania plikw;
bogatsi w t wiedz, zrbmy co konkretnego, aby zobaczy jaki
efekt na stronie frontowej. Musimy:

Rysunek. 1. Konfiguracja komponentu DocMan. Ustawienia oglne


Software Developers Journal Extra! 26

www.sdjournal.org

43

Joomla!

zaoy przynajmniej jedn kategori, w ktrej bdziemy udostpnia dokumenty;


wczyta przykadowy plik;
zaoy dla niego dokument;
udostpni komponent na stronie frontowej.

Tworzenie i edycja kategorii


W komponentach sucych prezentacji trzeba utworzy kategorie
treci. Standardowo struktura treci w Joomla! jest trzypoziomowa.
Poziom najwyszy stanowi sekcje i komponenty, w ktrych wyodrbniamy kategorie, a w nich umieszczamy pozycje.
Do niedawna DocMan by jednym z nielicznych komponentw umoliwiajcych tworzenie struktury wielopoziomowej. W kadej kategorii mona utworzy dowoln ilo liczb podkategorii, a w nich kolejnych podkategorii. Aby utworzy kategori:

wybierz z panelu kontrolnego lub menu Komponenty > DocMan


opcj Kategorie;
kliknij przycisk Dodaj [New];
okrel waciwoci kategorii. Zasady ich definiowania s takie same w przypadku wszystkich komponentw, w ktrych kategorie
tworzymy. Podaj:
Tytu [Category Title]: Powinien by zwizy, wystarczy jeden wyraz. Tytu wywietlany jest w ciece powrotu, moe by wywietlany w menu i w adresie strony kategorii;
Nazwa [Category Name]: Rwnie nie powinna by zbyt rozbudowana, ale moe si skadac z kilku sw. Jest wywietlana na
stronie frontowej komponentu;

Nadrzdna pozycja [Parent]: Tworzymy pierwsz kategori, wic nie


mamy tutaj adnego wyboru. Przy tworzeniu nastpnej moliwe bdzie zaznaczenie opcji Gra [Top], ustawiajcej kategori na poziomie najwyszych w hierarchii albo zaznaczenie ktrejkolwiek z ju
utworzonych kategorii, dziki czemu stworzymy podkategorie;
Grafika [Image]: Moesz wybra z listy rozwijanej obraz ilustrujcy opis kategorii. Potrzebne grafiki umieszczamy za pomoc narzdzi w bibliotece mediw w folderze /images/stories ;
Wyrwnanie [Image aligment]: Okrel pooenie ilustracji wzgldem tekstu opisu;
Uprawnienia [Access Level]: Pozostaw bez zmian. Prawa dostpu
bdziemy okrela dla kadego dokumentu. A jeli ich nie okrelimy, zdecyduje pozostawione tu domylnie prawo dostpu dla
wszystkich uytkownikw;
Opis [Description]: Moesz scharakteryzowa kategori. Opis
wywietlany jest na stronach komponentu;
kliknij przycisk Zapisz [Save], aby zakoczy tworzenie nowej
kategorii (od nastpnego razu take podkategorii).

Wczytywanie plikw
Joomla! zosta pomylany tak, aby nawet administratorzy nie byli zmuszeni do korzystania z innych narzdzi ni przegldarka internetowa.
DocMan rwnie oferuje wasnego asystenta wczytywania plikw. Dostpne s trzy opcje:

pobierz plik z wasnego komputera [Upload a file];


pobierz plik z innego serwera [Transfer file];
podcz plik z innego serwera [Link file].

Rysunek. 2. Konfiguracja komponentu DocMan. Uprawnienia uytkownikw

44

www.sdjournal.org

Software Developers Journal Extra! 26

DocMan w menu witryny

Skorzystajmy z pierwszej opcji:

wybierz w menu komponentu lub w panelu kontrolnym opcj Pliki [Files];


kliknij w pasku narzdzi w prawym grnym rogu przycisk Wczytaj
[Upload];
zaznacz na licie Metoda wczytywania [Choose the upload method]
pierwszy sposb Pobierz plik z wasnego komputera [Upload a file];
W oknie dialogowym wska na swoim komputerze plik, ktry chcesz
wczyta, np. dokument tekstowy, plik graficzny w formacie .JPG,
.PNG lub .GIF czy plik skompresowany w formacie ZIP;
Nacinij OK. Powrcisz do DocMana;
Nacinij przycisk Wylij [Submit].

Po chwili DocMan powinien wywietli komunikat o zakoczeniu


transmisji i zaproponowa wykonanie jednego z trzech zada: stworzenie dokumentu [Make a new document entry using this file],
wczytanie nastpnych plikw [Upload more] bd wywietlenie listy
wczytanych plikw [Display Files]. Kliknij ikon prowadzc do edytora dokumentu.

Tworzenie i edycja dokumentw


To raczej rzadko jeszcze spotykane rozwizanie, e program sam
doprowadza operatora do nastpnego kroku. To jeden z plusw DocMana. Co wicej wczytany przed chwil plik zosta ju umieszczony w polu Plik [File]. Uzupenijmy informacje na karcie Dokument [Document]:

Nazwa [Name]: Moe to by nazwa pliku, ale niekoniecznie. Nazwa


powinna by krtka, zwaszcza gdy chcemy korzysta z moduw
listujcych najnowsze dokumenty czy dokumenty w kategoriach.
Przydugie nazwy bd skutkowa niezbyt estetycznym wygldem
moduw;
Plik [File]: Ju masz wybrany;
Kategoria [Category]: Zaznacz na licie utworzon niedawno kategori. Jeli zapomnisz, moesz si spodziewa nie tylko komunikatu,
e przypisanie dokumentu do kategorii jest wymagane, ale tak bdu. W rezultacie ca procedur tworzenia dokumentu trzeba bdzie
powtrzy;
URL dokumentu [URL of Document]: pozostaw puste. To pole wypeniasz jedynie, gdy chcesz podczy (linkujesz) dokument z odlegego serwera. Musisz wwczas wprowadzi peny URL wcznie z protokoem (http:// lub ftp://);
Opis [Description]: Jeli korzystasz z edytora typu WISIWYG, moesz
uy jego narzdzi do sformatowania opisu. W prostym edytorze
mona stosowa znaczniki HTML. Napisz zwiz informacj o pliku:
co zawiera, dla kogo jest przeznaczony, do czego mona go wykorzysta, ktra to wersja dokumentu, itp;
Publikacja [Publishing]: Zaznacz Tak. Aby dokument by widoczny na
stronie frontowej, musi by opublikowany;
Akceptuj [Approved]: Ta dodatkowa opcja pozwala zdecydowa
dysponentowi, czy opublikowany dokument ma by udostpniony. DocMan dziaa tu nieco inaczej ni wikszo komponentw,
w ktrych wystarczy opublikowanie pozycji, by j udostpni;
moesz zajrze na kolejne karty, ale nie jest to na razie konieczne.
Wprowadzone dotychczas informacje wystarcz, by udostpni dokument na stronie frontowej;
sprawd jeszcze raz wpisy i kliknij w pasku narzdzi w prawym grnym rogu przycisk Zapisz [Save].

Jestemy gotowi, by udostpni nasz pierwszy dokument na witrynie.


Software Developers Journal Extra! 26

Uczynimy to w sposb najbardziej typowy w menu witryny stworzymy


cze do komponentu:

wybierz w menu administratora opcj Menu > Menu witryny [mainmenu];


kliknij w pasku narzdzi w prawym grnym rogu przycisk Dodaj [New];
zaznacz na licie po prawej stronie opcj Komponent [Component];
przejdziesz do edytora pozycji menu. Wpisz nazw cza, np. Dokumenty;
zaznacz DocMan na licie Komponent [Component];
kliknij w pasku narzdzi w prawym grnym rogu przycisk Zapisz [Save];
wyloguj si z panelu administracyjnego albo otwrz w nowym oknie
przegldarki swoj witryn;
wybierz z menu witryny stworzone przed chwil cze Dokumenty.

Czy znasz prostsz metod, ktr potrafi zastosowa kady uytkownik komputera, a nie tylko informatyk? Zauwa w adnym, dosownie
w adnym momencie, nie wykonywalimy zada, ktre wymagayby
jakiejkolwiek znajomoci HTML, PHP czy czegokolwiek obcego zwykemu
czowiekowi. To jest wanie Joomla! Takie podejcie rni Joomla! od zdecydowanej wikszoci CMSw:

Koniec kursu podstawowego


Podsumujmy, co nam si udao zdziaa dotychczas:

zainstalowalimy komponent;
zorientowalimy si w moliwociach jego konfiguracji;
utworzylimy kategori dokumentw;
wczytalimy plik;
opisalimy plik, tworzc dla niego dokument;
dodalimy now pozycj w menu witryn.

Tak wanie wyglda procedura instalacji, konfiguracji i publikacji treci


za pomoc dodatkowych komponentw. Skoro masz ju za sob kurs
podstawowy, przejdmy do poziomu zaawansowanego. Zapewne nie
jest Ci obca problematyka Access Control List, krcej ACL?
Angielski termin zosta tu zastosowany jedynie po to, by za moment zdj ze ca informatyczn tajemniczo, ktr zwyklimy
si epatowa w rodowisku lepszych i gorszych informatykw. W yciu
projektanta WWW moe si zdarzy taka historyjka: Potrzebne mi taka
stronka oznajmia nam szef firmy eby pani Marysia z sekretariatu
moga publikowa dokumenty w Wordzie albo Excelu oraz okrela, e
przeglda mog je czonkowie zarzdu, a zmienia panie z dziau planowania czy te innego. Dopki zarzd nie zatwierdzi dokumentu, nikt
inny nie powinien go oglda.
Mylisz sobie pewno, e w Joomla!, w ktrym zastosowano stosunkowo prosty system zarzdzania prawami uytkownikw, realizowanie yczenia klienta bdzie wymagao nie lada zabiegw. Pewno jeli to w ogle wykonalne koderw trzeba bdzie zaangaowa, skryptw troch naduba i jako to zintegrowa. Ot, nie! Nic z tych rzeczy. Skoro zainstalowae na witrynie klienta DocMana, to on ju ma wszystko, czego potrzebujesz. Z reszt poradzi sobie nawet pani Marysia, mimo e nigdy
nie syszaa o licie kontroli dostpu, GACL, obiektach, klasach (no, poza szkolnymi), metodach czy skryptach

Uprawnienia
i grupy uytkownikw w Joomla!
DocMan jest elastycznym narzdziem pracy zespoowej dziki rozszerzonej obsudze uprawnie i grup uytkownikw.

www.sdjournal.org

45

Joomla!

Uytkownicy
Po pierwsze, o czym ju wspomnielimy wczeniej!, DocMan rozszerza
standardowe kategorie uytkownikw Joomla! o trzy kolejne:

Uprawniony [Viewers]: uytkownik, ktry ma prawo przeglda


dokumenty oraz czyta lub pobiera pliki (czyta, to take odtwarza np. media strumieniowe);
Dysponent [Maintain]: uytkownik, ktry otrzyma prawa do zarzdzania dokumentem;
Kreator [Creator]: uytkownik, ktry stworzy dokument udostpniajcy plik (samo dodanie pliku nie wpywa na uprawnienia).

Dysponenta mona wyznaczy dopiero wwczas, gdy zostanie stworzona specjalna grupa uytkownikw DocMana i zostan jej przypisane prawa do korzystania z dokumentu.

Grupy uytkownikw
Po drugie, oprcz standardowych w Joomla! grup uytkownikw, DocMan
pozwala tworzy nowe wasne grupy o dowolnym skadzie i przypisywa
im uprawnienia. Tym samym w komponencie DocMan mog istnie nastpujce grupy uytkownikw:

Oglna [General] s w niej wszyscy zarejestrowani uytkownicy


Joomla!;
Grupy Joomla! [Joomla Groups]: autorw, redaktorw i wydawcw,
operatorw i administratorw;
Grupy DocMana [DocMan Groups]: stworzone przez administratorw.

Zaznacz wybran opcj. Bdzie ustawieniem domylnym. W edytorze


dokumentw jest moliwo zmiany tego ustawienia dla kadej pozycji.
Ustawienie domylne zaoszczdzi Ci pracy. Wybierz t opcj, ktra bdzie dotyczy wikszoci dokumentw.

Uprawnienia na stronie frontowej


W kolejnej czci okrelasz prawa do zarzdzania dokumentami z poziomu strony frontowej. Bd je posiada jedynie zarejestrowani i zalogowani uytkownicy. Moesz im nada wybrane spord trzech uprawnie:

Uprawnienia
DocMan rozrnia prawa uytkownikw do:

podgldu listy dokumentw;


przegldania [Viewers] plikw czytania lub odtwarzania i pobierania;
wczytywania (przesyania) plikw i tworzenia dokumentw;
nadpisywania poprzednich wersji plikw;
tworzenia, modyfikowania i usuwania dokumentw;
dysponowania dokumentem udostpniania i nadawania uprawnie.

Prawa uytkownikw
O prawach uytkownikw trzeba zdecydowa podczas konfigurowania
DocMana.

zaloguj si na zaplecze;
z menu administratora lub z panelu kontrolnego DocMana wybierz
pozycj Ustawienia [Confguration];
kliknij zakadk Uprawnienia [Permissions].

Jak widzisz, decyzje o uprawnieniach uytkownikw podzielono na cztery typy:

Uprawnienia goci [Guest permissions];


Uprawnienia na stronie frontowej [Frontend permissions];
Uprawnienia do dokumentu [Document permissions];
Prawa kreatora [Creator permissions];
uprawnienia niezalogowanych.

46

prawo dodawania plikw [Upload]: zaznacz na licie rozwijanej uytkownika lub grup, ktrej chcesz przyzna prawo wczytywania nowych plikw. Decyzja dotyczy wszystkich metod: wczytywania przez
http, podlinkowania, transferu (kopiowania z innego serwera);
prawo akceptacji dokumentw [Approve]: zaznacz na licie rozwijanej uytkownika lub grup, ktrej chcesz przyzna prawo akceptowania dokumentw. Moesz rwnie wybra opcj Autoakceptacja
[Auto Publish]. Dopty dopki dokument nie zostanie zaakceptowany, dopty nie bdzie opublikowany, nawet jeli zostanie zaznaczona w kolejnym parametrze opcja Autopublikacja;
prawo publikacji dokumentw [Publish]: zaznacz na licie rozwijanej
uytkownika lub grup, ktrej chcesz przyzna prawo publikowania
dokumentw, czyli udostpniania na stronie frontowej.

Zauwa, jak ogromn elastyczno zakada DocmMan prawo do akceptacji i publikacji dokumentu mog posiada wszyscy zarejestrowani
uytkownicy Joomla! po zalogowaniu si. W standardowych komponentach Joomla! prawa takie posiadaj tylko uytkownicy z Grupy wydawcw
[publisher], Operatorw [Manager] i administratorw!

Prawa do dokumentw
Ju wiesz, e DocMan rozrnia dwa podstawowe zakresy praw uytkownikw:

Do przegldania [Viewers] dokumentw, ich pobierania i czytania;


Do dysponowania [Maintainer] dokumentami tworzenia, modyfikacji, zmieniania uprawnie, w tym waciciela i twrcy (kreatora);

Wiesz rwnie, e moesz tworzy nowe grupy uytkownikw. Pora zatem, by stworzy przynajmniej jedn dodatkow grup, chociaby po to,
aby przekona si praktycznie, jak ten system dziaa. Dopki nie utworzymy jakiej grupy uytkownikw DocMana, nie zobaczymy, jak mona
nadawa grupie uprawnienia.
Zachowaj poczynione dotychczas ustawienia, klikajc przycisk Zapisz [Save] w pasku narzdzi po prawej stronie edytora konfiguracji.

Tworzenie i edycja waciwoci grup

Do dyspozycji mamy trzy opcje:

wadzcej do komponentu pozycji menu zostanie wybrana opcja


Public [dostp powszechny];
Tylko przeglda [Browse only]: anonimowi gocie zobacz list i opisy plikw, bd j mogli przeglda, ale nie bd mogli ani czyta, ani
pobiera plikw;
Przeglda, pobiera i czyta [Browse, Download and View]: anonimowi gocie zobacz bd mogli take czyta i pobiera opublikowane
pliki z dokumentami.

Procedura tworzenia nowej grupy jest prosta:

Bez adnych praw [No Access]: komponent nie bdzie dostpny


dla anonimowych goci w ogle, nawet jeli w ustawieniach pro-

w panelu kontrolnym komponentu lub z menu zaplecza wybierz opcj


Grupy [Groups];

www.sdjournal.org

Software Developers Journal Extra! 26

kliknij przycisk Dodaj [New] na pierwszej karcie ;


w polu Nazwa [Name]: nazwij grup czytelnym okreleniem, np.
Pracownicy;
w polu Opis [Description]: umie zwiz charakterystyk grupy,
warto tu zanotowa planowane prawa uytkownikw;
kliknij zakadk Uytkownicy [Users] i zaznacz na licie uytkownikw tych, ktrych chcesz przypisa do grupy, a nastpnie kliknij
przycisk ze strzaeczkami;
zachowaj ustawienia, klikajc przycisk Zapisz [Save] w pasku
narzdzi.

Modyfikowanie skadu grupy i szczegw opisu przebiega podobnie.


W kadym momencie mona doda do grupy nowych uytkownikw czy
usun dodanych. Stwrz aby dysponowa wikszym wyborem jeszcze jedn grup, np. Zarzd (firmy). Gotowe? Wrmy zatem do konfigurowania uprawnie.

Skonfigurowanie praw do dokumentw ma fundamentalne znaczenie


w zarzdzaniu nimi. Okrel, zaznaczajc na rozwijanych listach:

Uprawniony [Viewers]: uytkownika lub grup, ktrej przyznajesz prawa przegldania, dokumentw oraz pobierania i czytania
plikw;
Dysponent [Maintainer]: uytkownika lub grup, ktrej przyznajesz
prawo zarzdzania dokumentami.

Masz niemao moliwoci. Lista wyboru moe liczy z czasem kilka, ba! kilkadziesit czy kilkaset moliwoci, liczonych w tysicach czy milionach. Wszystko zaley od iloci liczby zarejestrowanych uytkownikw. Bo kady zarejestrowany uytkownik pojawi si na dostpnych tu listach. Oto zestawienie moliwoci na
obu listach:

Kady [Everybody]: nadajesz prawo wszystkim, take anonimowym


gociom, a wic niezarejestrowanym uytkownikom witryny. Na licie dysponentw tej moliwoci, ze zrozumialych wzgldw, nie ma;
Wszyscy zalogowani [All registered users]: nadajesz prawo wszystkim zarejestrowanym uytkownikom. Korzystanie z nadanych
uprawnie bdzie moliwe co oczywiste dopiero po zalogowaniu
si na witrynie;
Oglne [General]: podobnie, jak poprzednio;
Grupy Joomla [Joomla Groups]: nadajesz prawa wszystkim uytkownikom z grup Joomla! ze specjalnymi uprawnieniami, a wic a wic
wszystkim autorom, redaktorom [editor], wydawcom [publisher]
i operatorom [manager];
Autorzy [Authors]: praktycznie rzecz biorc, jak poprzednio, wszystkim uytkownikom z grup Joomla! ze specjalnymi uprawnieniami.
Uprawnienia przysugujce standardowym grupom Joomla! s bowiem dziedziczone grupy uytkownikw z wyszymi uprawnieniami posiadaj wszystkie prawa przysugujce uytkownikom z niszymi uprawnieniami;
Redaktorzy [Editors]: nadajesz prawo uytkownikom standardowej
grupy redaktorw i wszystkim uytkownikom z grup o wyszych
uprawnieniach;
Wydawcy [Publishers]: jak poprzednio, z tym e prawo posiada bd
uytkownicy nalecy co najmniej do grupy wydawcw;
Grupy DocMana [DocMan Groups]: nadajesz prawa wszystkim uytkownikom przypisanym do ktrejkolwiek z grup DocMana. I tylko tym
uytkownikom;

Software Developers Journal Extra! 26

zaznaczona grupa uytkownikw DocMana: nadajesz prawa wszystkim uytkownikom, ktrzy zostan przypisani do zaznaczonej grupy. Nikt, poza uytkownikami tej grupy, nie bdzie posiada definiowanego uprawnienia;
zaznaczony uytkownik: nadajesz prawo tylko jednemu wskazanemu uytkownikowi z tej opcji korzystamy raczej w ustawieniach
konkretnych dokumentw;
Kreator [Creator]: nadajesz prawo tylko twrcy dokumentu z tej
opcji rwnie korzystamy raczej tylko w ustawieniach konkretnych
dokumentw.

Prawo do modyfikacji uprawnie


Niezalenie od powyszych ustale, moesz jeszcze zdecydowa, kto
bdzie mie prawo modyfikowania uprawnie. Zaznacz pola wyboru przy
parametrach:

Konfiguracja praw do dokumentw

Zmienianie praw do przegldania [Override View]: moesz nada to


uprawnienie zarwno dysponentowi, jak i twrcy dokumentu;
Zmienianie praw wasnoci [Override Maintain]: jak poprzednio
moesz nada to uprawnienie zarwno dysponentowi, jak
i twrcy dokumentu.

Poza dysponentami i twrcami oba prawa posiadaj take wszyscy administratorzy i gwny administrator.

Prawa twrcy dokumentu


Ta opcja moe Ci szokowa. Twrca dokumentu moe by nawet
pozbawiony wszelkich praw do niego! Ale to jedynie kolejny dowd,
e projektanci komponentu dokadnie przemyleli koncepcj zarzdzania prawami dostpu.
Wszak fakt stworzenia dokumentu, przygotowania go w zwizku
z wykonywan prac, nie oznacza jeszcze, e pracownikowi naley
pozostawi swobodny dostp do dokumentu, a tym bardziej prawo
jego edycji czy dysponowania nim. Decyzj w tej kwestii rwnie pozostawiono zarzdzajcym administratorom, dziaajcym w imieniu wasnym czy w imieniu kierownictwa firmy.
W decyzji o domylnych uprawnieniach twrcy dokumentu
kierowa si naley reguami przyjtymi w firmie, w instytucji, w
biurze. DocMan pozwala przyzna twrcy dokumentu szczeglne przywileje, niezalenie od wszystkich wczeniejszych decyzji.
Twrca moe mie bez wzgldu na to, do ktrej z grup uytkownikw zosta przypisany:

prawa edycji: redagowania, modyfikowania, aktualizowania, przenoszenia do innej kategorii lub podkategorii, blokowania i odblokowania
oraz usuwania dokumentu;
prawo decydowania o uprawnieniach innych uytkownikw, w tym
uprawnieniach w zakresie dysponowania dokumentem.

Nastpny krok
DocMan jest dla nas jedynie przykadem, ktry ma zilustrowa, jakie
bogactwo moliwoci otwiera przed administratorami Joomla! korzystanie z rozszerze. Skupilimy si tutaj na jedynie na kilku wybranych kwestiach. Bo nie jest to poradnik uytkownika DocMana, cho
i tak rol artyku zapewne po czci speni.
A jeli Ci DocMan jeszcze nie znuy albo chcesz pozna dalsze
moliwoci integrowania rozszerze z Joomla!, zapraszam do lektury nastpnego artykuu o strojeniu i dostrajaniu komponentw. Te na
przykadzie DocMana. n

www.sdjournal.org

47

Joomla!

Strojenie
i dostrajanie komponentw

Stefan Wajda

dy chcemy co na witrynie udostpnia, przychodz


nam zwykle na myl moliwoci podstawowe stworzenie pozycji w menu albo wstawianie czy w artykuach. To efekt tradycyjnego mylenia. Joomla! t tradycj
przezwyciy, zanim si narodzi.

Nie tylko w menu


Wszelkie treci na witrynie Joomla! mona udostpnia uytkownikom na wiele sposobw. Poznasz trzy podstawowe:

udostpnianie pozycji w menu witryny;


udostpnianie treci w moduach;
wczanie treci komponentw i moduw do artykuw.

kownikom nawet spore zasoby. Rwnie dobrze udostpnimy je za pomoc moduw. Zobaczmy jak to zrobi w przypadku DocMana.

W menu witryny
Jak w przypadku wszystkich treci, moemy udostpnia
dokumenty za pomoc rnych typw pozycji menu w dowolnym menu witryny gwnym, dodatkowym, lokalnym.
Na trzy, a nawet cztery sposoby moemy udostpni:

Menu i moduy
Zacznijmy od uzmysowienia sobie istotnej waciwoci Joomla!: wszystkie menu w Joomla! wywietlane s w moduach. Kada pozycja menu tworzona jest przez specjalny komponent zaplecza. Take menu gwne, uytkownika, dodatkowe tworzone s przez specjalne komponenty administracyjne. Ich oknem na wiat, sposobem prezentacji na witrynie,
s moduy menu i umieszczane w tych moduach odnoniki.
Mona zatem powiedzie, e komponenty menu s narzdziami, przy pomocy ktrych tworzymy moduy, wskazujc, jakie treci, a dokadniej, jakie odnoniki maj by w
nich wywietlane. I tak rzeczywicie jest! Komponenty menu to nic innego, jak komponenty tworzce moduy. Na razie nie ma tu nic dziwnego. Ale teraz zdziwisz si na pewno!
Wiesz ju, e moesz umieszcza na witrynie rne moduy. Wiesz, e moduy to niewielkie rozszerzenia, wzbogacajce uyteczno (czsto niepoprawnie nazywana funkcjonalnoci) witryny.
Tak jak menu s moduami, tak wiele moduw s swoistymi menu! Nawet jeli jeszcze nie rozumiesz, o co chodzi, za chwil wszystko bdzie jasne. Przyjmij na razie
nawet na wiar, e wiele moduw spenia tak rol, jak menu,
chocia w ogle przy wypenianiu ich treci nie korzystamy
z komponentw menu. Ba! Komponent w ogle nie musi by
udostpniony przez menu. Kilka przykadw mamy nawet
w standardzie Sondy, Szukaj, Logowanie, Rejestracja.
Konstatacja zda si banalna, ale jake owocna! Nie zawsze musimy dodawa pozycje menu, by udostpni uytStefan Wajda [Zwiastun] jest liderem PCJ!, koordynatorem
Zespou Tumaczy i Dokumentacji akredytowanym przy Translation Work Group projektu Joomla!, wydawc witryn PCJ, autorem
w peni zlokalizowanych wersji Mambo i Joomla! (MLI MamboPL,
J!PlusAdmin,) komponentw josDirectory i josResource. Spolonizowa okoo 150 rozszerze dla Joomla!, opublikowa ponad 600
artykuw powiconych wszystkim aspektom Joomla!
Kontakt z autorem: zwiastun@zwiastun.net.

48

www.sdjournal.org

wszystkie dokumenty;
za pomoc pozycji typu Komponent;
za pomoc pozycji typu cze Komponent.
wybran kategori lub kategorie za pomoc pozycji menu typu cze adres URL;
pojedyncze dokumenty za pomoc pozycji typu cze
adres URL.

Pozycja typu Komponent


Sposb dodawania pozycji menu czcych do dokumentw udostpnianych przez DocMana nie rni si od tworzenia innych pozycji menu. Korzystamy ze standardowej
procedury:

w menu zaplecza wybierz pozycj Menu > [[nazwa


menu]], np. [mainmenu];
kliknij przycisk Dodaj [New] w pasku narzdzi;
z listy typw pozycji wybierz Komponent;
wpisz nazw pozycji menu, np. Dokumenty;
w edytorze pozycji menu wska na licie wyboru komponentw DocMana;
ustal pozostae szczegy i kliknij przycisk Zapisz [Save].

W przypadku dodatkowo instalowanych komponentw musimy najczciej zaoy pozycj menu typu Komponent, cho
nie musimy jej publikowa. Jest niezbdna, aby doda w wybranych menu pozycje typu cze Komponent czy cze
Komponent albo cze adres URL do kategorii lub konkretnej pozycji.
W duych skadach dokumentw umieszczenie w menu cza typu Komponent jest wygodnym i szybkim sposobem udostpnienia wszystkich pozycji, cho niekoniecznie
wygodnym dla uytkownikw. Wyobra sobie, e zanim
korzystajc z interfejsu komponentu uytkownik dotrze
do listy pozycji, moe by zmuszony klikn 4-6 razy: cze
w menu, cze do kategorii na stronie otwierajcej komponentu, cze do podkategorii na kolejnej, cze do podkategorii na nastpnej, itd.
Tote niejednokrotnie lepiej umieci w menu cza do
konkretnych kategorii czy podkategorii. W standardowych
komponentach mamy takie opcje do wyboru w kreatorze
pozycji menu. W komponentach instalowanych dodatkowo
Software Developers Journal Extra! 26

z zasady tak opcj nie dysponujemy. Musimy skorzysta z pozycji


typu: cze adres URL.

Pozycja typu cze adres URL do kategorii


Do jej utworzenia niezbdny jest w adres URL adres strony otwierajcej kategori, podkategori czy nawet konkretn pozycj:

przejd na stron frontow i wywoaj z menu witryny Dokumenty (lub


nazwane inaczej cze do DocMana);
w gwnym obszarze strony kliknij nazw odnonik do jednej z kategorii dokumentw;
skopiuj z paska adresu przegldarki URL wywietlonej strony;
zaloguj si na zaplecze i stwrz now pozycj menu typu albo cze
adres URL;
nazwij now pozycj np. Kategoria dokumentw (najlepiej uy nazwy kategorii);
w edytorze nowej pozycji wklej skopiowany przed chwil URL w polu
cze [URL], a nastpnie usu z niego pocztkowy fragment do sowa
index. Adres moe wygldac np. tak: index.php?option=com_docman&task=cat_view&gid=22&Itemid=28 ;
ustal pozostae szczegy i kliknij przycisk Zapisz [Save].

Gotowe. Moesz sprawdzi na witrynie, e po wywoaniu odnonika Kategoria dokumentw przejdziesz od razu na stron przejciow z list dokumentw w kategorii.
Jeli skonfigurujesz witryn tak, by Joomla! generowa proste adresy URL, to zamiast niezbyt przejrzystego adresu cytowanego przed chwil, bdzie on wyglda np. tak: component/option,com_docman/task,cat_
view/gid,30/Itemid,75/. Uzyskanie jeszcze prostszego adresu wymaga
zainstalowania specjalnego komponentu.

Pozycja typu cze Komponent


Nie mona umieci w kilku menu witryny pozycji typu Komponent,
prowadzcej do tego samego komponentu. Mona to uczyni tylko
raz. Co zrobi w takim razie, gdy chcemy umieci komponent np.
w dolnym dodatkowym menu? Zapewne ju si domylasz odpowiedzi. Stworzy pozycj typu cze Komponent. W przypadku
DocMana nie okrelamy wprawdzie adnych parametrw pozycji
menu, niemniej dopowiedzmy tutaj, e jeli nawet mona dla komponentu w menu precyzowa jakie parametry prezentacji, to nie mona tego uczyni dla omawianego typu cza. Parametry prezentacji
dziedziczone s w takim przypadku z wczeniej utworzonej pozycji
typu Komponent.

zaloguj si na zaplecze swojego Joomla!;


przejd do menu Instalatory > Moduy;
w oknie instalatora przejd do opcji Instaluj ze spakowanego
archiwum > Pakiet instalacyjny;
kliknij przycisk Przegldaj [Browse], wska plik pakietu instalacyjnego, a nastpnie kliknij przycisk Wczytaj plik i zainstaluj
[Upload file].

Otrzymasz komunikat, e instalacja moduu przebiega pomylnie. Kliknij


odnonik Dalej [Next], a nastpnie powtrz t procedur, by zainstalowa
pozostae trzy moduy.

Konfiguracja moduu
Przewiczmy j na najprostszym przykadzie module DOCMan :: Nowe
albo DOCMan :: Popularne.

Przejd do menu Moduy;


Odszukaj na licie modu DOCMan :: Nowe [Docman latestdown];
Zaznacz pole wyboru przy nazwie moduu i kliknij w pasku narzdzi
przycisk Opublikuj [Publish].

To niezbdne minimum, by opublikowa modu. Sprawd na witrynie


w module znajdziesz tytu i cza do 3 najnowszych dokumentw.
Modu bdzie wywietlany na kadej stronie. Mona to oczywicie
zmieni, moesz te zwikszy ilo liczb odnonikw czy zarzdzi inny ni standardowy wygld moduu.

Konfiguracja parametrw moduu


Konfiguracj parametrw przetestujemy na przykadzie moduu
DOCMan :: Wykaz. W tym module mona wywietli dowoln ilo
liczb odnonikw do nowych i popularnych dokumentw, w jednej
lub wielu kategoriach:

przejd na zapleczu do menu Moduy;


odszukaj na licie modu DOCMan :: Wykaz i kliknij jego nazw;
w czci Szczegy [Details] zarzd publikacj moduu.

W moduach
Penetracja zasobw rozszerze dla Joomla! w poszukiwaniu moduw
wsppracujcych z DocManem przynosi pozornie skromny efekt. Znajdziemy cztery moduy:

Docman lister v. 1.0rc2 [DOCMan :: Wykaz];

Docman latestdown v. 1.0rc2 [DOCMan :: Nowe;

Docman mostdown v. 1.0rc2 [DOCMan :: Popularne];

Docman catdown v. 1.0rc2 [DOCMan :: W kategoriach].

Instalacja moduu
Instalowanie moduw jest rwnie proste, jak omwione wczeniej instalowanie komponentw:

pobierz z witryny PCJ (www.joomla.pl) moduy dla DocMana w wersji


utf lub iso (takiej, w jakiej kodowana jest Twoja witryna);

Software Developers Journal Extra! 26

Rysunek 1. Konfiguracja moduu Docman ::: Wykaz

www.sdjournal.org

49

Joomla!

Spjrz na parametry. Czeg tu nie mamy:

poka ikony [Show icons]: pozostaw zaznaczone pole opcji Tak przy
kadym odnoniku w module bdzie wywietlana niewielka ikonka;
poka ilo liczb pobra [Show counter]: pozostaw zaznaczone pole
opcji Tak;
poka kategorie [Show category]: pozostaw zaznaczone pole opcji Tak;
Typ czy [Link type]: zaznacz jedn z czterech opcji:
lista dokumentw w kategorii [List category (default)]: wywietla list
dokumentw w tej samej kategorii, co wylistowany dokument;
szukaj pliku [Search for single file]: wywietla stron z informacjami
o dokumencie oraz wyszukiwark z wpisan ju nazw pliku w polu
Szukany tekst uatwia szybkie sprawdzenie, czy s poprzednie lub
nowsze wersje poszukiwanego pliku;
poka stron szczegw [Show details page]: prowadzi do strony ze
wszystkimi informacjami o pliku;
cze do pobrania [Direct download]: rozpoczyna procedur zapisywania pliku na dysku, bd w przypadku plikw tekstowych, graficznych, mediw strumieniowych jego podgldu.
wykaz jako lista [Show as list]: wywietla odnoniki jako list
nieuporzdkowan, jeli zaznaczymy Tak, w przeciwnym przypadku odnoniki umieszczane s w kolejnych wierszach jednokolumnowej tabeli (a wic w otoczeniu nieprzyjaznego kodu
HTML, obciajcego niepotrzebnie stron, czynicego j mniej
dostpn);
przyrostek klasy CSS [Module Class Suffix]: umoliwia wyrnienie
moduu innym sposobem formatowania ni pozostae moduy na
stronie. Reguy formatowania okrelamy w arkuszu stylw;
tekst przed wykazem [Text prefix]: moesz opisa odnoniki tekstem
wprowadzajcym;
tekst po wykazie [Text Suffix]: moesz opisa tekstem podsumowujcym;
ilo liczba dokumentw [Limit]: okrel maksymaln ilo liczb odnonikw w module, 0 lub puste wywietla odnoniki do
wszystkich dokumentw w kategorii lub kategoriach wyszeglnionych poniej;
kategorie [Category limit]: jeli pozostawisz puste, zostan wywietlone odnoniki do dokumentw we wszystkich kategoriach.
Moesz rwnie wpisa ID kategorii oddzielne przecinkami, ograniczajc w ten sposb zestaw kategorii;
sortowanie [Order by]: ustal sposb uporzdkowania: alfabetycznie,
wg ocen, wg daty dodania w porzdku rosncym i malejcym;

schowek [Enable Cache]: zaznacz Tak, aby tre moduu bya przechowywana w pamici podrcznej przyspieszysz adowanie strony, zmniejszysz obcienie serwera iloci liczb zapyta do bazy
danych, co w przypadku tego moduu jest szczeglnie istotne.

Przypisanie moduu do pozycji menu stron


Moduy mona wywietla na wszystkich bd na wybranych stronach witryny. Zobaczmy na przykadzie moduu DOCMan :: W kategoriach, jak poyteczna to waciwo. Modu wywietla odnoniki
do okrelonej w jego parametrach iloci liczby nowych dokumentw
w kategorii lub kategoriach. Mona go wywietla tylko na wszystkich stronach z treciami udostpnianymi przez DocMana. Moliwe,
e przyda si uytkownikom taki skrt do ostatnio dodanych dokumentw w konkretnych kategoriach.
Ale moliwo umieszczania moduw na wybranych stronach warto
wykorzysta w innym celu by udostpni uytkownikom drog na skrty do pokrewnych treci, z koniecznoci umieszczonych w innych dziaach witryny.
Prowadzisz serwis firmowy. Do prezentacji produktw i usug wykorzystujesz standardowe rozwizanie artykuy w kategoriach. Dzia
marketingu wydaje wietne prospekty. Chcesz je udostpni klientom
take w formie elektronicznej (pliki PDF), bo nie sposb przenie do
kadego artykuu bogactwa grafiki. Udostpnienie wszystkich przez
cze w menu do komponentu DocMan nie jest dobrym rozwizaniem.
Najlepiej byoby...
Wanie udostpni zestawy odnonikw do prospektw na
tych samych stronach co artykuy o produktach z kategorii. W sukurs przychodzi modu DOCMan :: W kategoriach. Jak to zrobi?
Bdziemy potrzebowa nie jedenego, ale kilkau moduw kadyego
z treci (odnonikami) do jednej kategorii prospektw.

Kopiowanie moduu
Moduy mona kopiowa. Zadanie jest banalnie proste:

przejd na zapleczu do menu Moduy;


odszukaj na licie modu DocMan :: W kategoriach i zaznacz pole
wyboru przy jego nazwie;
kliknij przycisk Kopiuj [Copy] w pasku narzdzi;
powtrz czynno drug i trzeci, aby stworzy tyle kopii moduw,
ile potrzebujesz.

Konfiguracja kopii moduw


Teraz wystarczy tak skonfigurowa kady z moduw, aby by
wywietlany na stronach jednej kategorii artykuw, sygnalizowa swoim tytuem zwizek z artykuami wywietlanymi w gwnym obszarze strony oraz zawiera odnoniki do prospektw z tej
samej kategorii produktw, co artykuy. Zamy, e umiecilimy
opisy produktw w 3 kategoriach artykuw. Udostpniamy je poprzez menu witryny jako cza typu Blog artykuy z kategorii albo Tabela artykuy z kategorii, nazwane Produkty _A, Produkty _B
i Produkty _C.

Rysunek 2. Poszerzone moliwoci konfiguracji DocMana w komponencie


Uploader

50

stwrz 3 kategorie w komponencie DocMan.;


zanotuj ID stworzonych kategorii znajdziesz je w tabelce z wykazem kategorii;
stwrz dokumenty dla plikw PDF, przynajmniej po jednym w kadej
kategorii;
przejd do menu Moduy i poddaj edycji waciwoci jednej z utworzonych wczeniej kopii moduu DOocMan :: W kategoriach (po prostu
kliknij nazw moduu);

www.sdjournal.org

Software Developers Journal Extra! 26

w polu Tytu moduu [Title] wpisz np. Zobacz Produkty A;


opublikuj modu;
w parametrach moduy w polu ID kategorii [Category ID] wpisz zanotowany numer kategorii Produkty_A w DocManie, a w polu Ilo dokumentw [] dowoln liczb;
zaznacz na licie po prawej stronie pozycj menu Produkty_A;
powtrz kroki 4-8 dla pozostaych kategorii produktw.

Moesz teraz sprawdzi na witrynie, e po wywoaniu z menu pozycji prowadzcych do kategorii artykuw o produktach pojawi si rwnie opublikowane przed chwil moduy z czem (czami) do prospektw z tej
samej kategorii.
Odnonika do komponentu DocMan nie musisz publikowa. Nie jest
konieczny. Rol menu speni moduy DocMana.

Modu w artykule bot Wpinacz moduw


A gdyby tak, mylisz sobie, umieci modu w artykule? Prosz bardzo!

stwrz kopi moduu DocMan :: Produkty A (utworzonego poprzednio);


otwrz edytor moduu i w czci Szczegy zaznacz na licie rozwijanej Pozycja moduu np. User11;
przejd do menedera artykuw: Materiay > Artykuy w sekcjach i
poddaj edycji artyku z kategorii Produkty_A;
wpisz np. na kocu artykuu: {mosloadposition user11} i zachowaj zmieniony artyku;
dla pewnoci sprawd, czy opublikowany jest bot Wpinacz moduw.
Wybierz z menu administratora pozycj Boty, odszukaj w wykazie nazw Wpinacz moduw []. Jeli w kolumnie Publikacja masz czerwony
krzyyk, kliknij go, by opublikowa bota;
przejd na witryn i obejrzyj artyku.

W przypadku DocMana znajdziemy do ciekawy i bogaty zestaw


narzdzi MjazTools:

Uploader for DOCMan http://joomlacode.org/gf/project/dmuploader/frs/;


Autopopulate for DOCMan http://joomlacode.org/gf/project/autopopulate/
frs/;
Personalize http://joomlacode.org/gf/project/personalize/frs/;
Notify for DOCMan http://joomlacode.org/gf/project/notify/frs/;
BlogTheme for DOCMan http://joomlacode.org/gf/project/blogtheme/
frs/;
BlogTheme Additional Icons;
Uploader z biblioteki MjazTools.

DocMan pozwala zarzdza dokumentami zarwno na zapleczu, jak i ze


strony frontowej. Zalogowani na stronie frontowej uytkownicy, jeli im
na to zezwolimy, bd mogli skorzysta ze standardowego odnonika:
Dodaj dokument.
W zestawie MjazTools mamy narzdzie alternatywne komponent Uploader, udostpniajcy kilkua dodatkowych funkcji. W jego
ustawieniach moemy sprecyzowa szereg szczegw konfiguracyjnych, w tym:

akceptacja warunkw [Agree to terms];


tekst wprowadzajcy [Intro Text];
tre Zasad i warunkw (Warunkw i zastrzee) [Terms & Conditions];
tre podzikowania [Confirmation];
trzech pierwszych DocMman nie udostpnia. Mona, oczywicie, poradzi sobie z ich brakiem, ale skoro dysponujemy specjalnym komponentem, czemu z niego nie skorzysta?

Zaludniamy DocMana AutoPopulate

Komponent w artykule
Apetyt ronie w miar jedzenia. Zastanawiasz si wic zapewne, czy
mona umieci komponent w artykule. Ot tak! Wystarczy zainstalowa specjalnego bota.
Nazywa si ComponentBot i dostpny jest pod adresem http://
joomlacode.org/gf/project/kausproject/frs/ albo w zbiorach PCJ. Pobierz go, zainstaluj (instalacja przebiega tak samo, jak w przypadku
komponentw i moduw) i opublikuj. Moesz wyedytowa waciwoci bota i okreli w jego parametrach szeroko i wysoko ramki, do
ktrej zostanie woony komponent w artykule. Aby umieci komponent w artykule:

Rczne stworzenie 1000 albo 5000 dokumentw dla udostpnianych


przez DocMana plikw moe by zadaniem atrakcyjnym dla pracoholika.
Na pewno przydaaby si moliwo automatycznego generowania dokumentw. DocMman takiej opcji nie posiada.
T rol Mathias, autor MjazTools, wyznaczy dla komponentu
AutoPopulate. Komponent zaludni Ci DocMana w czasie, w ktrym
nie zrobioby tego kilku pracoholikw. W godzin, klikajc przyciskiem myszki moesz udostpni dziesitki, setki, by niepowiedzie tysice dokumentw-plikw w dowolnych kategoriach. Oczywicie, moesz rwnie stworzy dla kadego pliku wiele dokumentw w rnych kategoriach.

Konfiguracja

skopiuj z paska adresu przegldarki URL do strony otwierajcej komponentu DocMan albo dowolnej innej, np. ktrej z kategorii;
wyedytuj artyku, w ktrym chcesz umieci komponent;
wpisz w artykule instrukcj: {component}url{/component}.
W miejsce URL wklej skopiowany adres bez http://strona.com/
index.php?, np. {component} option=com _ docman&task=cat _
view&gid=22&Itemid=28{/component};
zakocz edycj artykuu, klikajc przycisk Zapisz [Save].

Przed skorzystaniem z AutoPopulate trzeba komponent skonfigurowa.


Edytor ustawie jest zbliony do edytora dokumentu w DocManie.

Komponent doskonalszy
Wybr DocMana jako przykadu zaowocowa jak widzisz wielostronn prezentacj moliwoci dostrajania komponentu do potrzeb witryny.
A wszystkich jeszcze nie zaprezentowalimy.
Decydujc si na zainstalowanie dodatkowego komponentu, zawsze
warto spenetrowa zasoby dla Joomla! w poszukiwaniu pokrewnych rozszerze.
Software Developers Journal Extra! 26

Rysunek 3. Domylny szablon komponentu Docman

www.sdjournal.org

51

Joomla!

Rysunek 4. Wygld strony wykorzystujcej alternatywny szablon ze


zbioru MjazTools

Karta Dokument
Na pierwszej karcie Dokument [Document] moemy:

miniatura [Thumbnail]: wybra grafik ilustrujc dokumenty;


opis [Description]: umieci zwizy opis wspln tre dla wszystkich dokumentw;
URL witryny projektu [Homepage URL];
publikacja [Publishing]: zdecydowa czy opublikowa dokumenty;
akceptacja [Approved]: zaakceptowa ich publikacj.

Generowanie dokumentw
Po skonfigurowaniu komponentu moemy wygenerowa dokumenty,
czyli umieci w bazie danych podstawowe informacje o plikach. Z paska
narzdzi w edytorze konfiguracji wybieramy Start lub z menu komponentu opcj: Rozpocznij przypisywanie plikw [Start Assign Files].

W oknie edycji

Karta Uprawnienia
Ustalamy prawa do przegldania, pobierania i zarzdzania dokumentami:

uprawniony ID [Owner ID]: okrelasz, kto moe wywietla i pobiera plik dokumentu;
dysponent ID [Maintainer ID]: okrelasz, kto bdzie uprawniony do
zarzdzania. dokumentem edycji, zmiany praw dostpu

Karta Licencja

typ licencji ID [Type License ID]: wybierz z listy rozwijanej rodzaj


licencji;
akceptacja licencji [Display Agreement / License when viewing]:
zdecyduj, czy wywietla tre licencji. Jeli tak, uytkownik
bdzie musia przed pobraniem lub odczytaniem dokumentu zaakceptowa licencj.

Karta Szczegy
Na karcie Szczegy mona zamieci kilka atrybutw. Konieczne jest
przy tym uycie specjalnych znacznikw:

sowa kluczowe: uywamy znacznika kewords, np. keywords=dokument plik modu DocMan ;
pelna nazwa pliku: uywamy znacznika origfilename, np. origfilename=mod _ docman _ mostdown _ 10 _ rc2 _ pl.zip ;
zwizy opis: uywamy znacznika shortdesc, np. shortdesc=Modu
wywietla najczciej pobierane dokumenty pliki.

Karta Pliki
Na tej karcie decydujemy o zasadach umieszczania plikw w dokumentach:

52

pomi pliki [Skip Files]: moemy okreli, dla jakich plikw nigdy nie
zostanie wygenerowany dokument, wpisujc ich nazwy i rozszerzenia oddzielone znakiem |', np. .|..|.htaccess|index.php|index.htm|index.html;

wywietlanie [Orphans]: gdy wybierasz pliki, by przypisa je do dokumentw, moesz wywietli na licie wszystkie pliki lub tylko nieprzypisane do adnego dokumentu (pliki nieumieszczone jeszcze
w bazie danych);
pomi rozszerzenia [Strip Extension]: generuje tytu dokumentu z nazwy pliku, pomijajc w tytule rozszerzenia, zmienia np. moj_plik.jpg
na moj_plik;
oczy tytu [Clean Up Title]: generujc tytu dokumentu z nazwy pliku, zamienia cznik na spacj, np. moj _plik na moj plik.

pliki [Files]: zaznaczamy na licie pliki, dla ktrych chcemy wygenerowa dokumenty. Aby wybra wicej ni 1 jeden plik, trzeba uy
klawiszy CTRL I i SHIFT i oraz wskanika myszki. Mona doda dowoln ilo liczb z wywietlanych plikw;
kategorie [Categories]: zaznacz kategori, w ktrej chcesz
umieci dokumenty. Moesz zaznaczy tylko jedn kategori. Po stworzeniu dokumentw w jednej kategorii stworzysz,
jeli potrzebujesz , w nastpnych. Jeli na licie nie ma potrzebnej kategorii, moesz klikn odnonik Edytuj kategori
[Edit Categories], ktry przeniesie Ci do menedera kategorii
DocmMana.

Gdy wybierzesz pliki i ustalisz kategori, kliknij w pasku narzdzi przycisk Przypisz pliki [Assign Files]. Rozpocznie si procedura tworzenia
dokumentw. Po jej zakoczeniu moesz klikn przycisk Przypisz
wicej plikw [Assign More Files], by dokona kolejnych ustawie procedury wypeniania DocmMana treci.

Alternatywny szablon
MjazTools BlogTheme

Jeli nie odpowiada Ci standardowy wygld stron prezentujcych dokumenty, moesz go zmieni, instalujc alternatywny szablon bd
opracowujc wasny. Wielkiego wyboru, jak na razie, niestety nie ma.
Ale udostpniony w bibliotece Mjaz szablon BlogTheme zaspokoi niejeden gust.
Instalacja szablonu sprowadza si do umieszczenia w folderze
/components/com_docman/themes/ mjaztools_blogtheme rozpakowanego pakietu. Zwr przy tym uwag, e archiwum szablonu zostao umieszczone w katalogu z nazw zawierajc rwnie numer
wersji. Jeli skopiujesz cay katalog, zmie jego nazw, jak ostatni
czon w podanej przed chwil. Wyboru szablonu po doinstalowaniu
nowego dokonujemy w panelu konfiguracyjnym DOCocMana.

Tytuem podsumowania
Cakiem niedawno komponentw dla Joomla! byo nieco powyej
100. Aktualnie jest ich kilkaset, jeli ju nie ponad 1000. Dogbna
prezentacja kilku wymagaaby napisania grubanej ksiki. Zapewne byaby przydatna. Ale zarczam, e bez takiego dziea jeste
po lekturze artykuu o rozszerzaniu moliwoci Joomla! i strojeniu komponentw w stanie podj kade wyzwanie. Masz bowiem
pene podstawy, by swobodnie posugiwa si i komponentami,
i moduami, i botami. n

www.sdjournal.org

Software Developers Journal Extra! 26

Joomla

Aktualizacje,
migracje, przenosiny

Stefan Wajda

ajpierw podstawa podstaw: aktualizacja to wymiana


starszej wersji tego samego programu na wersj nowsz. Tego samego, a wic nie tylko jakiego Joomla! na
jakiego nowszego Joomla, ale dokadnie oficjalnego wydania Joomla! na wydanie oficjalne, rozszerzonego, na rozszerzone, zmodyfikowanego na zmodyfikowane! Przejcie z wydania jednego rodzaju na wydanie innego rodzaju to migracja,
przesiadka na nieco inny system, nawet jeli si niemal tak samo nazywa.
Polskim uytkownikom szczeglnie atwo o bd. Wielu korzysta z wyda zmodyfikowanych, bo w peni spolonizowanych, nie bardzo zdajc sobie spraw, e w stosunku
do oficjalnych wyda kolejnych wersji Joomla!, polski w peni spolonizowany Joomla! znacznie si rni od oryginau.
Zmiany dotycz okoo 140 skryptw. Std na aktualniejsze
wydania polskiego Joomla! trzeba zwykle poczeka kilkanacie dni, a czasem kilka tygodni. Cena wygody, ktra do ukazania si projektu Joomla! International Edition bya tylko
naszym, polskim udziaem. Bo tylko Polskie Centrum Joomla! publikowao w peni zlokalizowane wydanie! Do tej podstawy podstaw dodajmy jeszcze trzy:

zawsze zapoznaj si z dziennikiem zmian, nawet jeli jest


w obcym jzyku i niewiele z tego rozumiesz (przydatny
adres w takim przypadku: www.translation.pl);
zawsze sporzd kopi zapasow witryny skryptw i bazy danych!;
zawsze przetestuj aktualizacj na nieprodukcyjnej wersji
witryny.

Gdy wyniki testu bdzie pomylny, moesz spokojnie uoy


si do snu, a nazajutrz przemyle, czy aktualizacja jest konieczna ze wzgldw bezpieczestwa, czy tylko ze wzgldu na
usprawnienia w nowszej wersji.
Doskonale wiem, e najczciej pominiesz pierwszy krok,
drugi krok, trzeci krok, czwarty krok. Ale nie mw wwczas, e
Ci nie ostrzeono! A teraz do rzeczy.

Aktualizacja
oficjalnego wydania Joomla!
Oficjalne wydania Joomla! s zawsze publikowane z atkami
aktualizujcymi. Aby uaktualni starsz wersj Joomla!, nie
Stefan Wajda [Zwiastun] jest liderem PCJ!, koordynatorem
Zespou Tumaczy i Dokumentacji akredytowanym przy Translation Work Group projektu Joomla!, wydawc witryn PCJ, autorem
w peni zlokalizowanych wersji Mambo i Joomla! (MLI MamboPL,
J!PlusAdmin,) komponentw josDirectory i josResource. Spolonizowa okoo 150 rozszerze dla Joomla!, opublikowa ponad 600
artykuw powiconych wszystkim aspektom Joomla!
Kontakt z autorem: zwiastun@zwiastun.net.

54

www.sdjournal.org

trzeba wic przeprowadza ponownej instalacji. Trzeba skorzysta z atki aktualizujcej. atki aktualizujce wydawane
przez Centrum projektu s wyranie oznaczone, np: Joomla_
1.0.11_to_1.0.12StablePatch_Package.zip, co oznacza, e ta
atka przeznaczona jest do aktualizacji Joomla! w wersji 1.0.11
do Joomla! wersji 1.0.12.
Do aktualizacji oficjalnego wydania Joomla! moesz
uy zarwno atek oryginalnych, pobranych z JoomlaCode, jak i atek pobranych ze zbioru Polskiego Centrum Joomla!, jeli si zdarzy, e zostan wydane. A raczej si nie zdarzy! Z prostej przyczyny PCJ! nie dokonuje w wydaniu oficjalnym adnych zmian, a jedynie wcza do niego pakiet
jzyka polskiego. Zatem, aby zaktualizowa oficjalne wydanie Joomla!:

Pobierz z Joomla!Code odpowiedni atk aktualizujc,


Rozpakuj pobrany pakiet w nowym katalogu zaoonym na
swoim komputerze;
Sprawd zawarto. Zobacz, ktre skrypty bd aktualizowane. Jeli jest wrd nich w katalogu /language plik /english.php, poszukaj nowej wersji pliku polish.php na www.joomla.pl, pobierz go i docz do katalogu
/language;

Korzystajc z FTP, przelij na serwer rozpakowane archiwum atki aktualizujcej;


Zaloguj si na zaplecze i kliknij ikon skrtu Konfiguracja
globalna;
Sprawd ustawienia i koniecznie je zapisz.

To wszystko. Oczywicie, pominlimy tu 4 kroki, ktre wskazalimy wczeniej. Czemu wany jest przegld ustawie globalnych i ich zapisanie, wyjania przypadek Joomla 1.0.13, w
ktrym dodano dwa nowe ustawienia, cho ju takich nie planowano. Moesz je podejrze w pliku configuration.phpdist:
if( !defined('RG_EMULATION'))
define 'RG_EMULATION',
$mosConfig_itemid_compat

{
0 ); }

= '0';

Jeli w wyniku aktualizacji co si nie powiodo, sprawd najpierw poprawno transferu plikw. Czy nie zostay zmienione
ich nazwy (np. wielko znakw)? Czy pliki zostay przesane
w caoci (porwnaj rozmiar na serwerze i w swoim katalogu).
W razie potrzeby przelij ponownie bdnie zapisane skrypty i
ponownie sprawd dziaanie systemu.
Jeli nadal wystpi bdy, powr do poprzedniej wersji.
Wystarczy w tym celu przesa zapasowe kopie plikw. Przejrzyj nastpnie komunikaty na witrynie projektu oraz najnowsze wtki na forum uytkownikw. Bardzo moliwe, e nie tylko Tobie zdarzyo si niepowodzenie. A jeli tylko Tobie, zgo
problem na forum. Uwaga: Jeli w wyniku zaniedbania systematycznych aktualizacji masz nieco podstarzaego Joomla!,
Software Developers Journal Extra! 26

nie musisz instalowa kolejno wszystkich atek. Pobierz najnowsz wersj Joomla!, rozpakuj, usu katalog instalacyjny i przelij cao na serwer, nadpisujc starsz wersj.

Aktualizacja wyda zmodyfikowanych


W gruncie rzeczy powinna przebiega podobnie, jak wydania oficjalnego. Ale wydawcy wersji zmodyfikowanych nie zawsze przygotowuj atki aktualizacyjne. Jeli do wydania zmodyfikowanego nie opublikowano atki aktualizacyjnej, uyj po prostu nowszego wydania.
Usu z rozpakowanego pakietu katalog instalacyjny, a reszt nadpisz starsz wersj.

rozpakuj pakiet instalacyjny na komputerze lokalnym do pustego katalogu;


usu katalog instalacyjny /installation;
nadpisz za pomoc klienta FTP wszystkie skrypty starszej instalacji;
zaloguj si na zaplecze i kliknij ikon skrtu Konfiguracja globalna;
przejrzyj ustawienia, zwaszcza na karcie Lokalizacja [Locale];
zapisz ustawienia! Nawet, jeli nie zostay zmienione.

Na Joomla! z Mambo

Migracje z Joomla! na Joomla!

Stworzye kiedy witryn w Mambo, chcesz przej na Joomla! Nic trudnego! Jeli uywasz starszej ni 4.5.2 wersji Mambo, ni 4.5.2, zaktualizuj j najpierw do wersji 4.5.2, a dopiero potem przeprowad migracj do
Joomla 1.0.x.

Tytu nie powinien Ci zdziwi podkrelilimy na pocztku, e przejcie


z wydania jednego typu na wydanie innego typu, np. z oficjalnego na zmodyfikowane lub odwrotnie, to ju migracja, a nie aktualizacja.

Migracja z oficjalnego
wydania Joomla! do Joomla!+Adminpl

Wprawdzie wraz z wydaniem Joomla International Edition 1.0.13 projekt Joomla+Adminpl zosta zamknity, ale moe si zdarzy, e na Twj serwer
internetowy obsugiwany jest przez starsz wersj MySQL (poniej 4.1), nieobsugujc kodowania znakw. PCJ! wydao w zwizku z tym specjalne wydanie Joomla+Adminpl 1.0.13. Moesz z niego skorzysta. Aby oficjaln
wersj Joomla!, zarwno oryginaln, jak i spolonizowan, zastpi wydaniem Joomla+Adminpl (z polskim panelem administracyjnym):

pobierz z www.joomla.pl i rozpakuj do katalogu na swoim komputerze


pakiet instalacyjny Joomla+Adminpl;
usu katalog instalacyjny /installation;
przelij rozpakowane archiwum na serwer za pomoc klienta FTP;
zaloguj si na zaplecze i kliknij ikon skrtu Konfiguracja globalna;
na karcie Lokalizacja ustal jzyk polski dla zaplecza administracyjnego;
zapisz nowe ustawienia;
migracja z Joomla!+Adminpl do oficjalnego wydania Joomla!;
migracj z Joomla+Adminpl do wersji oficjalnej przeprowadzamy
podobnie:
rozpakuj do katalogu na komputerze lokalnym pakiet rdowy
Joomla!;
usu katalog instalacyjny /installation;
przelij rozpakowane archiwum na serwer za pomoc klienta FTP;
zaloguj si na zaplecze i kliknij ikon skrtu Konfiguracja globalna;
zapisz ustawienia bez wprowadzania jakichkolwiek zmian.

Ostatnia czynno spowoduje usuniecie z pliku configuration.php wpisw ustawiajcych jzyk zaplecza administracyjnego.

Migracja z Joomla 1.0.12


i wczeniejszych do JIE 1.0.13
W Joomla IE 1.0.13pl wprowadzono kompleksow zmian sposobu lokalizacji zaplecza oraz wiele drobniejszych zmian w tumaczeniach etykiet
i komunikatw jzykowych. Aby zaktualizowa wczeniejsze wydania do
najnowszej wersji:

pobierz odpowiedni pakiet instalacyjny Joomla IE 1.0.13pl z plikowni PCJ! ;


Joomla IE 1.0.13pl ISO88592, jeli witryna bya dotychczas kodowana w standardzie ISO88592;
Joomla IE 1.0.13pl UTF8, jeli witryna bya dotychczas kodowana
w standardzie UTF8;

Software Developers Journal Extra! 26

wykonaj kopi zapasow dziaajcego serwisu i bazy danych;


rozpakuj do katalogu na komputerze lokalnym pakiet rdowy Joomla!;
nadpisz plikami z archiwum pliki Mambo w katalogu na serwerze (bez
katalogu /installation);
usu z serwera katalogi: /administrator/templates/mambo_admin
oraz /administrator/templates/mambo_admin_blue;
przejd do klienta obsugi bazy danych i zaimportuj plik (/installation/
sql/migrate_Mambo4523_to_Joomla_100.sql), ktry zaktualizuje domylny szablon administratora oraz wyczy publikowanie moduu
MamboForge;
sprawd efekt.

Jeli chcesz z jakich wzgldw zachowa szablon administratora wykorzystywany w Mambo, musisz zmodyfikowa nieco plik index.php
szablonu. Wyedytuj plik index.php szablonu mambo_admin lub mambo _ admin _ blue i odszukaj linie:Listing1. Zamie ten fragment poniszym kodem:
<?php

mosMainBody_Admin(); ?>

Migracje z innych systemw


Migracje z innych systemw s z natury rzeczy kopotliwe. Niestety, zapowiadanych swego czasu projektw skryptw konwertujcych dane z
innych systemw, np. XOOPS czy PHPNuke, nie opublikowano. Std i atwego czy nawet uatwionego sposobu migracji nie ma. Trzeba zatem najpierw rozway celowo i koszty przedsiwzicia. Jeli witryna dziaa dobrze, moe lepiej pozosta przy wykorzystywanym rozwizaniu?
W kadym bd razie migracja jest nie tylko moliwa. Niekoniecznie poprzez rczne przenoszenie wszystkich danych.
Jeli dysponujemy umiejtnoci programowania baz danych, mona sprbowa napisa skrypt konwertujcy. Jeli nie, pozostaje nam rozstrzygn, ktre dane chcemy przenie, a nastpnie znale najlepsz
metod przenosin.
Kompletny opis procedury przenosin wymagaby sporego opracowania. Pokaemy zatem jedynie mocno uproszczony model dziaania na jednym przykadzie.

Przenoszenie artykuw
Uruchom swojego klienta obsugi bazy danych i spisz albo wydrukuj
struktur tabel odpowiedzialnych za przechowywanie artykuw w uywanym systemie i w Joomla!
Porwnaj struktur tabel znajdziesz na pewno wiele podobiestw na pewno w odrbnych polach przechowywane s teksty artykuw, czasem z podziaem na cz wprowadzajc (intro) i tekst
gwny (main, extended), na pewno w odrbnych polach przechowy-

www.sdjournal.org

55

Joomla

wana jest data utworzenia i data ostatniej modyfikacji, identyfikator


lub nazwa autora, identyfikator kategorii, do ktrej przypisany jest artyku, moe take sekcji.
Skopiuj tabel z artykuami, nadajc jej tak nazw, jak w Joomla!, a
wic np. jos_content. Przemianuj w skopiowanej tabeli nazwy pl zgodnie
ze struktur tabeli dla Joomla! Dodaj brakujce pola, usu zbdne. Przy
dodawaniu zwr uwag na typ danych i rozmiar pl. W efekcie takiego
stosunkowo prostego zabiegu na pewno odzyskasz wszystkie artykuy, cho niekoniecznie wszystkie informacje poboczne. Ale t cen trzeba
zapaci przy kadej migracji. Przeanalizuj potem tabele zawierajce dane o kategoriach, a najpewniej odzyskasz take struktur treci.
Porwnaj jeszcze dla przykadu tabele uytkownikw. Od razu zauwaysz, e mimo drobnych rnic, s podobne na pewno zawieraj pola nazwy (name), loginu (username, login), hasa (password, pass), adresu email, daty rejestracji. Czeg trzeba wicej! Znw wystarczy dostosowa nazwy pl, doda brakujce. Oczywicie, nie zobaczysz jeszcze
tak przeniesionych uytkownikw na zapleczu Joomla! W relacyjnych bazach danych informacje s gromadzone niekiedy w kilku powizanych ze
sob tabelach. W przypadku Joomla! dane niezbdne do korelacji uytkownikw zawieraj tabele jos _ core _ acl _ aro oraz jos _ core _
acl _ groups _ aro _ map. Jeli dokonasz dokadnego przegldu i porwnania baz danych, to przekonasz si, e niemal wszystkie treci starej witryny mona w ten sposb przenie do nowej.

Nowszy komponent
Redaktorom komponenty prac usprawniaj, administratorom jej przysparzaj. Podchod do aktualizacji komponentw z rozwag. Moesz nie potrzebowa udoskonale, jakie niesie kolejna wersja. Nie kupujesz nowej pralki tylko dlatego, e producent w wersji XYZ doda dwa nowe przyciski. Ale te pamitaj, e komponenty to jednak nie pralki. Nowe rozwizania wydawane s
czsto w wersjach niedoskonaych, przetestowanych niekiedy w jednym tylko rodowisku uaktualniona wersja moe znacznie poprawi i bezpieczestwo, i wydajno Twojej witryny. Natomiast nowe wersje komponentw z
dug histori zmian wiadcz nie tylko o ich ywotnoci. Prawie zawsze s
efektem pracy albo nad oczekiwanymi udoskonaleniami, albo nad popraw
zauwaonych bdw, usterek, luk w bezpieczestwie. Odwiedzaj wic witryny projektw systematycznie, sprawdzaj, czy s nosze wersje uywanych
przez Ciebie rozszerze i jeli tylko zobaczysz, e w nowej wersji poprawiono
bdy, usunito nawet drobne zagroenia, nie zwlekaj. Aktualizuj!

Nowa wersja bez zmian w bazie danych


Jeli w nowej wersji komponentu nie wprowadzono zmian w bazie danych, aktualizacja jest prosta. Przewicz j najpierw na testowej wersji
witryny, np. na komputerze domowym:

rozpakuj pakiet instalacyjny;


przemianuj nazwy katalogw z poprzedni wersj komponentu;

utwrz nowe katalogi dla nowej wersji;


przekopiuj do tych katalogw foldery i skrypty z pakietu instalacyjnego;
przekopiuj z poprzedniej wersji do katalogu /administration/
components/com_nowawersja plik konfiguracyjny, jeli go komponent posiada (nazwany zwykle komponent.config.php);
sprawd dziaanie.

Jeli si wszystko powiedzie, moesz z duym spokojem powtrzy t


procedur na produkcyjnej wersji witryny. Jeli pojawi si bdy, rozwa najpierw, czy nie jeste ich w stanie naprawi. Ustaw w konfiguracji
witryny wyszy poziom komunikatw o bdach (niekoniecznie peny w
tym ustawieniu PHP sygnalizuje take drobne uwagi (NOTICE), ktre zwykle mona spokojnie zignorowa. Ewentualnie przejd do trybu diagnostycznego (zarzdzasz go na pierwszej karcie w konfiguracji globalnej witryny). Po ustawieniu tego trybu na stronie frontowej bd wywietlane
treci wszystkich generowanych przez Joomla! zapyta do bazy danych.
Ich analiza moe przynie odpowied na pytanie o rdo bdu.
Jeli nie potrafisz znale albo naprawi przyczyny bdu, przywr
poprzedni wersj, a kopot zgo na forum uytkownikw. Moe kto inny albo sam autor znajdzie rozwizanie.

Nowa wersja ze zmianami w bazie danych


Rzadziej, ale zdarza si rwnie, e nowsza wersja komponentu przynosi
ze sob take zmiany w strukturze tabel bazy danych. W takich przypadkach nie mona si posuy metod opisan przed chwil. Trzeba komponent przeinstalowa. Nie przekonujmy si, e najpierw przed podjciem jakichkolwiek krokw warto zrobi kopi zapasow caej dziaajcej witryny. Dobrze wiemy, e cho warto, mao kto tak postpuje. Ale
cztery czynnoci s zawsze niezbdne:Rysunek 1

sporzd kopi tabel bazy danych aktualizowanego komponentu;


sporzd kopi tabel jos _ components i jos _ category;
przekopiuj na dysk swojego komputera katalogi /components/com_
komponent oraz /administrator//components/com_komponent ;
przejrzyj instrukcj reinstalacji (plik install.txt, readme!, czytaj.mnie
lub podobny).

Oczywicie, najlepiej zacz od zapoznania si z instrukcj. Ale nawet jeli nie w peni j zrozumiesz, jeste ubezpieczony w razie niepowodzenia przywrcisz wszystko do stanu sprzed reinstalacji. Po tych przygotowaniach:

odinstaluj starsz wersj komponentu;


zainstaluj now wersj;
sprawd dziaanie witryny.

Powiodo si? Nie ma sprawy. Problemy? Prbujemy je rozwiza.


Listing 1. Zachowanie szablonu administratora

Brak danych

<?php
// Show list of items to edit or delete or create new
if ($path = $mainframe>getPath( 'admin' )) {
require $path;
} else {
echo <img src="images/logo.png" border="0" alt="Mambo Logo"
/>;
}
?>

56

Moe si zdarzy. Po przeinstalowaniu tabele bazy danych komponentu


s puciutkie. Ale dysponujemy kopiami starych tabel! Sprawdzamy wic
uwanie, co zmienio si w ich strukturze. Tabela za tabel, pole za polem.
Gdy natrafimy na rnice, na wszelki wypadek wykonujemy jeszcze jedn kopi starej tabeli i dodajemy w niej brakujce pola albo co si zdarza wyjtkowo rzadko zmieniamy typ danych. Nastpnie podmieniamy
tabele. Nowej zmieniamy nazw, zmodyfikowanej przywracamy oryginaln nazw. Po dokadnym sprawdzeniu wszystkiego moemy usun
wszystkie niepotrzebne ju mieci, ktre do tego momentu powinnimy
traktowa jako dane niezwykle cenne i wraliwe!

www.sdjournal.org

Software Developers Journal Extra! 26

Nie wywietlaj si grafiki


Ale nie jest le, bo z innych treci ju moemy korzysta. Gdzie moe
by problem? W zasadzie w jednym miejscu: w lokalizacji. Sprawdzamy,
skd komponent prbuje grafiki odczyta i czy mamy je w tym wanie
miejscu. Ustawiamy wskanik myszki nad ikon sygnalizujca brakujc grafik lub tekstem zastpczym, a nastpnie z menu kontekstowego wybieramy opcj Waciwoci i odczytujemy adres brakujcego obrazka. Sprawdzamy, czy w tym wanie miejscu jest na serwerze. Wyniku mona si spodziewa, raczej go tam nie ma, bo np. zosta w starym
katalogu, ktry pieczoowicie przekopiowalimy na twardy dysk swojego komputera. Przekopiowanie z powrotem na swoje starenowe miejsce powinno rozwiza problem. Nie rozwizuje? Sprawdzamy dla pewnoci prawa dostpu do katalogu. Musi by moliwe ich odczytywanie. W
razie potrzeby modyfikujemy prawa dostpu lub prosimy o modyfikacj administratora serwera.
Bywa te, e w starszej wersji komponent gromadzi pliki graficzne
w specjalnym podkatalogu, a w nowej wersji poszukuje ich w katalogu /
images/stories/jakas_nazwa.
Sprawdzamy, czy w ustawieniach komponentu podawana jest cieka
do obrazkw. Jeli tak, zmieniamy j albo. kopiujemy grafiki tam, gdzie powinny by wedle nowych ustawie. To rozwizanie daje nam wiksz gwarancj powodzenia, bo do nowej lokalizacji gdzie w skryptach moe znajdowa si odwoanie nie poprzez zmienn, ale wpisany na sztywno adres.

Angielskie etykiety i komunikaty

Instalacja lub prby


naprawy nie powiody si
No c! mamy pecha. Jeli nie przetestowalimy reinstalacji na roboczej
wersji witryny, na pecha nie da si zrzuci kopotu. Zasuylimy na nauczk, czyli mozolne przywrcenie systemu do stanu sprzed aktualizacji.
Nauczeni dowiadczeniem, postpujemy ze szczegln rozwag:
przywracamy na serwerze starsze katalogi komponentu, kopiujc je
ze swojego komputera;

przywracamy z kopii w bazie danych poprzednie tabele komponentu;


przywracamy z kopii w bazie danych poprzedni wersj tabeli
jos _ components;
sprawdzamy, czy wszystko dziaa poprawnie.

Unowoczenianie moduw
Moduy s znacznie rzadziej modyfikowanymi skadnikami Joomla! ni
komponenty. S to zwykle stosunkowo proste skrypty, w ktrych rzadziej zdarzaj si usterki czy moliwoci udoskonale.

Skrypty moduu
Wszystkie skrypty moduw witryny umieszczane s w katalogu /
modules. Modu dziaa zwykle w oparciu o dwa skrypty:

skrypt instalacyjny nazwany mod _ nazwaModulu.xml;


skrypt z instrukcjami moduu nazwany mod _ nazwaModulu.xml;
rzadziej, ale zdarza si, e modu posiada jeszcze dodatkowe pliki,
umieszczane w specjalnym katalogu, nazwanym /nazwaModulu albo /mod_nazwaModulu.

Aktualizacja przez podmian plikw


Najprostszym sposobem aktualizacji moduu jest podmiana plikw. Aby
w ten sposb zaktualizowa modu:

To nie bd! Poprzednio zainstalowae polsk wersj komponentu, a nowa nie posiada polskiego pliku jzykowego. Odszukaj go w kopiach katalogw starszej wersji. Zwykle umieszczany jest w folderze /language. Bywa te, e komponent jest obsugiwany przez kilka plikw jzykowych
strony frontowej i zaplecza. Pliki jzykowe zaplecza umieszczane s
zwykle w katalogu administracyjnym komponentu, nazwanym czsto,
by unikn pomyek, /languages.
W nowej wersji komponentu mog si pojawi nowe stae jzykowe. Nie znajdziesz ich w plikach jzyka polskiego starszej wersji. Porwnaj nowy plik jzyka angielskiego z treci pliku jzyka polskiego, przekopiuj brakujce deklaracje, przetumacz, zapisz. Zwr uwag na kodowanie. Pliki jzyka polskiego winny by zapisane (a wczeniej odczytane) w
kodowaniu UTF8 lub ISO88592.

pobierz pakiet instalacyjny nowszej wersji moduu i rozpakuj go na


dysku swojego komputera;
otwrz program klienta FTP, z ktrego korzystasz i pocz si z serwerem;
skopiuj na dysk lokalny starsze skrypty moduu (na wszelki wypadek);
przelij na serwer skrypty z rozpakowanego archiwum nowej wersji;
zaloguj si na zaplecze i przejd do menedera moduw Menu >
Moduy [Menu > Modules];
odszukaj na licie modu, ktry aktualizujesz i kliknij jego nazw;
przejrzyj ustawienia moduu, szczeglnie parametry. Popraw je w
razie potrzeby;
zapisz nowe ustawienia;
sprawd dziaanie moduu.

Jeli wszystko dziaa poprawnie, moesz usun z lokalnego komputera


pakiet instalacyjny i skrypty starego moduu. Jeli nie, przeczytaj w dalszej czci o moliwych problemach i sprbuj naprawi modu.

Reinstalacja
Druga metoda polega na odinstalowaniu starszej wersji i zainstalowaniu nowej. Jej wad jest utrata aktualnych ustawie moduu. Mona je jednak skopiowa za pomoc programu obsugi bazy danych albo po prostu odpisa. Aktualizacja w tym przypadku obejmuje trzy kolejne czynnoci:

przejd na zapleczu do Menu > Instalatory > Moduy [Menu >


Installers > Modules] i odinstaluj stary modu;
zainstaluj now wersj moduu;
przejd do edytora waciwoci nowo zainstalowanego moduu,
przejrzyj ustawienia i popraw je.

Niepoprawny plik XML

Rysunek 1. Sporzdzanie kopii tabel bazy danych w phpMyAdminie


Software Developers Journal Extra! 26

Podczas aktualizacji moduw do nowszych wersji moesz natkn si


na kilka problemw: Zdarza si to do czsto w przypadku, gdy plik
XML jest spolonizowany. Przyczyn problemu jest brak waciwej deklaracji kodowania. W takich przypadkach wystarczy podda ten plik

www.sdjournal.org

57

Joomla

edycji w dowolnym prostym edytorze tekstu, np. windowsowym Notatniku lub w edytorze HTML i poprawi pierwsz lini, ktra wyglda
zwykle tak:
<?xml version="1.0" ?>

Zalenie od sposobu kodowania znakw, powinna ona brzmie:


<?xml version="1.0" encoding="iso88592"?>

wybierz baz, ktr chcesz eksportowa;


kliknij przycisk Eksportuj;
odznacz opcj Dane, pozostaw zaznaczon opcj Struktura;
zaznacz opcje: Dodanie wartoci AUTO_INCREMENT i Uycie cudzysoww z nazwami tabel i pl (zwykle s ju zaznaczone);
zaznacz opcj Zapisz jako plik;
kliknij przycisk Wykonanie;
w oknie dialogowym wska miejsce, w ktrym plik ma by zapisany
na dysku lokalnym. Moesz poda nazw lub pozostawi domyln;
kliknij przycisk Zapisz.

albo

<?xml version="1.0" encoding="utf8"?>

Moesz rwnie, zamiast zapisywania bazy do pliku, poleci wykonanie


zapytania w oknie phpMyAdmina, a nastpnie skopiowa wynik i wklei
do nowego dokumentu w edytorze HTML, w ktrym mona zmienia kodowanie znakw, np. Pajczek czy Eclipse.
W dobrze skonfigurowanym phpMyAdminie nie ma problemu. Gorzej, gdy w wywietlonym zrzucie bazy danych mamy przysowiowe
krzaczki. Wspomniany Pajczek ma przydatn w takich przypadkach
opcj. Baz eksportujemy do pliku na komputerze, a nastpnie odczytujemy w Pajczku.
Gdy znaki s wywietlane nieprawidowo, korzystamy z opcji dostpnej w menu Pisownia > Odczytaj w kodowaniu > [nazwa]. Niekiedy trzeba powtrzy operacj odczytywania kilkakrotnie, a uzyska si
pomylny wynik. Kadorazowo trzeba jednak wczeniej usun tworzony przez Pajczka plik tymczasowy nazwa.add. Poprawnie odczytany zrzut zapisujemy w takim kodowaniu, w jakim chcemy go importowac do nowej bazy.

Przenosiny Baza danych


Spory kopot sprawia przy przenosinach zachowanie polskich znakw w
bazie danych MySQL. Objanijmy, jak to zrobi.

rdo kopotw
Gwnym rdem problemu s rne wersje MySQL, z ktrymi mamy do
czynienia. MySQL w wersji od 4.1 obsuguje kodowanie znakw. Kodowanie obsugiwane jest w poczeniach z baz danych, przez baz danych,
przez tabele a po pojedyncze pola. Domylnym kodowaniem jest latin1 _ swedish _ ci, ktre z oczywistych wzgldw nie obsuguje polskich znakw, kodowanych w latin2 _ general _ ci albo utf8 _ general _ ci.

Zrzut bazy danych


Najpierw musimy wyeksportowa star baz danych. A poniewa przygotowanie bazy do przeniesienia bdzie wymagao okrelenia zasad
kodowania caej bazy danych i tabel, wygodniej jest najpierw wyeksportowa tylko struktur bazy, a nastpnie dane. Aby wyeksportowa baz danych:

pocz si z serwerem bazy danych za pomoc swojego klienta, np.


programu phpMyAdmin;

Podobnie postpujemy
ze zrzutem danych zrzut danych.
Jeli nadal nie udaje nam si uzyska poprawnego rezultatu, to problem moe lee w konfiguracji phpMyAdmina. O pomoc najlepiej
zwrci si do administratora serwera. Poprosi, by wykona nam
zrzut bezporednio z bazy danych, za pomoc interfejsu MySQL.
Uzyskany w ten sposb plik przygotowujemy do importu wedug opisu powyej.
Pamitaj! Dopki dysponujesz poprawnie odczytywan na starszej wersji witryny baz danych, dopty nie ma sytuacji bez wyjcia.
Konwersja danych do nowego formatu bdzie zawsze moliwa. Problemem moe by jedynie odkrycie najskuteczniejszej metody jej przeprowadzenia. Jeli jednak zniszczysz star baz danych, musisz si liczy albo z utrat moliwoci konwersji, albo czasochonnym wymienianiem krzaczkw, a w gorszym przypadku znakw zapytania na
zniszczonej bazie danych czy jej kopii.

Przygotowanie
pliku struktury bazy do importu
Tak uzyskane zrzuty bazy danych trzeba teraz przygotowa do umieszczenia w nowej bazie. Musimy poprawi wszystkie instrukcje tworzce
tabele. Nie jest to trudne, wystarczy posuy si opcj Znajd i Zastp
w edytorze tekstu. A zastpi musimy wszystkie definicje metody przechowywania danych. W przypadku gdy stara baza oparta bya na MySQL
3.23 linia, ktr musimy zmieni, wyglda moe tak:
TYPE=MyISAM AUTO_INCREMENT=1 ;

albo
Rysunek 2. Wykonywanie zrzutu bazy danych przy przenosinach

58

TYPE=MyISAM ;

www.sdjournal.org

Software Developers Journal Extra! 26

Problemy
Powody niepoprawnego wywietlania polskich znakw na stronach witryny niekoniecznie musz mie rdo w bazie danych. Czstymi przyczynami s:

niepoprawna konfiguracja serwera Apache;


bdy w szablonie witryny;
niepoprawny wpis w pliku jzykowym witryny;
wadliwe ustawienie przestrzeni nazw w pliku database.php.

Problem z niepoprawn konfiguracj serwera pojawia si raczej tylko


w rodowisku testowym, gdy zadeklarowane jest domylne kodowanie pocze. Rozwizaniem jest skomentowanie w pliku konfiguracyjnym Apache zmiennej AddDefaultCharset. W dokumentach wynikowych
HTML Joomla! deklaracja kodowania w nagwku powinna by generowana dynamicznie, po odczytaniu staej _ISO z pliku jzyka. Zdarzaj si
dwie sytuacje:
Rysunek 3. Importowanie bazy danych

Po zamianie powinna wyglda np. tak:

TYPE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

Bezporednia deklaracja kodowania, niezgodna z kodowaniem


witryny;
Czsto powtarzajcy si bd niepotrzebnie umieszczony dodatkowy nawias ostry;

albo

Linia odpowiedzialna w szablonie za kodowanie powinna wyglda tak:

TYPE=MyISAM DEFAULT CHARSET=latin2 ;

< <meta httpequiv="ContentType" content="text/html; <?php echo

Oczywicie, sposb kodowania zaley od kodowania w nowej bazie.


Jak wida, dodajemy albo DEFAULT CHARSET=latin2 albo DEFAULT
CHARSET=utf8 (zauwa, e nie ma tutaj cznika midzy znakami
UTF a cyfr).

Utworzenie nowej bazy


Teraz na nowym serwerze za pomoc phpMyAdmina tworzymy now baz, o ile jest to oczywicie moliwe. Jeli tak, wystarczy wybra przycisk
SQL i wpisa jedn z poniszych instrukcji:
CREATE DATABASE `nazwa_bazy`

DEFAULT CHARACTER

SET

latin2

COLLATE latin2_general_ci;

CREATE DATABASE `nazwa_bazy` DEFAULT CHARACTER SET utf8 COLLATE


utf8_general_ci;

Jeli mamy ju utworzon baz, dostosowujemy jedynie jej kodowanie do


takiego, jakiego potrzebujemy.

Importowanie starej bazy


Ostatnim krokiem jest wczytanie przygotowanych wczeniej plikw tworzcych tabele i pliku z danymi (importowanie bazy):

pocz si ze swoj now baz danych,;


kliknij przycisk Import;
w pierwszej grupie pl Plik do importu ustaw odpowiednio Zestaw
znakw dla pliku: wybierz utf8 albo latin2;
kliknij przycisk Przegldaj i wska plik zawierajcy struktur
tabel,
kliknij na dole przycisk Wykonaj. Nastpnie powtrz t procedur;
by zaimportowa plik z danymi.

Software Developers Journal Extra! 26

Wspomniany, dodatkowy a niepotrzebny ukonik bywa umieszczony po content="text/html. Deklaracja kodowania znakw znajduje
si w pliku jzykowym. Bywa e zapisujemy plik w poprawnym kodowaniu, zapominajc zmieni deklaracj tej staej. Trzeba wic sprawdzi lini:
DEFINE('_ISO','charset=utf8');

W przeznaczonym dla MySQL< 5 pliku w katalogu


kaj lini:

albo

_ISO; ?>" />

/includes

odszu-

@mysql _ query("SET NAMES 'utf8'", $this> _ resource);

standardowo linia ta jest skomentowana. Usunicie znakw komentarza i umieszczenie odpowiedniego kodowania (utf8 lub latin2) czsto rozwizuje problemy.

Przy tej okazji warto przypomnie, e domylny plik database.php


przeznaczony jest dla MySQL w wersji niszej ni 5.0. Jeli na serwerze dziaa MySQL w wersji w wersji 5 i wyszej, naley zamieni ten plik
na umieszczony w tym samym katalogu database.mysql5.php. Zmieniamy nazw oryginalnego pliku na database.mysql4.php, a przeznaczonego dla MySQL 5.x na database.php. Dysponujemy tutaj rwnie
skryptem obsugujcym database.mysqli.php, ktrego mona uy,
gdy na serwerze mamy PHP w wersji 5 i MySQL w wersji 4.1.

Podsumowanie
Jeli dowiadczysz skutkw zlekcewaenia informacji, e w kadym
programie s jakie luki, ktre wczeniej czy pniej kto odkryje,
do aktualizacji oprogramowania ani Joomla!, ani uywanych rozszerze, nie trzeba Ci bdzie przekonywa. Korzyci dodatkow z aktualizacji jest s zwykle wiksza wydajno i sprawno dziaania
nowych wersji. n

www.sdjournal.org

59

Joomla!

Krtka historia

Stefan Wajda

oomla! narodzi si latem 2005 roku. Ale jego historia jest dusza. Zanim narodzi si Joomla!, byo Mambo projekt udostpniony w 2002 roku na SourceForge, na warunkach licencji GNU GPL przez australijsk firm Miro [www.miro.com.au].

Twrcy i wsptwrcy
W 2002 roku decyzj Roba Castleya raczkujcy Mambo zosta udostpniony spoecznoci Open Source. Efekt przers wszelkie nadzieje i oczekiwania. Ju w kilka tygodni program zmieni swoje oblicze, wzbogacony przede wszystkim o funkcje, jakich oczekiwali klienci. Wkrtce wok projektu skupia si ogromna rzesza pasjonatw z caego wiata. Wszyscy, kady na swj sposb, wczali si w prace nad
rozwojem programu.
Niepodwaalny jest wkad w rozwj Mambo takich
projektantw z centrum rozwoju, jak: Robert Castley, Ron
Bakker, Michelle Bisson, Levis Bisson, Tim Broeker, Andrew Eddie, Rey Gigataras, Alex Kempkens, Peter Koch,
James Logan, Andy Miller, Mitch Pirtle, Steen Rabol, Emir
Sakic, Jean Marie Simonet, Andy Stewart, Phil Taylor,,
Brian Teeman. Ale w rwnej mierze do rozwoju projektu
przyczynili si rozsiani po caym wiecie twrcy rozszerze komponentw, moduw, szablonw oraz spoeczno uytkownikw, odkrywajcych bdy i usterki, zgaszajcych swe oczekiwania, sugestie i udoskonalenia.
Bez nich wszystkich projekt nie zostaby gwiazd wolnego oprogramowania.

Gwiazda Open Source


W cigu dwu lat ze stosunkowo prymitywnego rozwizania Mambo sta si jednym z najlepszych projektw wolnego oprogramowania, gwiazd wrd innych programw, zyskujc najwysze
uznanie, wyraajce si w przyznanymich nagrodamich:

Best Linux or Open Source Software w 2004 roku przez LinuxUser & Developer,
Best Open Source Solution w 2005 roku przez LinuxWorld,
Best of Show Total Industry Solution w 2005 roku przez
LinuxWorld,
Best Free Software Project of the Year w 2005 roku przez
Linux Format.

Stefan Wajda [Zwiastun] jest liderem PCJ!, koordynatorem


Zespou Tumaczy i Dokumentacji akredytowanym przy Translation Work Group projektu Joomla!, wydawc witryn PCJ, autorem
w peni zlokalizowanych wersji Mambo i Joomla! (MLI MamboPL,
J!PlusAdmin,) komponentw josDirectory i josResource. Spolonizowa okoo 150 rozszerze dla Joomla!, opublikowa ponad 600
artykuw powiconych wszystkim aspektom Joomla!
Kontakt z autorem: zwiastun@zwiastun.net.

60

www.sdjournal.org

Konflikt midzy Miro i projektantami


Wiosn 2005 roku Miro Ltd. zapowiedziao dziaania majce
zapewni projektowi dalszy rozwj na zasadach biznesowych.
Gwarancj miaa by fundacja, ktrej Miro planowao przekaza swoje prawa wasnoci do projektu i jego nazwy. Zamys
wzbudzi wewntrzny spr, ale nic nie zapowiadao wakacyjnych wydarze 2005 roku.
10 sierpnia ogoszono utworzenie The Mambo Foundation
z szefami Miro w zarzdzie, ale bez przedstawiciela zespou
projektantw. Nie stao miejsca dla adnego twrcy, nawet dla
lidera zespou. Zarwno Tt decyzj, jak i ogoszone wraz z ni
zamiary programici odczytali jako niepozostawiajcy wtpliwoci zamach na wolno programu i swobod jego rozwijania.
Mimo tego, prbowano jednak doj do porozumienia. Kompromis nie zosta jednak zawarty.

Dramatyczna decyzja
Wobec nieudanych prb porozumienia z Miro zesp deweloperw zdecydowa si na rozwizanie ryzykowne. Pozostawi
projekt swojemu losowi, a na podstawie samego kodu zainicjowa nowy. Wszystko zaleao od uytkownikw, sympatykw
i tumaczy. Projekt byskawicznie uzyska poparcie caej bez
maa spoecznoci.
17 sierpnia na nowej witrynie OpenSourceMatters
liderzy projektu z A.Eddie na czele wydali historyczne
owiadczenie. Poinformowali w nim, e praca nad projektem bdzie kontynuowana oraz e z pomoc Software Freedom Law Center (Centrum ds Wolnoci Oprogramowania)
zapewniony zostanie projektowi swobodny, oparty na zasadach Open Source, rozwj.
Nie znamy i zapewne nie poznamy nigdy wszystkich
okolicznoci tej dramatycznej decyzji. Faktem jest, e spotkaa si ona z powszechnym poparciem projektantw i
spoecznoci uytkownikw z caego wiata. Swoje zaangaowanie wyrazili tysicami maili oraz wypowiedziami na
zaoonym byskawicznie forum dyskusyjnym OpenSourceMatters.
W cigu niespena trzech tygodni wikszo projektantw
zwizanych dotychczas z Mambo skupia si wok zespou liderw i wok nowego projektu.

Narodziny Joomla!
1 wrzenia 2005 roku ogoszono narodziny Joomla! Lider projektu Andrew Eddie zapowiedzia pierwsze wydanie Joomla!
1.0.0 w nowym ksztacie i pod now mark: To nadchodzce wydanie bdzie dniem radoci dla kadego mwi podczas uroczystoci. Oznacza bdzie kontynuacj jednego z
najlepszych systemw Open Source bez komercyjnych obcie czy interwencji.
Tu po ustaleniu nazwy nowego projektu przekazano j
poczt elektroniczn wszystkim wydawcom witryn, ktrzy
zdecydowali si odej z Mambo i wspiera nowy projekt. W
Software Developers Journal Extra! 26

efekcie niemal rwnoczenie z udostpnion podczas otwarcia oficjaln


stron projektu www.joomla.org w Internecie pojawiy si dziesitki
przemianowanych lub nowych serwisw narodowych.
7 wrzenia, o pnocy z 19 na 20 wrzenia, ogoszono zakoczonyenie o pnocy z 19 na 20 wrzenia konkursu na logo Joomla! Uznanie
spoecznoci zyska projekt Alana Urquharta, wybrany w powszechnym
gosowaniu na forum uytkownikw.
16 wrzenia wiato dzienne ujrzao pierwsze wydanie Joomla! Oznaczono je numerem 1.0.0. Zgodnie z wczeniejsz zapowiedzi byo to poprawione wydanie Mambo 4.5.2 z przepracowanym kodem i atkami bezpieczestwa.
Ju w niespena w miesic od pierwszego wydania, w padzierniku,
podczas podczas Linux & Open Source Awards w Londynie Joomla! wygra w kategorii: Best Linux/Open Source Project (Najlepszy projekt Linux/
Open Source). Dokadniejsz histori wydarze mona pozna w artykule
Joomla is the New Mambo na witrynie Devshed.com.

Wasne drogi
Wobec utraty prawie caej spoecznoci twrcw i uytkownikw Mambo Foundation przeprowadzio w obronie swej marki intensywn kampani promocyjn. Odnowiono w krtkim czasie oficjalne serwisy Mambo. Poprawiono funkcjonalno skadnicy projektw MamboXChange.
Nie zmieniono rwnie warunkw licencjonowania Mambo. Joomla! obroni wolno Mambo.
Ale dziaania te niewiele byy ju w stanie zmieni. Mambo utracio
najwiksz si rozwoju spoeczno projektantw, tumaczy i dystrybutorw, jak rwnie uytkownikw, ktrzy aktualizowali swoje witryny
kolejnymi, coraz doskonalszymi wydaniami Joomla!
W cigu pierwszego roku opublikowano ich 11. W grudniu 2006 roku ukazaa si zapowiadana jako ostatnia z tej linii rozwojowej, stabilna
R

wersja 1.0.12. Nieco wczeniej, w poowie listopada ukazaa si wersja


alfa kolejnej linii rozwojowej Joomla! 1.5, unowoczeniona, przebudowana na tyle, e mona mwi o cakowicie nowym rozwizaniu.
ywotnoci i dynamiki rozwoju Joomla! dowodzi jeszcze i drugi
znamienny fakt w drugim roku istnienia uytkownicy Joomla! mog
korzysta z blisko 2000 rozszerze udostpnionych przez programistw z caego wiata oraz licznymich zmodyfikowanymich dystrybucjami Joomla Accessible (a8eJoomla), Joomla International Edition
czy J!Ext.

Podobiestwa i rnice
Mamy zatem dwa odrbne projekty wyrose ze wsplnego korzenia:
Mambo i Joomla! Oba wydawane na warunkach Powszechnej Licencji Publicznej. Oparte s na tych samych zaoeniach. Oba z otwartym, jawnym kodem.
S to ju jednak dwa rne, odrbne programy, rozwijane niezalenie od siebie. Kady ma swoje centrum rozwoju, swoje cele,
swoje plany. Trudno przewidywa, jak dalece rozejd si drogi obu
projektw, jak due bd midzy nimi rnice, w jakim tempie bd rozwijane.
Po pierwszym roku rnice byy niewielkie, ale na tyle znaczce, e niektre komponenty i moduy dziaaj tylko w jednym z tych
programw. Z czasem rnice bd stay si coraz wiksze. Wida
to w peni po wydaniu w lipcu 2007 roku Joomla! 1.5 w wersji Relase Candidate.
W duej mierze s natomiast zgodne ze sob Joomla! w wersji
1.0.x a i Mambo w wersji 4.5.x. To naturalne, opieraj si na tym samym kodzie i taka sama jest struktura bazy danych. Moliwae jest
wic niekopotliwe przejcie zarwno z Mambo 4.5.2.x do Joomla
1.0.x, jak i z Joomla 1.0.x do Mambo. n
L

Joomla!

Wsplnota Joomla!
i Centrum Projektu

Stefan Wajda

oomla! to nie tylko program. To rwnie midzynarodowa wsplnota uytkownikw spoeczno internetowa.

Uczestnictwo
Wszystkich jednocz idee wolnego oprogramowania i zaangaowanie w sprawy rozwoju Joomla! Orodkami skupiajcymi spoeczno uytkownikw s centra rozwoju Joomla!.
Wsplnot Joomla! tworz:

autorzy, redaktorzy, twrcy i projektanci witryn;


projektanci i twrcy rozszerze dla Joomla!;
dystrybutorzy Joomla i rozszerze dla Joomla!;
autorzy i tumacze dokumentacji oraz materiaw promocyjnych i edukacyjnych;
osoby, instytucje ifirmy korzystajce z Joomla! oraz
wspierajce Joomla!.

Zasady dziaania
Spoecznoci Joomla! nie krpuj formalne wizi przynalenoci czy czonkostwa. Swoj aktywno spoeczno uytkownikw Joomla! organizuje na zasadach ruchu spoecznego:

wolnoci, demokracji i swobody dziaania;


wsparcia idei wolnego oprogramowania i akceptacji warunkw korzystania z Joomla!;
akceptacji zasad uczestnictwa w pracach zespow i grup
roboczych.

Grupy robocze Centrum Projektu


Aby spoytkowa bogactwo wiedzy caej spoecznoci Joomla!, Core Team stworzy kilka grup roboczych. Kada z grup
skupia si na jednym z istotnych dla rozwoju Joomla! aspektw. Grupy robocze s orodkami komunikacji midzy spoecznoci Joomla i zespoem centralnym. Aktualnie Centrum projektu powoao 7 grup roboczych:

Organizacja
Uytkownicy Joomla! inicjuj i realizuj przedsiwzicia, projekty, organizacje, stowarzyszenia, firmy dla realizacji wsplnych celw zgodnie z prawem, zasadami wolnoci i demokracji. Centrum projektu Core Team. Koordynatorem prac nad
rozwojem Joomla! i centralnym orodkiem spoecznoci uytkownikw Joomla! jest

Centrum projektu Core Team


Core Team sprawuje oglne kierownictwo i prowadzi orodek informacji i komunikacji spoecznoci Joomla! oficjaln
witryn projektu www.joomla.org, zoon z kilka serwisw:
Stefan Wajda [Zwiastun] jest liderem PCJ!, koordynatorem
Zespou Tumaczy i Dokumentacji akredytowanym przy Translation Work Group projektu Joomla!, wydawc witryn PCJ, autorem
w peni zlokalizowanych wersji Mambo i Joomla! (MLI MamboPL,
J!PlusAdmin,) komponentw josDirectory i josResource. Spolonizowa okoo 150 rozszerze dla Joomla!, opublikowa ponad 600
artykuw powiconych wszystkim aspektom Joomla!
Kontakt z autorem: zwiastun@zwiastun.net.

62

www.sdjournal.org

Joomla! News www.joomla.org/content/blogcategory/0/


33/ magazyn informacyjny o wanych wydarzeniach i
pracach nad projektem;
Joomla! Help www.help.joomla.org oficjalny serwis i
serwer pomocy;
Joomla! Extensions www.extensions.joomla.org centralny katalog zasobw przegldarka rozszerze dla Joomla!;
Joomla! Forum www.forum.joomla.org oficjalne forum
uytkownikw;
Joomla! Developer www.dev.joomla.org serwis projektantw i programistw;
Joomla! Code www.joomlacode.org centralne repozytorium projektw;
Joomla! Demo www.demo.joomla.org prezentacja Joomla!

Translation Work Group (Grupa Tumaczy) koordynuje


prace na lokalizacj Joomla! i dokumentacji;
Quality and Testing Work Group (Grupa Jakoci i Testw)
dba o jako, stabilno i bezpieczestwo kodu Joomla!,
publikuje aktualne wersje Joomla!;
Development Workgroup (Grupa Projektantw i Programistw) rozwija Joomla!, publikuje plany rozwoju Joomla!;
Sites and Infrastructure Working Group (Grupa Utrzymania Serwisw i Infrastruktury) - dba o system komunikacji,
serwisy zasoby Joomla!;
Documentation Work Group (Grupa Dokumentacji) pracuje na podrcznikami uytkownikw, administratorw i programistw;
Design and Accessibility Working Group (Design i Dostpno) odpowiada za atrakcyjne edycje Joomla! oraz
zgodno ze standardami dostpnoci;
Marketing and Media (Promocja i media) zajmuje si promocj Joomla!, opracowaniem i realizacj strategii marketingowej.

Wydania Joomla!
PCJ! upowszechnia Joomla!, przede wszystkim wydaje go w
polskich wersjach. Warto podkreli, e:

jedynie PCJ! ma prawo wydawa oficjalne polskie wersje


Joomla!;
PCJ! udostpnia take wydania zmodyfikowane, w peni
spolonizowane.
Software Developers Journal Extra! 26

Obok sygnowanych przez koordynatora Zespou Tumacze i Dokumentacji wyda oficjalnych, Polskie Centrum Joomla! udostpnio 10 kolejnych
nieoficjalnych zmodyfikowanych wyda Joomla 1.0. +Admin, w ktrych
zaimplemetowano moliwo lokalizacji zaplecza administracyjnego.
W peni zlokalizowany Joomla 1.0.13, zamieszczony na naszej pytce, zosta przygotowany przez lidera PCJ! we wsppracy z mongolskim
programist Adrianem Mummeyem, autorem podobnego rozwizania jak
wydawane wczeniej przez PCJ!. Jest to rwnie wydanie nieoficjalne
zmodyfikowane polska wersja Joomla International Edition. Wydanie to
zamyka take histori projektu Joomla 1.0. +Admin.
Du popularnoci ciesz si rozszerzone wydanie Joomla! zaprojektowane przez czonka Artura Moska (Stone), gwnego administratora forum uytkownikw - Joomla! Power Edition. J!PE jest zmodyfikowanym, przeznaczonym na platform Windows, preinstalatorem wzbogacony o zestaw czsto wykorzystywanych rozszerze - komponentw, moduw i botw. Umoliwia wybr dodatkowych skadnikw, upraszczajc
proces przygotowania witryny.

Rysunek 2. Serwer pomocy i dokumentacji

Polskie rozszerzenia dla Joomla!

Doradztwo i szkolenia

Drug paszczyzn dziaania PCJ! jest przygotowanie i publikacja polskich wersji rozszerze dla Joomla! Jest ich aktualnie w zbiorach PCJ!
okoo 450. Gwnie tumaczenia, ktre wyszy spod rki Marka Dylewicza
(Dylek), Piotra Laskowskiego (Josh), Marka Pniaka (Sogo) i Stefana Wajdy (Zwiastun). W cigu 2 dwch lat istnienia ze zbiorw Polskiego Centrum
Joomla odnotowano prawie 800.000 pobra. Pojawiaj si te rozwizania
oferowane przez polskich programistw, np. SEF Service Map i JAccelerator
Jarka Kubery, JPortfolio Konrada Gretkiewicza, SOBI2 polsko-niemieckiego
duetu Sigrid i Radosawa Suskich oraz josDirectory, josResource i inne.

Od pocztku istnienia PCJ! prowadzi forum uytkownikw (forum.joomla.pl). W poowie sierpnia znale mona byo na nim blisko ponad 10 tysicy tematw i 45.000 wiadomoci. Z blisko 8000 uytkownikw ponad
1000 naley do grona aktywnych, nie tylko pytajcych o rady, ale doradzajcych innym.
Jesieni ubiegego roku PCJ! zainicjowao profesjonalne szkolenia.
Wkrtce w ofercie znajd si propozycje dla biznesu, dla administratorw
i dla projektantw szablonw.

Przekady dokumentacji i poradniki

Witryny Polskiego Centrum Joomla!


Celowi PCJ! su gwnie witryny. Aktualnie jest ich cztery:

Kompletem polskich instrukcji uytkownicy Joomla! dysponowali zanim


zosta on w caoci opublikowany na witrynie projektu. Zostay opublikowane na www.pomoc.joomla.pl ju jesieni 2005 roku. Ostatnio cao zostaa przejrzana, odwieona i znacznie rozszerzona.
Materiay instruktaowe publikowane s na dwch witrynach PCJ!
www.pomoc.joomla.pl i www.demo.joomla.pl. Aktualnie jest to bodaj najbogatszy w polskim Internecie oglnie dostpny zbir opracowa powiconych projektowaniu dla WWW, nie tylko dla Joomla!
Na obu witrynach znale mona 8 podrcznikw, ponad 700 czsto
kilkunastostronicowych artykuw. Wszystkie publikacje licencjonowane
s wedle warunkw Common Creative, bez praw do wykorzystania w celach komercyjnych.

www.joomla.pl serwis informacyjny, skadnica polskich wersji Joomla! i rozszerze;


www.pomoc.joomla.pl serwer pomocy i dokumentacji;
forum.joomla.pl forum uytkownikw;
www.demo.joomla.pl witryna prezentacyjna, poradniki dla pocztkujcych.

Orodki partnerskie
Aktualnie miano orodkw partnerskich maj dwie witryny:

www.joomlapl.com udostpniajca oficjalne wersje Joomla! i polskie


wersje rozszerze;
www.joomlademo.pl prezentujca rozszerzenia dla Joomla!

Witryna miesica
W marcu 2007 roku PCJ! zainicjowao nieustanny konkurs na najlepsze
realizacje. Regulamin konkursu znale mona na witrynach PCJ! (centrum i forum). Wyboru Witryny miesica i Witryny roku dokonuj uytkownicy spord wstpnie nominowanych przez jury PCJ!. Dotychczas
miano Witryny miesica uzyskay:

Rysunek 1. Prezentacja Joomla!


Software Developers Journal Extra! 26

kwiecie 2007 www.spoleczenstwoinformacyjne.pl;


maj 2007 www.zyciekrakowa.pl/nowahuta;
czerwiec 2007 www.zyjepodlasiem.pl;
lipiec 2007 www.krzewscy.com.pl.

Jednym zdaniem, spord licznych CMS uytkownicy Joomla! w Polsce dysponuj najbogatszym, dynamicznie rozwijajcym si systemem
wsparcia. n
www.sdjournal.org

63

Joomla !

Optymalizacja...
ludziom i wyszukiwarkom

Stefan Wajda

eli wierzysz, e dobra oferta przycignie na Twoj stron, pozbd si zudze! Dobra oferta moe by doceniona w pasau handlowym w porwnaniu z innymi. Internetowym pasaem s wyszukiwarki. Jeli nie poka oferty Twojej witryny wrd tych najwyszej jakoci, nie licz na sukces.

Kryteria jakoci
Kryteria jakoci aplikacji internetowych s tak dobrze znane,
jak przestrzegane. Niestety. Ale c si dziwi, skoro nawet ci,
ktrzy uczestnicz w ich ustanawianiu, by nie nazywa tu po
imieniu twrcy najpopularniejszej przegldarki, wci ze standardami s na bakier.Tak kryteriami jakoci w Internecie s
wyspecyfikowane przez W3C standardy sieciowe.

Jako a standardy
Stosowanie standardw pozwala uzyska, utrzyma i podwysza jako produktu. W przypadku projektw dla WWW standard oznacza dobr jako, a na pewno niezbdne minimum
dobrej jakoci, potwierdzajce, e produkt strona WWW
jest dzieem fachowca, rzemielnika lub artysty profesjonalisty. Bd wic profesjonalny!

rdo popularnoci
Wielu projektantw, poniekd susznie, skupia si na technicznych aspektach popularnoci witryn, na ich wypozycjonowaniu uzyskaniu wysokiego miejsca w rankingach wyszukiwarek. Susznie, bo to wiadectwo popularnoci, poniekd, bo popularno witryna musi zdoby wrd ludzi, wrd internautw, uytkownikw.
Techniczne sztuczki zapewni witrynie wysok pozycj w
indeksach wyszukiwarek dopki, dopty te nie zorientuj si,
e wysokie miejsce nie oznacza wysokiej czstotliwoci odwiedzin.

Najprostsz drog osignicia tych walorw jest zaprojektowanie witryny zgodnie ze standardami W3C. Obrazowo zilustrowa t tez Barrie North por. z www.compassdesigns.net.
Jeli witryna spenia standardy W3C, to rwnoczenie spenia
wymagania dostpnoci, uytecznoci i dostosowania do wymogw wyszukiwarek sieciowych. I odwrotnie.

Dostpno Accessibility
Dostpno oznacza tak czytelno dokumentw internetowych, ktra zapewnia wygodny dostp jak najszerszemu gronu odbiorcw:

Dostpno dotyczy wic wszystkich, kadego odbiorcy, ale


w szczeglnoci osb niepenosprawnych i starszych, osb
uywajcych dawniejszych wersji przegldarek, korzystajcych z wolnych cz internetowych czy z technologii mobilnych telefonw komrkowych, PDA. Standardy dostpnoci dla uytkownikw niepenosprawnych okrela przyjta w
1999 r. przez W3C specyfikacja WCAG. Inn tego typu specyfikacj jest obowizujca w USA, ale uznawana na caym wiecie
Section508. Istnieje 14 zalece dotyczcych dostpnoci. Zalenie od stopnia ich realizacji wyrnia si 3 standardy:

Trzy aspekty dobrej jakoci


Trzy podstawowe aspekty witryny dobrej jakoci, witryny profesjonalnej to:

dostpno po angielsku accessibility;


uyteczno po angielsku usability lub webusability;
optymalizacja pod ktem wyszukiwarek internetowych
po angielsku Search Engine Optimization [SEO].

Stefan Wajda [Zwiastun] jest liderem PCJ!, koordynatorem


Zespou Tumaczy i Dokumentacji akredytowanym przy Translation Work Group projektu Joomla!, wydawc witryn PCJ, autorem
w peni zlokalizowanych wersji Mambo i Joomla! (MLI MamboPL,
J!PlusAdmin,) komponentw josDirectory i josResource. Spolonizowa okoo 150 rozszerze dla Joomla!, opublikowa ponad 600
artykuw powiconych wszystkim aspektom Joomla!
Kontakt z autorem: zwiastun@zwiastun.net.

www.sdjournal.org

zgodno poziomu A zgodno z wszystkimi priorytetami poziomu pierwszego;


zgodno podwjnego A stosowanie si do wszystkich
priorytetw 1. i 2. poziomu;
zgodno potrjnego A realizacja wszystkich priorytetw 1., 2. i 3. poziomu.

W telegraficznym skrcie mona streci wytyczne dostpnoci kilkoma punktami. Witryna jest dostpna, jeeli:

64

niezalenie od ich fizycznych ogranicze;


niezalenie od sytuacji, w jakiej si znajduj;
niezalenie od uywanego oprogramowania;
niezalenie od uywanego sprztu i czy.

szybko si aduje;
nie wymaga specjalnego wysiku przy przegldaniu;
teksty s czytelne, co zapewnia odpowiedni rozmiar znakw, kontrast;
znaczce informacje s wyrnione;
wyrnienia wskazuj na miejsce w strukturze dokumentu i znaczenie;
wyrnienia s atwo zauwaalne;
mechanizmy nawigacji s proste i przejrzyste;
odnoniki s pogrupowane, a wewntrz akapitw s wyraone sowami znaczcymi;
zawarto dwikowa i graficzna posiada odpowiedniki
tekstowe;
uytkownicy mog dostosowa wygld do swoich potrzeb.
Software Developers Journal Extra! 26

Uyteczno Usability
Jakob Nielsen i Marie Tahir sformuowali w ksice Funkcjonalno stron
WWW 113 zalece dotyczcych tylko uytecznoci gwnej strony witryny. Uyteczno [ang. usability, webusability] oznacza, e strona internetowa jest przydatna odpowiada na potrzeby uytkownikw, umoliwia ich zaspokojenie w sposb:

prosty, naturalny;
atwy, wygodny;
skuteczny, efektywny;
uwieczony satysfakcj.

Wymogi uytecznoci stron internetowych w przeciwiestwie do wymogw dostpnoci nie s skodyfikowane przez W3C, kodyfikacja wymogw w tym zakresie nie jest bowiem ani moliwa ze wzgldu na rnorodno i innowacyjno, ani potrzebna. Weryfikuj j bezporednio internauci. Dla projektanta szablonw istotne znaczenie maj te waciwoci witryny WWW, ktre zwizane s z posugiwaniem si interfejsem, atwoci
obsugi, prowadz skutecznie do celu. Witryna jest uyteczna m.in. jeeli:

mona j atwo znale wyszukiwarki umieszczaj j na pocztku


wykazw;
mona j szybko przeglda kada strona szybko si aduje;
atwo si w niej orientowa posiada czyteln struktur zawartoci;
atwo si w niej porusza posiada proste i przejrzyste mechanizmy
nawigacji;
bez trudu mona j przeszukiwa oferuje wygodne mechanizmy
wyszukiwania;
zapewnia wygodne kopiowanie zapisywanie na dysku, drukowanie,
pobieranie dokumentw.

Dostpno a uyteczno
Wymogi dostpnoci i uytecznoci czy wiele wsplnego, lecz nie s
one tosame. Dostpno oznacza moliwo korzystania, uyteczno
zaspokojenie potrzeb. Zwizek dostpnoci i uytecznoci uwidacznia
si najlepiej w praktycznej realizacji tych wymogw speniajc kryteria
dostpnoci, czsto speniamy rwnoczenie wymogi uytecznoci.

Standardy i Joomla!
Joomla! wspiera projektantw WWW w stosowaniu si do zalece W3C. Bogat informacj na ten temat znajdziesz na oficjalnej stronie projektu i w serwisie PCJ (zobacz ramka). Ale nie oczekuj, e Joomla! zastpi Ci we wszystkim. Nie oczekuj rwnie, e jest doskonaa. Przeciwnie, Joomla 1.0 ma swe
pocztki w czasach, gdy wspczesne standardy sieciowe dopiero zyskiway zrozumienie i szersze grono zwolennikw, a przede wszystkim odpowiednie narzdzia. Owszem, kod Joomla! zosta znacznie poprawiony, dostosowany, na ile to byo moliwe do wymaga W3C. Ale wykorzystanie moliwoci, ktre stwarza, zaley wycznie od twrcw i projektantw witryn.

Uznanie u wyszukiwarek i pajczkw


Najpierw przyjmij do wiadomoci, e wyszukiwarki s bezdusznymi, lepymi maszynami. Niezbyt interesuje je szata graficzna, nie obchodz najwspanialsze animacje. Wrcz przeciwnie. Przeszkadzaj one posacom
wyszukiwarek pajczkom w penetrowaniu Twoich stron.

Zapraszanie i kuszenie pajczkw

Tre najwaniejsza
Najwaniejsza jest tre, zawarto. Ona decyduje, czy Twoja witryna bdzie czsto odwiedzana przez internautw i czy bdzie cytowana przez inne
serwisy. Oczywicie, moesz skorzysta z takiej czy innej sztuczki reklamowej, zabiegu promocyjnego. Nawet z dobrym skutkiem na krtk met. Na
dusz nic z tego. Jeli uytkownicy przekonaj si, a przekonaj si bardzo szybko, e odwiedziny Twego serwisu nic im nie daj czy te niewiele, to
i przestan przychodzi, co pajczki szybko zauwa, bo potrafi dobrze liczy. Caa ich praca to przeszukiwanie, sprawdzanie i liczenie!

Dobrze oznakowane drogi i rozdroa


Nic po najwspanialszej nawet treci, jeli nie bdzie w niej adu, sensownej
organizacji i czytelnych oznacze. Wyrazem adu jest schludny, poprawny kod odzwierciedlajcy struktur i znaczenie treci serwisu. Pajczki nie
rozumiej sw, wyrae, zda, akapitw. Szukaj znakw zrozumiaych
dla siebie. Przebiegaj po tytuach, ale musz wiedzie, ktre to fragmenty s tytuami, ktre rdtytuami, a ktre tytulikami trzeciego, czwartego, pitego rzdu. Musz te wiedzie, ktre fragmenty tekstu s akapitami, ktre listami, a ktre tylko punktami elementami listy. Gdy spotykaj
obrazek lub inny obiekt, interesuje je, co to jest, a wic alternatywny tekst,
bo na estetyk wraliwe nie s. Oznaczaj swoje materiay kodem:

czystym, a wic niezamieconym;


poprawnym, a wic zgodnym ze standardami;
semantycznym, a wic odzwierciedlajcym struktur i znaczenie.

Uatwiaj orientacj, a nie utrudniaj. Nie pozwl si pajczkom pogubi.


Gdy trafi na labirynt, to albo si szybko wycofaj, albo zgin.

cieki na skrty bez haka


Kiedy wdrowiec syszy, e bdzie ze trzy kilometry z hakiem, jest niemal pewny, e w hak to, co najmniej, nastpne trzy kilometry, na dodatek niekoniecznie prowadzce do celu. Wystrzegaj si takiego kierowania
pajczkami. Kady odnonik, ktry umieszczasz w serwisie, moe by z
hakiem i bez, moe prowadzi do celu i donikd. Zadbaj, by odnoniki rzeczywicie prowadziy do celu. By byy zwize, proste i czytelne.

Konkluzja
Wyszukiwarki umieszczaj najwyej na listach witryny charakteryzujce si:

niepowtarzalnoci publikowanych materiaw;


logiczn struktur dokumentu HTML;
standardowym oznakowaniem treci zgodnie z ich znaczeniem;
czytelnoci odnonikw;
czystym kodem bez elementw formatujcych.

Pajczki trafi na Twoj stron, jeli dowiedz si o jej istnieniu. Zapro je


wic zgo stron w wyszukiwarkach. Bd Ci skada systematyczne
wizyty rozpoznawcze i notowa, notowa, notowa. Fachowo owo notowanie nazywa si indeksacj. Pajczki trafi te z innych witryn. Jeli znajd
Software Developers Journal Extra! 26

w nich odnoniki do oferowanych przez Ciebie treci. Zrozumiae, e prdzej i czciej trafi z witryn czsto odwiedzanych, a wic wysoko ocenianych przez internautw. Zadbaj wic, by redaktorzy i autorzy innych serwisw kierowali swoich goci do Ciebie. Zdobd ich uznanie. Przekonaj, e
w Twoim serwisie s wiarygodne, atrakcyjne, godne poznania materiay.

Rysunek 1. Dostpno, uyteczno i optymalizacja pod ktem


wyszukiwarek a zgodno ze standardami

www.sdjournal.org

65

Joomla !

W artykuach Vikinga znajdziesz sporo podpowiedzi, jak osiga dobr jako, dziki odpowiedniemu zaprojektowaniu szablonu czy postawieniu
odpowiednich wymaga projektantowi, ktremu zlecisz jego wykonanie.
Tutaj, by nie pozosta jedynie przy mimo wszystko oglnych,
wrcz oglnikowych stwierdzeniach zajmiemy si jeszcze jednym praktycznym aspektem uproszczeniem adresw URL.

W Sieci

Przejrzyste adresy URL w Joomla!


Adresy URL generowane przez Joomla! trudno przeczyta i zapamita. Kopot przede wszystkim dla uytkownikw. Jak przekaza znajomemu, koleance, koledze sierminy adresik do wanej strony,
brzmicy np. http://www.witryna.com/index.php?option=com_content
&task=view&id=140&Itemid=12. Ponadto, niektre wyszukiwarki nie
odnosz si zbyt przychylnie do adresw ze znakami ?, &, =. atwej
metody uproszczenia generowanych w Joomla! adresw URL dostarcza standardowy bot SEF proste adresy URL. W efekcie jego dziaania otrzymasz adresy niewtpliwie prostsze /content/view/330/
2/ cho wci dalekie od ideau. Skorzystanie z usug bota wymaga
dwch zabiegw:

wczenia opcji Proste adresy URL w zakadce Wyszukiwarki w konfiguracji globalnej witryny;
przemianowania znajdujcego si w gwnym katalogu Joomla! pliku
htaccess.txt na .htaccess.

Rozwizanie to przeznaczone jest w zasadzie tylko dla korzystajcych


z serwerw Apache, ale moe by rwnie zastosowane m.in. na serwerach windowsowych IIS, po zainstalowaniu wtyczki URL Replacer dostpnej pod adresem http://www.snapfiles.com/get/urlreplacer.html. Aby wczy w serwisie mie adresy URL [niceurl]:

Sprawd, czy na serwerze Apache, z ktrego korzystasz, jest zainstalowany i uaktywniony modu Rewrite. W tym celu w panelu administracyjnym w
menu System wybierz cze Informacje o systemie, a nastpnie zakadk
PHP. W sekcji Apache Loaded Modules znajd nazw mod_rewrite;
jeli modu jest zainstalowany i uaktywniony, przejd do menu Witryna -> Konfiguracja, a nastpnie do zakadki -> Wyszukiwarki [Site ->
Global -> Configuration -> SEO]. Ustaw opcj Translacja URL [Search
Engine Friendly URLs] na Tak;
pocz si za pomoc klienta FTP z serwerem, a nastpnie w katalogu
gwnym Joomla! zmie nazw pliku htaccess.txt na .htaccess (usu
rozszerzenie.txt, a przed nazw wstaw kropk.

Tajemnica dziaania o pliku .htaccess


Plik htaccess.txt zosta przygotowany przez projektantw Joomla! po to,
aby kady mg wczy zamian dynamicznych adresw URL na proste,
nawet jeli nie zna si na konfigurowaniu serwerw. Zwykle nie trzeba w

nim nic zmienia. Niekiedy jednak edycja pliku jest konieczna. Poczwszy od Joomla 1.0.11 znajduj si w nim trzy sekcje:

## have directories named 'content' or 'component'


## on your server
RewriteCond %{REQUEST_FILENAME} !f
RewriteCond %{REQUEST_FILENAME} !d
RewriteCond %{REQUEST_URI} (/|.htm|.php|.html|/[^.]*)$
[NC]
RewriteRule ^(content/|component/) index.php
########## End Joomla! core SEF Section

66

Joomla! core SEF Section sekcja standardowych ustawie SEF;


3rd Party SEF Section sekcja ustawie SEF dla komponentw oferowanych przez innych projektantw;
Rewrite rules to block out some common exploits sekcja regu chronicych przed atakami typu exploits.

Szczegowe informacje o moliwociach jego wykorzystania pliku.


htaccess znajdziesz w powiconym mu artykule Zmiana niektrych
ustawie serwera htaccess w serwisie pomocy pod adresem http://
www.demo.joomla.pl/content/view/822/31/. Tu zajmiemy si tylko przeksztacaniem adresw URL.

Wczenie translacji adresw URL


Poniszy fragment odpowiada za wczenie mechanizmu translacji adresw:
RewriteEngine On
Zmiana bazowego adresu URL

Jeli URL serwera WWW nie jest ciek do katalogu z Joomla!, konieczna jest zmiana adresu bazowego. Przejd w pliku .htaccess do fragmentu:
# is not directly related to physical file paths. Usu znak komentarza z ostatniej linii i wpisz ciek do katalogu z Joomla!, np:
RewriteBase /KatalogJoomlaMambo
Reguy dla standardowego SEF

Reguy dla standardowego dodatku SEF zawiera nastpujcy fragment:


(Listing 1). Zgodnie z komentarzem tej sekcji uywamy tylko wwczas,
gdy chcemy korzysta ze standardowego dodatku SEF. Wszystkie linie
rozpoczynajce si od RewriteCond s niezbdne, poniewa Joomla! stosuje w adresach dla tworzonych dynamicznie stron dwie nazwy katalogw content lub component. W liniach bez znakw komentarza znajduj
si dwie istotne dla funkcjonowania moduu mod_rewrite dyrektywy:

Listing 1. Reguy dla standardowego dodatku SEF


########### Use this section if using ONLY Joomla! core SEF

WCAG 1.0 http://www.w3.org/TR/WCAG10/


polski przekad http://dwww.pl/checklist.html
WCAG w Joomla 1.0 www.pomoc.joomla.pl/ content/view/10/30/
Warto przeczyta: W gb dostpnoci mimas.ceti.pl/dia/

linie rozpoczynajce si od RewriteCond okrelaj, w jakich przypadkach zostanie dokonana zamiana adresw (dokadniej: precyzuj warunki, jakie musz by spenione, aby zostaa zastosowana nastpujca po tych liniach dyrektywa RewriteRule).
linia rozpoczynajca si od RewriteRule powoduje zamian fragmentw dynamicznego adresu URL na sowa content lub component oraz
liczby identyfikujce dynamicznie tworzone strony. W wyniku zastosowania tej reguy otrzymujemy np. takie fragmenty w adresie:
index.php/content/view/10/42.

Jeli chcemy uzyska adresy bogatsze w tre z nazwami przegldanych materiaw trzeba zainstalowa specjalny komponent, np: Artio
JoomSef www.artio.cz; Joomla SEF Patch www.joomlatwork.com; ReMOSef www.remository.com; OpenSEF www.mamboassistance.com n
www.sdjournal.org

Software Developers Journal Extra! 26

Joomla!

Micha Sobkowiak

Antylopa, otwarto i rdo

oomla! jest rozpowszechniany na licencji GNU/GPL, co


ma wiele rnych konsekwencji, z ktrych, jak wskazuje dowiadczenie i ostatnie wydarzenia w midzynarodowej spoecznoci Joomla!, wiele osb nie zdaje sobie sprawy. Przyjrzyjmy si wic licencji i wartociom, w obronie ktrych j stworzono.

Dobrze sprzedane kamstwo


yjemy w wiecie, gdzie uywanie oprogramowania, na ktre nie mamy wpywu, ktrego dziaania nie moemy pozna,
zrozumie i zmodyfikowa dla wasnych potrzeb, czy nawet
naprawi, gdy dziaa le, jest czym oczywistym i naturalnym. Nie wydaje nam si to dziwne dlatego, e przez duszy czas alternatywy byy sabe, a sprzedawcom tego upoledzonego oprogramowania udao si wmwi nam, e program w swojej istocie, nie rni si niczym od samochodu
czy ciastka. Przyzwyczailimy si myle o oprogramowaniu, jak o produkcie, ktry co robi. Jednak, jeli si przyjrzyjmy bliej, to robi co komputer, a program jest jedynie
ide zapisan w jzyku zrozumiaym dla czowieka i dla komputera. Bez komputera, na ktrym mona by go uruchomi,
nie przedstawia adnej wartoci, tak jak pomys, ktrego nie
mona zrealizowa.
Program nie jest podobny do samochodu, poniewa jego powielenie nie stanowi realnego kosztu. Nie jest podobny
do ciastka, poniewa nie moemy go zje ani zuy. Gdyby
ciastko byo programem, podzielenie si nim oznaczaoby, e
kady z obdarowanych dostaby takie samo ciastko, takie jak
to, ktre mielimy, zanim zaczlimy si nim dzieli.
Program jest najbardziej podobny do pomysu, idei,
do wiedzy. Jeli podzielimy si z kim ide czy wiedz, pomnaamy j dziki temu, e ludzie, ktrzy j poznaj, maj
moliwo dodania do niej wasnego punktu widzenia i dowiadcze oraz ulepszenia jej, kiedy okae si, e w jakim
zakresie funkcjonuje ona le. Owe ulepszenia mog by potem oddane pozostaym dla oglnego dobra. Albert Einstein
nie mgby stworzy teorii wzgldnoci, gdyby nie rozumia
Newtonowskiej mechaniki. Newton, tworzc mechanik,
nie mg przewidzie efektu relatywistycznego, poniewa
w wiecie, w ktrym y, prdkoci byy tak mae, e efekt
ten nie by obserwowany. Dopiero poczenie jego geniuszu
(i wielu innych po drodze) z dowiadczeniem wiata, w ktrym y Einstein, oraz jego geniuszem, pozwolio na ulepszenie mechaniki, tak by jeszcze dokadniej opisywaa ruch we
wszechwiecie.
Autor jest koordynatorem do spraw Promocji i Kontaktw Polskiego
Centrum Joomla!, tumaczem akredytowanym przy midzynarodowym projekcie Joomla!, projektantem WWW, autorem Techniki
EM projektowania w peni skalowalnych szablonw dla Joomla!
Kontakt z autorem: viking@joomla.pl

68

www.sdjournal.org

Ruch wolnego oprogramowania ma na celu przywrcenie


prawdziwego rozumienia tego, czym jest program komputerowy oraz zapewnienie rozwoju oprogramowania poprzez
zagwarantowanie jego uytkownikom czterech podstawowych wolnoci:

wolnoci dziaania (swobody uruchamiania programu


w dowolnym celu);
wolnoci do nauki (swobody studiowania zasady dziaania
programu);
wolnoci pomocy ssiadowi (swobody upowszechniania
kopii programu);
wolnoci bycia twrczym czonkiem spoecznoci (swobody udoskonalania programu i publikowania wasnych
poprawek).

Wolno i matematyka
Eben Moglen doskonale wyjani ide wolnego kodu w wystpieniu na konferencji Plone w padzierniku ubiegego
roku. Tych, ktrzy nie mieli okazji go wysucha, a znaj
jzyk angielski, gorco zachcam do odwiedzenia YouTube
(http://pl.youtube.com/watch?v=NorfgQlEJv8).
Eben Moglen, prawnik i programista, trafnie porwnuje
t ide do idei matematycznej i pyta, czy gdyby matematyka
bya produktem, rozwj aciskiej cywilizacji mgby postpi tak szybko.
Wyobramy sobie, e matematyk kupuje si tak, jak
obecnie oprogramowanie i kady moe jej uy tylko tyle, na
ile go sta. atwo przewidzie, e sprzedawcy matematyki staliby si bajecznie bogaci, ale rozwj matematyki szybko
by zwolni ze wzgldu na ograniczenie dostpu do niej. Fizyka,
biorc pod uwag ilo potrzebnej przy jej uprawianiu matematyki, przestaaby si rozwija. W efekcie nigdy nie wynaleziono
by silnika czy telefonu lub staoby si to znacznie, znacznie
pniej. Problem wolnoci oprogramowania nigdy by nie zaistnia, poniewa nigdy nie wynaleziono by komputera...

Odrobina historii
W latach szedziesitych oprogramowanie byo wolne, programici wymieniali ze sob kod rdowy, pomysy i rozwizania w sposb cakowicie nieskrpowany. Programy nie naleay do nikogo, a raczej naleay do kadego, kto ich uywa.
Pniej kto wpad na pomys, by za pomoc licencji zabezpiecza prawo do informacji o tym, kto jest autorem programu.
Nie byo w tym nic zego, jednake szybko znaleli si
ludzie, ktrzy wykorzystali ten pomys do ograniczenia
wolnoci wykorzystywania, modyfikowania i dzielenia si
programami. Pomys ten rozwinito dalej w kierunku pobierania opat za moliwo korzystania z nich. W efekcie
pod koniec lat siedemdziesitych nie mona ju byo uruchomi komputera bez zakupienia od kogo systemu operacyjnego. System operacyjny musieli te kupi ludzie,
Software Developers Journal Extra! 26

Rysunek 1. Grupa ludzi oddajca rado wsppracy


ktrzy woyli ogromny wkad w to, eby powstao co takiego jak
system operacyjny i rozwizania w nim zastosowane. Pod koniec lat
osiemdziesitych firma, ktra okazaa si najdoskonalsza w ograniczaniu cudzych praw, najsprawniejsza w naginaniu prawa dla swoich
celw i najlepsza w wykorzystywaniu cudzych rozwiza, by traktowa je potem jak wasne, staa si globalnym monopolist w produkcji oprogramowania. Oprogramowanie stao si produktem. Podziwiam Bila Gatesa za to, co udao mu si osign. Biorc jednak pod
uwag wolno i prawa innych ludzi, ktre zostay zniszczone, by to
osign, podziwiam go na tej samej zasadzie, co dwch najwikszych wodzw ubiegego stulecia.
Ju na pocztku lat osiemdziesitych prbowano przeciwdziaa zawaszczeniu i zniewoleniu oprogramowania. 23 lata temu
Richard Stallman, twrca systemw operacyjnych, inynier MIT zaoy projekt GNU (GNU is Not UNIX). Rok pniej zaoy Fundacj
Wolnego Oprogramowania (FSF Free Software Foundation) powoan do ochrony wolnego oprogramowania i rozpowszechniania wiedzy o nim. Poniewa z czasem stao si jasne, e jedynym sposobem
obrony przed ograniczajcymi wolno i prawa licencjami jest wydanie licencji jej gwarantujcej, w 1989 roku Fundacja opracowaa
pierwsz wersj GNU/GPL.

Powszechne nieporozumienia
Wok wolnego oprogramowania naroso wiele nieporozumie, wyjanijmy niektre z nich.

Open source jawny kod


Czsto wolne oprogramowanie jest utosamiane z oprogramowaniem
open source. Nie jest to jednak suszne. Wolno jest pojciem oglnym,
podczas gdy jawno jest pojciem praktycznym.
Software Developers Journal Extra! 26

atwo wyobrazi sobie oprogramowanie o jawnym kodzie, ktre


ogranicza wolno jego uytkowania. Powiedzenie komu: moesz
patrze, ale nie moesz dotyka jest pewnym sensie bardziej wredne ni cakowite zabronienie dostpu. Czego oczy nie widz, tego sercu nie al. Kade wolne oprogramowanie jest oprogramowaniem o jawnym kodzie, poniewa tylko w ten sposb mona zapewni swobod
zrozumienia zasad jego dziaania. Ale nie kade oprogramowanie open
source jest wolne, poniewa w wielu przypadkach ogranicza ktr z
pozostaych podstawowych wolnoci.

Rozwj spoeczny a korporacyjny


Powszechny jest pogld, e dobre oprogramowanie moe by tworzone tylko przez firm gwarantujc posiadanie odpowiednich zasobw,
jako oprogramowania i wsparcie techniczne. W zasigu rki mamy
dowody, e tak nie jest. Microsoft po szeciu latach pracy nad swoj przegldark udostpni w kocu jej sidm wersj, ktra ju podczas premiery bya przegldark gorsz ni FireFox rozwijany na zasadach wolnego oprogramowania. FireFox jest szybszy, stabilniejszy i co
najwaniejsze znacznie bezpieczniejszy w uyciu. Ewentualne bdy
dostrzeone w FF s poprawiane niemal natychmiast, podczas gdy
uytkownicy IE musz miesicami czeka na wydanie aty zabezpieczajcej ich komputery przed powszechnie znanymi sposobami ataku.
Joomla! jest wydajniejsza, bardziej elastyczna i przyjazna uytkownikowi ni wikszo CMS-w dostpnych na warunkach ograniczajcych
wolno uytkownikw. Co wicej, aden z jego konkurentw nie posiada
tak bogatej, oglnie dostpnej i wielojzycznej dokumentacji, poradnikw
i wsparcia technicznego.Szybko i jako prac nad oprogramowaniem w
modelu korporacyjnym ma wiksze ograniczenia ni w wolnym wiecie.
Przykad: Dwie godziny temu kto napisa modu dla Joomla! i poprosi o
przetumaczenie go na inne jzyki. W tej chwili dostpnych jest ju pi

www.sdjournal.org

69

Joomla!

penych tumacze. Okazuje si, e ludzie s z natury dobrzy i skonni do


wsppracy. Wystarczy j tylko umoliwi.

Darmowy znaczy wolny


Podobnie jak w przypadku jawnoci, moliwo uywania programu bez
wnoszenia opat za jego uytkowanie jest pojciem czysto praktycznym.
Zapewnia jedynie (czsto w ograniczonym zakresie) pierwsz ze swobd
wolnego oprogramowania.

Wolny znaczy darmowy


Zwykle tak, cho czasem pobierane s opaty za dystrybucj programu (utrzymanie serwera, nagranie pyty kosztuje), to sam program pozostaje darmowy.
Co wicej, mog go udostpni koledze za darmo. Zmniejszam dziki temu obcienie serwera wydawcy lub nie naraam go na koszty zwizane z nagrywaniem pyty. Nie mniej wane jest te to, e zmniejszam obcienie Sieci, ktra
jest naszym rodowiskiem naturalnym i naley o ni dba.

TCO dla wolnego


oprogramowania jest wysze
Total Cost of Ownership (TCO) to wskanik cakowitego kosztu oprogramowania dla kocowego odbiorcy, uwzgldniajcy nie tylko koszt
zakupu, ale rwnie koszt wdroenia i utrzymania oprogramowania. By czas, gdy ze wzgldu na ma ilo liczb specjalistw koszty wdroenia wolnego oprogramowania przekraczay koszty zakupienia licencji i wdroenia oprogramowania sprzedawanego jako produkt.
Jednak dziki rozwojowi projektw w wolnym wiecie, coraz lepszej
dokumentacji i rosncej liczbie uytkownikw, wzrosa rwnie liczba ilo specjalistw wzrosa, pomoc techniczna staa si bardziej dostpna, a TOC dla wielu wolnych programw jest znaczco niszy od
TOC ich konkurencji sprzedajcej program jako produkt.

Licencja
Jak wspomnielimy wczeniej, pierwsza wersja GNU/GPL zostaa stworzona w 1989 roku. Nieco ponad dwa lata pniej, 2 czerwca 1991, powstaa wersja druga, ktra jest z powodzeniem uywana do dzi.

GNU/GPL wersja druga


Druga wersja licencji od wielu lat doskonale broni praw programistw
chccych udostpnia innym owoce swojej pracy i chccych korzysta z pracy innych. Jednak przez szesnacie lat korporacje dce do
utrzymania swojej pozycji na rynku i dotychczasowego modelu prowadzenia interesw w sposb niezgodny i czsto zagraajcy wolnemu
oprogramowaniu znalazy sposoby, by dziaa zgodnie z liter licencji,
ale wbrew jej duchowi lub w inny sposb zagrozi prawom chronionym
przez licencj. Dlatego FSF zdecydowao si wyda trzeci wersj GPL,
ktra ukazaa si w tym roku, 29 czerwca.

GNU/GPL wersja trzecia


Sposb dziaania zmierzajcy do wykorzystania wolnego oprogramowania bez poszanowania wolnoci jego uytkownikw zwykle

W Sieci

www.gnu.org/licenses/gpl-3.0.html trzecia wersja GNU/GPL


www.gnu.org/licenses/old-licenses/gpl-2.0.html druga wersja GNU/GPL
www.fsf.org witryna Free Software Foundation

nazywany tivoizacj, od firmy, ktra zastosowaa go po raz pierwszy na masowa skal. TiVo uywa wolnego oprogramowania w swoich urzdzeniach, ale jednoczenie sprztowo ogranicza jedn
z podstawowych swobd swobod do modyfikacji, uniemoliwiajc uruchomienie zmienionej wersji.
Wolne oprogramowanie ma wielu naturalnych adwersarzy.
Najwikszym z nich jest monopolista na rynku oprogramowania,
ktry na ograniczeniu swobd uytkownikw swojego oprogramowania zbi fortun. Jedn ze strategii zmierzajcych do przywrcenia nadwtlonej pozycji Microsoftu jest metoda FUD (Fear Uncertenity and Doubt rozsiewanie strachu, niepewnoci i wtpliwoci), polegajca na sugerowaniu, e Microsoft jest wacicielem patentw na rozwizania uywane rwnie w wolnym oprogramowaniu i moe wykorzysta je przeciwko programistom, ktrzy z nich korzystaj. Taka strategia moe by skuteczna wobec
pojedynczych programistw, niewielkich firm, czy nawet caej
wolnej spoecznoci. Moe si ona jednak obrci przeciwko stronie j stosujcej, jeli zagroone poczuj si inne korporacje, takie jak Novell, IBM, a wraz z nimi ich udziaowcy, wielcy potentaci
finansowi. Dlatego te Microsoft dy do ograniczenia zasigu tej
kampanii do projektantw, programistw i osb prywatnych, podpisujc takie umowy jak ostatnia, zezwalajca Novellowi na wykorzystanie patentw.
Takie praktyki budz uzasadnione obawy wrd zwolennikw
wolnego oprogramowania, pozostan bowiem bezbronni, jeli Microsoft bdzie mg wystpi selektywnie, tylko przeciw nim, pomijajc firmy i korporacje majce zasoby finansowe, pozwalajce mu si przeciwstawi. FSF stoi na stanowisku, e patentowanie oprogramowania jest czym gruntownie niesusznym i dy
jego zniesienia, ale musi liczy si z istnieniem patentw i broni
przed ich wykorzystywaniem przeciwko swoim podopiecznym.
Dlatego do wersji trzeciej GNU/GPL wprowadzono zapis mwicy,
e jeeli program jest udostpniany na licencji GNU/GPL jednemu
uytkownikowi wraz z prawem do wykorzystywania patentw, automatycznie z tych patentw mog korzysta wszyscy. Pozostaymi zaletami wersji trzeciej s: lepsze dostosowanie do prawa
midzynarodowego, wsparcie dla BitTorrenta i zgodno z licencj Apache.
Joomla! jest skonna zaktualizowa swoj licencj do trzeciej wersji GNU/GPL. Licencje te s jednak niezgodne. Kada z nich wymaga, by
utwory zalene byy publikowane na tej samej licencji. Moliwo wykorzystania wersji trzeciej jako licencji Joomla! zaley wic od tego, czy
kod, z ktrego korzysta Joomla! zostanie opublikowany na tej wersji. Aby
przygotowa si na wydanie Joomla! na licencji trzeciej, powinnimy wydawa rozszerzenia na podwjnej licencji drugiej i trzeciej (tymczasowo nie aktywnej).

Konsekwencje stosowania GNU/GPL

Rysunek 2. GNU

70

Wydanie Joomla! na licencji GNU/GPL oznacza, e zapewniamy


wszystkim cztery podstawowe swobody wymienione wczeniej (uruchamiania, studiowania, upowszechniania i udoskonalania). Oznacza
rwnie, e zgodnie z zasadami licencji wszelkie utwory zalene muwww.sdjournal.org

Software Developers Journal Extra! 26

sz by udostpniane na tej samej zasadzie. Przyjrzyjmy si wiec,


jakie licencja ma konsekwencje dla twrcw rozszerze, ich uytkownikw i osb wdraajcych serwisy oparte na Joomla!

Utwory zalene
Rozszerzenia w wikszoci s utworami zalenymi Joomla!, w zwizku
z czym musz by wydawane na licencji GNU/GPL.

Obowizek przekazania licencji


Jeeli nastpuje przekazanie programu, odbiorca musi by wiadom licencji i akceptowa j, aby mc go uywa.

Autorstwo
To, e autor oprogramowania zrzeka si wikszoci praw zwyczajowo mu
przynalenych, w tym w duej mierze praw zwizanych z wasnoci, nie
oznacza, e mona traktowa go, jakby nie istnia. Licencja wymaga, by
waciwa informacja o prawie autorskim i autorach bya obecna w kadej
kopii programu, wiernej lub zmodyfikowanej.

Wynagrodzenia
Nie mona pobiera opat za sam program, poniewa nie posiadamy do
niego wycznych praw. Mona natomiast pobiera opaty za jego dystrybucj, za usugi wykonywane przy jego pomocy oraz za jego wdroenie.

Gwarancja
Licencja stanowi, e program ni objty jest udostpniany bez adnych gwarancji, w tym rwnie domylnej gwarancji przydatnoci handlowej lub przydatnoci do okrelonych celw. Jednake jeli program wdroony dla klienta
posiada rozwizanie licencjonowane na zasadach GPL, i jeli chcesz udzieli
gwarancji, moesz to zrobi na zasadach oddzielnej umowy.

Udostpnianie kodu
Joomla! jest napisana gwnie w jzyku PHP i Javascript, wic kod programu jest z natury jawny. Jeeli zachodzi potrzeba jego zakodowania, to
na danie kadego, kto otrzyma ten program na licencji GNU/GPL naley
udostpni mu go w wersji jawnej.

Wprowadzenie modyfikacji
Kady ma prawo do wprowadzenia modyfikacji do utworw objtych licencj, jednak pod warunkiem czytelnego oznaczenia, e wersja zostaa zmodyfikowana, a w przypadku dalszej dystrybucji przekazania jej na
tych samych prawach i zasadach, na ktrych otrzymano program oraz
zachowania wszelkich informacji o autorstwie (w tym rwnie komunikatw ekranowych, jeeli oryginalny program takie wywietla).
Joomla! dobrowolnie rezygnuje z prawa do zachowania komunikatu
o autorstwie i licencji w stopce witryn tworzonych na jej podstawie. Musz jednak by zachowane wszelkie dane o autorstwie, w plikach oraz tagu Meta w generowanym kodzie HTML.
Mimo e nie ma obowizku wywietlania stopki informujcej o tym,
e serwis dziaa na Joomla!, pozostawienie jej, jest miym gestem wobec jego autorw i spoecznoci. Zachcamy wic do pozostawienia stopki, przecie na prawd niczemu to nie szkodzi, a to, e witryna jest postawiona na jednym z najlepszych CMS-w i informuje o tym, dobrze wiadczy o jej wacicielach.

Rozpowszechnianie
Rozpowszechnianie moe by dokonywane tylko z przekazaniem tych
samych praw, na jakich otrzymano program, i oraz z przekazaniem praw
licencji. Oznacza to, e kady ma prawo rozpowszechnia kopi Joomla!,
jej modyfikacje i rozszerzenia na licencji GNU/GPL. n
Software Developers Journal Extra! 26

www.buyitpress.com
Zaprenumeruj swoje ulubione magazyny
i zamw archiwalne numery!

Ju teraz w kilka minut moesz zaprenumerowa swoje ulubione pismo.


Gwarantujemy:
- preferencyjne ceny
- bezpieczn patno on-line
- szybk realizacj Twojego zamwienia
Bezpieczna prenumerata on-line wszystkich tytuw Wydawnictwa Software!

zamwienie prenumeraty
Prosimy wypeni czytelnie i przesa faksem na numer: (22) 427 36 69 lub listownie na adres: Software-Wydawnictwo Sp. z o.o.,
Bokserska 1, 02-682 Warszawa, e-mail: pren@software.com.pl. Przyjmujemy te zamwienia telefoniczne: (22) 427 36 79
Imi i nazwisko............................................................................................

ID kontrahenta..........................................................................................

Nazwa firmy.................................................................................................

Numer NIP firmy.......................................................................................

Dokadny adres....................................................................................................................................................................................................................
Telefon (wraz z numerem kierunkowym)................................................... Faks (wraz z numerem kierunkowym) ....................................................
E-mail (niezbdny do wysania faktury)............................................................................................................................................................................
automatyczne przeduenie prenumeraty

Tytu
Software Developers Journal (1 pyta CD)
dawniej Software 2.0
Miesicznik profesjonalnych programistw
SDJ Extra (od 1 do 4 pyt CD lub DVD)
dawniej Software 2.0 Extra!
Numery tematyczne dla programistw
Linux+DVD (2 pyty DVD)

Miesicznik o systemie Linux


Linux+Extra! (od 1 do 7 pyt CD lub DVD)

Numery specjalne z najpopularniejszymi dystrybucjami Linuksa


PHP Solutions (1 pyta CD)

Dwumiesicznik o zastosowaniach jzyka PHP


hakin9, jak si obroni (1 pyta CD)

Miesicznik o bezpieczestwie i hakingu


.psd (2 pyty CD)

Dwumiesicznik uytkownikw programu Adobe Photoshop


.psd numery specjalne

(.psd Extra + .psd Starter Kit)

Ilo
numerw

Ilo
zamawianych
prenumerat

Od numeru
pisma lub
miesica

Opata
w z
z VAT

12

250/1801

150/1352

12

199/1791

232/1982

135

12

1991/219

140

140

Suma

Cena prenumeraty rocznej dla osb prywatnych

Cena prenumeraty rocznej dla osb prenumerujcych ju Software Developers Journal lub Linux+

Cena prenumeraty dwuletniej Aurox Linux

Jeeli chcesz zapaci kart kredytow, wejd na


stron naszego sklepu internetowego:

www.buyitpress.com

Formularz zamwienia prenumeraty


Prenumerata korporacyjna PHP Solutions pozwoli Ci na dowolne
powielenie i rozpowszechnianie pisma w obrbie Twojej firmy

w w w. b u y it pr es s. co m. pl
Proponujemy zakup prenumeraty korporacyjnej. To bardzo proste: wypenij formularz i dokonaj patnoci (moesz to zrobi pacc kart
kredytow!). Prenumerata korporacyjna to tani i praktyczny produkt stworzony dla nowoczesnej firmy.
W ramach prenumeraty korporacyjnej otrzymaj Pastwo:
1. Pismo w wersji elektronicznej w postaci plikw *.pdf z moliwoci ich dowolnego rozpowszechniania i powielania w obrbie danej firmy;
2. Dodatkowo 2 egzemplarze w wersji tradycyjnej, drukowanej wysyane poczt;
3. CD-ROM zawierajcy archiwum *.pdf wszystkich numerw PHP Solutions wydanych w 2006 roku;
4. Moliwo zamwienia dodatkowych egzemplarzy po bardzo atrakcyjnej cenie.
Skorzystaj z naszej oferty i zamw ju dzisiaj
Prosimy wypeni czytelnie i przesa faksem na numer: (22) 427-36-69 lub listownie na adres:
Software Wydawnictwo Sp. z o.o., ul. Bokserska 1, 02-682 Warszawa.
Przyjmujemy te zamwienie telefoniczne: (22) 427-36-93 oraz mailem: pren_korp@software.com.pl
Dane osoby / firmy zamawiajcej
Imi i nazwisko

Stanowisko

ID kontrahenta

Jeeli jeste ju klientem firmy Software-Wydawnictwo Sp. z o.o. wystarczy, e podasz swj numer ID kontrahenta; jeeli nie posiadasz takiego numeru, podaj swe dane teleadresowe

Upowaniam firm Software-Wydawnictwo Sp. z o.o. do wystawienia faktury VAT bez podpisu odbiorcy

Piecz firmy i podpis


Nazwa firmy
Dokadny adres
Telefon (wraz z numerem kierunkowym)

Faks (wraz z numerem kierunkowym)

Adres e-mail

Numer NIP firmy

Tytu

Ilo numerw
w roku

Ilo zamawianych
prenumerat

Od numeru pisma
lub miesica

Opata w z
z VAT

PHP Solutions (1 pyta CD)*

Dwumiesicznik o zastosowaniach jzyka PHP

900

Dodatkowy drukowany egzemplarz

80

UWAGA: Nadesanie zamwienia jest jednoczenie zobowizaniem do zapaty.

Numer konta: NORDEA BANK POLSKA 46 1440 1299 0000 0000 0391 8238

You might also like