Professional Documents
Culture Documents
SDJ Extra NR 26 (EJournal) Software Developers Journal - PL
SDJ Extra NR 26 (EJournal) Software Developers Journal - PL
6
8
Opis CD
Joomla! i Web 2.0
Joomla! i kapelusze
10
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.
www.sdjournal.org
48
Instalacja Joomla!
20
Tworzymy szablon
26
32
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
54
Krtka historia
60
62
Optymalizacja...
ludziom i wyszukiwarkom
64
68
www.sdjournal.org
Zawarto
CD-ROM
Joomla 1.0.13
Na pytce
Zamieszczone na pytce nieoficjalne, zmodyfikowane wydania Joomla! International Edition rozwizuj problem lokalizacji zaplecza administracyjnego. Oryginalny Joomla! obsuguje jedynie lokalizacj
strony frontowej.
Wydanie przygotowane dla polskich uytkownikw przez Stefana Wajd na kanwie dowiadcze z wasnego projektu Joomla!PlusAdmin oraz projektu J!IE mongolskiego programisty Adriana
Mummeya.
www.sdjournal.org
Joomla!
Stefan Wajda
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
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
10
www.sdjournal.org
Chcemy:
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.
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.
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
www.sdjournal.org
11
Joomla!
To wszystko.
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.
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.
12
www.sdjournal.org
Gotowe.
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.
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.
cze typu Blog Artykuy generuje w strukturze witryny element dwupoziomowy, zoony:
A skoro mamy ju i sekcje, i kategorie, a wic stworzylimy... nasze kolejne pozycje treci, moemy je umieci w menu.
13
Joomla!
W czterech miejscach
Tworzenie nowego artykuu moemy rozpocz w czterech miejscach:
Tworzenie artykuu
Sposb tworzenia artykuu ju waciwie znasz (Twj edytor moe si nieco rni od naszego, ale teraz to nie ma znaczenia):
14
>
>
>
e
n
a
w
o
d
n
e
m
o
k
e
r
S tr o ny
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
Strona internetowa powicona KNI (Koo Naukowe Informatyki). Zawiera materiay i recenzje zgromadzone dla potrzeb studentw.
http://www.kni.ae.krakow.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!
Blog artykuw
Dodawanie cza w menu za pomoc menedera pozycji menu jest rwnie proste, jak pozostae czynnoci w Joomla!
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.
Nie trzeba ustala duej iloci liczby odnonikw. Jeli artykuw bdzie
wicej, Joomla! umieci na dole strony pasek nawigacyjny, udostpniajcy kolejne artykuy.
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.
www.sdjournal.org
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
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.
www.sdjournal.org
17
Joomla!
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).
Treci w moduach
Aby wzbogaci treci strony i wyczerpa prezentacj sposobw udostpniania treci w Joomla! - pokamy jeszcze przykady zastosowania moduu.
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.
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
www.sdjournal.org
opublikowa;
przypisa do konkretnej pozycji w szablonie;
skojarzy z pozycj menu przypisa do stron generowanych przez
pozycje menu.
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:
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:
Podsumowanie
Stworzylimy niewielk witryn firmow. Praca nad projektem pozwolia
Ci pozna najistotniejsze waciwoci Joomla! Wiesz ju, e:
www.sdjournal.org
19
Joomla!
Instalacja Joomla!
Stefan Wajda
Wymagania instalacyjne
Oprogramowanie
komputera serwera
Do instalacji Joomla! niezbdne s trzy programy:
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:
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.
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.
www.sdjournal.org
21
Joomla!
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.
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.
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!
22
d formularza;
rda na serwer.
Skorzystaj z klienta FTP lub SSH, aby przesa rozpakowany pakiet instalacyjny na serwer.
www.sdjournal.org
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.
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.
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!
www.sdjournal.org
23
Joomla!
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:
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.
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].
24
www.sdjournal.org
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.
wpisz adres
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/).
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>
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
www.sdjournal.org
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.
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(
dtd">.
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>
</images>
<css>
<filename>css/template_css.css</filename>
"http://www.w3.org/TR/xhtml1/DTD/xhtml1transitional.
</css>
</mosinstall>
www.sdjournal.org
27
Joomla!
28
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
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).
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-
Joomla!
W Sieci
#gorne div.module {
width: 185px;
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"
/>
top: 1px;
left: 50%;
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 }
width:160px; marginleft:600px;
background:green }
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 }
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
Joomla!
Micha Sobkowiak
tryny);
cieka absolutna do
plikw;
$cur _ template
cy szablon;
$mosConfing _ metadesc
tryny;
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 _
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.
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
32
www.sdjournal.org
Rozwizanie drugie:
<div id="glowny">
$GLOBALS[mosConfig_sitename]; ?>">
</a>
div>
<div id="prawa">
<?php mosLoadModules(right , 3 ); ?>
</div><div class="clr"></div></div>
if (warunek)
{ wyraenie_jeli_warunek_prawdziwy; }
<div id="tresc"></div>
else
{ wyraenie_jeli_warunek_faszywy; }
div>
<div class="clr"></div></div>
<?php }?>
Rozwizanie trzecie:
<div id="prawa">
div>
<div id="prawa">
</div>
<?php } ?>
<div class="clr"></div></div>
<?php if ( mosCountModules(right))
{ ?>
live_site'].'/templates/
</div>
<?php } ?>
www.sdjournal.org
33
Joomla!
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.
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
34
www.sdjournal.org
Joomla!
Mateusz Krzeszowiec
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.
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('hidemainmenu', 1);
parent::display();
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;
$this->setError($this->_db->getErrorMsg());
return false;
$this->setError($this->_db->getErrorMsg());
return false;
return true;
/**
* Definicja klasy kontrolera.
* W tym przypadku ciao nie jest potrzebne
*/
class GlossaryController extends JController {}
www.sdjournal.org
37
Joomla!
$terms
=& $this->get('data');
jimport( 'joomla.application.component.view');
$total
=& $this->get('total');
/**
*/
$params = &$mainframe->getPageParameters();
/*
* nieobecne
*/
$params->def('add_letter_to_pathway', 0);
$params->def('show_page_title', 1);
/*
*/
*/
if($params->get('add_letter_to_pathway')) {
$params->def('page_title', $item->name .
*/
global $mainframe;
} else {
/*
$params->def('page_title', $item->name);
$document->setTitle($params->get('page_title'));
* kodu CSS
*/
$this->assignRef('total',
$total);
$this->assignRef('terms',
$terms);
/*
$this->assignRef('letter',
$letter);
$this->assignRef('params',
$params);
*/
$menu = &JMenu::getInstance();
parent::display($tpl);
$item = $menu->getActive();
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();
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
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.
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.
<?php
// bezporedni dostp do pliku zabroniony
defined('_JEXEC') or die(); ?>
</div>
</dt>
<dd>
</dd>
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!
<metadata>
<view title="Lista">
<message><![CDATA[Wybierz layout dla listy.]]>
</message>
</view>
</metadata>
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-
// ustawiona
defined('_JEXEC') or die();
if (empty($this->_data))
jimport('joomla.application.component.model');
// pobiera zapytanie
$query = $this->_buildQueryData();
(...)
// wykonuje je
$this->_data = $this->_getList($query);
/**
}
* Konstruktor
return $this->_data;
*
}
*/
function __construct()
(...)
/**
parent::__construct();
* liter
// lista
*/
function _buildQueryData()
$letter = JString::substr(JRequest::getVar(
'id', 'a'), 0, 1);
$this->_letter = $letter;
(...)
/**
* Zwraca list poj na dan liter
. '%\''
.' ORDER BY name';
* @return array
*/
function getData()
(...)
40
return $query;
www.sdjournal.org
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>
W Sieci
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.
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
Instalujemy komponent
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:
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
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:
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
www.sdjournal.org
43
Joomla!
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:
44
www.sdjournal.org
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:
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.
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:
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:
Uprawnienia
DocMan rozrnia prawa uytkownikw do:
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].
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:
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.
www.sdjournal.org
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:
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.
Poza dysponentami i twrcami oba prawa posiadaj take wszyscy administratorzy i gwny administrator.
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
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.
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
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.
Konfiguracja moduu
Przewiczmy j na najprostszym przykadzie module DOCMan :: Nowe
albo DOCMan :: Popularne.
W moduach
Penetracja zasobw rozszerze dla Joomla! w poszukiwaniu moduw
wsppracujcych z DocManem przynosi pozornie skromny efekt. Znajdziemy cztery moduy:
Instalacja moduu
Instalowanie moduw jest rwnie proste, jak omwione wczeniej instalowanie komponentw:
www.sdjournal.org
49
Joomla!
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.
Kopiowanie moduu
Moduy mona kopiowa. Zadanie jest banalnie proste:
50
www.sdjournal.org
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.
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:
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].
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
www.sdjournal.org
51
Joomla!
Karta Dokument
Na pierwszej karcie Dokument [Document] moemy:
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
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
Joomla
Aktualizacje,
migracje, przenosiny
Stefan Wajda
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!:
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.
Na Joomla! z Mambo
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.
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):
Ostatnia czynno spowoduje usuniecie z pliku configuration.php wpisw ustawiajcych jzyk zaplecza administracyjnego.
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(); ?>
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
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!
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:
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
www.sdjournal.org
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:
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.
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:
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" ?>
albo
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.
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
Problemy
Powody niepoprawnego wywietlania polskich znakw na stronach witryny niekoniecznie musz mie rdo w bazie danych. Czstymi przyczynami s:
albo
DEFAULT CHARACTER
SET
latin2
COLLATE latin2_general_ci;
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');
albo
/includes
odszu-
standardowo linia ta jest skomentowana. Usunicie znakw komentarza i umieszczenie odpowiedniego kodowania (utf8 lub latin2) czsto rozwizuje problemy.
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.
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.
60
www.sdjournal.org
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
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
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:
Zasady dziaania
Spoecznoci Joomla! nie krpuj formalne wizi przynalenoci czy czonkostwa. Swoj aktywno spoeczno uytkownikw Joomla! organizuje na zasadach ruchu spoecznego:
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
62
www.sdjournal.org
Wydania Joomla!
PCJ! upowszechnia Joomla!, przede wszystkim wydaje go w
polskich wersjach. Warto podkreli, e:
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.
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.
Orodki partnerskie
Aktualnie miano orodkw partnerskich maj dwie witryny:
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:
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:
www.sdjournal.org
W telegraficznym skrcie mona streci wytyczne dostpnoci kilkoma punktami. Witryna jest dostpna, jeeli:
64
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:
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.
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!
Konkluzja
Wyszukiwarki umieszczaj najwyej na listach witryny charakteryzujce si:
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.
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
wczenia opcji Proste adresy URL w zakadce Wyszukiwarki w konfiguracji globalnej witryny;
przemianowania znajdujcego si w gwnym katalogu Joomla! pliku
htaccess.txt na .htaccess.
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.
nim nic zmienia. Niekiedy jednak edycja pliku jest konieczna. Poczwszy od Joomla 1.0.11 znajduj si w nim trzy sekcje:
66
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
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
Joomla!
Micha Sobkowiak
68
www.sdjournal.org
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
Powszechne nieporozumienia
Wok wolnego oprogramowania naroso wiele nieporozumie, wyjanijmy niektre z nich.
www.sdjournal.org
69
Joomla!
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.
W Sieci
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).
Rysunek 2. GNU
70
Utwory zalene
Rozszerzenia w wikszoci s utworami zalenymi Joomla!, w zwizku
z czym musz by wydawane na licencji GNU/GPL.
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!
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.................................................................................................
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)
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 prenumerujcych ju Software Developers Journal lub Linux+
www.buyitpress.com
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
Adres e-mail
Tytu
Ilo numerw
w roku
Ilo zamawianych
prenumerat
Od numeru pisma
lub miesica
Opata w z
z VAT
900
80
Numer konta: NORDEA BANK POLSKA 46 1440 1299 0000 0000 0391 8238