Professional Documents
Culture Documents
TO
PROGRAMMER
Joomla!
Profesjonalne tworzenie stron WWW ,
Dan Rahmel
'=', wrox
j
Helion
PROGRAMMER TO PRCX;
http://helion.pl
Tytu oryginau: Professional Joomla! Tumaczenie: Tomasz Przedmojski ISBN: 978-83-246-1766-1 Copyright 2007 by Wiley Publishing, Inc., Indianapolis, Indiana. All rights reserved. This translation published under license with the original publisher John Wiley & Sons, Inc. Translation copyright 2010 by Helion S.A. Polish edition copyright 2010 by Helion S.A. The Wrox Brand trade dress is a trademark of John Wiley & Sons, Inc. in the United States and/or other countries. Used by permission. Szata graficzna Wrox Brand jest handlowym znakiem towarowym firmy John Wiley & Sons, Inc. w Stanach Zjednoczonych i/lub innych krajach. Wykorzystano na podstawie licencji. All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from the Publisher. Wszelkie prawa zastrzeone. Nieautoryzowane rozpowszechnianie caoci lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykopywanie kopii metod kserograficzn, fotograficzn, a take kopiowanie ksiki na noniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji. Wszystkie znaki wystpujce w tekcie s zastrzeonymi znakami firmowymi bd towarowymi ich wacicieli. Autor oraz Wydawnictwo HELION dooyli wszelkich stara, by zawarte w tej ksice informacje byy kompletne i rzetelne. Nie biorjednak adnej odpowiedzialnoci ani za ich wykorzystanie, ani za zwizane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo HELION nie ponosz rwnie adnej odpowiedzialnoci za ewentualne szkody wynike z wykorzystania informacji zawartych w ksice. Wydawnictwo HELION ul. Kociuszki lc, 44-100 GLIWICE tel. 32 231 22 19, 32 230 98 63 e-mail: helion@helion.pl WWW: http://helion.pl (ksigarnia internetowa, katalog ksiek) Pliki z przykadami omawianymi w ksice mona znale pod adresem: ftp://ftp.helion.pl/przyklady/jooptw.zip Drogi Czytelniku! Jeeli chcesz oceni t ksik, zajrzyj pod adres http://helion.pl/nser/opinie7jooptw Moesz tam wpisa swoje uwagi, spostrzeenia, recenzj. Printed in Poland.
Chciabym zadedykowa t ksik ludziom szlachetnie wpierajcym projekt Sprawiaj oni, e sie Web jest lepszym miejscem dla nas wszystkich.
Joomla!.
Podzikowania
Na dugo przed tym, zanim napisaem pierwsze zdanie tej ksiki, zesp tworzcy Joomla! powici niezliczone godziny na stworzenie aplikacji uywanej dzi na caym wiecie. Nie trzeba dodawa, e ksika ta nie powstaaby, gdyby nie jego niestrudzone wysiki, denie do opracowania aplikacji na najwyszym wiatowym poziomie, jak jest Joomla!. Podobnie jak wikszo ludzi regularnie uywajcych Joomla!, nie jestem w stanie wyrazi wdzicznoci zespoowi za jego wspaniae dzieo. Chciabym podzikowa wszystkim ludziom z wydawnictwa Wrox szczeglnie biorc pod uwag ich cierpliwo, kiedy prbowalimy stworzy t ksik w oparciu o nieustannie zmieniany projekt. Kieruj podzikowania do Kita Kempera, ktry pomg mi sprecyzowa to, co wtedy byo jeszcze niejasnym pomysem na ksik. Kieruj je take do Jenny Watson, ktra musiaa przebrn przez wiele poprawek powodujcych opnienia. Jestem winien wdziczno Chrisowi Davenportowi, redaktorowi technicznemu, ktrego wnikliwe sugestie i mdre zalecenia znaczco poprawiy jako tej ksiki. Dzikuj Kevinowi Shaferowi za wytrwao podczas najciszych etapw oraz wykonanie fenomenalnej pracy przy skadaniu ksiki w cao. Chciabym take podzikowa Ami Frank Sullivan, Kirkowi Batemanowi i wszystkim z wydawnictwa Wiley, ktrzy niestrudzenie pracowali nad stworzeniem tej ksiki. Musz take podzikowa bliniaczym gwiazdom mojego ycia mojej onie Elizabeth i crce Aleksandrze za nadawanie znaczenia mojemu yciu. Rzadko kiedy narzekajc, Elizabeth podoaa obcieniom nocnej pracy, straconych weekendw, za co dzikuj Ci z gbi serca. Spotkanie Ciebie byo najlepsz rzecz w moim yciu. Chciabym podzikowa mojemu rodzestwu (Davidowi i Darlene) oraz przyjacioom (Joelowi Harrisowi, Juanowi Leonffu, Gregowi Mickey'emu, Johnowi Taylorowi, Edowi Gildredowi, Donowi Murphy'emu i Weldowi 0'Connorowi) za ich bezwarunkowe wsparcie. Jestem bardzo wdziczny Sandrze Villagran za to, jak fantastycznie utrzymywaa kurdupla szczliwym. Przede wszystkim chciabym podzikowa Tobie, Czytelniku. Poprzez zakup tej ksiki sprawiasz, e czonkowie przemysu wydawniczego mog dobrze wykonywa swoj prac. Mam nadziej, e informacje w niej zawarte pomoc Ci zrealizowa Twoje marzenia. Dziki.
Spis treci
O autorze Wprowadzenie Rozdzia 1. Wprowadzenie do Joomla!
Zapoznanie z Joomla! Wpyw elastycznoci na popularno Joomla! Dla kogo jest ta ksika Webmasterzy Projektanci stron WWW Deweloperzy stron WWW Joomla! w wersji 1.0 a uytkownicy Mambo Podsumowanie
13 15 21
22 23 24 24 25 27 28 29
31
31 32 37 40 47 52 58 62 63 64 65
67
67 68 69 73 78 79
103
104 105 106 108 109 110 Ill 117 118 119 120 121 122 123 124 125 127 128 128 129 130 133 134 135 137 138 138
141
142 145 146 147 149 150 152 157
7 159
159 160 162 163 164 166 167 168 171 174 176 176 179 179 180 181
183
183 185 185 187 189 189 192 197 198 198 198 199
201
202 203 203 205 206 207 207 209 211 215
217
217 219 220 221 221
241
242 243 246 247 248 249 253 257 260 262 266 267 272 274 274 275 276
277
277 278 280 281 282 282 283 284 285 285 286 287 288 289 289 289 290
Spis treci
rdo problemw Optymalizacja indeksw Optymalizacja istniejcego systemu Administracja Uwierzytelnianie LDAP Obsuga Czyszczenie systemu Bezporedni dostp do MySQL Podsumowanie
9
292 292 297 298 298 300 300 301 303
305
305 305 311 313 314 316 319 320 320 329 330 330 336 340 346
347
..348 348 350 351 353 354 354 355 359 359 360 361 362 363 363 364 364 365 365 366
367
367 368 368
10
385
385 387 387 388 388 389 390 393
395
396 396 397 398 399 400 401 401 402 403 404 406 407 407 408 409 410 411 412
Spis treci
Media (Aktualnoci, magazyny itp.) MainSPOT.NET Centrum Informacji ONZ dla Europy Zachodniej HCJB Global Asiaing.com The Chaser Creative Guy Publishing Strony hobbystyczne Success and Sport (S.A.S.) Safari Ventures Sky Systems KISSin' UK Calialive.com Strony powicone technologii Strona gwna projektu Joomla! Open Workbench Joomlahut Projekt OScar Podsumowanie
11
413 413 414 415 416
417
Skorowidz
12
O autorze
Dan Rahmel jest najszerzej znany z pracy z systemami bazodanowymi, PHP i Visual Basic. Posiada kilkunastoletnie dowiadczenie w projektowaniu oraz implementowaniu systemw informatycznych i rozwiza klient-serwer w oparciu o MySQL, Microsoft SQL Server, Microsoft Access i Visual FoxPro. Swoj karier rozpocz, piszc midzy innymi dla DBMS, American Programmer i Internet Advisor. Jest autorem kilkunastu ksiek przetumaczonych na wiele jzykw, takich jak chiski, japoski, hiszpaski, francuski i portugalski. W roku 2006 wydawnictwo Focal Press przygotowao specjaln edycj Nuts and Bolts Filmmaking: Practical Techniques for the Gurilla Filmmaker1 (Focal Press, 2004), przeznaczon na rynek indyjski.
14
Wprowadzenie
Centrum strony internetowej stanowi potrzeba organizowania i prezentowania treci. Przez ostatnie 10 lat statyczne strony zdominoway internetowy krajobraz, a zarzdzanie stron byo mozolnym, czsto frustrujcym procesem. Webmasterzy musieli boryka si z tysicami linii kodu HTML, umieszczonymi w ogromnej liczbie plikw. Technologia dynamicznego tworzenia stron wymagaa duej liczby dodatkowego programowania i stwarzaa wiele nieprzewidzianych zagroe bezpieczestwa. Wydanie w 2005 roku systemu zarzdzania treci ( C M S Content Management System) Joomla! rozpoczo now epok niedrogiego tworzenia zaawansowanych stron internetowych. Zarzdzanie treci stao si moliwe bez koniecznoci programowania. Elastyczno systemu Joomla! pozwolia tworzy skomplikowane rozszerzenia, ktre dodatkowo wzbogacay CMS. Dziesitki tysicy programistw zainteresowao si Joomla!, a dostpno rozszerze osigna mas krytyczn (przynajmniej 1700 wedug ostatnich wylicze), czynic Joomla! najwaniejszym, niekomercyjnym systemem CMS na wiecie. Joomla! sta si wanym narzdziem dla webmasterw, sucym do tworzenia i obsugi stron bez wyczerpujcego wysiku. Moliwo szerokiego wykorzystania stworzya wiele okazji dla profesjonalnych programistw Joomla!. Biorc pod uwag, e Joomla! zosta pobrany, liczc do poowy 2007 roku ponad 2,5 miliona razy, programici maj du grup potencjalnych klientw. Niezalenie od tego, czy tworzysz szablony XHTML, aby sprzeda je stronie subskrypcyjnej, czy wiadczysz usugi jako ekspert Joomla! lub tworzysz rozszerzenia w ramach spoecznoci open source, znajdziesz swoje miejsce w wiecie Joomla!. Biorc pod uwag rnorodno potrzeb zaawansowanych czytelnikw, napisaem t ksik z zamiarem przekazania wiedzy na poziomie penoetatowego programisty lub czonka ekipy programistycznej Joomla!. Staraem si dostarczy przykadw dla dwch gwnych obszarw profesjonalnych zastosowa tego systemu: projektowania oraz tworzenia oprogramowania i zakadania stron. Projektowaniu i tworzeniu oprogramowania zostay powicone cztery rozdziay, w ktrych opisano implementowanie wasnych szablonw, tworzenie rozszerze wszystkich trzech typw (moduy, komponenty i wtyczki), wykorzystanie najnowszej technologii jax w dodatkach do Joomla!, adaptacj profesjonalnego rodowiska programistycznego z systemem kontroli wersji, zastosowanie wzorcw projektowych i wiele innych.
16
Wprowadzenie
17
o zawiera ta ksika
Joomla! jest darniowym, dostpnym na wiele platform (Windows, Linux i MacOS) systemem CMS o otwartym kodzie rdowym. Ta ksika opisuje now wersj Joomla! 1.5, wraz ze wszystkimi funkcjami (nie tylko nowymi). W miar moliwoci zaznaczaem rnice midzy poprzedni wersj 1.0.x, a n o w aby uatwi uytkownikom przejcie na nowy system. Narzdzia programistyczne niezbdne do skorzystania z tej ksiki i podanych przykadw s, podobnie jak Joomla!, darmowe i powszechnie dostpne (pomijajc specyficzne przykady z wykorzystaniem programw takich jak Adobe Dreamweaver i Microsoft Frontpage). Doczono adresy stron internetowych wszystkich programw i rozszerze, ktre zostay wykorzystane w tej publikacji.
18
Wprowadzenie
Rozdzia 12. Komunikacja z treciami zewntrznymi" przeledzono komunikacj z zewntrznymi stronami w celu wymiany informacji, zarzdzanie programami partnerskimi, komunikacj biznesow z wykorzystaniem elektronicznej wymiany danych (EDI) i inne rodzaje pocze zewntrznych. Pokazano, jak stworzy wasne rozszerzenie Joomla!, aby umoliwi poczenie z usugami zewntrznymi, a take zademonstrowano komponent, ktry wykorzystuje technik screen scraping, oraz dodatek, ktry czy si z usug Google Maps, i rozszerzenie, ktre wykorzystuje wyszukiwanie kodw ZIP na stronie USPS.com. Rozdzia 13. Pozycjonowanie (SEO) i pozyskiwanie klientw za porednictwem wyszukiwarek (SEM)" zawarto opis technik i procedur, ktre mona wykorzysta do pozycjonowania strony, a take pozyskiwania klientw za porednictwem wyszukiwarek. Zaprezentowano konfiguracj parametrw SEO dostpnych w Joomla! oraz podkrelono znaczenie pozostaych funkcji, takich jak metadane, breadcrumbs i mapy strony. Przedstawiono oglne sposoby pozycjonowania strony wraz z wpywem, jaki wywiera stosowanie takich technologii jak Flash i JavaScript. Rozdzia 14 Bezpieczestwo Joomla!" omwiono najwaniejsze ustawienia, ktre zagwarantuj wyszy poziom bezpieczestwa strony Joomla!. Opisano take gwne typy atakw (a take wskazwki, jak im zapobiega), ktre mog zosta wykorzystane przeciwko systemowi Joomla!. Dodatkowo znajduj si w nim informacje na temat zabezpieczania poszczeglnych serwerw (Apache lub IIS, PHP, MySQL i Joomla!). Rozdzia 15. Czego Joomla! nie potrafi" oceniono niedostatki, jakie mona dostrzec w porwnaniu z profesjonalnymi systemami CMS. Wyszczeglnione zostay ograniczone moliwoci w zakresie kontroli wersji, konwersji plikw, bezpieczestwa, rwnowaenia obcienia, replikacji, funkcjonalnoci zespoowej i obsugi portalu. Rozdzia 16. Rzut okiem na popularne strony oparte na Joomla!" przedstawiono wiele rnorodnych stron opartych na Joomla!. Do kadej opisanej strony doczono podsumowanie zawierajce szczegy na jej temat (takie jak uyty szablon, domylna rozdzielczo docelowa i inne), a take informacje o rozszerzeniach wykorzystywanych na stronie.
19
20
Konwencie
W ksice wykorzystano kilka konwencji, aby pomc Ci zrozumie jak najwicej z przedstawionego tekstu, a take pomc w orientacji:
Ramki, takie jak ta, zawieraj wane informacje bezporednio odnoszce si do otaczajcego tekstu, ktre trzeba zapamita.
Wskazwki, podpowiedzi, sztuczki i inne informacje niebdce czci tekstu zostay zapisane w ten sposb. Odnonie do stylw wykorzystanych w tekcie: Wane nowe pojcia pojawiaj si jako wyrnione przy pierwszym wykorzystaniu w tekcie. Skrty klawiszowe zapisywane s w nastpujcy sposb: Ctrl+A. Nazwy plikw i katalogw oraz adresy internetowe s wyrnione. Kod pojawiajcy si wewntrz tekstu jest oznaczony nastpujco:
persi stence.properti es.
W przypadku podawania cieek dostpu jako separator poszczeglnych nazw katalogw wykorzystywany jest lewy ukonik (\), pomimo i platformy uniksowe uywaj do tego celu prawego ukonika (/). Kod przedstawiony jest na dwa sposoby:
Nowe i wane fragmenty kodu przykadw wyrniane s szarym tem. Kod mniej znaczcy w danym kontekcie lub taki. ktry pojawi si ju w ksice, nie jest zaznaczony.
Kody rdowe
Podczas pracy z przykadami wykorzystanymi w tej ksice moesz samodzielnie wpisa cay kod z klawiatury lub wykorzysta pliki przygotowane przez autora. Wszystkie kody rdowe, ktre zostay uyte w tej ksice, mog zosta pobrane z ftp://ftp.helion.pl/przyklady/ jooptw.zip.
1
Wprowadzenie do Joomla!
Jeli czytasz t ksik, to prawdopodobnie wiesz ju, e Joomla! staje si jedn z najszerzej wykorzystywanych technologii sieci Web. System zarzdzania treci ( C M S Content Management System) Joomla! dostarcza atwego w uyciu, graficznego interfejsu uytkownika, ktry umoliwia tworzenie stron WWW i zarzdzanie nimi. Pocztkujcy uytkownik jest w stanie szybko opanowa podstawy Joomla! i tworzy pikne, profesjonalne strony, takie jak na rysunku 1.1, bez znajomoci HTML-a. W tej ksice zaoono, e znasz podstawy tworzenia stron w oparciu o Joomla! i chcesz rozwin swoje umiejtnoci, aby budowa witryny wiatowej klasy j a k tego dokona, dowiesz si podczas lektury. lysunek 1.1.
Domylna nstalacja loomla! zawiera demonstracj zaawansowanego orojektu strony skadajcego si r pionowego venu, pola wyszukiwania, zaokrglonych ogw, sondy automatycznego jkadu
J, Joomla!
About Jooml.il
Yesterday ail servers in the U S went out on strike in a bid to get more RAM and better C P U s . A spokes person said tlial the need for better RAM w a s due to some fool increasing the front-side bus speed. In future, buses will be told to slow down in residential motherboards. News The Community Szukaj...
Latest News
Home Joomla: Overview Joomla! License More about Joomla' FAO The N e w s W e b Links N e w s Feeds Content Layouts The Joomla! Community Welcome to Joomla! Newsflash 4 Newsflash 5
Popular
Joomla 1 Overview Extensions J o o m l a ! License Guidelines w e l c o m e to Joomla! . What's N e w In 1.5-
Poils
J o o m l a : is u s e d fo Q Q Q O O O Community Sites Public Brand Sites eCommerce Blogs Intranets Photo and Media Sites
Joomla' is a f i e e open s o u r c e f r a m e w o r k and content publishing s y s t e m designed toi quickly creating highly interactive multi-language W e b sites, online communities, media portals, blogs and e C o m m e i c e applications. Powered by Joomla! provides an easy-to-use graphical user interface that simplifies the management and publishing of large volumes of content including HTML, documents, and nch media Joomla! is u s e d bv organisations of all sizes for Public Web sites.
J4 Joomla!
Metoda opanowania Joomla! bdzie zalee od Twoich potrzeb oraz roli, jak grasz w procesie tworzenia i prowadzenia stron WWW. W tym rozdziale wyjaniono, w jaki sposb rni uytkownicy Joomla! (webmasterzy, projektanci i deweloperzy stron W W W ) mog wykorzysta t ksik, aby zdoby specyficzne umiejtnoci i pozna technologie, ktre opowiadaj ich potrzebom i pragnieniom.
22
Zapoznanie z Joomla!
Joomla! jest jedn z kluczowych aplikacji, ktrych wykorzystanie zainicjowao ponowne narodziny WWW w formie nazwanej Web 2.0. W przeciwiestwie do Web 1.0, gdzie wikszo stron internetowych bya zarzdzana rcznie, a moliwoci interakcji minimalne, sercem Web 2.0 jest automatyczna administracja, komunikacja na stronie i midzy witrynami, wirtualne spoecznoci, dynamiczna interakcja. Joomla! obejmuje wszystkie nowe osignicia, a poniewa jest CMS-em, stworzenie i zarzdzanie zaawansowan stron osigalne jest nawet dla maej grupy ludzi (by moe nawet dla jednej osoby). Strona oparta na Joomla! moe rywalizowa z moliwociami i prezencj stron wartych miliony dolarw. Najlepsze z tego wszystkie jest jednak to, e Joomla! jest cakowicie, w 100 procentach darmowy. Joomla! wydano w 2005 roku. Od tego czasu zaobserwowano wykadniczy wzrost zarwno wrd liczby webmasterw, jak i twrcw stron internetowych. Zaoono dosownie dziesitki tysicy stron WWW na caym wiecie. Aby sprosta temu rozrostowi, spoeczno twrcw powikszya si w czasie, kiedy pisaem t ksik do ponad 45 000 zarejestrowanych podmiotw. Setki deweloperw s aktywne kadego dnia na forach powiconych Joomla!, dziel si informacjami, wskazwkami i nowym kodem. Stale powstaj nowe dodatki i szablony, ktre rozszerzaj bogate moliwoci zawarte w domylnej instalacji Joomla!. Biorc pod uwag ca aktywno wok tego systemu, ciko nie ulec zachwytowi nad moliwociami pyncymi z wykorzystania go. Dziki tej ksice bdziesz mia szans doczy do rewolucji, prowadzony krok po kroku przez uruchamianie, tworzenie i projektowanie zaawansowanej strony Joomla!. Nauczysz si modyfikowa i rozszerza Joomla!. Dowiesz si, jak dostroi go, aby sprosta popularnoci, ktra zagroziaby poprawnemu dziaaniu zwykej strony. Twoja instalacja Joomla! obsuy due obcienie bez wysiku. Ta ksika pomoe Ci, jeli chcesz wykorzysta Joomla! do: Tworzenia komercyjnych dodatkw, ktre oferuj funkcje poyteczne dla kogo z 2,5-milionowej rzeszy uytkownikw Joomla!. Otwarcia sklepu internetowego, ktry posuy nie tylko do sprzedawania towarw, ale take stworzenia internetowej spoecznoci, majcej sprawi, e powtrne zakupy stan si zasad, a nie przypadkiem.
23
W tej ksice zawarta jest wiedza potrzebna do podania kad z tych rnorodnych cieek, a take wieloma innymi. W nowym, ekscytujcym wiecie, gdzie wiele bab zna HTML, ograniczenia w opanowywaniu Joomla! stawiane s gwnie przez Twoje wasne ambicje. Dziki Joomla! nawet mozolny proces tworzenia stron staje si jeli nie przyjemny, to przynajmniej satysfakcjonujcy. Kolejn zalet Joomla! jest atwo rozbudowywania CMS-a w podobny sposb, w jaki aplikacje typu CMS wprowadzaj porzdek w chaosie zarzdzania stron WWW.
24
Mimo e Joomla! mona wykorzysta prawie do kadego projektu strony WWW, nie znaczy to, e musi on by uyty w ten sposb. Jest takie stare powiedzenie, e jeli jeste motkiem, to wszystko wyglda jak paznokie. Istniej zastosowania, dla ktrych skorzystanie z Joomla! nie byoby najlepszym wyborem. Z tego powodu ksika zawiera rozdzia 15. Czego Joomla! nie potrafi". Wane jest, eby by wiadom ogranicze kadego programu, zanim zaczniesz duy projekt. Wiele ogranicze Joomla! (na przykad precyzyjne opcje zabezpiecze) mona pokona przez poczenie wasnego kodu i dostpnych rozszerze. Do Ciebie naley decyzja, czy pokonanie tych barier jest mdrym posuniciem lub czy nie lepszym pomysem byoby wybranie innej aplikacji, ktra zawiera ju funkcje pasujce do wymaga Twojego projektu.
W wersji 1.5 wprowadzono duo lepszy model oddzielania warstwy kodu od warstwy prezentacji. Nowa struktura uatwia projektantom stron i grafikom tworzenie szablonw, poniewa nie s ju przesadnie obcieni programowaniem. Deweloperzy z kolei mog ksztatowa logik systemu niezalenie od wielu aspektw warstwy prezentacji.
Webmasterzy
Na webmasterach spoczywa prawdopodobnie najwiksza odpowiedzialno w zakresie doskonalenia strony WWW opartej na Joomla!. Ostateczna odpowiedzialno za poprawne dziaanie strony spada wanie na webmastera. Z tego powodu kluczowe jest zrozumienie technologii lecej u jego podstaw. Niezalenie od tego, czy prowadzisz hobbystyczn stron, czy jeste administratorem zarzdzajcym wieloserwerow instalacj Joomla!, wikszo informacji zawartych w tej ksice bdzie dla Ciebie uyteczna. Joomla! jest zoonym systemem. Mimo i instalacja systemu nie stanowi bariery nawet dla pocztkujcych, to zaawansowane funkcje pozostaj dla nich po prostu niedostpne. Bdziesz mie szans zoptymalizowania instalacji Joomla!, aby osign maksymaln wydajno, ale take aby zabezpieczy stron przed hakerami.
25
By moe projektanci lub deweloperzy Joomla! pracuj dla Ciebie, w takiej sytuacji ksika ta dostarczy Ci doskonaych wskazwek, co mona osign w ramach platformy. Jeli grasz kad z wymienionych rl, praktycznie wszystkie informacje bd dla Ciebie wane. Z pewnocijednak do Twoich zada administracyjnych bdzie nalee porednia lub bezporednia administracja stron. Jeli jeste webmasterem i administratorem strony WWW, skorzystaj z narzdzi i technik opisanych w tej ksice, ktre pozwol Ci na: Zbudowanie wirtualnej spoecznoci z wykorzystaniem technologii Joomla!. Bdziesz w stanie skorzysta z internetowego trendu utosamianego przez takie witryny jak MySpace i YouTube. Zarzdzanie serwerem WWW, stron Joomla! i baz danych SQL, a take uczynienie z tej konstrukcji sprawnie dziaajcej maszyny. Stworzenie kopii zapasowej danych, plikw strony i opcji konfiguracyjnych. Skorzystanie z technik SEO, ktre poprawi pozycjonowanie Twojej strony i zoptymalizuj Joomla! pod ktem robotw internetowych. Dbanie o bezpieczestwo strony dziki poprawnym zabezpieczeniom i obronie przed atakami hakerw. Poznanie technik wykorzystywanych przez profesjonalne witryny oparte na Joomla! do prowadzenia strony i utrzymywania jej popularnoci. Dostrojenie systemu Joomla! w celu uzyskania maksymalnej wydajnoci. Omwione zostan tematy od optymalnego planowania, po odpowiednie ustawienie poszczeglnych serwerw. Rwnowaenie i testowanie obcienia strony Joomla!, zarzdzanie wieloma stronami jednoczenie. Okrelenie, czy Joomla! spenia Twoje potrzeby lub czy powiniene zainwestowa w CMS wyszej klasy.
Wiele aspektw administracyjnych jest poruszanych w tej ksice w ramach opisw danej technologii (np. autoryzacji LDAP). Upewnij si, e przynajmniej pobienie zapoznae si z materiaami, ktre nie s bezporednio zwizane z Twoimi zadaniami lub umiejtnociami.
26
Z ang. podcz i uywaj oznacza zdolno wstawienia nowego elementu w istniejcy system bez koniecznej modyfikacji pozostaych elementw p r z y p . tum.
27
Projektanci stron WWW s zatrudniani zazwyczaj na wczesnym etapie tworzenia strony, a im wicej wiedz o Joomla!, tym lepiej mona w sumie wykorzysta bogactwo tej technologii. Szczeglnie w dziedzinie tworzenia szablonw wykorzystanie moliwoci drzemicych w Joomla! moe doprowadzi do stworzenia strony, ktra nie tylko speni potrzeby, ale take bdzie atwa w zarzdzaniu i przyszym uaktualnianiu. Projektanci s w stanie w najwikszym stopniu wykorzysta rozszerzenia pisane w celu rozbudowy systemu.
28
Deweloperzy stron WWW znajd w Joomla! bogate rdo osobistej i zawodowej satysfakcji. Wielu z nich miao ju kontakt z Joomla! i zainwestowao sporo wysiku w opanowanie podstaw. Ta ksika dostarczy Ci jasnych wskazwek dotyczcych umiejtnoci, ktrych potrzebujesz przy minimalnej iloci niejasnoci lub dodatkowej pracy.
29
Uruchomienie strony o wysokim nateniu ruchu w oparciu o poprzednie wersje Joomla! byo problematyczne, poniewa Joomla! mia tendencj do znacznego zwalniania przy duym obcieniu. W oryginalnej wersji aplikacja bya przetwarzana jako jeden monolityczny blok kodu PHP przy kadym wywoaniu strony niezalenie od tego, czy dana strona wymagaa wszystkich funkcji, czy nie. W wersji 1.5 grupa deweloperw Joomla! zaja si tym problemem i praktycznie go rozwizaa. Kod zosta poddany refaktoryzacji, dziki czemu adowany i uruchamiany jest tylko ten fragment i te moduy, ktre s niezbdne do wygenerowania danej strony. Nowa metoda spowodowaa ogromny wzrost wydajno na duych stronach.
Zsumowanie
System Joomla! jest platform, ktr opanowa mog ludzie majcy rne cele, np. webmasterzy, projektanci i deweloperzy stron WWW. Niezalenie od powodw, ktrymi kierujesz si, gdy chcesz skorzysta z Joomla!, w tym rozdziale moge znale informacje, ktre pomog Ci: Zrozumie system CMS, jakim jest Joomla!, a take informowa innych o zaletach korzystania z niego. wiat Web 2.0 opiera si na automatycznym zarzdzaniu treci, dynamicznej interakcji i wirtualnych spoecznociach. Joomla! jako CMS umoliwia skorzystanie z nowych technologii kademu od pojedynczych osb, a po due organizacje po zaskakujco niskiej cenie, za darmo. Poprawi swoje umiejtnoci webmasterskie w tworzeniu strony Joomla! i administrowaniu ni. Bez wzgldu na to, czy jeste samodzielnym webmasterem ! z hobbystycznym nastawieniem, czy osob zarzdzajc wieloserwerow instalacj Joomla!, dowiesz si z tej ksiki, jak budowa internetow spoeczno, zarzdza serwerem, zabezpieczy treci i uytkownikw oraz zoptymalizowa stron pod ktem pozycjonowania. Udoskonali wygld i zachowanie strony Joomla!, jeli jeste jej projektantem. Nauczysz si nie tylko tworzy i modyfikowa szablony Joomla! (dla zabawy, w ramach kontraktu lub dla jednej z wielu komercyjnych stron z szablonami), ale take zrozumiesz, jak zapewni zgodno swojej strony z wymaganiami internacjonalizacji i dostpnoci dla osb niepenosprawnych. Tworzy dodatki, komponenty i moduy, jeli jeste deweloperem stron Joomla!. Poznasz struktur platformy Joomla! w stopniu, ktry pozwoli Ci wprowadza zmiany w samym systemie. Poniewa prawie na kady aspekt dziaania systemu wpywa kod w plikach CSS lub PHP, moliwe zmiany s prawie nieograniczone. Uaktualni kod rdowy, szablony i inne technologie dziaajce z wczeniejszymi wersjami Joomla! lub nowymi instalacjami Mambo.
W rozdziale 2. przedstawiono szczegy instalacji i konfiguracji strony Joomla!. Uruchomienie podstawowej strony jest banalne, jednak dobranie ustawie, ktre zapewni optymaln wydajno, jest jednoczenie sztuk i nauk. Dziki dokadnemu zapoznaniu si z wyborem ustawie dla rnych serwerw moesz sprawi, e Twoja instalacja Joomla! bdzie dziaa jak dobrze naoliwiona maszyna.
30
2
Szczegy instalacji i konfiguracji
Joomla! do poprawnego dziaania wymaga poczenia czterech technologii serwerowych. Jeli Apache nie jest w stanie uruchomi PHP lub PHP nie moe si poczy z MySQL albo Joomla! nie moe zapisywa danych w bazie MySQL, system zawiedzie. W tym rozdziale opisano konfiguracj kadego elementu systemu, bez ktrej nieumoliwe jest poprawne funkcjonowanie caoci. Dziaanie kadego serwera kontrolowane jest list dyrektyw i opcji konfiguracyjnych, a ich optymalny dobr zapewni waciwe funkcjonowanie systemu. W tym rozdziale opisano take rne techniki poprawy poszczeglnych aspektw systemu, tak aby serwer sprawniej odpowiada na dania, dostarczajc najlepszych wrae z uytkowania.
32
Rysunek 2.1.
Cztery serwery, z ktrych skada si system Joomla!
Opcja 1
Opcja 2
Minimalne wymagania dla kadego z serwerw skadajcych si na Joomla!: PHP w wersji co najmniej 4.3.x z aktywowanymi moduami MySQL, XML i Zlib; MySQL w wersji co najmniej 3.23.x; Apache w wersji co najmniej 1.13.19.
Twoje decyzje dotyczce instalacji i konfiguracji bd miay daleko idcy wpyw na sukces Twojej strony opartej na Joomla!.
33
produkcyjnym. Czstym wyborem dla rodowiska testowego jest Windows lub MacOS, podczas gdy ostatecznie strona dziaa pod kontrol serwera WWW uruchomionego w Linuksie. Dziki dostrzeeniu rnic na wczesnym etapie prac atwiej bdzie Ci pniej przenie wyniki do innego rodowiska.
Poniej przedstawiono kilka wad instalacji lokalnej: Wicej pracy Jeli zdecydujesz si na instalacj lokaln, jeste take odpowiedzialny za konfiguracj serwera i zarzdzanie nim. Taka konfiguracja wymaga skutecznego podziau zasobw maszyny midzy elementami systemu. Moliwa wydajno systemu Chocia w wikszoci przypadkw wykorzystanie wasnego, dedykowanego serwera zapewni Ci prawdopodobnie lepsz wydajno ni instalacja zdalna, nie jest to regu. Dostawcy usug internetowych wkadaj wiele wysiku w zapewnienie optymalnej wydajnoci serwerw. Czsto wykorzystuj take droszy sprzt, ktry radzi sobie z wikszym obcieniem.
34
Jeli chciaby wykorzysta instalacj lokaln, a nie masz wystarczajco szybkiego cza, sprawd ofert kolokacji, jak dysponuje Twj lokalny dostawca usug internetowych (ISP). Wielu dostawcw ma bardzo korzystne oferty, ktre pozwol Ci za odpowiedni opat umieci u nich swj serwer i podczy go do internetu.
35
Chocia instalator XAMPP umoliwia atw i szybk instalacj w rodowisku testowym, ma kilka powanych wad. Najwaniejsz jest bezpieczestwo. Domylne instalacje serwerw zawartych w paczce XAMPP s podatne na ataki rnych typw. Ponadto instalowanych jest wiele niepotrzebnych aplikacji (takich jak Perl), rozszerze i moduw, ktre mog spowolni Twj system. Ilo miejsca zajmowana na dysku twardym moe by nawet trzy razy wiksza ni w sytuacji, kiedy instalowaby kady z serwerw oddzielnie. Jeli jeste pocztkujcym uytkownikiem, instalator XAMPP jest fantastycznym narzdziem, ktre pozwoli Ci zacz prac w bardzo krtkim czasie. Jeeli jeste odrobin bardziej zaawansowany, to pomijajc pojedyncze problemy, ktre napotkasz, indywidualna instalacja moe by dobrym wyborem. Pamitaj o tym, e decyzja odnonie do platformy wpywa take na sposb, w jaki bdziesz przeprowadza instalacj. Przykadowo w MacOS jest ju zainstalowany serwer Apache trzeba go tylko aktywowa. Podobnie w przypadku ISS, ktry jest prawdopodobnie zainstalowany na platformie Windows. W najgorszym wypadku domylnie zainstalowany serwer moe powodowa konflikt z tym, ktry chcesz zainstalowa. W innej sytuacji bdzie tylko zbdnym oprogramowaniem.
Wybr serwera WWW: Apache czy Microsoft Internet Information Server (IIS)
Jeli uruchamiasz Joomla! na platformie Windows, musisz dokona wyboru serwera WWW: Apache albo Microsoft Internet Information Server (IIS). Jest to trudne z kilku powodw. Gwn przyczyn dla ktrej warto wykorzysta Apache w systemie Windows, jest solidnie potwierdzona kompatybilno Joomla! i Apache. Jest jednak kilka elementw, z powodu ktrych mgby zdecydowa si na IIS: Natywna obsuga SSL Szyfrowanie SSL jest dostpne natywnie w IIS na platformie Windows. W czasie pisania tej ksiki uytkownik Apache byby zmuszony do rcznej kompilacji serwera w celu zyskania obsugi Secure Sockets Layer (SSL). Skompilowana wersja Apache dla Windowsa domylnie nie zawiera tej opcji. Dostrojona wydajno Microsoft powici duo czasu i pienidzy na zoptymalizowanie IIS pod ktem maksymalnej wydajnoci w Windowsie. Apache dziaa w tym rodowisku dobrze, jednak optymalizowany jest gwnie pod wzgldem platformy linuksowej i innych wariantw Uniksa. Zintegrowana ochrona katalogw IIS zosta napisany z myl o natywnej obsudze bezpieczestwa katalogw w Windowsie, dziaa nawet w poczeniu z technologi Active Directory. Wykorzystanie Apache wymaga czciowej integracji zasad zabezpiecze z systemem Apache. Wbudowany serwer FTP Domylna instalacja IIS zawiera serwer File Transfer Protocol (FTP), ktry moe by uyteczny w zarzdzaniu systemem Joomla!, a take moe docza dodatkow funkcjonalno do wielu rnych rozszerze (np. opcja pobierania lub wysyania w komponencie galerii zdj). Wikszo komputerw ma ju IIS zainstalowany Na platformie Windows wikszo komponentw niezbdna do uruchomienia IIS jest ju zintegrowana z systemem operacyjnym. Oznacza to, e narzut IIS jest bardzo may, poniewa liczba dodatkowych elementw, ktre zostan zainstalowane w systemie, jest niewielka.
36
Zanim skorzystasz z Joomla!, musisz zainstalowa PHP i MySQL, co doda usug uruchamiania skryptw i baz danych. PHP moesz pobra z poniszej strony:
http://www.php.net
Instalacja PHP przebiega podobnie jak dla kadego innego programu. Na stronie Web Server Setup wybierz wersj IIS, jak pokazano na rysunku 2.2. Instalator automatycznie skonfiguruje IIS do wsppracy z PHP. Rysunek 2.2.
Wybierz wersj IIS, na ktrej bdzie dziaa PHP
5
Mimo i po zakoczeniu instalacji PHP nie zostaje wywietlony komunikat o potrzebie ponownego uruchomienia komputera, naley to zrobi. Dziki temu zmienna systemowa Path bdzie wskazywa na nowy katalog PHP. Jeli masz trudnoci z uruchomieniem PHP, sprawd zawarto zmiennej Path, otwierajc Panel Sterowania/System i klikajc przycisk Zmienne rodowiskowe w zakadce Zaawansowane. Zmie warto zmiennej Path (zobacz rysunek 2.3), by wskazywaa na katalog z zainstalowanym PHP. Najprawdopodobniej znajduje si on w gwnym katalogu dysku (przykadowo c:\) lub w podkatalogu programw (np. c:\Program Files). Jeli silnik PHP nadal nie dziaa poprawnie (zobacz nastpny podrozdzia, aby dowiedzie si, jak to sprawdzi), sprawd, czy w folderze Windows znajduje si plik PHP.ini. Jeli tak, upewnij si, e zawarte w nim wpisy wskazuj na waciwy katalog. Sprbuj skopiowa PHP.ini, jeli go tam nie ma. Po kadej zmianie powiniene zatrzyma serwer i uruchomi go ponownie, aby mie pewno, e rozszerzenie PHP dziaa z nowymi ustawieniami.
37
rnlenrte
rodowiskowe
E l
Zmienne uytkownika dla Mr, Heh Zmienna LANG PATH TEMP TMP
Pl
Warto
Edytuj Zmienne systemowe Zmienna NUMBER OS j f ^ PATHEXT ! PROCESSOR_A... Windows_NT .COM; .EXE; .BAT; .CMD; ,VBS;. VBE;. J5;.... x86 Edytuj
| |
Anuluj
Polski pakiet jzykowy dla zaplecza i strony gwnej mona pobra ze strony przyp. tum.
http://www.joomla.pl/
38
Rysunek 2.4.
Pierwsza strona instalacji pozwala na okrelenie jzyka
'i J O O T
Wersja 1.5
Kroki
1 : Jzyk 2 : Pi zetjlail u s t a w i e 3 : Licencja 4 : Biaza d a n y c h 5 : U s t a w i e n i a FTP 6 : Kontjiii a c j a 7 : Zakocz
Wybierz jzyk
Wybierz jeyk el-GR- Greek en-GB - English (United Kingdom) eo-XK - Esperanto e s - E S - S p a n i s h ( E s p a o l internacional) e u - E S - B a s q u e (Euskara estandarra) fa-IR-Persian^jU) fi-FI - Finnish ( S u o m i ) : f r - F R - F r e n c h (Fr) ; he-IL- Hebrew(IL) hi-IN - D e v a n a g a r i / H i n d i (India) j h r - H R - C r o a t i a n (Hr) ; hu-HU - Hungarian (Magyar) j it-IT - Italian (Italy) Ija-JP - Japanese(JP) l o - L A - Lao ('.'.":',.) i I t - L T - Lithuanian Iv-LV - Latvian i n b - N O - Norsk bokmSl (Norway) nl-NL - Nederlands (NL-BE)
Nastpny ekran (zobacz rysunek 2.5) umoliwi Ci sprawdzenie przed rozpoczciem instalacji, czy wszystkie niezbdne elementy systemu dziaaj poprawnie. Jeli ustawienie ktrego z parametrw koliduje z wymaganiami Joomla!, w podrozdziale Konfiguracja PHP" poszukaj wyjanienia opcji, ktre trzeba poprawi. Rysunek 2.5.
Ekran sprawdzania przed instalacj potwierdzi, czy wszystkie niezbdne funkcje dziaaj poprawnie
Kroki
1 : Jeyk . 2 : Przegld ustawie 3 : Licencja 4 : Baza danych 5 : Ustawienia FTP 6 : hoiifijui acja 7 : Zakocz Zalecane ustawienia: Joomla! moe nadal dziaa mimo, ze ustawienia Twojego serwera nie s do koca niedostosowanym rodowisku moe KCW !*spoctarv\'5ne prbie?:,y. Ustawienie Safe Mode: Wywietlaj bdy: Wczytywanie plikw: Magic Quotes: Register Globals: Buforowanie kodu wynikowego: Automatyczne uruchomienie Zalecane Wyczone Wczone Wczone Wyczone Wyczone Biece Wy lar zone Wczone Wczone Wyczone Wyczone wyrnione na czerwono, prosz podejmij dziaania w celu ich zmiany, Jeli tego nie zrobisz instalacja Joomla! moe . by niemoliwa. Wersja PHP >=4.3,10 - obsuga kompresji zlib - obsuga XML - MySQL Domylny jzyk wielobajtowy Nadpisywanie funkcji wielobajtowych wyczone configuration.php Niezapisywalne Tak Tak Tak Tak lak Tak Tak M l V W W 'iflniiir-t isiaiai/ja
Przegld ustawie
O 'Potnij
Dalej
P r z e g l d u s t a w i e d l a J o o m l a ! 1.5.0 P r o d u c t i o n S t a b l e [ K h e p r i ]
Kolejny etap wymaga wyraenia zgody na warunki Powszechnej Licencji GNU. Po klikniciu Dalej zostaniesz przeniesiony do ekranu konfiguracji bazy danych (zobacz rysunek 2.6). Moesz tutaj ustawi adres serwera MySQL (w przypadku instalacji lokalnych jest to czsto local host), wpisa nazw uytkownika bazy danych i haso. Zwr uwag, e niektrzy dostawcy usug internetowych nie pozwalaj na tworzenie baz danych przez programy. W takiej sytuacji utwrz baz rcznie, a jej nazw wpisz w odpowiednie pole. Instalator Joomla! utworzy wewntrz niej niezbdne tabele. W zakadce Dodatkowe ustawienia, na dole ekranu znajdziesz opcje umoliwiajce utworzenie kopii lub usunicie istniejcych danych w bazie.
39
mysql
>; iacuJhoat
iroot
Konfiguracja gwna (zobacz rysunek 2.7) polega na ustawieniu kluczowych parametrw strony. Moesz tutaj ustawi jej nazw, haso administratora, a take wczyta przykadowe dane. Po klikniciu Wczytaj przykadowe dane w bazie danych MySQL zostan zapisane przykadowe dane. W ten sposb moesz si upewni, e komunikacja z serwerem baz danych przebiega bezbdnie. Rysunek 2.7.
Na ekranie konfiguracji gwnej mona ustawi nazw strony, haso administratora, a take wczyta przykadowe dane Gwna konfiguracja
Narwa witryny: Nazwa
witryny
Potwierd: email i haso administratora
w w JoomlaJumpstart com w
Wpisz adres email, bdzie to gjwny adres witryny i adres gwnego administratora zignorowa t seteji;, poniewa twoje beda przeniesione z poprzedniego ser
Z a a d u j p r z y k a d o w e d a n e . d a n e z s e r w i s u J o o m l a ! 1.0.x l u b k o p i i WANE: Zaleca si instalowanie przykadowych danych. A b y to zrobi, wybierz odpowiedni opcj i zatwierd j zanim przejdziesz dalej. Przed zakoczeniem instalacji moesz wypeni baz danych ptzykadow treci, Oto jakie s moliwoci: > I W.rnv<im> d;t i f i i i 7 > U r i ( l n w t ' 1 1
Wczytaj ( ) przykadowe
Wczytaj!
) Zaaduj skrypt
i.
<
Instalacja zwieczona jest infonnacj o jej zakoczeniu. Na ekranie pojawiaj si take przyciski kierujce na gwn stron Joomla! lub do interfejsu administracyjnego (zaplecza).
40
Pliki konfiguracyjne
Jeli chcesz uzyska najlepsz wydajno Joomla!, musisz po kolei sprawdzi wszystkie dyrektywy wykorzystywane przez serwer WWW. Ustawienia rekomendowane nie zawsze speniaj wszystkie potrzeby. Gwny wpyw na konfiguracj ma okrelenie grupy odbiorcw. Czy spodziewasz si tysicy uytkownikw, ktrzy bd odwiedza Twoj stron tylko przez kilka minut? Czy moe planujesz stworzenie portalu, na ktrym uytkownicy spdz wikszo czasu powicanego na przegldanie internetu? Ustawienie waciwych wartoci dla niektrych parametrw, takich jak te odnoszce si do przekroczenia czasu, wymaga pewnego dowiadczenia, chocia wiele ustawie mona zmieni od razu, aby uatwi sobie ycie, gdy jest si administratorem Joomla!. Trzy najwaniejsze dyrektywy Joomla! to: Di rectorylndex, LogLevel i ServerRoot.
Dyrektywa Direclorylndex
Ta dyrektywa pozwala ustawi, ktry plik bdzie traktowany jako plik indeksowy. Domylnie dyrektywa ustawiona jest na Di rectorylndex index.html. Oznacza to, e wywoanie katalogu w przegldarce bez podania nazwy pliku spowoduje zwrcenie pliku index.html. Poniewa do uruchomienia Joomla! konieczny jest plik index.php, musisz doda do listy odpowiedni wpis. Podczas przegldania pliku httpd.conf powiniene natrafi na ponisz dyrektyw:
# D rectorylndex: sets the file that Apache will server if a directory is requested
<IfModule dir_module> Directorylndex index.html </IfModule>
41
Poprawne uruchamianie Joomla! wymaga dodania pliku indeksowego PHP do tej listy. Wstaw odwoanie do index.php tu przed odwoaniem do pliku HTML, jak poniej:
Di rectoryIndex index.php index.html
Nastpnym razem, kiedy uytkownik poda adres URL bez wskazania pliku (np. http://localhost), katalog zostanie przeszukany pod ktem obecnoci index.php, plik index.html zostanie wykorzystany, jeli nie uda si znale pliku PHP. lyrektywa LogLevel Ustawienie LogLevel wpywa na liczb komunikatw zapisywanych przez system w dzienniku bdw. Podczas wczesnego poznawania Joomla! lub testw w czasie wdraania zwikszenie LogLevel moe znaczco uatwi diagnoz i usuwanie problemw. Takie dziaanie pozwala Ci take natychmiast wyapa mae problemy, zamiast pniej, gdy ciko obciony system moe wyolbrzymi mae wady. Jak mwi stare powiedzenie najlepiej zabi potwora, kiedy jest jeszcze may. Domylnym ustawieniem LogLevel jest warn. Poniej wymieniono osiem dostpnych ustawie (w porzdku rosncym wzgldem liczby komunikatw): emerg Zapisuj tylko krytyczne wpisy, gdy w systemie wystpi bd i system nie moe dalej funkcjonowa. alert Zapisuj ostrzeenia wymagajce natychmiastowej reakcji, aby zapobiec awarii czci systemu. crit Przechowuj informacje o bdach, ktre mog uszkodzi dziaanie serwera. warn Zapisuj wszystkie ostrzeenia generowane przez system. Jest to domylne ustawienie. error Przechowuj bdy dotyczce uruchamiania systemu. notice Zapisuj informacje o normalnych okolicznociach, ktre nie zagraaj dziaaniu systemu. info Dostarczaj dodatkowych informacji wraz z sugestiami optymalizacji. debug Zapisuj wszystkie komunikaty systemu, wczajc w to potwierdzenie uruchamiania procesw.
Ustawienie LogLevel na danym poziomie spowoduje zapisywanie komunikatw przewidzianych dla tego poziomu i wszystkich poziomw o wyszym znaczeniu. Komunikaty nalece do poziomu notice s zapisywane zawsze, niezalenie od ustawienia LogLevel. Zalecanym ustawieniem dla serwera produkcyjnego jest przynajmniej crit. Po ustawieniu na warn wpis do dziennika moe wyglda tak:
[Sat Nov 18 08:16:04 2006] [error] [client 127.0.0.1] File does not exist: C:/Program Fnles/Apache Software Foundation/Apache2.2/htdocs/AVE, referer: http://www.yahoo.com
42
Spowoduje to przesyanie wpisw dziennika na serwer o nazwie logwarehouse. Aby uzyska wicej informacji na temat uruchamiania zdalnego serwera wpisw dziennika, odwied artyku w Wikipedii powicony standardowi syslog:
http://en.wi ki pedi a.org/wi ki/Syslog
Dyrektywa ServerRoot
' Dyrektywa ServerRoot okrela gwny katalog serwera WWW. W przypadku systemu Linux dyrektywa byaby ustawiona podobnie jak poniej:
ServerRoot "/usr/local/apache"
Warto ta bdzie dodana na pocztku do wszystkich cieek, ktre nie s w peni odpowiednie. Jeli dziennik nie jest zapisywany we waciwym miejscu lub pliki konfiguracyjne s niedostpne, sprawd ustawienie tej dyrektywy.
43
Apache Opis Okrela nazw pliku konfiguracyjnego. Przypisuje wybrane rozszerzenia do podanego zestawu znakw. Dodaje domylny zestaw znakw do typu MIME text/plain i text/HTML. Przypisuje jzyk dla plikw z danym rozszerzeniem. Okrela porty, na ktrych mog by przyjmowane poczenia przez proxy. Okrela typy dyrektyw, ktrych uycie jest dozwolone w pliku .htaccess. Oznacza domylny czas przechowywania dokumentu w pamici podrcznej, jeli nie zostanie ustawiony czas wyganicia tego pliku. Okrela domylny zestaw znakw. Przechowuje czas wyganicia tracking cookic w sekundach. Pozwala ustawi wasny plik dziennika, a take jego format. Okrela domylny jzyk, ktry zostanie przesany w postaci znacznika MIME. Okrela list adresw, ktre maj zabroniony dostp do serwera WWW. Ta dyrektywa moe by ogromnie poyteczna w przypadku obrony przed atakami hakerw lub ograniczenia pocze z nieautoryzowanymi lub nieprzyjaznymi odwiedzajcymi. Przechowuje ciek dostpu do gwnego katalogu przeznaczonego dla odwiedzajcych. Najczciej dyrektywa ta wskazuje ciek do folderu htdoes, w ktrym zainstalowany jest Joomla!. Na platformie Windows moe by ustawiona jako C:/Program Files/Apache Software Foundation/Apache2.2/htdocs. Wskazuje dokument, ktry zostanie zwrcony odwiedzajcemu w przypadku wystpienia bdu. System Joomla! nadpisuje to ustawienie i powoduje zwrcenie wasnej strony z komunikatem o bdzie. Tak stron mona zastpi okrelonym, wasnym szablonem. Wskazuje ciek do pliku dziennika, w ktrym zapisywane s komunikaty systemu. Pozwala ustawi nagwek odpowiedzi HTTP. Wskazuje nazw pliku, ktrego zawarto zostanie wstawiona przed list plikw w katalogu, jeli ustawiono dyrektyw Header. Wcza lub wycza zapisywanie informacji o odwiedzajcych, dostarczonych w postaci tosamoci RFC 1413 doczanej przy daniu. Wcza lub wycza obsug trwaych pocze lub sesji. Okrela limit czasu, po przekroczeniu ktrego zostanie przerwane trwae poczenie lub trwaa sesja.
Deny
DocumentRoot
ErrorDocument
ErrorLog
Header HeaderName
IdentityCheck
KeepAlive KeepAliveTimeout
44
opis Przechowuje kolejno wariantw jzykowych, jeli jzyk nie zosta okrelony przez odwiedzajcego. Umoliwia ustawienie portu i adresu IP, na ktrym serwer bdzie czeka na poczenia. Zobacz take dyrektyw ServerName. Okrela dopuszczaln liczb da dla jednego trwaego poczenia. Domylne ustawienie to 100. Wskazuje skrypt CGI (Common Gateway Interface), ktry zostanie uruchomiony w odpowiedzi na okrelone danie. W przypadku uruchamiania PHP przez CGI naley odpowiednio skonfigurowa t dyrektyw. Uyteczna tylko w przypadku uruchamiania PHP przez CGI. W takim przypadku dyrektywa okrela plik dziennika bdw, do ktrego trafiaj komunikaty CGI. Podczas wysyania wiadomoci od serwera do klienta doczany jest adres e-mailowy. Administrator Joomla! moe zdefiniowa to ustawienie, aby umoliwi uytkownikom przesyanie da i raportw. Nazwa komputera i port wykorzystywane przez serwer. Domylnym ustawieniem jest ServerName localhost :80. Jeli korzystasz z kilku serwerw na jednym komputerze (np. Apache i IIS), moesz uy t dyrektyw do zmiany portu, na ktrym Apache nasuchuje pocze. Ilo czasu, jak Apache moe powici na przetwarzanie dania, zanim zostanie ono przerwane. Domylne ustawienie to 300 sekund. Wcza lub wycza obsug zapyta TRAC. Domylnie ustawiona na on. Wskazuje pooenie pliku dziennika z informacjami o transferach. Okrela katalog, w ktrym uytkownicy mog umieszcza swoje strony. Jeli z Twojego serwera bdzie korzysta wielu uytkownikw, moesz tutaj ustawi odpowiedni katalog. Pozwala ustawi gwny katalog dla serwera wirtualnego. Moesz wykorzysta t dyrektyw, jeli chcesz uruchomi Joomla! na wirtualnym serwerze. Okrela adres IP wirtualnego serwera.
Listen
MaxKeepAli veRequests
Script
ScriptLog
ServerAdmin
ServerName
TimeOut
Vi rtua 1 DocumentRoot
Vri tua1DocumentRootIP
Pliki dziennika
Pliki dziennika serwera Apache m o g by bardzo pomocne w monitorowaniu serwera W W W . M i m o i niektre rozszerzenia Joomla! potrafi tworzy statystyki, nie jest to zalecane, poniewa obnia wydajno systemu. Jeli wic chcesz dokadnie monitorowa ruch na stronie, musisz wykorzysta do tego dzienniki serwera W W W . Istniej trzy typy takich dziennikw: access, error i install2.
2
45
Po instalacji serwera Apache uruchom go na krtki czas, a nastpnie sprawd zawarto podkatalogu /logs, ktry znajduje si wewntrz gwnego katalogu Apache. Znajdziesz w nim trzy pliki. Przejrzyj ich zawarto w zwykym edytorze tekstu, aby zapozna si z nimi. W miar postpu pracy z t ksik bdziesz wraca do plikw dziennika, aby udoskonala konfiguracj i lepiej zarzdza stron.
46
W przypadku platformy Windows moesz sprawdzi wersj rozszerzenia lub moduu, klikajc zakadk Wersja w oknie Waciwoci pliku, jak przedstawiono to na rysunku 2.8. W internecie lub na stronie serwera Apache (www.apache.org) moesz sprawdzi, czy inni uytkownicy zgaszali problemy z zainstalowan u Ciebie wersj wtyczki. Jeli masz zamiar poprosi innych o pomoc w rozwizaniu Twojego problemu, docz dokadne informacje o wersjach wtyczek, ktre wykorzystujesz. Umoliwi to precyzyjniejsz ocen Twojej sytuacji. Rysunek 2.8.
Sprawd wersje plikw w folderach modules i extensions, jeli napotkae trudnoci
^tadvroci: mod_auth_dbm.so
Oglne Wersja
Pozostae informacje o wersji Nazwa elementu: Jzyk Komentarze Nazwa produktu Nazwa wewntrzna Oryginalna nazwa pliku Wersja pliku Wersja produktu Warto: ! Apache Software Foundation
j ;
OK
I[
Anuluj
Nie wszystkie moduy, ktre znajduj si w tych folderach, s aktywne. Korzystajc z odpowiednich dyrektyw w pliku httpd.conf, moesz wycza lub wcza poszczeglne wtyczki. Dodatkowe moduy, ktre nie s domylnie zainstalowane, mona pobra ze strony:
http://modu es.apache.org
Folder htdocs
Domylnie katalog ten zawiera pliki stron internetowych. Musisz zwrci szczegln uwag na zabezpieczenie folderu /htdocs. Poniewa pliki wewntrz tego katalogu maj prawa pozwalajce uruchamia kod PHP, naley zapobiec sytuacji, w ktrej haker mgby umieci wasny kod lub wirusa wewntrz /htdocs. W rozdziale 14. omwiono sposoby zabezpieczenia tego katalogu.
47
Konfiguracja PHP
Konfiguracja PHP jest znaczco prostsza ni konfiguracja Apache, jednak niesie ze sob nie mniej potencjalnych zagroe bezpieczestwa. Silnik PHP bezporednio uruchamia kod, dlatego konieczna jest poprawna konfiguracja, ktra zapobiegnie lukom w zabezpieczeniach. W przypadku udanego ataku haker moe zdoby dostp do informacji poufnych, usun dane lub uruchomi program, ktry pozwoli mu na dodatkowe szkodliwe dziaania. Joomla! wymaga do poprawnego dziaania PHP w wersji 4.3.0 lub nowszej. Przed rozpoczciem instalacji (zwaszcza zdalnej) sprawd wersj PHP, aby unikn problemw. Czst sztuczk wykorzystywan przez hakerw jest uruchomienie faszywej podstrony na Twoim serwerze. Poprzez skierowanie na ni uytkownikw mog zdoby poufne dane, rozsya wirusy, przeprowadza ataki DoS pochodzce z Twojego serwera lub rozsya spam. Najprostszym sposobem okrelenia konfiguracji PHP jest wykorzystanie funkcji phpinfoO. W ten sposb dowiesz si take, czy PHP dziaa poprawnie. Plik zawierajcy pojedyncz lini <?php phpi nfo(); ?> spowoduje wywietlenie konfiguracji, jak przedstawiono na rysunku 2.9. Rysunek 2.9.
Komenda pbp\nfo() wywietli kompletn konfiguracj PHP w sekcji Configuration
Directive allow j : a l l j i i n e j > a s s j efei ence On allow j i i l J o p e n altw ml inchitle aMjjsepaiatoi .input ai <j_sepai atoi .oi itpi it asp J a g s autojippeiidjile aiitojjlobals J i t auto j ) i epend Jfile lnowscap default chai set detauttjniinetype define_syslo<j_yai aides disalde_classes On Off & & Off no value On no value C:\xampp\php\brQwscap \browscap.ini no value texUhtml Off no value i :
1
always j o p u l a t e j aw j j o s t j l a t a Off
Po przewiniciu strony do sekcji Configuration moesz przejrze list dyrektyw oraz ich ustawienia. Poniej w poszczeglnych sekcjach przedstawiono konfiguracje dla poszczeglnych wtyczek wiele z nich zawiera take informacje o wersji. Sekcja PHP Variables, ktra znajduje si na dole strony, zawiera wartoci zmiennych PHP. Moesz wykorzysta te informacje, aby lepiej zrozumie dziaanie systemu, a take wytropi rdo wystpowania bdu.
48
w instalacji Joomla!.
Register Globals Emulation U s t a w RG_EMULATION na Off () w pliku Zlib compression U s t a w zlib.ouput_compression na On. globals.php.
Upewnij si, e plik configuration.php znajduje si w katalogu Joomla!, a take e ma ustawione uprawnienia zapisu, aby moliwe byy zmiany ustawie systemu Joomla! z poziomu interfejsu administratora. Zapis powinien by take moliwy w katalogu zapisu sesji (ang. session save path), w przeciwnym wypadku pojawi si bdy w funkcjonowaniu Joomla!. Zmiany miejsca zapisu sesji moesz dokona poprzez modyfikacj dyrektyw PHP.
Dyrektywy PHP
Nie wszystkie spord wielu opcji konfiguracyjnych PHP maj bezporedni wpyw na Joomla!. Wiele z nich nigdy nie bdzie potrzebnych, dlatego w tym podrozdziale opisano tylko te, ktre maj znaczenie dla uytkownika Joomla!.
Ta dyrektywa jest domylnie wyczona, aby zapobiec zdobyciu przez hakera dodatkowych informacji na temat systemu, w ktrym dziaa strona. Komunikaty o bdach s jednak zapisywane do pliku dziennika bdw serwera Apache, o ile ustawiona jest ponisza dyrektywa:
log_errors = On
49
Jest to ustawienie domylne. Podczas diagnozowania bdw w kodzie PHP cige otwieranie pliku dziennika bdw, aby sprawdzi, czy problem zosta rozwizany, jest niewygodne i niepraktyczne. Duo prociej jest wczy wywietlanie informacji o bdach w oknie przegldarki wraz z waciw treci strony. Funkcja display_errors powinna by wyczona na wszystkich serwerach produkcyjnych. Informacje o bdach mog zdradzi konfiguracj bazy danych, nazwy cieek, nazwy i adresy serwerw, a take wiele innych kluczowych informacji, ktre haker moe wykorzysta podczas ataku. Podobnie jak w przypadku Apache, moesz kontrolowa obfito komunikatw o bdach. Do wyboru s ponisze ustawienia: E_ALL Wywietla wszystkie bdy i ostrzeenia, poza bdami E_STRICT. E_ERR0R Wywietla krytyczne bdy wykonywania. E_RECOVERABLE__ERROR Wywietla prawie krytyczne bdy wykonywania. E_WARNING Wywietla ostrzeenia. E PARSE Wywietla bdy parsowania kodu PHP. E_N0TICE Wywietla wskazwki. E_STRICT Informuje o zalecanych zmianach kodu, aby zapewni kompatybilno z przyszymi wersjami PHP. E_C0RE_ERR0R Wywietla krytyczne bdy, ktre wystpiy podczas uruchamiania PHP. E_CORE_WARN ING Wywietla ostrzeenia, ktre wystpiy podczas uruchamiania PHP. E_C0MPILE_ERR0R Wywietla bdy dotyczce kompilacji kodu. E_COMPILE_WARNING Wywietla ostrzeenia dotyczce kompilacji kodu. E_USER_ERROR Wywietla komunikaty o bdach zdefiniowane przez programist. E_USER_WARNING Wywietla ostrzeenia wygenerowane przez uytkownika. E_USER_NOTICE Wywietla wskazwki wygenerowane przez uytkownika.
Domylnym ustawieniem zgaszania bdw jest E ALL, jednak moesz zmieni to ustawienie, aby doczy take ostrzeenia E_STRICT. Wykorzystaj do tego celu operator OR ( | ) , jak pokazano poniej:
error_reporting = E_AEL|E_NOTICE
Moesz wykluczy dan kategori bdw, wykorzystujc operatory AND (&) i NOT
error_reporting - E_ALL & ~E_USER_NOTICE
):
By moe jeszcze nie zdajesz sobie sprawy z tego, jak wane jest zgaszanie bdw. Zrozumiesz to w momencie, kiedy natrafisz na problem, ktrego nie pojmiesz. Przykadowo moesz napotka pust stron podczas prby dostpu do strony Joomla! bez adnej wskazwki, gdzie ley problem. Dziki wczonemu wywietlaniu bdw moesz natychmiast przystpi do szukania rda problemu.
50
Komunikat zawiera informacj, e nie mona rozpocz sesji poniewa nie ma takiego pliku lub katalogu" (ang. no such file or directory). Oznacza to bdn konfiguracj serwera PHP, co uniemoliwia zapisywanie i odczytywanie katalogu sesji. Otwrz plikphp.ini i wyszukaj dyrektyw session.save_path. Prawdopodobnie serwer WWW nie ma dostpu do podanej cieki. Ustawienie dyrektywy w taki sposb, aby katalog sesji znajdowa si wewntrz katalogu serwera WWW, rozwie problem na serwerze testowym. W rodowisku produkcyjnym powiniene wykorzysta narzdzia udostpnione przez dostawc usug internetowych, eby ustawi uprawnienia do wybranego katalogu. W przypadku platformy Windows dyrektywa ustawiona jest podobnie jak poniej:
session.save_path=" C:\DOCUME~l\danny\LOCALS~l\Temp\php\upload"
Aby rozwiza problem, naley utworzy folder o nazwie php session wewntrz gwnego katalogu serwera WWW, a nastpnie wskaza ten folder w konfiguracji PHP. Po stworzeniu nowego katalogu ustaw dyrektyw jak poniej (cao w jednej linii):
session.save_path="C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/php_sessions"
W przypadku instalacji zdalnej na serwerze z zainstalowanym Linuksem zmie ustawienie dyrektywy z przypominajcej ponisz:
session.save_path = /var/php_sessions
Nastpnie uruchom ponownie Apache, a Joomla! powinien dziaa poprawnie. Na podstawie tego prostego przykadu moesz zaobserwowa, jak bardzo wywietlanie komunikatw o bdach moe pomc w rozwizywaniu problemw. Opisana dyrektywa jest tylko wierzchokiem gry lodowej w zakresie konfiguracji PHP.
51
PHP Opis Okrela katalog, w ktrym bd uruchamiane skrypty PHP. W celu poprawnego dziaania Joomla! najlepiej pozostawi t dyrektyw nieustawion. Wycza informacje o PHP doczane do nagwka odpowiedzi. Domylnym ustawieniem w wikszoci rodowisk produkcyjnych jest Off. Wskazuje katalog, w ktrym znajduj si rozszerzenia i moduy PHP. Sprawd ustawienie tej dyrektywy, jeli np. wystpi problem poczenia z MySQL. Wcza lub wycza obsug wysyania plikw. Wiele funkcji systemu Joomla!, takich jak dodawanie szablonw, rozszerze i obrazkw, wymaga ustawienia na On. Okrela list katalogw, ktre bd przeszukiwane przez funkcje
require i include.
Moliwe wartoci
Cig znakw
expose_php
On lub Off
extension dir
Cig znakw
filejjploads
On lub Off
mclude_path
Cig znakw
magic_quotes_gpc
On lub Off
Wcza lub wycza automatyczne kodowanie apostrofw, cudzysoww, lewych ukonikw lub znakw zerowych. Ustawieniem zalecanym dla Joomla! jest On, chocia na wielu serwerach domylnie jest Off. Wcza lub wycza automatyczne kodowanie apostrofw, cudzysoww, lewych ukonikw lub znakw zerowych pochodzcych ze rde zewntrznych. Ustawieniem zalecanym dla Joomla! jest Off. Ustawia w sekundach maksymalny czas uruchamiania skryptu PHP. Ustawienie na 0 wycza limit. Domylne ustawienie to 30 sekund. Jeli przykadowo korzystasz z rozszerzenia, ktre potrzebuje sporo czasu, aby pobra informacje z zewntrz, moesz zwikszy t warto. Ustawia w sekundach maksymalny czas odbierania danych przychodzcych. Wpywa to take na czas oczekiwania na zakoczenie wysyania plikw. Domylne ustawienie to 60 sekund. Jeli przewidujesz, e wysyanie plikw moe trwa duej, zmie ustawienie tej dyrektywy. Ustawia limit pamici. Wprowadza ograniczenia dla skryptw na wspdzielonym serwerze (stosowane czsto przez dostawcw usug internetowych). Blokowane jest midzy innymi uruchamianie plikw (oprcz plikw PHP), funkcje chmod() (zmiana praw dostpu do katalogw i plikw) i system(). Jeli safejnode jest wczona na serwerze, z ktrego korzystasz, wiele z powyszych ogranicze mona omin (jednak nie za porednictwem PHP) dziki narzdziom dostarczonym przez administratora.
On lub Off
max_execution_ '-time
Liczba
maxjnput_time
Liczba
52
Dyrektywa
upload_max_ "-fi lesize upt oad_tmp_di r
Moliwe wartoci
Cig znakw
Opis
Okrela maksymalny rozmiar (w megabajtach) wysyanych plikw. Domylne ustawienie to 2M, co odpowiada 2MB. Okrela katalog, w ktrym tymczasowo zapisywane s wysyane pliki. Podstawowa nazwa katalogu uywanego jako katalog domowy uytkownika dla plikw PHP, na przykad publ icjltml. Wcza lub wycza obsug kompresji zlib. Wyczenie uniemoliwia skorzystanie z tej funkcjonalnoci w Joomla!. Wskazuje inn bibliotek kompresji, gdy standardowa jest niedostpna. Domylnie nieustawiona, co powoduje wykorzystanie standardowej biblioteki.
Cig znakw
Cig znakw
Cig znakw
Zanim zaczniesz zmienia ustawienia PHP, zrb kopi zapasow pliku php.ini, aby zawsze mg wrci do ustawie oryginalnych. Poniewa plik Ani jest plikiem tekstowym, i z tego powodu nie zajmuje zbyt duo miejsca na twardym dysku, warto rozway robienie kopii zapasowej przy kadej wikszej zmianie ustawie. Pamitaj, e po wprowadzeniu zmian w konfiguracji PHP musisz uruchomi ponownie Apache lub IIS, aby nowe ustawienia zaczy obowizywa. Konfiguracja odczytywana jest podczas uruchamiania serwera PHP, dlatego ponownie uruchomienie serwera W W W spowoduje wprowadzenie nowych ustawie. Alternatywnym podejciem do robienia kopii zapasowych pliku phpAni jest zamiana aktualnego ustawienia w komentarz poprzez wstawienie znaku rednika (;) na pocztku linii. Nowe ustawienie wprowadza si poniej. Jeli dokonujesz zmian w konfiguracji z okrelonego powodu, zalecane jest dodanie komentarza, ktry opisze powd modyfikacji. Podczas konfigurowania nastpnego serwera moesz odwoa si do istniejcego pliku .ini, co uatwi Ci dobr odpowiednich ustawie.
Konfiguracja MySQL
Uruchomienie MySQL jest zaskakujco proste. Prawdziw sztuk jest jednak dostrojenie wydajnoci pod ktem jak najszybszej odpowiedzi na dania Joomla!. MySQL zawiera wiele ustawie, ktre pozwalaj wpywa na sposb wykorzystania sesji i zuycia pamici. Moliwa jest take taka konfiguracja, przy ktrej obcienie bdzie rwnowaone na kilku serwerach. Jest to szczeglnie przydatne, jeli Twoja strona stanie si wyjtkowo popularna. Poprawna konfiguracja MySQL jest wynikiem obserwacji faktycznego wykorzystania zasobw, a nie przewidywania przyszych obcie. Najczstszym ograniczeniem wydajnoci MySQL jest wyszukiwanie, czytanie i zapisywanie informacji na dysku twardym. Waciwy dobr ustawie moliwy jest tylko dziki obserwacji, jak faktyczne ksztatuje si obcienie systemu.
53
istalacja MySQL
Instalacja MySQL jest jednoczenie najprostsza i najbardziej skomplikowana ze wszystkich serwerw wykorzystywanych przez Joomla!. Serwer MySQL nigdy nie nastrcza trudnoci w nowym systemie, w przeciwiestwie do sporadycznych problemw z pozostaymi serwerami. Problemem moe by natomiast komunikacja MySQL z pozostaymi serwerami szczeglnie z PHP.
'olczenie z MySQL 5
Po ukoczeniu pierwszego etapu instalacji Joomla!, kiedy zostanie wywietlony ekran konfiguracji bazy danych, moesz natrafi na kolejny problem. Po wpisaniu poprawnego adresu serwera MySQL, nazwy uytkownika i hasa moe pojawi si komunikat nie mona si poczy" (ang. can't connect). Powodem jest prawdopodobnie korzystanie z wprowadzonego w MySQL 5 nowego kodowania hase. Istniej dwa sposoby rozwizania tego problemu. Moesz wyczy nowy rodzaj kodowania w caym systemie MySQL lub wczy stare kodowanie hase dla poszczeglnych uytkownikw bazy danych. Jeli oprcz Joomla! korzystasz z innych aplikacji, ktre cz si z MySQL, zalecane jest drugie rozwizanie.
54
W odpowiedzi uzyskasz komunikat, e zapytanie dotyczyo 0 wierszy (ang. 0 rows affected). Mimo to zmiana kodowania hasa powinna zosta poprawnie wprowadzona. Uruchom ponownie instalacj Joomla!, a problem z poczeniem z baz danych nie powinien ju wystpowa. Aby zmieni sposb autoryzacji w caym systemie MySQL, otwrz aplikacj MySQL Administrator3 i kliknij przycisk Setup Variables. Wybierz zakadk Security i przewi na d, dopki nie zobaczysz opcji Use old passwords. Zaznacz pole wyboru po lewej stronie. Aby zmiany zaczy obowizywa, uruchom ponownie serwer MySQL odpowiedni opcj znajdziesz, klikajc przycisk Service Control.
Przyczyn tego bdu jest prawdopodobnie serwer MySQL dziaajcy w trybie strict. Oznacza to wczenie opcji STRICT_TRANS_TABLES lub STRICT_ALL_TABLES, czego wynikiem jest anulowanie caej operacji, jeli wystpi bd przy zapisywaniu choby jednego rekordu. Otwrz panel Startup Variables w aplikacji MySQL Administrator. Wybierz zakadk Advanced i sprawd ustawienie opcji SQL Mode, jak to przedstawiono na rysunku 2.10. Jeli w polu tekstowym, po prawej stronie pojawia si ktra z wyej wymienionych opcji, oznacz pole wyboru, a nastpnie kliknij przycisk Apply Changes na dole ekranu. Opcja SQL Mode odczytywana jest podczas startu serwera zmiany nie zostan wprowadzone, dopki nie uruchomisz ponownie MySQL lub systemu operacyjnego.
Zarzdzanie MySQL
System Joomla! automatycznie tworzy baz danych serwera MySQL i zarzdza ni. Jednak aby dokadnie zrozumie dziaanie MySQL, powiniene samodzielnie zbada struktur bazy danych Joomla!. Najatwiej jest to zrobi, wykorzystujc aplikacj MySQL Administrator. Domylna instalacja serwera MySQL nie zawiera tego programu, ale jest on darmowy i dostpny jako cz pakietu MySQL GUI Tools na stronie: http://dev.mysql.com.
Skd mona pobra program MySQL Administrator, dowiesz si w jednym z kolejnych podrozdziaw przyp. tum.
55
Advanced Configure the startup variables. Note that changes will have no effect until you restart the server. A J
0 Read buffer size 256 Ji^^l Each thread that does a sequential scan allocates a buffer of this size for each table it scans. If you do many sequential scans, you may want to increase this value. Syntax: sql-mode=option[,option[,option...]] where option can be one of: REAL AS FLOAT, PIPES_AS_CONCAT^NSI_QUOTES,
0 SQL Mode:
Using this option will cause most temporary files created to use a small set of names, rather than a unique name for each new When reading rows in sorted order after a sort, the rows are read through this buffer to avoid a disk seeks. If not set, then it's set to the value of record_buffer.
512
Po uruchomieniu aplikacji wywietlane s oglne informacje na temat stanu serwera, jak to przedstawiono na rysunku 2.11. W lewej czci okna programu umieszczono list dostpnych funkcji, jak np. Service Control (pozwala uruchomi, zatrzyma i restartowa serwer MySQL) lub Startup Variables (konfiguracja parametrw MySQL). Rysunek 2.11.
Program MySQL Administrator umoliwia atwe zarzdzanie baz MySQL za porednictwe m graficznego interfejsu uytkownika
# MySQL Administrator - Connection: rootlocalhost:3306
File Edit View Tools Window Help
M y
Connected to MySQL Server Instance Username: Hostname: Port: Server Information MySQL Version: Network Name: MySQL 5.0.51 b-community-nt via TCP/IP localhost 127.0.0.1
I Hea"h
M Server Logs j j f Replication Status Backup i
localhost 3306
Catalogs
Restore
Client Information Version: Network Name: IP: Operating System: Hardware: MySQL Client Version 5.1.11
Jako administrator wikszo czasu powicisz prawdopodobnie opcji Catalogs, ktra jest ostatni pozycj na licie w panelu po lewej stronie. Kliknicie przycisku Catalogs spowoduje wywietlenie listy dostpnych baz danych, a take schematu wybranej bazy. Po zaznaczeniu bazy Joomla! (w tym przypadku joomlalS) na licie w panelu po prawej stronie zostanie wywietlona lista tabel, jak zilustrowano to na rysunku 2.12.
56
Rysunek 2.12.
Schemat bazy danych zawierajcy wszystkie tabele systemu Joomla!
j|| Server Information ^ j t Service Control Startup Variables User Administration Hi? Server Connections
-i
joomlal 5 All tables ol the joomlal 5 schema le Name Engine Myl SAM MylSAM Myl SAM MylSAM MylSAM MylSAM MylSAM MylSAM MylSAM MylSAM MylSAM MylSAM MylSAM MylSAM MylSAM MylSAM MylSAM MylSAM Rows 8 1 0 22 32 1 43 5 0 1 11 0 1 1 0 0 3 29 Data length 1,3 kB 7GB OB 1,7 kB 3,9 kB 580 B 64,4 kB 45 B OB 32 B 464 B OB 24 B 20 B OB OB 60 B Index len... 4 kB 2 kB 1 kB 5 kB 3 kB 3 kB 8 kB 2 kB 1 kB 4 kB 4 kB 1 kB 4 kB 3 kB 1 kB 1 kB 2 kB 4 kB Update time 2008-10-29 23:22:42 2008-10-29 23:22:42 2008-10-29 23:16:34 2008-10-29 23:22:42 2008-10-29 23:22:42 2008-10-29 23:22:42 2008-10-29 23:22:42 2008-10-29 23:22:42 2008-10-29 23:16:36 2008-10-29 23:22:42 2008-10-29 23:22:42 2008-10-29 23:16:36 2008-10-29 23:22:42 2008-10-29 23:22:42 2008-10-29 23:16:36 2008-10-29 23:16:36 2008-10-29 23:22:42 2008-10-29 23:22:42
Vjf H ah el t
I S Serve, Logs J Replication Status Backup ,_ Restore Catalogs
jos_banner jos_bannerclient jos_bannertrack jos_categories jos_components jos_contact_details jos_content jos_content_fronlpage jos_content_rating jos_core_acl_aro os_core_acl_aro_gr... jos_core_acl_aro_map os_core_acl_aro_se... jos_core_acl_groups... jos_core_log_items jos_core_log_search... jos_groups jos_menu
4 mysql
i 11,3 kB
J | Edit Table
j Create Table
| | Maintenance
Refresh
Widziae ju moliwoci dwch opcji konfiguracyjnych w panelu Startup Variables, ktre m o g rozwiza problemy z uruchamianiem Joomla!. Wiksze moliwoci daje jednak bezporednia manipulacja danych w bazie MySQL. Bezporednie zapytania do bazy danych mog utworzy raport o stanie danych w tabelach Joomla!. Przykadowo Joomla! nie pozwala stworzy listy artykuw, dla ktrych nie ustawiono metadanych, i z tego powodu s kiepsko indeksowane przez roboty internetowe. Aby sprawdzi, ktrych pozycji dotyczy taki problem, wystarczy wykona zapytanie wzgldem tabeli jos_content i wywietli wszystkie artykuy, dla ktrych pole metadesc jest puste. Zaznacz baz danych Joomla! w programie MySQL Administrator, a nastpnie kliknij prawym przyciskiem pozycj jos_content. Wybierz opcj Edit Table Data z menu kontekstowego, jak zilustrowano to na rysunku 2.13. Zostanie wywietlone okno z zawartoci wybranej tabeli. Zauwa, e w grnej czci okna znajduje si zapytanie, ktre zostao wykonane:
SELECT * FROM "joomla".~jos_content'
Jest to zapytanie, ktre spowoduje pobranie wszystkich rekordw nalecych do tabeli jos_content. Moesz skorzysta z klauzuli WHERE, aby w prosty sposb ograniczy pobierane rekordy. Ponisze zapytanie zwrci tylko te rekordy, dla ktrych pole metadesc jest puste:
SELECT * FROM 'joomla".~jos_content~ WHERE metadesc = ""
Kliknicie przycisku Execute spowoduje wykonanie zapytania, a w oknie pojawi si tylko te rekordy, dla ktrych nie ustawiono metadanych. W menu File znajduje si opcja eksportu do pliku. Do wyboru jest kilka formatw (np. XML, HTML, CSV i Excel). Raport utworzony w ten sposb moesz wykorzysta jako list wpisw do poprawienia.
57
|oomla15 All tables of the joornla15 schema Table Name jos_banner jos_bannerclient jos_bannertrack jos_categories jos_components |os_contact_details Edit Table
-
Engine Myl SAM Myl SAM MylSAM MylSAM MylSAM MylSAM MylSAM MylSAM MylSAM MylSAM MylSAM MylSAM MylSAM MylSAM MylSAM MylSAM MylSAM
Rows 8 1 0 22 32 1
'' 5 0
Index len... 4 kB 2 kB 1 kB 5 kB 3 kB 3 kB
Update time 2808-10-29 23:22:42 2008-10-29 23:22:42 2008-18-28 23:16:34 2008-10-29 23:22:42 2008-18-29 23:22:42 2008-10-29 23:22:42 2008-10-29 23:22:42 2008-10-29 23:16:36 2008-10-29 23:22:42 2008-10-29 23:22:42 2008-10-29 23:16:36 2008-18-28 23:22:42 2008-10-29 23:22:42 2008-10-29 23:16:36 2008-10-29 23:16:36 2003-10-29 23:22:42 2008-10-29 23:22:42
V
"
45 B OB 32 B 464 B OB 24 B 20 B OB OB 60 B 11,3 kB
2 kB 1 kB 4 kB 4 kB 1 kB 4 kB 3 kB 1 kB 1 kB 2 kB 4 kB
''
1 11
0 1
"""""
: :
'
l',C0re_aCLnfcup
1
0 0
3 23
Details >>
I Create Table j
Edit Table
j Maintenance J
Refresh
Usu plik resetpwd.txt po zresetowaniu hasa. Nierozwane jest pozostawienie na dysku rzeczy potencjalnie niebezpiecznej, ktra potem w jaki sposb moe zosta wykorzystana przez hakera.
58
Konfiguracja Joomla!
Prawdopodobnie potrafisz ju skonfigurowa Joomla! wedug potrzeb. Moliwe jednak, e przeoczye mniej oczywiste funkcje, ktre potrafi znaczco wpyn na sprawne dziaanie systemu. Jeli instalacja Joomla! sprawia Ci kopot, skopiuj po prostu pliki i upewnij si, e gwny katalog nie zawiera pliku configuration.php. Jego obecno wiadczy o tym, e Joomla! zosta ju zainstalowany i skonfigurowany. W przeciwnym razie instalator Joomla! automatycznie zostanie uruchomiony.
configuration.php
Twrcy Joomla! zalecaj wprowadzanie wszystkich zmian w konfiguracji z poziomu interfejsu administratora. Bezporednia manipulacja pliku configuration.php moe mie jednak swoje zalety. Przykadowo jeli zarzdzasz wieloma stronami Joomla! i potrzebujesz wprowadzi dan zmian w kilku plikach, rozwizaniem moe okaza si napisanie makra. Rczne modyfikacje z uyciem interfejsu graficznego byyby w takim przypadku mczce. Gwna konfiguracja systemu Joomla! znajduje si w pliku configuration.php. Wszystkie ustawienia przechowywane s wewntrz klasy PHP o nazwie JConfig. Jeli otworzysz plik konfiguracyjny w edytorze tekstu, zauwaysz, e na pocztku znajduje si definicja klasy:
class JConfig {
Plik zosta podzielony na rne czci. Site Settings (ustawienia strony) to pierwsza grupa parametrw, przypominajca ponisz list:
/* Site Settings */
var Soffline = '0' ; var $offlinejnessage 'This site is down for maintence.<br /> Please check back again soon.1 ;
Zwr uwag, e przedstawiony plik pochodzi z domylnej instalacji. U Ciebie wartoci powinny odpowiada wprowadzonym ustawieniom. Sekcja Database (ustawienia bazy danych) wyglda podobnie, jak to przedstawiono poniszej:
var dbtype = 'mysql': var $host - 'localhost':
// MySQL usemame
59
value
S e k c j a Mail Settings ( u s t a w i e n i a p o c z t y ) : var var var var var var var var Smaller = Smailfrom Sfromname Ssendmail Ssmtpauth Ssmtpuser Ssmtppass smtphost mai I = = = /usr/sbin/sendmail = 0' ; = = = local host'
S e k c j a Cache Settings ( u s t a w i e n i a p a m i c i p o d r c z n e j ) : var var var var Scaching = '0'; Scaching_tmpl = 'O'; Scaching_page = '0'; Scachetime = '900':
S e k c j a Debug Settings ( u s t a w i e n i a d i a g n o s t y k i ) : var Sdebug = '0'; var $debug_db = 'O': var Sdebugjang = 'O': S e k c j a Meta Settings ( m e t a d a n e ) : var var var var SMetaDesc 'Joomla! - the dynamie portal engine': SMetaKeys = 'joomla. Joomla'; SMetaTitle = 'l'; SMetaAuthor = 'l';
60
Zawsze twrz kopi zapasow pliku konfiguracyjnego przed wprowadzaniem jakichkolwiek zmian. Jeli nowe ustawienia oka si bdne, bdziesz mg wrci do poprzednich, zastpujc plik konfiguracyjny kopi bezpieczestwa. Nie zapisuj kopii bezpieczestwa w tym samym folderze, w ktrym przechowywany jest eonfiguration.php. Jeli nazwiesz kopi przykadowo configuration.backup", haker moe wpisa adres URL odwoujcy si do tego pliku, a poniewa serwer WWW nie rozpozna typu pliku, jego zawarto zostanie wywietlona na ekranie hakera ujawniajc przy okazji kluczowe informacje.
61
Uruchom aplikacj M y S Q L Administrator lub inn aplikacj online, np. phpMyAdmin. W obu przypadkach procedura jest podobna. W programie MySQL Administrator wybierz tabel jos users w bazie Joomla!. Zwr uwag, e dostp do poprawnie zabezpieczonej bazy danych, czyli take do tabeli jos users, wymaga posiadania uprawnie administratora lub roota. Jeli nie masz wymaganych uprawnie, popro administratora systemu, aby zresetowa Twoje haso (jeli zdarzyo Ci si je zapomnie) lub nadal niezbdne uprawnienia. Po klikniciu prawym przyciskiem pojawi si menu kontekstowe zawierajce opcj Edit Table Data, jak zilustrowano to na rysunku 2.14. ysunek 2.14.
'o klikniciu irawym przyciskiem os_users wybierz menu opcj dit Table Data
Schema Tables Schema Indices Views Stored procedures
.:
joomlal 5 All tables of the joomlal 5 schema Engine MjjISAM MylSAM Myl SAM MylSAM MylSAM MylSAM MylSAM MylSAM MylSAM MylSAM MylSAM MylSAM MylSAM MylSAM MylSAM Rows 6 0 0 0 41 33 8 32 1 12 11 0 3 1 8 2 Data length 352 B OB OB OB 6,8 kB 237 B 1,1 kB 2,6 kB 60 B 320 B 275 B OB 400 B 1,5 kB OB 40 B Index len.. 3 kB 1 kB 1 kB 1 kB 4 kB 2 kB 4 kB 3 kB 2 kB 3 kB 3 kB 1 kB 3 kB 5 kB 1 kB 3 kB 3 kB Update time 2088-10-23 23:22:42 2008-10-29 23:18:36 2008-10-29 23:16:36 2008-10-29 23:16:36 2008-10-29 23:22:42 2008-10-29 23:22:42 2008-10-29 23:22:42 2008-10-28 23:22:42 2808-10-29 23:22:42 2008-10-28 23:22:42 2008-10-28 23:22:42 2808-10-29 23:16:36 2808-10-28 23:22:42 2008-18-28 23:22:42 2008-18-28 23:16:36 2008-18-29 23:22:42 11 P 1 r M 1 i 1 rM 2008-18-29 23:22:42 v
A
Table Name ios_menuJypes jos_messages jos_messages_cfg |os_migration_backli... ios^modules jos_modules_menu jos_newsfeeds ios_plugins jos_polls jos_poll_data |os_poll_date ios_pollj"nenu jos_sections |os_session jos_stats_agents
I i L
^ ilHMWII 1
792 B
l'B^Hi
W rezultacie powinno pojawi si okno edytora tabeli z wywietlon aktualn list uytkownikw Joomla!. W moim przypadku musiaem zresetowa haso administratora, dlatego wyszukaem wiersz, dla ktrego pole username (nazwa uytkownika") odpowiadao wartoci admin. Przewi zawarto okna w prawo, dopki nie pojawi si kolumna oznaczona password, w ktrej umieszczone s skrty hase. Wybierz pole, ktrego warto chcesz zmieni, a nastpnie, jeli korzystasz z systemu Windows, nacinij klawisz F2. Wprowad teraz skrt MD5 nowego hasa. Poniszy skrt odpowiada sowu haso" 4 :
207023ccb44feb4d7dadca005ce29a64
Po wprowadzeniu tego dugiego tekstu kliknij zakadk Apply Changes na dole okna, jak przedstawiono to na rysunku 2.15.
62
Rysunek 2.15.
Wprowad znany skrt MD5 i zapisz zmiany w tabeli
jooinlallS
Schemata password use . i cdcol information_schema joomldl 5 jos_banner jos_bannerclient : |os_bannertrack : |os_calegories i jos_components jos_contact_details |os_content a jos_content_frontpage a :
omlaJ umpstarl.com
Skadnia Data Definition Statements Data Manipulation Statements MySQL Utility Statements MySQL Transactional and Locking ... Database Administration Statements ; Replication Statements SQL Syntax for Prepared Statements
Moesz teraz zalogowa si na konto, dla ktrego zmieniae haso, wprowadzajc sowo haso" jako haso. Niezwocznie zmie haso na bezpieczniejsze. Jeli nie masz dostpu do programu MySQL Administrator lub wolisz korzysta z tekstowego interfejsu MySQL, uyj poniszej komendy:
UPDATE josjjsers SET password^207023ccb44feb4d7dadca005ce29a64' WHERE name='admin';
Zwr uwag, by w miejsce admin wstawi odpowiedni nazw uytkownika. Ten kod zamieni aktualne haso na haso". Moesz teraz dostrzec, jak proste byoby da hakera wamanie do systemu Joomla!. Dlatego kluczowe jest zabezpieczenie instalacji MySQL. Wykorzystaj wskazwki i sugestie zawarte w rozdziale 14.
63
Po ukoczeniu prac nad stron powiniene j przenie na serwer produkcyjny (zwany take serwerem wdroeniowym). Moe by to zdalny serwer WWW (oferowany np. przez SiteGround.com) lub inna maszyna, ktra zostaa odpowiednio zabezpieczona. W rodowisku testowym wane jest wywietlanie jak najwikszej iloci informacji, dokadnych komunikatw o bdach, monitorowanie wydajnoci i prb dostpu. Wczenie tych opcji negatywnie wpywa na wydajno systemu, poniewa powoduje zuycie dodatkowych zasobw. Dlatego ich stosowanie nie jest zalecane w rodowisku produkcyjnym. Wszystkie komunikaty systemu w rodowisku produkcyjnym powinny by przechowywane w ukryciu, poniewa ich ujawnianie uatwi hakerowi wamanie. Jeli pracujesz na platformie Windows, moesz wykorzysta dedykowane rozwizanie do testowania stron opartych na Joomla!. Joomla Standalone Server (JSAS) to poczenie serwera Apache, PHP, MySQL i Joomla!, ktre nie wymaga praktycznie adnej konfiguracji. Dodatkowo moliwe jest jednoczesne uruchamianie kilku stron na jednej maszynie i zarzdzanie nimi z poziomu pojedynczego interfejsu. JSAS moesz pobra zjsas.joomlasolutions.com.
Serwery WWW (zarwno Apache, jak i Microsoft Internet Information Server) przechowuj dokadne informacje na temat wystpujcych problemw w dzienniku bdw. Analiza pliku dziennika moe okaza si niesamowicie przydatna w rozwizywaniu nie tylko duych problemw, ktre blokuj dziaanie strony, lecz take mniejszych, ktre czsto pozostaj niezauwaone. Przykadowo gosowanie w sondzie powinno zakoczy si zapisaniem oddanego gosu w odpowiedniej tabeli. Jeli wystpi bd, poniewa nie istnieje tabela o danej
64
U Joomla! Domylne konto superadministratora Joomla! nosi nazw admin. Dziki zmianie tej nazwy, np. na jadmin, haker w pierwszym odruchu nie zdobdzie poowy danych niezbdnych do zalogowania si na konto administratora. Domylna instalacja MySQL jest dobrze zabezpieczona. Powiniene zmieni jak najwicej domylnych ustawie dostpu (np. port dziaania MySQL), co uniemoliwi hakerowi zgadnicie (na podstawie najczstszych wartoci) czci informacji niezbdnych do penetracji systemu.
Wszystkie przykadowe hasa wykorzystane w tej ksice powinny zosta zmienione. Materiay zawarte w tej ksice s dostpne dla kadego, kto j kupi. Nazwy kont i hasa umieszczone w tej ksice mog zosta dodane przez hakera do sownika, ktry zostanie wykorzystany do zautomatyzowanego ataku na hasa. Zmie wszystkie hasa pochodzce z tej ksiki, zanim zdecydujesz si upubliczni stron.
Komunikaty o bdach dostarczaj wskazwek na temat wewntrznej struktury strony WWW, wczajc w to nazwy folderw, baz danych, tabel itd. Podczas gdy informacje diagnostyczne maj kluczowe znaczenie w rodowisku testowym, na serwerze produkcyjnym mog pomc hakerowi wama si do systemu. Dlatego zawsze sprawdzaj, czy wywietlanie komunikatw o bdach zostao ograniczone w rodowisku produkcyjnym.
65
odsumowanie
Instalacja i konfiguracja Joomla! wydaje si prosta, dopki nie natrafi si na problemy. W tym rozdziale opisano sposoby instalacji i konfiguracji Joomla!, a w szczeglnoci: Opcje konfiguracyjne serwera Apache w pliku httpd.conf, a take dyrektywy, dziki ktrym mona usprawni dziaanie Joomla!. Sposoby na popraw wydajnoci serwera przez zmian ustawie zgaszania i zapisywania komunikatw systemowych. Dziki zwikszeniu liczby komunikatw moesz atwiej zdiagnozowa rda obecnych i potencjalnych problemw. Udoskonalanie konfiguracji PHP przez zmian ustawie w pliku PHP.ini. Odpowiednie zmiany mog zapobiec przekroczeniom limitu czasu, a take udoskonali zabezpieczenia. Obszerny proces instalacji MySQL, wczajc w to bezporedni manipulacj baz danych, co daje szerokie moliwoci, od tworzenia raportw, po resetowanie hase. Zastosowanie serwera testowego, co uatwia dokadne sprawdzenie i usunicie bdw strony Joomla! bez koniecznoci publikacji w internecie oraz pozwala unikn zwizanych z tym zagroe. Migracj ze rodowiska testowego do rodowiska produkcyjnego.
Waciwa, drobiazgowa konfiguracja strony Joomla! nie sprowadza si wycznie do ustawienia serwera pod ktem wydajnoci. Wizerunek profesjonalnego i solidnego portalu wymaga take waciwego wygldu. W rozdziale 3. dowiesz si, jak samodzielnie wykona atrakcyjny szablon, ktry moe suy za wzorzec dla kolejnych, ktre stworzysz w przyszoci.
66
3
Tworzenie wasnych szablonw
Moliwo wykorzystania szablonw jest jednym z kluczowych powodw, dla ktrych Joomla! jest tak popularny na wiecie. Stron, ktrej wygld zasuguje na okrelenie mierny", mona w cigu piciu minut zmieni w imponujc witryn dziki profesjonalnym szablonom. Kwitncy rynek szablonw jest jednym z kluczowych segmentw dziaalnoci zwizanej z Joomla!. Wiele stron wykorzystuje model miesicznej subskrypcji, podczas ktrej klient moe pobiera dowolne szablony bdce w ofercie. Taki model gwarantuje zapotrzebowanie na nowe szablony, ktre su utrzymaniu zainteresowania abonentw. W tym rozdziale dowiesz si, jak od podstaw stworzy szablon, a pniej wykorzysta arkusze stylw, aby wprowadzi zoony ukad strony. Wikszo darmowych szablonw opiera si na jednej podstronie, ktra wykorzystywana jest na caej witrynie. Poznasz sposoby tworzenia grup szablonw, dziki czemu nadasz swoim stronom profesjonalny wygld, a zastosowanie arkuszy stylw pozwoli Ci ksztatowa spjny wizerunek lub mark strony internetowej. Zanim zaczniesz tworzy szablony, warto przyjrze si ich strukturze. Dokadne zrozumienie tego zagadnienia uatwi Ci projektowanie wasnych i edycj istniejcych, poniewa struktura szablonu nie rni si znaczco w poszczeglnych przypadkach.
Struktura szablonu
Szablony Joomla! mog skada si z dowolnej liczby plikw i folderw, chocia zastosowanie si do przyjtych norm pozwala jednakowo postpowa z kadym szablonem. Dziki temu mona zmieni wygld i zewntrzn funkcjonalno strony Joomla!, wybierajc po prostu inny szablon. Dopki zawiera on miejsce na wywietlenie komponentu, a take kilka typowych pozycji moduw, mona wykorzystywa go zamiennie z innymi. Z tego powodu musisz wiedzie, jakie foldery powinien zawiera szablon (czsto jest s do dwa foldery \css i 1 image), a take jakie pliki (index.php, template.css i templadeDetails.xml), aby mona byo z niego poprawnie i bezproblemowo skorzysta. Istnieje te grupa nieobowizkowych plikw (parameters.ini i template thumbnail.png), ktre uatwiaj zarzdzanie
68
Pliki i foldery
Wszystkie szablony instalowanie na stronie Joomla! s zapisywane w katalogu \templates, ktry znajduje si wewntrz gwnego katalogu strony Joomla!. Folder 1 templates zawiera po jednym podkatalogu dla kadego zainstalowanego w systemie szablonu. Nazwa folderu musi dokadnie zgadza si z nazw szablonu, take pod wzgldem wielkoci liter. Przykadowo szablon rhukjnilkyway musi znajdowa si w folderze \rhuk milky way. Cho jest moliwe, by tylko jeden plik stanowi cay szablon (index.php), to nawet najprostsze z nich skadaj si przynajmniej z czterech plikw (index.php, template.ess, templateDetails.xml i banner jpg). Wikszo opiera si jednak na liczniejszej grupie plikw, np. dodatkowych arkuszach stylw i obrazkach, pomocniczej grafice (sucej do tworzenia zaokrglonych rogw, elementw oddzielajcych itd.). Kademu gwnemu plikowi przypisano oddzieln funkcj: index.php Zawiera logik szablonu, miejsce na wywietlenie komponentu i moduw. W tym pliku czsto znajduje si take odwoanie do skryptw JavaScript, wzbogacajcych funkcjonalno strony. Niestety, wiele szablonw umieszcza w tym pliku te informacje o ukadzie, np. wielokolumnowe tabele, obrazki i formatowanie tekstu. Waciwym miejscem dla definicji ukadu i wygldu s arkusze stylw. template.ess Okrela krj pisma1, kolory, pozycjonowanie, obrazki i inne aspekty warstwy prezentacji danego szablonu. Poniewa wszystkie gwne przegldarki obsuguj technologi CSS, arkusz stylw umieszczony w tym pliku pozwala zdefiniowa praktycznie kady aspekt, od ukadu kolumn, po formatowanie list. templateDetails.xml Przechowuje metadane na temat szablonu, ktre wykorzystywane s podczas instalacji, a take zarzdzania w interfejsie administracyjnym Joomla!. Zapisano w nim list wszystkich plikw, z ktrych skada si szablon, informacje o autorze i publikacji, a take parametry, ktre moe zmienia za pomoc interfejsu administratora. banner.fff Chocia nie jest absolutnie wymagana, wikszo szablonw zawiera graficzn form nagwka banner, ktra nadaje charakter szablonowi. W przypadku komercyjnych szablonw ich konstrukcja umoliwia wykorzystanie w ich miejsce logo, znaku handlowego lub nazwy strony, co sprawia, e strona wyglda jakby bya projektowana na zamwienie. Banner zapisywany jest zazwyczaj w formacie JPG lub PNG (co odpowiada rozszerzeniom jpg i png w miejsce f f f podanego wyej). template.ess
69
Prawie wszystkie szablony Joomla!, ktre poznasz w przyszoci, zawieraj co najmniej te podstawowe foldery i pliki. Dziki zachowaniu opisanej wyej struktury szablony mona atwo wykorzysta w systemie Joomla!. W przeciwiestwie do moduw i komponentw, ktre trzeba instalowa w interfejsie administratora (dziki czemu niezbdne ustawienia zostan zapisane w bazie danych), aby wykorzysta szablon na stronie, wystarczy skopiowa go do folderu 1 templates. Szablony zawieraj czsto dwa dodatkowe foldery: 1 html Przechowuje pliki, ktre zmieniaj wygld dodatkw systemu Joomla!. Wicej informacji na ten temat znajdziesz w podrozdziale Modyfikacja wygldu dodatkw". \javascript Zawiera kod JavaScript wykorzystywany w szablonie.
Szablony dostpne s zazwyczaj w postaci archiwum .zip lub .tar, ktre zawiera pliki w odpowiednich podkatalogach. System Joomla! korzysta z biblioteki Zlib, aby rozpakowywa archiwa .zip, ktre dodano na stron za porednictwem opcji Instaluj Rozszerzenia. Wypakowane pliki i foldery umieszczane s w katalogu o nazwie odpowiadajcej nazwie szablonu. Najwaniejszym z tych plikw jest index.php, ktry przechowuje ca gwn logik szablonu.
Powyszy kod HTML nie jest raczej zgodny z wytycznymi standardu World Wide Web Consortium (W3C), ale spowoduje wywietlenie powitania Hello World!" 2 na stronie Joomla!.
Dosownie: Witaj, wiecie!", wywietlenie tej frazy stanowi w literaturze czsto pierwszy przykad wykorzystania danego narzdzia czy jzyka programowaniaprzyp. tum.
70
Instrukcje Joomla!
Joomla! dziaa w oparciu o bezporednie wywoywanie kodu PHP, a aplikacja sama w sobie jest platform skadajc si z klas PHP. Poprzez odwoywanie si do obiektw Joomla!, takich jak JDocument i JDocumentHTML, moesz umieci w szablonie wynik dziaania moduw i komponentw, a take zdoby informacje na temat rodowiska, w ktrym uruchamiany jest kod.
Powyszy kod spowoduje uruchomienie metody, ktra zwrci informacje nagwkowe dla danej strony Joomla!. Moesz take wykorzysta wywoanie include do wywietlania komunikatw systemowych. Poniszy kod spowoduje wywietlenie komunikatw systemowych:
<jdoc:include type="message" />
Najczciej include wykorzystuje si do wstawienia kodu HTML moduu Joomla!. Przykadowo aby doczy wydruk moduu top (co powoduje zazwyczaj wywietlenie bannera strony), uyjesz poniszej instrukcji:
<jdoc:include type="modules" name="top" style="xhtml" />
Oprcz dyrektyw jdoc moesz wykorzysta take oglne polecenia PHP. PHP jest zaawansowanym jzykiem programowania, ktry ma bogate moliwoci od struktur sterujcych po programowanie obiektowe (OOP ang. object oriented programming). Jeli nie znasz PHP, ale rozumiesz oglne zasady programowania, powiniene poj wikszo przykadw przedstawionych w tej ksice. Mimo to polecam lektur Beginning PHP5 Apache and MySQL Web Development (Wiley, Indianapolis 2005), dziki ktrej zdobdziesz solidn wiedz na temat PHP.
71
W starszych wersjach Joomla! wykorzystywano w szablonach interpreter komend o nazwie patTempl ate jako uzupenienie dyrektyw Joomla!. W nowej wersji porzucono patTemplate, poniewa nauczenie si go wymagao dodatkowego czasu, a wykorzystanie ograniczao wydajno serwera. Zastpiono go kodem PHP, ktrego kompilacja pozwala osign jeszcze wysz wydajno pod warunkiem e nie korzysta si z dyrektyw Joomla!. Stare rozwizanie wymagao od programistw, oprcz nauki PHP, poznania take funkcji sterujcych interpretera (takich jak ptle).
Poniej znajduje si lista pozostaych pl klasy JDocumentHTML, ktrych warto mona pobra za pomoc odwoania Sthis: di recti on Informuje o kierunku czytania, od prawej do lewej (przyjmuje warto Itr3), od prawej do lewej (przyjmuje warto rtl) itd. templ ate Okrela ciek dostpu do katalogu szablonu. titl e Przechowuje tytu dokumentu. descri pti on Zawiera opis dokumentu (z metadanych HTML). link Wskazuje adres URL dokumentu. 1 anguage Okrela jzyk dokumentu, np. angielski (przyjmuje wtedy warto en).
Klasa JDocumentHTML zawiera take kilka uytecznych metod, ktre mona wykorzysta podczas tworzenia szablonu. Za porednictwem operatora $thi s mona wywoa na przykad metod countModules(), dziki ktrej okrelisz liczb moduw na danej stronie. Aby pobra liczb wystpie pojedynczego moduu, naley wywoa metod, jak pokazano to poniej:
$this->countModules('userl');
Poniszy kod sprawdza, czy obszar top zawiera jakie moduy. Jeli tak, zostan one wywietlone, w przeciwnym razie zostanie wstawiony obrazek zastpczy (ang. placeholder).
' ang. left-to-right przyp. tum.
72
P a r a m e t r y szablonu
System Joomla! umoliwia dodanie parametrw szablonu, ktre mona nastpnie ustawi w interfejsie administratora (wicej szczegw znajdziesz w podrozdziale Zmienne szablonu: plik parametrw"). Zmiana wartoci tych parametrw moe wpywa na wygld i funkcjonalno szablonu. Domylny szablon pozwala okreli, za pomoc parametru showComponent, czy Komponent ma by wywietlany na stronie. Wewntrz szablonu znajduje si kod, ktry odczytuje warto parametru, a nastpnie okrela, czy komponent zostanie wywietlony:
<?php if($this->params->get('showComponent')) <jdoc:include type="component" /> <?php endif; ?> : ?>
Pamitaj, e operator Sthis odwouje si do obiektu, w zakresie ktrego uruchamiany jest dany kod. Dlatego odwoanie Sthis w kodzie komponentu odnosi si do zupenie innego obiektu ni w przypadku szablonu. Aby zapobiec bezporedniemu uruchomieniu (szczeglnie przez hakerw) kodu Joomla! z pominiciem systemu, powiniene wstawi ponisz lini przed wprowadzeniem waciwego kodu PHP.
definedC'_JEXEC') or dieCBrak dostpu');
Powyszy kod sprawdza, czy staa _JEXEC zostaa zdefiniowana, w przeciwnym wypadku wywietli komunikat o braku dostpu i zakoczy uruchamianie kodu. Powysza instrukcja jest bardzo wana z punktu widzenia bezpieczestwa Joomla!. Zanotowano przypadki wama na strony Joomla! z wykorzystaniem stron zawierajcych kod PHP (takich jak pliki szablonw), ktre nie zawieray powyszej dyrektywy. P r y m i t y w n y index.php Prymitywny przykad wszystkich tematw poruszonych do tej pory wygldaby podobnie do poniszego:
<?php definedC ?> JEXEC') or dieCBrak dostpu');
<?xml version="1.0" encoding="utf-8"?> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>" > <head> <jdoc:include type="head" /> </head>
73
Powyszy kod rozpoczyna si sprawdzeniem, czy uruchamiany jest wewntrz platformy Joomla!. Jeli nie, wykonywanie zostaje przerwane. Nastpnie wartoci pl language i dir wprowadzane s do atrybutw znacznika <html >. W nagwku umieszczone zostaje odwoanie do informacji jdoc head. Tre dokumentu HTML rozpoczyna si wydrukiem komunikatw systemowych (ktre zazwyczaj nie wystpuj). Teraz, po wywietleniu powitania Hello World!", zostaje wywietlony modu dla pozycji top, o ile j okrelono. W przeciwnym wypadku wywietla si plik placeholder.gif. Ostatnim elementem powyszego kodu jest sprawdzenie wartoci parametru showComponent, i jeli zosta ustawiony na True, doczenie wydruku komponentu. Chocia kod w powyszej postaci nie zadziaa samodzielnie (do poprawnego funkcjonowanie wymagane jest przynajmniej stworzenie parametru showComponent), ale pozwoli Ci lepiej zrozumie struktur szablonu ni minimalny szablon Hello World! przedstawiony wczeniej.
74
W pliku CSS mona okrela styl dla dwch typw elementw: blokowych i liniowych. Element}' liniowe traktowane s jak zwyky tekst i nie wpywaj na ukad szablonu. Przykadem takich elementw s znaczniki <B>, <I> lub <SPAN>4. Elementy blokowe okrelaj konkretny obszar, np. z uyciem znacznikw <P>, <TR>, <DIV> lub <TABLE>. Podczas projektowania ' szablonu zwr uwag na odpowiedni dobr elementw. Odwoanie do pliku arkusza stylw wymaga wstawienia poniszych dwch linii w nagwek pliku index.php'.
<link rel="stylesheet" href="templates/_system/css/general .ess" type="text/css" /> <link rei"stylesheet" href="templates/<?php echo $this->template; ?>/css/template.css" type="text/css" />
Pierwsza linia powoduje doczenie podstawowych stylw systemu Joomla!. Okrelaj one wygld takich podstawowych elementw HTML, jak znacznik <body>. Druga linia odwouje si do gwnego pliku CSS dla danego szablonu (tradycyjnie ten plik nosi nazw template.ess).
Wbudowane style
Stworzenie poprawnego arkusza stylw, ktry mona nastpnie wykorzysta w Joomla!, wymaga odpowiednich nazw stylw. Style dla elementw takich jak komponenty zawieraj w swojej nazwie stosown informacj. Przykadowo wygld tytuu komponentu (zobacz rysunek 3.1) okrela si przez odwoanie do stylu componentheadi ng.
Jeli chciaby wywietli tytu szablonu z dolnym obramowaniem w kolorze biaym o szerokoci jednego piksela i z tekstem w kolorze czerwonym, powiniene umieci ponisz definicj stylu w pliku CSS:
W przypadku szablonw Joomla!, ktre s w gwnej mierze plikami XHTML, znaczniki naley pisa
75
class="contentpaneopen"
J o o m l a !
class="pill" L '
Stiert litourf,: Fe.uier Hews I I ' Community
class="breadcrumbs
J?puli"
pclass="search" 1
Niektre style nie s wywietlanie na stronie, poniewa nie zostay zdefiniowane. Z tego powodu pozostaj niewidoczne. Dobrym przykadem jest styl article_separator. Poniewa wiele szablonw nie zawiera jego definicji, nie pojawia si on na stronie. Ponisza definicja spowoduje wywietlanie zielonego separatora o szerokoci dwch pikseli midzy kolejnymi artykuami:
,article_separator { margin: 10px 0: border: 2px solid #00FF00;
System Joomla! zawiera ogromn liczb stylw. Wiele z nich wykorzystywanych jest w szablonie doczonym w domylnej instalacji Joomla!. Na rysunku 3.1 przedstawiono domylny szablon wraz z zaznaczonymi poszczeglnymi stylami. Zwr uwag na miejsca, w ktrych s wykorzystywane. Wbudowane style mona podzieli na trzy gwne kategorie: tre, administracja i rozszerzenia. Do kategorii tre nale ponisze style:
article_separator author content_emai1 content_rating contet vote
76
Dla kategorii a d m i n i s t r a c j a m o n a o d w o y w a si d o n a s t p u j c y c h stylw: adminform cl r date input inputbox outline pagenav pagenavjiext pagenav_prev pagenavbar pagenavcounter pathway
Dla kategorii r o z s z e r z e n i a m o n a o d w o y w a si d o poniszych: bannerfooter bannergroup bannerheader banneritem blog blog_more blogsection button buttonheading
77
Nie musisz definiowa wszystkich wyej wymienionych stylw. Minimum w przypadku szablonu to zazwyczaj definicja stylu body, ktry okrela, jak zostanie wywietlony na stronie tekst, ktremu nie przypisano innego stylu. Definicja stylu body bdzie znajdowa si na samym pocztku pliku CSS i bdzie przypomina:
.body { font: 0.7em/l.5 Verdana. Arial, Helvetica, sans-serif;
}
Wykorzystanie stylu body pozwala na okrelenie fontu bez koniecznoci ingerencji w plik index.php, dziki czemu mona oddzieli warstw prezentacji, ktrej opis przechowywany jest w pliku arkusza stylw. Dobrym pomysem jest take odwoanie do obrazkw wycznie w ramach arkusza.
78
Waniejszym zagadnieniem jest jednak problem techniczny: wzgldny adres URL. Adres obrazka musi zosta okrelony tak, aby przegldarka bya w stanie znale waciwy obrazek. W przypadku szablonu katalog images znajduje si na tym samym poziomie co katalog css Dlatego, aby z poziomu arkusza stylw odwoa si do obrazka, trzeba skonstruowa ciek, ktra odwoa si do katalogu images, znajdujcego si poziom wyej:
background: url (.,/images/bottomleft.gif)
Kady szablon potrzebuje pliku z metadanymi, ktry zawiera podstawowe informacje o autorstwie (nazw szablonu, autora, prawa autorskie itd.), list plikw i ewentualne parametry, ktre mona okreli z poziomu interfejsu administratora.
Na listingu 3.1 przedstawiono przykadowy plik ze szczegami szablonu. Puste linie su do oddzielania czterech czci pliku.
Listing3.1. Standardowy plik ze szczegami skada si zazwyczaj z trzech sekcji: informacji o autorstwie, listy plikw i parametrw
<?xml version="l.0" encoding="utf-8"?> <instal 1 version="1.5" type="template"> <name>Szablon dwukolumnowy</name> <description> Dwie kolumny z uyciem CSS w wiecie Joomla! </description> <files> <fi1ename>i ndex.php</fi1ename> <fi1ename>templateDetai1s.xml</fi1ename> <fi 1 ename>images/LSlogo.jpg</fi1ename> <fi 1 ename>css/template.css</fi 1ename> </files> <positions> <posi t i on>left</posi ti on> <posi tion>right</positi on> </positions> <param name="showComponent" type="radio" default="l" label="Poka komponent" description="Poka/ukryj wydruk komponentu"> <option value="0">Nie</option> <opti on value="1">Tak</opt ion> </param> </install>
Pierwsza sekcja zawiera informacje o autorstwie szablonu. Poza sam nazw inne pola nie s wymagane. Jeli nie zostan okrelone, w interfejsie Joomla! pojawi si unknown zamiasi stosownej wartoci.
79
Druga cz pliku jest duo waniejsza, poniewa przedstawia list plikw, z ktrych skada si szablon. Lista wykorzystywana jest przez instalator do wypakowania plikw z archiwum i umieszczenia ich w odpowiednich folderach. Poza tym wykorzystywana jest wycznie podczas usuwania szablonu. Trzecia sekcja to lista moliwych pozycji moduw, ktre umieszczono w szablonie szablon. Zwr uwag, e s to tylko informacje dla uytkownika nie wpywaj na przypisanie pozycji w interfejsie administratora. Czwarta sekcja opisuje parametry wykorzystywane przez szablon. Parametry to zmienne wpywajce na dziaanie szablonu, ktrych warto mona ustawi z poziomu interfejsu administratora. Najczciej parametry wykorzystywane s do okrelenia opcji wpywajcych na prezentacje, np. kolor ta. Wartoci zapisywane s w pliku parametrw, ktry opisano w kolejnym podrozdziale.
Wartoci parametrw zapisywane s w formacie INI, dziki czemu plikiem mona manipulowa za pomoc zwykego edytora tekstowego. Najlepszym rozwizaniem jest jednak zmiana wartoci za pomoc opcji Szablony w interfejsie administratora, jak to przedstawiono na rysunku 3.2. Parametry szablonu wykorzystywane s najczciej do tego, aby umoliwi ustawianie opcji wpywajcych na prezentacj, takich jak schemat kolorw, liczba kolumn w ukadzie szablonu, szeroko kolumn itd. Dziki parametrom szablony staj si bardziej przyjazne uytkownikom, poniewa ingerencja w wygld nie wymaga rcznej edycji plikw. Warto parametrw mona odczyta w szablonie, wykorzystujc instrukcj analogiczn do $this->params->get( 'showComponent'), ktr zademonstrowano wczeniej w tym rozdziale. Dziki parametrom moesz nada szablonowi wiksz elastyczno.
80
Rysunek 3.2.
Moesz ustawi parametry szablonu, wybierajc go z listy w czci Szablony
[ Zmie ]
K
Podgld
u
Edytuj HTML.
u
Edytuj CSS Zapisz
y
Zastosuj
o
Zamknij
o
Pomoc,
Maksymalna szeroko V
Miniatura szablonu
W interfejsie administracyjnym, w czci Szablony po najechaniu kursorem myszy na nazw szablonu zostanie wywietlona w maym okienku jego przykadowa miniatura, o ile jest ona dostpna. W przypadku wikszoci szablonw miniatura przedstawia tylko gwny fragment strony, jak zilustrowano to na rysunku 3.3. Aby przyci niepotrzebne paski narzdzi, paski przewijania i inne niepotrzebne elementy, ktre nie s czci szablonu, moesz uy programu graficznego, np. aplikacji Adobe Photoshop lub darmowego GNU Image Manipulation Program, czyli w skrcie: GIMP (www.gimp.org). Rysunek 3.3.
Wielko pliku template_thumbn ail.png powinna wynosi okoo 200x150 pikseli
Miniatura powinna zosta zapisana pod nazw template thumbnail.png w gwnym katalogu danego szablonu. Zwr uwag, e musi to by gwny katalog, a nie podkatalog taki jak images. Aby stworzy miniatur, naley wykona zrzut ekranu, na ktrym wida Twj szablon, a nastpnie przyci go i zmniejszy do rozmiaru okoo 200x150 pikseli. Sposb wykonania zrzutu ekranu bdzie si rni w zalenoci od systemu operacyjnego.
81
W systemie Windows moesz wykorzysta klawisz Print Screen (czsto oznaczony na klawiaturze jako PrtSc), co spowoduje umieszczenie zrzutu ekranu w schowku. Wcinicie i przytrzymanie klawisza Alt, a nastpnie nacinicia klawisza Print Screen spowoduje skopiowanie zrzutu aktywnego okna, zamiast caego ekranu. Po tej operacji moesz wklei zawarto schowka do wybranego programu graficznego. Jeli tworzysz sporo szablonw, moesz rozway wykorzystanie komercyjnego programu do wykonywania zrzutw ekranw, np. Snaglt (www.techsmith.com/snagit.asp). Zawiera on bogate funkcje, w tym automatyczne przycinanie i zmian rozmiaru. W przypadku Macintosha zrzut ekranu zostanie zapisany na dysku twardym komputera po jednoczesnym naciniciu klawiszy Shift+Apple+3. Aby zapisa tylko wybrany fragment ekranu, naley nacisn kombinacj Apple+Shift+4. Kursor przybierze ksztat krzya, co oznacza, e moesz zaznaczy fragment ekranu, ktrego zrzut zostanie wykonany. W systemie MacOS zawarto take narzdzie o nazwie Grab, ktre zawiera szereg opcji zwizanych z wykonywaniem zrzutw. Program mona znale w menu Applications/Utility. Dla Linuksa napisano wiele programw sucych do tworzenia zrzutw. Jeli korzystasz z interfejsu XWindows, moesz wykorzysta program xvidcap (http://sourceforge.net/project/ xvidcap/). Uytkownicy GTK+ mog uy programu Gsnapshot (http://sourceforge.net/ projet/gsnapshot). Po wykonaniu zrzutu ekranu naley skorzysta z programu graficznego, aby zmniejszy obraz do odpowiednich rozmiarw i zapisa go w formacie PNG. Gotow miniatur zapisz w gwnym katalogu swojego szablonu pod nazw templatejhumbnail.png. Od teraz miniatura szablonu bdzie automatycznie wywietlana w interfejsie administratora Joomla! po najechaniu kursorem myszy na nazw szablonu w czci Szablony.
82
Aby nie zajmowa si pniej przygotowaniami, utwrz od razu foldery css i images w katalogu szablonu. Do momentu ukoczenia szablonu znajdzie si w nich wiele plikw, arkusze stylw, grafiki pomocnicze, a take logo strony.
83
Potrzebujesz take podstawowy plik templateDetails.xml, aby mc przeprowadza testy w czasie tworzenia szablonu. Joomla! wykorzystuje ten plik, by zdoby informacje na temat szablonu, a take umoliwi jego wybr za pomoc opcji Szablony. Wprowad poniszy kod i zapisz go w pliku templateDetails.xml, w katalogu Twojego szablonu:
<?xml version="1.0" encoding="utf-8"?> <1nstal1 version"1.5" type="template"> <name>Trzy Kolumny</name> <description> Wzorzec szablonu o ukadzie trj kolumnowym </description> <files> <fi 1ename>i ndex.php</fi 1 ename> <f i 1ename>templateDetai1s.xml</fi1ename> </files> <posntTons> <position>userl</position> <position>right</pos i ti on> </positions> </1nstal1>
Po utworzeniu podstawowej struktury szablonu moesz przej do etapu konstruowania logiki szablonu. Pierwszym krokiem jest stworzenie prototypowego pliku index.php.
84
Rysunek 3.4.
Strona gwna wywietlona z wykorzystaniem trjkolumnowego wzorcowego szablonu
Maili Menn
Home
Welcome to the Frontpage Welcome to Joomla! Wpisa Administrator czwartek, 12. padziernik 2006 10:00 .Joomla) is a free open source framework and content publislimg system designed for quickly treating highly interactive multi-language Web sites, online communities, media poitals, blogs and eCommerce applications. loiJldl v is used for? ) Community Sites Public Brand Sites ) eCommerce O Blogs . Intranets Photo and Media Sites : ; All of the Above! [_Gtosuj I
I vVymk j
[ X ] [5J
Foils
Joomla!
Overview
Joomla! > FAO ' The News Web Links ' News Feeds
Joomla! provides an easy-to-use graphical user interface that simplifies the management and publishing of large volumes of content including HTML, documents, and rich media. Joomla! is used by organisations of all sizes for Public Web sites. Intranets, and Extranets and is supported by a community of thousands of users.
Powered fcjy
Joomla!
Sticktothi
[DDL]
Wpisa Administrator
Key Concepts
cocie
release,
Ailvei-lisemellf |
W podstawowym ukadzie trjkolumnowym w lewej kolumnie wywietlony zostanie modu userl, ktry zawiera menu z najnowszymi wiadomociami. rodkowa kolumna zawiera tre artykuu, a w prawej wywietlany jest modu przypisany do r i g h t , co w domylnej instalacji Joomla! odpowiada sondzie. Jeli w interfejsie administracyjnym po wybraniu szablonu wzorcowego klikniesz przycisk Podgld, na ekranie pojawi si szablon wraz z zaznaczeniem poszczeglnych moduw, jak przedstawiono to na rysunku 3.5. Rysunek 3.5.
Kliknicie przycisku Podgld spowoduje wywietlenie szablonu wraz z oznaczeniem moduw k r iiuiWei"
Welcome to the Frontpage Welcome to Joomla! Wpisa Administrator czwartek, 12. padziernik 2006 10:00 LJoomla! is a free open source framework and content Vublishmg system designed foi quickly creating lugldy interactive multi-language Web sites, onlnie communities lilpdia poitals, blogs and eCommerce applications
Joomla! provides an easy-to-use graphical user interface that simplifies the management and publishing of large volumes of content including HTML, documents, and rich media. Joomla! is used by organisations of all sizes for Public W e b sites, Intranets, and Extranets and is supported by a community of thousands of users. Zmiemony ( czwartek, 08. listopad 2007 12:06 )
Powei W
^^ J o o m l a !
version i >
Wigcej
0 S S
Stick t0
Code!
0 E3 S
Wpisa Administrator roda, 07. lipiec 2004 12:00 Wile o J a n s e n r e s o r t e d t o s ending rum to joint lead-developer Johan Jans sens. Johan, who's had a
roda, 07. lipiec 2004 09:54 of volunte er develop ers, designers, administrators and managers who, together with a
85
Domylna instalacja Joomla! zawiera moduy login, polling, who is online, syndication i search. Kady z nich zostanie dokadniej opisany w kolejnych rozdziaach. Istnieje moliwo zaczenia dodatkowych moduw w postaci rozszerze. Aby stworzy szablon Trzy Kolumny, wprowad poniszy kod, a nastpnie zapisz go pod nazw index.php w katalogu szablonu:
<html> <head> <jdoc:include type="head" /> <style> #colLeft { float:left: width:15X: border:lpx solid black: padding:5px:
</style> </head> <body> <jdoc:include type="message" /> <div id="logo"> </div> <div id="colLeft"> <jdoc:include type="modules" name="left" style="xhtml" /> <div class="ArticleFooter"><p> :</p> </div> </div> <div id="colCenter"> <jdoc:include type="component" /> </div> <div id="colRight"> <jdoc:include type="modules" name="right" style="xhtml" /> <di v class="Arti cleFooter"><p> </p></di v> </div> <jdoc:include type="modules" name="debug" /> </body> </html>
86
Szablon powinien by teraz gotowy do testw. Otwrz opcj Szablony, a na licie powiniene znale szablon Trzy Kolumny. Kliknij przycisk opcji po lewej stronie tego szablonu, a nastpnie kliknij przycisk Domylnie. W kolumnie Domylnie powinna pojawi si gwiazdka obok wybranego szablonu, jak przedstawiono to na rysunku 3.6. Rysunek 3.6.
Ustaw szablon Trzy Kolumny jako szablon domylny
Witryna Menu Artykuy Komponenty Rozszerzenia llaizdzia Pomoc g * Podgld
1
B'..! Szablony
WffllVlH Z.I(||CC.'.
Poniewa podstawowa cz szablonu dziaa ju poprawnie, przysza pora na udoskonalenie wygldu. Przykadowo profesjonalne szablony maj bardziej wyrafinowany ukad ni trzy proste kolumny. Jednym z elementw profesjonalnego ukadu bdzie dodanie zaokrglonych rogw.
Wikszo zabiegw w celu dodania zaokrglonych rogw sprowadza si do pracy nad arkuszem stylw. Pierwszym krokiem jest umieszczenie go w oddzielnym pliku. Zamie znaczniki <style> i </style>, a take cay kod znajdujcy si midzy dwiema poniszymi liniami:
<link rel="stylesheet" href="templates/_system/css/general .ess" type="text/css" /> <link rel="stylesheet" href="templates/<?php echo $this->template: ?>/css/template.css type="text/css" />
Dodanie tych dyrektyw spowoduje zaadowanie arkuszy stylw z zewntrznych plikw. Pierwszy odpowiada domylnym stylom sytemu Joomla!. Drugi to arkusz, ktry zostanie za chwil utworzony. Zwr uwag na kod PHP, ktry odczytuje warto pola template obiektu wskazywanego przez zmienn Sthis. Warto zostanie wstawiona w ciek dostpu przez co przegldarka bdzie w stanie znale odpowiedni plik CSS.
Wprowad poniszy kod w edytorze tekstu, a nastpnie zapisz go pod nazw template.ess w folderze ess szablonu Trzy Kolumny zaokrglone:
/* Arkusz stylw dla szablonu Trzy Kolumny zaokrglone */ /* Definicja kolumn tworzcych ukad, bez widocznego obramowania */
#colLeft { float: left; width: 151; padding: 5px:} #colCenter { float; left: width: 60$; padding: 5px; } #colRight { float: left: width: 1535: padding: 5px: }
87
/* Pierwszy znacznik div odpowiedzialny za lewy grny zaokrglony rg */ di v.modue_menu. div.module { margin-top: 10px: background: #999999 url(../images/topleft.gif) top left no-repeat: width: 9 M :
}
/* Wywietl prawy grny zaokrglony rg */ di v.modue_menu div, div.module div { background: url(../images/topright.gif) top right no-repeat: padding:0px: border-bottom: lpx solid #fff; margin:0: color: #FFFFFF:
}
/* Wywietl dolny lewy zaokrglony rg */ div.module_menu div div. div.module div div { background: url (../images/bottomleft.gif) bottom left no-repeat: padding:Opx; border-bottom: lpx solid #fff:
}
/* Wywietl dolny prawy zaokrglony rg */ div.modue_menu div div div. div.module div div div { background: url(../images/bottomright.gif) bottom right no-repeat: padding:0px: border-bottom: lpx solid #FFFFFF;
}
/* Menu i tytuy moduw pisane biaym kolorem div.modue_menu div div div h3. div.module div div div h3 { padding:lOpx: border-bottom: lpx solid #FFFFFF; margin:0: color: #FFFFFF: */
/* WIE6 lista nachodzi na zaokrglenia, ponisza definicja zapobiega temu */ div.moduejnenu div div div ul { padding-top:5px; padding-bottom:5px:
88
}
.latestnews, .menu, .keyconcepts, .othermenu { background: #cccccc top right repeat-y: margin-left:5px: padding-left:Opx: margin-right:5px: margin-top:Opx:
}
div.moduetable li, .menu li. .keyconcepts li, .othermenu In { background: #cccccc top right repeat-y; margin-left: 1.5em: padding:5px; font-size: 80:
* Powyszy zestaw stylw jest bardziej skomplikowany ni trzy style doczone wczeniej w pliku index.php. Komentarze wyjaniaj wykorzystanie poszczeglnych stylw. Zwr uwag, e wikszo z nich zastpuje podstawowe style Joomla!. Na wygld moduw i komponentw wpywa kilka stylw, m.in. modu etable i contentheading. Poprzez zastpienie tych stylw moesz dokadnie kontrolowa wygld treci na stronie.
89
Wysoko: p 00 Bozdiiefczo: 72 I r y b koloru: j RGB j piks/cal _*J j 8 bitw na kana Rozmiar obrazka: 29.3K
sunek 3.8.
'ybierz biay jako iior wypenienia
Kolejnym krokiem jest narysowanie zaokrglonego prostokta. Wybierz najpierw narzdzie rectangle, nastpnie konieczne bdzie dopasowanie kilku opcji na pasku narzdzi. Po pierwsze, jak przedstawiono to na rysunku 3.9, wybierz wypenianie pikseli, pniej zaznacz zaokrglony prostokt. Odznacz opcj Anti-aliased po prawej stronie, dziki czemu krawdzie bd ostre. Rysowany prostokt ma by w kolorze czarnym, dlatego kliknij przycisk Default Foreground and Background Color. Na koniec ustaw przyblienie na 400 procent i narysuj prostokt, ktry wypeni dostpn przestrze.
'
'
..
"" "
IZZM
SUnek 3.9. Ustaw wszystkie niezbdne opcje, a nastpnie narysuj zaokrglony prostokt, /peni dostpn przestrze
ktry
90
Pk
Edycja
Qbrazek
Carstwa
Zaznsz
Fftr
Widok
Okno
POEIX)
rw. Fw> V i
mm
J L
1 S 4 o. y
>.
4.-J
J.S
Bpi!
vi;
^ -r/-*.^{'il'H:'
i;;;-;-
iKmS'
::
: i' : !
'
' i^ f t :
Wm
Rysunek 3.10. Wycz opcj Anti-aliased dla narzdzia Magic Wand
Wybierz narzdzie do prostoktnego zaznaczania i zaznacz lewy grny rg. Z menu Image wybierz opcj Crop, co spowoduje takie przycicie obrazu, aby zawiera tylko zaznaczony wczeniej rg, jak przedstawiono na rysunku 3.11. Zapisz obraz pod nazw topleft.gif w podkatalogu images szablonu. Aby utworzy pozostae trzy rogi, musisz tylko obrci obraz i zapisa go pod odpowiedni nazw. Z podmenu Rotate Canvas w menu Image wybierz opcj Flip Horizontal i zapisz plik pod nazw topright.gif. Nastpnie wybierz opcj Flip Vertical z tego samego podmenu, a plik zapisz jako bottomright.gif. Ostatecznie uruchom ponownie polecenie Flip Horizontal i zapisz wynik jako bottomleft.gif Szablon jest ju prawie gotowy, ale jeszcze nie zamykaj programu graficznego.
Tworzenie bannera
Kolejny etap to stworzenie bannera, ktry bdzie zawiera logo i nazw strony. Opis tego procesu wykracza poza ramy tej ksiki. Jedn z szybkich metod jest wykorzystanie prostego, tekstowego logo za pomoc makr Script-Fu, doczonych do programu GIMP. W menu Xtns/Script-Fu/Logos znajdziesz list kilkudziesiciu rnych skryptw, ktre umoliwiaj
91
wprowadzenie tekstu, okrelenie podstawowych kolorw, dziki czemu uzyskasz proste, ale profesjonalnie wygldajce logo. Dla aktualnie tworzonego szablonu powiniene wykona banner o szerokoci przynajmniej 800 pikseli (eby wypenia grn cz strony) i wysokoci okoo 150 pikseli. Po jego ukoczeniu zapisz rezultat pod nazw banner.png w folderze images szablonu.
iana moduw
Pomimo e modu sondy jest domylnie wczony, wikszo stron internetowych nie zawiera sondy na stronie gwnej. Dlatego w tym podrozdziale wstawisz w miejsce sondy modu Lastest News, ktrego obecno bdzie preferowana w przypadku wikszo stron W W W . Strona Joomla! skada si z moduw, dla ktrych zarezerwowano miejsce w szablonie. W Joomla! 1.5 wprowadzono moliwo atwego okrelenia pozycji moduw dziki opcji Podgld. W czci Szablony kliknij nazw szablonu, a nastpnie kliknij przycisk Podgld, aby wywietli wybrany szablon wraz z opisanymi pozycjami moduw. Dobrym zwyczajem podczas tworzenia szablonw jest wykorzystywanie domylnych nazw pozycji, dziki czemu uytkownicy mog atwo dopasowa wywietlanie moduw. Dlatego, zanim zdefiniujesz wasne pozycje w tworzonym szablonie, zbadaj ukad ktrego z domylnych szablonw. Dziki opcji Podgld poznasz najczciej uywane nazwy pozycji, ktre powiniene umieci w tworzonym szablonie. W interfejsie administratora wybierz opcj Szablony. Przewi list do pozycji Pol 1 s, nastpnie kliknij ikon po prawej stronie, jak pokazano na rysunku 3.12. W jej miejsce pojawi si czerwony X, co oznacza e modu zosta wyczony.
92
Rysunek 3.12.
Kliknij ikon Wycz modu, aby wyczy sond
W miejsce sondy moesz wczy wywietlanie moduu Lastest News. Znajd go na licie, a nastpnie kliknij jego nazw, aby przej do ekranu zmiany. Upewnij si, e modu jest wczony i przypisany do strony gwnej, a nastpnie wybierz pozycj right, jak przedstawiono to na rysunku 3.13. Aby wprowadzi zmian pozycji, kliknij przycisk Zastosuj. Rysunek 3.13.
Ustaw opcj Pozycja na right, co spowoduje wywietlanie Latest News w prawej kolumnie
Joomtcii" www.JoomlaJumpstarf.com
Modli: [ m e ] Zi
Na danej pozycji mona umieci dowolny modu, poprzez wybranie jednej z pozycji na licie. Poniej znajduje si grupa parametrw, ktre moesz zmieni, aby dopasowa dziaanie moduu do swoich potrzeb. Jeli otworzysz teraz stron gwn, modu Lastest News powinien pojawi si w prawym grnym rogu jak na rysunku 3.14.
93
Welcome to the Frontpage Welcome to Joomla! Wpisal Administrator czwartek, 12. pazdziermk 2006 10:00 Joomla! is a f i e e open source framework and content pubbslung system designed for quickly creating lugldy mtei active multi-language Web sites, online communities license
Joomla! FAQ
U 1 H P I
Powered by
Joomla! provides an easy-to-use graphical us er inteifac e that simplifies tta management and publishing of large volumes of content including HTML,
J^ Joomla !
version 1.5
! -4 Newsflash
documents, and rich media. Joomla! is used by organisations of all sizes for Public Web sites, Intranets, and Extranets and is supported by a community of thousands of users. Zmiemony ( czwartek, 08. listopad 2007 12:06 ) Wigcei...
Joottdai Home
Joomla! Fomms Joomla! Help
Adverts tmei
Featured Links: Joomla! Joomla! The mo s popular and wide
roda, 07. lipiec 2004 09:54 of volunteer developers, designers, administrators and managers who, together with a
roda, 07. lipiec 2004 12:00 Wilco Jans en resorted to sending rum to joint lead-developer Johan Jans sens. Johan, who's had a
OSMHome \
}
Aby przypisa zmieniony styl do danego menu, otwrz Projektanta Menu w interfejsie administracyjnym. Kliknij ikon Zarzdzaj pozycjami menu po prawej stronie menu, do ktrego chcesz przypisa zmieniony styl, co przedstawiono na rysunku 3.15. W tym przypadku klikamy Main Menu, poniewa nowe pozycje tego menu pojawi si w lewej grnej czci strony. Teraz kliknij ikon Utwrz, aby doda now pozycj menu. Na ekranie pojawi si hierarchiczna lista dostpnych typw. Kliknij pozycj Artykuy, eby wywietli list dostpnych sekcji. Dodawana pozycja ma prowadzi do listy artykuw w danej sekcji, dlatego wybierz pozycj Lista Kategorie artykuw w sekcji, jak przedstawiono na rysunku 3.16. Zostaniesz przeniesiony do ekranu dodawania nowej pozycji menu, gdzie moesz ustawi jej parametry.
94
Rysunek 3.15.
Kliknij ikon Zarzdzaj pozycjami menu po prawej stronie menu, ktremu chcesz przypisa zmieniony styl
U l Projektant menu
O Q 0
Rysunek 3.16.
Kliknij Lista Kategorie artykuw, aby wybra pozycj menu tego typu
Joomlci! www.JoomlaJumpstart.com
Wprowad nazw pozycji, a w ramce Parametry: podstawowe wybierz sekcj, z ktrej bd wywietlane artykuy. Rozwi ramk Parametry: systemu, ktra znajduje si poniej. W polu oznaczonym jako Przyrostek klasy CSS wprowad bue, co zilustrowano na rysunku 3.17, i kliknij przycisk Zapisz. Jeli wejdziesz teraz na stron gwn i wybierzesz stworzon przed chwil pozycj menu, elementy komponentu zostan wywietlone w kolorze niebieskim.
95
enu: [ utwrz )
v/
i Zm""!"yp J :
:
Parametry
Pafliiietiy koinjHiiien!
P-.l.i'z';!-, \>i.
<?xml version="1.0" encoding="utf-8"?> <install version="1.5" type="template"> <name>Trzy kolumny zaokrglone</name> <version>l.0</version> <creationDate>l/20/07</creationDate> <author>Dan Rahmel</author> <authorEmai 1 >admi ntajooml a jumstart. com</authorEmai1> <authorllrl>http://www. joomla jumpstart,com</authorUrl> <copyright></copyright> <license>GNU/GPL</license> <description> Wzorzec szablonu o ukadzie trjkolumnowym </description> <files> <fi1ename>i ndex.php</fi1ename> <fi 1ename>templateDetai1 s.xml</fi 1ename> <filename>params.ini</filename> <fi 1 ename>i mages/banner.png</fi 1ename> <fi 1enarne>css/ i ndex.html</fi 1ename> <fi 1ename>css/template.css</fi 1ename> </f11es> <positions> <posi ti on>left</posi tion> <posi ti on>ri ght</posi ti on> </positions> <params> <param name="showComponent" type="radio" default="l" label="Poka komponent" description"Poka/ukryj wydruk komponentu"> <option value="0">Nie</option> <option value="l">Tak</option> </param> </params> </install>
Jeli spakujesz zawarto folderu do archiwum zip pod nazw, ktra dokadnie odpowiada nazwie folderu z szablonem, bdziesz mg udostpni szablon innym. Moesz tego dokona na stronie Joomla Hut (www.joomlahut.com), ktra umoliwia dodawanie darmowych szablonw.
96
97
^ f ^ i W ^ t W i i i W i f f f
C i Szablon; [zmicn]
Ha;-.
/icon.ico
Szablon Joomla! moe zawiera plik favicon.ico1, umieszczony w jego gwnym katalogu. Jest to maa ikona (o rozmiarze 16x16 pikseli), ktra po umieszczeniu odpowiedniego odwoania w pliku index.php zostanie wywietlona na pasku adresu przegldarki internetowej* (zobacz rysunek 3.19), a take po lewej stronie na licie zakadek. Jeli plik favicon.ico bdzie umieszczony w gwnym katalogu serwera WWW, zostanie automatycznie odczytany przez wikszo przegldarek. Aby umieci odwoanie do tego pliku w szablonie, wprowad kod podobny do poniszego w sekcji <head> pliku index.php:
<link rel="shotcut icon" href="http://przyklad.com/favicon.ico" type="image/vnd.mi crosoft.i eon" /> <link rel="icon" href="http://przyklad.com/favicon.ico" type="i mage/vnd.mi crosoft.i eon" />
Powyej umieszczono dwa typy odwoania, poniewa poszczeglne przegldarki odczytuj plik favicon.ico dla rnych wartoci atrybutu rei. Nowsze przegldarki umoliwiaj doczenie ikon zapisanych jako pliki GIF lub PNG, a nawet wstawienie animowanej grafiki w tych formatach. Nie musisz wprowadza poniszego kodu, jeli umiecie w szablonie dyrektyw doczenia standardowych nagwkw <jdoc:include type="head" />, poniewa Joomla! automatycznie wstawi odwoanie do ikony ulubionych.
<link rel="shorcut icon" href="templates/<?php echo $this->remplate; ?>/favicon.ico" type="image/vnd.mic rosoft.i eon" />
98
Rysunek 3.19.
Plik favicon.ico wywietlony na pasku adresu i licie zakadek
MAIM M E N U
Pomoc
&
'X *<'
d i HNr
- *
Zarzdzaj zakadkami ' Pasek 2akadek Ostatnio dodane .Ostatnio uywane etykiety Dodatki zwijane z zakadkami
Ctrl+Shift+B
Sfc
-UbS:'
2: Installing C o m p o n e n t s
Why do I need
Joomla? * 2. How is Joomla! organized? 3. Joomla! Presentation * Frequently Asked Questions (FAQs) Beginning Joomla! * Professional Joomla! General Joomla! > Get Paid to Write Articles Zakonczono
'
In Part 1, you installed a module to the Joomla system. Part 2 will take you mgh the quick and simple process of installation and configuration of a :ornponent. Components are the dominant type of extension and form the backbon *> ; of much of the extensible functionality available to the Joomla CMS. R E A D MORE...
J o o m l a E x t e n s i o n s -- D i g g T h i s ! p a t c h e d for 1.5
O&
Aby zapisa obrazek w formacie ICO, moesz wykorzysta darmow wtyczk do programu Photoshop, ktr znajdziesz na stronie: http: //www. telegraphics. com. au/sw/Mcoformat
Moesz take skorzysta z aplikacji internetowej do rysowania plikw .ico pod adresem: http://www.favicon. cc
Kolejn opcj jest program GIMP, za pomoc ktrego, bez dodatkowych wtyczek, mona zapisywa w formacie .ico. Aby stworzy ikon ulubionych w programie GIMP, utwrz obrazek o rozmiarach 16x16 pikseli, a nastpnie zapisz go w formacie Microsoft Windows leon (.ico).
Chocia wykracza to poza ramy tego rozdziau, warto wspomnie, e rozszerzenia (komponenty, moduy itd.) maj wasne szablony, ktre okrelaj ich wygld i funkcjonalno. Zazwyczaj szablony te zapisane s w podkatalogu \tmpl, ktry znajduje si w gwnym katalogu danego rozszerzenia. System Joomla! zaprojektowano z myl o moliwoci zmiany szablonu wykorzystywanego przez rozszerzenia, aby dopasowa jego wygld i funkcjonalno do reszty strony. Moesz doczy do szablonu podkatalog \html, w nim znajd si podfoldery dla poszczeglnych moduw i komponentw, ktrych wygld chcesz zamieni (na przykad \com_contact, \com_weblinks, \mod_poll i \mod_search). Przykady modyfikacji wygldu rozszerze mona znale w podkatalogu \html szablonu beez w domylnej instalacji Joomla!.
Zazwyczaj jednak wystarczy stworzy odpowiedni arkusz stylw, ktry zastpuje definicje danego komponentu. Istnieje prosty sposb, aby upewni si, e Twj szablon zawiera definicj dla wszystkich gwnych stylw. Sprawd w przegldarce, jak wywietlane s wszystkie moduy, komponenty i inne elementy interfejsu dla wybranego szablonu.
99
Wykorzystaj opcj Poka rdo strony, aby zobaczy kod HTML dla danej strony. Przegldajc kod rdowy pod ktem atrybutw id i class, natrafisz na wszystkie definicje elementw CSS wykorzystywanych na stronie. Teraz, kiedy zapoznae si z ich nazwami, moesz zmieni ich wygld za pomoc arkusza stylw doczonego do szablonu.
Poza tym istnieje spora liczba przegldarek przygotowanych specjalnie na dan platform (np. OpenWave czy Series 60), a biorc pod uwag dynamiczny rozwj tego rynku, lista mobilnych przegldarek bdzie rosn. Dobra wiadomo jest taka, e Twoja strona nie musi by zaprojektowana z myl o kadej z tych przegldarek. Doczenie pliku CSS wyglda zazwyczaj podobnie do:
<link rel="stylesheet" type="text/css" href="Mycss.css" />
Dla tego znacznika istnieje dodatkowy atrybut o nazwie media, ktry jest poprawnie odczytywany przez wikszo mobilnych przegldarek. Atrybut media pozwala okreli platform, dla ktrej naley odczyta podany plik CSS. Trzy najczciej stosowane wartoci to: screen, print i handheld9. Z tego powodu Twj szablon moe odwoywa si jednoczenie, bez kolizji do wicej ni jednego pliku CSS.
ikran, drukarka i urzdzenie przenone p r z y p . tum.
100
Znacznik z atrybutem media ustawionym na screen moe odnosi si do zwykego pliku CSS. Warto atrybutu print moe oznacza odwoanie do arkusza, ktry wycza wywietlanie bannerw, kolumn i elementw nawigacyjnych nieprzydatnych na papierze. Czsto jest to kopia gwnego pliku CSS z atrybutem visible (widoczny) ustawionym na false dla elementw, ktre powinny zosta pominite na wydruku. W czasie, kiedy pisaem t ksik, przegldarka Pocket Internet Explorer wykorzystywaa arkusze stylw oznaczone zarwno jako screen, jak i media do wywietlania stron na urzdzeniach mobilnych, co byo powodem frustracji wielu projektantw. Zwyka wersja Internet Explorer 6 (najpopularniejsza przegldarka internetowa) w przeciwiestwie do wersji mobilnej nie wywietla stylw oznaczonych jako handheld. Sposobem na osignicie kompatybilnoci z Internet Explorerem jest umieszczenie odwoania do pliku CSS odpowiadajcego screen przez odwoaniem do tego, ktry odpowiada handheld. Dziki temu na normalnych komputerach plik oznaczony jako handhe Id zostanie zignorowany, a przegldarka Pocket IE odczyta najpierw style zawarte w pliku odpowiadajcym screen, a nastpnie odczyta zawarto pliku odpowiadajcego handheld, uniewaniajc wczeniejsze definicje.
Typ handheld wykorzystywany jest przez urzdzenia przenone, ktre obsuguj CSS. W czasie pisania tej ksiki wikszo sprawdzanych urzdze pozytywnie przesza testy i odczytaa plik CSS oznaczony atrybutem handheld. Sprawdzone zostay nastpujce przegldarki: Blazer (w urzdzeniu Treo), Opera (w Nokii) i Pocket Internet Explorer (w iPAQ-u). Niestety, pewna liczba testowanych przypadkw nie obsugiwaa poprawnie tego atrybutu (gwnie Netfront 3.1). Jednak patrzc w przyszo, mona z pewnoci stwierdzi, e wszystkie nowe przegldarki bd poprawnie obsugiwa ten atrybut.
Jeli masz zamiar doczy alternatywny arkusz stylw dla urzdze przenonych, poniej znajdziesz kilka wskazwek. Pamitaj, e nie mona po prostu wykorzysta zwyczajnego pliku CSS, poniewa zosta stworzony z myl o osigniciu innych celw, innej prezentacji graficznej. Poniej znajduje si lista rzeczy, o ktrych naley pamita podczas projektowania arkusza stylw dla urzdze przenonych: Ustaw marginesy na 0 Dla znacznikw zawierajcych tekst ustaw atrybut margin: 0 0 0 0: przez co margines zostanie ustawiony na 0, a tekst bdzie zajmowa ca dostpn przestrze. Ustaw szeroko obramowania na 0 Dla znacznikw di v i table ustaw atrybut border-width: 0 0 0 0: aby usun ramk wok komrek. Ustaw wysoko linii na lem Zamiast okreli inn wysoko linii (co i tak nie bdzie dobrze wyglda na urzdzeniu przenonym), wykorzystaj kod 1 i ne-height: lem: aby ustawi standardow wysoko linii.
101
Korzystajc z tych wskazwek, moesz wprowadzi modyfikacje domylnego szablonu Joomla!. Utwrz pod nazw mobile.css nowy arkusz stylw w folderze css i wprowad poniszy kod:
Body { margin: O.Oem 0 0 0: line-height: lem: padding: 0 0 0 0.2em: font-size: 100%: line-height: lem; color: black; border-width: 0:
}
hi, h2. h3, M . h5, h6 { line-height: lem; font-size: 100%; font-weight: bold;
}
p, ul, ol, li. dt, dd { line-height: lem:
{
}
moduletable. ,moduletable_menu. div.moduletable h3. .moduletablejnenu h3, .poll td font-size; 100%: font-weight: bold;
Wstaw w index.php odwoanie do pliku CSS z atrybutem media ustawionym na handheld, a plik mobile.css zostanie automatycznie wykorzystany na urzdzeniach przenonych. Wykorzystanie tego arkusza wprowadzi jednakowy wygld i wielko tekstu na caej stronie, a nagwki i inne specjalne style Joomla! zostan pogrubione.
102
Podsumowanie
Po przeczytaniu tego rozdziau powiniene wiedzie ju, jak od podstaw stworzy szablon. Na projektowanie szablonw skada si wiele aspektw, m.in. stworzenie waciwego arkusza stylw. W rozdziale zawarto informacje, dziki ktrym bdziesz w stanie: Stworzy od podstaw szablon, ktry dziki CSS wykorzystuje ukad wielokolumnowy. Doda elementy graficzne, ktre sprawi, e szablon bdzie wyglda profesjonalnie. Udoskonali kompatybilno z rnymi przegldarkami, dziki czemu bdy obsugi CSS nie wpyn negatywnie na wygld strony. Stworzy stron zgodn ze standardami dostpnoci, aby umoliwi kademu jej przegldanie. Wykorzysta arkusze stylw w celu dostosowania wygldu strony do danej platformy, takiej jak PDA lub telefon komrkowy.
Tworzenie wasnego szablonu to tylko wierzchoek gry lodowej w zakresie modyfikacji strony Joomla!. W rozdziale 4. przedstawiono rozszerzenia, ktre znacznie wzbogac funkcjonalno Twojej strony.
4
Dodawanie i modyfikacja dostpnych rozszerze
Gama rozszerze Joomla! zaczyna si szablonami (najprostsza forma) i koczy si na dodatkach (najbardziej zaawansowana). Midzy tymi dwiema skrajnociami znajduj si moduy i komponenty. Podczas gdy szablony wpywaj na prezentacj Joomla!, dodatki wpywaj na dziaanie najbardziej podstawowych funkcji systemu. Komponenty i moduy s prostszymi rozszerzeniami, ktre su do dodania okrelonej funkcjonalnoci (np. sondy, fora lub menu). Wykorzystanie rozszerze trzech typw (moduw, komponentw i dodatkw) moe ogromnie zwikszy funkcjonalno systemu Joomla!. Dla Joomla! dostpnych jest wiele rozszerze i czasem trudno wybra ktre z nich. Przykadowo istnieje sze rnych dodatkw sucych do tworzenia galerii zdj kady ma swoje wady i zalety. Niektre maj zapewnion bardzo dobr obsug klienta, inne zawieraj wicej funkcji. Czasem wybranie waciwego rozszerzenia sprowadza si do sprawdzenia wszystkich dostpnych z danej kategorii. W tym rozdziale przedstawiono najbardziej zaawansowane i najpopularniejsze rozszerzenia, ktre mona przypisa do nastpujcych obszarw: funkcjonalno strony; organizacje i e-commerce; zawarto strony; komunikacja na stronie.
Przegld rozszerze z powyszych kategorii uzmysowi Ci potencja tkwicy w Joomla!. Zanim przejdziemy do sprawdzenia poszczeglnych rozszerze, warto odwiedzi ich katalog, ktry mona znale na stronie gwnej Joomla!.
104
Katalog rozszerze
Na stronie gwnej Joomla! (www.joomla.org) dostpny jest katalog rozszerze dziaajcych z Joomla! wraz z systemem oceniania i komentowania, co pozwala uytkownikom dzieli si ich dowiadczeniami zwizanymi z danymi rozszerzeniami. Katalog znajduje si pod adresem: http://extensions.joomla.org
Katalog rozszerze Joomla! (ang. Joomla Extension Directory JED) zawiera prawie 4000 pozycji (w momencie pisania tej ksiki) zarejestrowanych w systemie. Kade rozszerzenie przypisano do jednej z 23 kategorii. Na stronie gwnej katalogu umieszczono take pi najnowszych rozszerze i pi najwyej ocenianych. Kada pozycja zawiera opis i informacje zwizane z wykorzystaniem rozszerzenia. Typowy wpis do katalogu zawiera ponisze informacje: Opis Opis danego rozszerzenia. Zazwyczaj jest to krtkie podsumowanie historii wersji programu, a take lista zmian wprowadzonych w najnowszej wersji. Typ rozszerzenia Wikszo wpisw to poczenie kilku rozszerze w jedn cao. Poszczeglne elementy oznaczane s ikonami: czerwon liter Mw przypadku moduw, zielon liter C w przypadku komponentw i purpurow liter P w przypadku dodatkw. Ikony wywietlane przy danym wpisie wskazuj na typy rozszerze, ktre zawiera. Strona domowa (ang. Homepage) Strona domowa rozszerzenia. Jeli dane rozszerzenie Ci si podoba i uwaasz, e jest uyteczne, moesz wykorzysta ten odnonik, aby przej na stron, gdzie najprawdopodobniej znajdziesz inne rozszerzenia tego samego autora. Wersja (Version) Wywietla oznaczenie najnowszej wersji i informacje, kiedy zostaa upubliczniona. Deweloper i e-mail Te dwa pola zawieraj nazw i adres e-mailowy twrcy danego rozszerzenia. Liczba odwiedzin (Views) Przedstawia liczb odwiedzajcych, ktrzy kliknli wpis w katalogu, aby przeczyta cay opis danego rozszerzenia. Licencja (License) Licencja, pod jak udostpniono rozszerzenie. Najpopularniejsze licencje to GNU GPL, komercyjne i inne darmowe lub wolne licencje. Kompatybilno (Compatibility) Wersja Joomla!, z ktr dziaa rozszerzenie. Obecnie moliwe jest okrelenie kompatybilnoci z wersj Joomla! 1.0, Joomla 1.5 i obiema wersjami 1 . Data dodania (Date added) Data wczenia rozszerzenia do katalogu.
105
Na stronie wyszczeglniono 23 kategorie rozszerze, a kada z nich zawiera podkategorie. Dla uatwienia w kolejnych podrozdziaach kategorie podzielono na cztery gwne aspekty: funkcjonalno i obsuga strony; organizacje i e-commerce; zawarto strony; komunikacja na stronie.
Powyszy podzia uproci wyszukiwanie rozszerze, ktre dodaj okrelone funkcje do Joomla!. Katalog rozszerze zawiera wyszukiwark, chocia czsto jest ona mao pomocna w znajdowaniu rozszerze z okrelonymi cechami. Podczas wyszukiwania powiniene ogranicza si do pojedynczych sw, poniewa masz wtedy najwiksz szans znale wpisy, ktre bd zawiera wymagan funkcj. Wyszukiwanie przy wpisaniu wielu sw zwraca zazwyczaj zbyt wiele wpisw niezwizanych z interesujcymi moliwociami.
106
System Joomla! zawiera dwa edytory: TinyMCE i XStandard Lite. Domylnym edytorem jest TinyMCE, za pomoc ktrego mona wprowadza formatowany tekst, wybiera fonty, styl (pogrubiony, pochylony itd.), rozmiar i inne. Wprowadzony tekst pojawi si w tej samej formie na stronie. XStandard Lite take zawiera funkcje WYSIWYG 2 . Rnica midzy dwoma edytorami polega na tym, e XStandard Lite w przeciwiestwie do TinyMCE tworzy w peni poprawny kod XHTML i HTML. Jeli nie okrelono domylnego edytora, wszystkie artykuy bd wprowadzane jak zwyky tekst. Poniewa Joomla! jest systemem opartym na HTML, zwyky tekst oznacza w praktyce kod HTML.
Edytor TinyMCE zosta napisany w JavaScripcie, a jego poprawne dziaanie potwierdzone na wielu rnych przegldarkach (Internet Explorer, Firefox, Opera i Safari). Pozwala na tworzenie kodu XHTML 1.0, a take instalacj dodatkowych jzykw (w tym polskiego), tematw i wtyczek (wczajc w to Adobe Flash Player). XStandard Lite jest edytorerr dostpnym w postaci skompilowanej, co oznacza, e obecnie mona go stosowa tylke w systemie Windows. Pomijajc przewag funkcjonalnoci XStandard, uruchamianie skompilowanego kodu oznacza ogromn przewag pod wzgldem wydajnoci nad TinyMCE.
Oba wymienione edytoiy nie s jedynymi, ktre doczono do Joomla!. Istnieje kilkanacie innych edytorw w katalogu JED, ktre mona pobra i zainstalowa. Szeroki wybr edytorw oznacza rnorodno dodatkowej funkcjonalnoci, np. profile ustawie uytkownikw.
2
Ang. What You See Is What You Get To, co widzisz, jest tym, co otrzymasz przyp. tum.
107
formatowanie kodu rdowego, obsuga wtyczek, zarzdzanie dokumentami, edytowanie arkuszy stylw i wiele innych. Przykadowo moesz zainstalowa rozszerzenie JoomlaFCK, ktre zawiera mniej funkcji ni TinyMCE lub XStandard, ale jest duo mniejsze i szybsze ni standardowe edytory. Rozszerzenie JoomlaFCK, przedstawione na rysunku 4.1, oparto na skrypcie FCKeditor, stworzonym przez Frederico Caldeira Knabbena. Jest to jeden z pierwszych edytorw dostpnych za porednictwem przegldarki WWW, ktry mia pen funkcjonalno WYSIWYG bez koniecznoci instalacji dodatkowego oprogramowania. sunek 4.1.
iytor JoomlaFCK a niewielki kod, :iki czemu :ia!a sprawnie
Tytu Alias Sekcja WeIcome to Joomla! welcome-to-ioomla News Opublikowane arona startowa Kategoria O Nie 'Nie Latest Tak 'Tak ID 1 tyk ulu: .1 St.it iis Odsony Popi awiony Ut *oi zony Po|i.iniony 1 Opublikowan 92 Wyczyi< 29 razy czwartek, 1 i czwartek, 08
3 S t dkmn . do ou et u LA ffl :,[b] / J * ; J= = I : i :[SJ m %'iii A i H <> n a 1 sMajte S i| Styl i" Fr a N r a yDV ' Czcionka omt om l ( I ) n Jno^ia. .,'BP w g a - i w O ' -
M '" B O ^ G ?
Parametry: artyku
Autor
Joomla 1 is a f i e e open soiuce framework and content publishing system designed foi quickly creating highly interactive multi-language Web sites, onlme I communities, media portals, blogs and eCommerce applications
Rozpoczrtij p M t p u i K? k Z k z pubikacj ao c
Parametry: rozszerz Mst.idaiie
Joomla! provides an easy-to-use graphical user interface that simplifies the management and publishing of large volumes of content including HTML, documents, and rich media. Joomla! is used by organisations of all sizes for Public Web sites. Intranets, and Extranets and is supported by a community of thousands of users.
Joomla! Logo
With a fully documented library of developer resources, Joomla! allows the customisation of every aspect of a Web site including presentation, layout, administration, and the rapid integration with third-party applications. Joomla! has a rich heritage and has been crowned CMS king many times over. N o w with more power under the hood, Joomla! is shifting gear and provides developer power while
JoomlaFCK skada si z pojedynczego dodatku, ktry mona zainstalowa w zapleczu administracyjnym. Jedn z najbardziej uytecznych (i unikatowych) funkcji JoomlaFCK jest moliwo wykorzystania szablonw dla wprowadzanych artykuw w podobny sposb jak Microsoft Word zawiera szablony dla rsum, prezentacji itd. Szablony powinny zosta zapisane w katalogu, ktry znajduje si najprawdopodobniej (w odniesieniu do gwnego katalogu Joomla!) w: \p lugins \editors Xfckeditor Szablony zapisywane s w formacie XML w pliku fcktemplates.xml. dwa szablony. Poniej kod pierwszego z nich: Domylnie dostpne s
<Template title="Image and Title" image="templatel.gif"> <Description>One main image with a title and text that surround the image.</Description> <Html> <![CDATA[ <img style="MARGIN-RIGHT: lOpx" height="100" alt=" " width="100" align="left" /> <h3>Type the title here</h3> Type the text here ]]> </Html> </Template>
108
P.ll.iriifrtly: .irtyk
Joomla! is a free open source framework and content publishing s y s t e m designed for guickly creating highly interactive mujti-language Web sites, online communities, media portals, blogs and eCommerce applications. Powered fey J o o m l a ! p r o v i d e s an e a s y - t o - u s e graphical user interface t h a t simplifies the m a n a g e m e n t and p u b l i s h i n g of large v o l u m e s of content including H T M L , d o c u m e n t s , and rich m e d i a . J o o m l a ! is u s e d by o r g a n i s a t i o n s of all sizes for Public W e b sites, I n t r a n e t s , a n d E x t r a n e t s and is s u p p o r t e d by a c o m m u n i t y of t h o u s a n d s of users. D.t.i ut rtoi R u - p o r z m i pi iMil
Joomla!
W i t h a fully d o c u m e n t e d library of d e v e l o p e r r e s o u r c e s , J o o m l a ! allows t h e c u s t o m i s a t i o n of every aspect of a W e b site Including p r e s e n t a t i o n , l a y o u t , a d m i n i s t r a t i o n , a n d t h e rapid i n t e g r a t i o n with t h i r d - p a r t y applications.
TinyMCE pozwala wykorzysta wasny plik CSS zamiast domylnego. Dobrym pomysem jest skopiowanie domylnego pliku CSS i dodanie do niego swoich nowych stylw. Domylnie plik znajduje si, wzgldem gwnego katalogu Joomla!, w: \plugim\editors\tmymce\jscripts\tiny_mce\themes\advanced\css\editor_content.css Skopiuj plik editor content.css do innego katalogu. Generalnie najprociej jest skopiowa ten plik do katalogu \css dla wybranego szablonu, dziki czemu style mona bdzie lepiej dopasowa do wygldu strony. Dla uproszczenia skopiowaem ten plik do gwnego katalogu serwera W W W i nazwaem go mytinymce.css. Wprowad do tego pliku style, ktrych potrzebujesz na stronie. Ja dodaem kilka stylw, by podwietli tre:
.purplehlghlighter { background: purple: color: #000000:
}
.bluehighlighter { background: blue: color: #000000:
109
}
Aby doczy stworzony arkusz stylw, otwrz opcj Dodatki w interfejsie administratora Joomla!. Kliknij Editor TinyMCE 2.0, aby przej do ustawie dodatku. W polu Wasny arkusz stylw wprowad adres URL, ktry prowadzi do utworzonego wczeniej pliku, pliku CSS, jak przedstawiono to na rysunku 4.3. sunek 4.3.
jrowad mpletny adres ?L nowego ku CSS w pole asny arkusz A w
Nie c z y s c e n c j i O-sti ze<jaj, cjdy Anuluj" Wer sja skompresowana O Tak ' . ; Nie O Wczone ' . Vtfczone
(t' W y c z o n e
'<tJ W y c z o n e
Wzgldne
Zabronione elementy Klasy CSS szablonu Wasny arkusz stylw O Nie Tak
/ /
http :fllocalhost^ooml
Na zdalnym serwerze adres moe przypomina poniszy: http://www.przyklad.com/mytinymce.css Kliknij przycisk Zapisz, aby wprowadzi zmiany. Od teraz, po otwarciu artykuu w edytorze TinyMCE, dodane style bd dostpne w menu.
110
Rysunek 4.4.
Za pomoc rozszerzenia joomlaXplorer mona zarzdza plikami, a take symulowa poczenie FTP z poziomu przegldarki internetowej
File
a ah jrti.gif pce
Rozszerzenie mona wykorzysta do wyszukiwania, edytowania, usuwania, kopiowania, zmieniania nazw, tworzenia i rozpakowywania archiww plikw oraz katalogw. Pozwala na wysyanie i pobieranie plikw za pomoc dostarczonego interfejsu lub symulacji FTP. JoomlaXplorer umoliwia uytkownikom zmienianie praw dostpu do plikw i katalogw za pomoc narzdzia przypominajcego chmod. Komponent moe zosta wykorzystany tylko przez uytkownika z uprawnieniami superadministratora. Komponent joomlaXplorer mona pobra z poniszej strony: http://joomlacode.org/gf/project/joomlaxplorer/frs/
111
Another Arlid
Testcategory
SectlonBlog
Another Article
Secondary
Menu #3
W rozdziale 13. zawarto wicej informacji na temat map strony (i Joomap). Znajdziesz tam take opisy innych rozszerze, ktrych dziaanie wpywa na pozycj strony w wyszukiwarkach internetowych.
immunity Builder
Community Builder (CB) jest rozszerzeniem o otwartym kodzie rdowym, ktre znaczco zwiksza moliwoci Joomla! w zakresie zarzdzania uytkownikami. Jest to jedno z najpopularniejszych rozszerze w wiecie Joomla!. Funkcje CB to m.in.: zarzdzane hasa i grupy; ustawianie przez uytkownikw wasnego awatara; dodatkowe pola w profilach uytkownikw; listy uytkownikw; cieki pocze midzy uytkownikami; wasne zakadki; zarzdzanie przebiegiem procesw, takich jak potwierdzenie Warunkw korzystania z serwisu, wysyanie wiadomoci e-mailowych z daniem aktywacji konta, informowanie administratora o nowych uytkownikach, moliwo zdefiniowania wiadomoci e-mailowych wysyanych do nowych uytkownikw, ktre mog zawiera dowolne informacje z profilu uytkownika, w formacie tekstowym lub HTML; integracja z innymi komponentami, takimi jak systemy wiadomoci prywatnych (PMS Personal Mail System), galerie i wiele innych.
112
Jedn z wad CB (ale to jednoczenie zaleta) jest cakowicie odmienny system rejestracji i logowania ni standardowy w Joomla!. Oznacza to czciowe oddzielenie funkcji zwizanych z zarzdzaniem uytkownikami od reszty interfejsu Joomla!.
Strona gwna komponentu w interfejsie administratora zawiera list wtyczek, ktre s domylnie dostpne, co zilustrowano na rysunku 4.6. Gdy zainstalujesz nowe rozszerzenie CB, pojawi si ono na licie. Podstawowy ekran ustawie uytkownika, przedstawiony na rysunku 4.7, skada si prawie z tych samych opcji, co zwyky system rejestracji Joomla!. Na tym kocz si podobiestwa. W przypadku CB istnieje moliwo okrelenia dodatkowych parametrw dla wybranych grup lub wszystkich uytkownikw.
113
unek 4.6. mny ekran erfejsu mmunity ildera edstawla list stalowanych /czek
k.
, COMMUNITY V2
1.0.2 1.0.2
Copyright 2004 - 2006 MamboJoe JoomlaJoe, Be.it and CB team. This component is leleased undei the GIIUGPL License and a fiee C o m m u n copyright statements m u s t be kept. Deiivate work m u s t piominently duly acknowledge original work and include visible online link www.ioomiapoiis.com Credits: Nick A. Documentation and Public Relations
If y o u like the services provided by this free component, please consider making a small donation to support the team behind it: Donate in EUR to CB.Team@joomlapolis.com Donate in USD to CB.Team@joomlapolis.com Community Builder includes following components: Application Icons Tabs Calendar overLib Snoopy Bes (Menus Vet sion N/A 1.02 1.1 4.17 1.2.3 1.0 License htt p: I f w w w foood .net/agreement .htm http: /.'Web fx .eae .net .license html GNU Lesser General Public License http: / / w w w bosrup com/Vveb/overlib/?License GNU Lesser General Public License Limited Community Builder JoomlaPolis Lic ense
unek 4.7. dstawo we tawienia profilu rtkownika podobne tych ystemu imla!
Contact Info llame: Fli st lianie: Middle N a m e : L a s t lianie: Email: Usei name: P a s s w o r <1: Verify P a s s w o r d : Jzyk witryny: Str efa c z a s o w a : - Wybierz jzyk V Kowalski kowalski@onet.pl ko walski@onet .pi . J a n Kowalski Jan
. % fi
% fi 9 % fi mm II
V
Group:
V v V
^j % ^
114
Dla kadego z pl CB mona wybra dowolny z powyszych typw. Przykadowo jeli chcesz da uytkownikom moliwo okrelania preferowanego typu CMS w swoich profilach, moesz wykorzysta rozwijaln list. Pola moesz dodawa za porednictwem opcji Field Management, dostpnej w menu Community' Buildera, co przedstawiono na rysunku 4.8. Rysunek 4.8.
Dodawanie nowego pola, ktre pozwala uytkownikowi okreli preferowany system CMS
i Type: Tab: Name: Ule: Drop Down (Single Select) Contact Info cb_cmbtype Referowany Typ C K' ichowuje preferowany typ CHS V
Required?: Show on Profile?: User Read Only?: Show at Registration?: Published: Size:
N > T; N N N
Use the table below to add new values. Add a Value Name Joomla 1.5 Joomla 1.0 Vigenette
Po zapisaniu pola musisz je opublikowa. Nastpnie, jeli przejdziesz do ekranu ustawie profilu uytkownika, przedstawionego na rysunku 4.7, zobaczysz, e pojawio si nowe pole. Moliwo dostosowania profilw uytkownika (wczajc w to nawet wymagane" polaj daje efekt w postaci zbierania najwaniejszych informacji o odwiedzajcych.
By moe zauwaye, e na rysunku 4.7 wszystkie informacje o uytkowniku pojawiy si w jednej zakadce, zatytuowanej Contact Info. By moe zauwaye take, e podczas tworzenia nowego pola wybrana bya opcja umieszczenia go wanie w tej zakadce. System
115
CB umoliwia stworzenie dodatkowych zakadek, zawierajcych nie tylko informacje o uytkownikach, ale take poczonych z innymi rozszerzeniami, ktrych funkcje zwizane s z profilem uytkownika, np. blog uytkownika. Wszystkie zakadki w profilu uytkownika wywietlane s w Tab Manager (przedstawiono to na rysunku 4.9). Korzystajc z tej opcji, moesz zmieni nazw zakadki, jej pozycj i typ wywietlania. Jeli jest to zakadka szczeglnego typu (na przykad zakadka menu), zostanie wywietlony panel zawierajcy dodatkowe parametry. rsunek 4.9.
pcja Tab lanager rzechowuje st zakadek, tre mona oda do profilu ytkownika
tyczki CB
Community Builder zawiera obsug wasnych wtyczek. Wikszo z nich czy system autoryzacji CB z innymi rozszerzeniami. Na rysunku 4.10 zilustrowano ekran Plugin Manager, ktry przedstawia list wtyczek zainstalowanych domylnie. Cz z nich jest oznaczona w kolumnie Type jako templates, co oznacza, e wpywaj na wygld CB. Wtyczka typu user odpowiada za kluczowe funkcje systemu lub za poczenie z innymi rozszerzeniami Joomla!. Zauwa, e domylna instalacja zawiera wtyczki czce z Simpleboard Forum, Mamblog Blog, YaNC Newsletters, PMP MyPMS i Pro. Wicej wtyczek tego typu mona znale na stronie internetowej CB.
watar uytkownika
Jedn z kluczowych opcji, ktre sprawiaj, e uytkownicy odwiedzajcy stron angauj si w jej funkcjonowanie, jest moliwo ustawienia okrelonego awatara (obrazka), ich graficznej wizytwki. Obrazek ten wywietlany jest w profilu uytkownika. Chocia wybrana nazwa uytkownika moe go wystarczajco reprezentowa, to jednak may obrazek pozwala w wikszym stopniu zakomunikowa wasn osobowo.
116
Rysunek 4.10. Ekran Plugin Manager przedstawia list wtyczek zainstalowanych w systemie CB
- Select Type -
V C dei M -1 V V 1 2 3 4 g. V V V * .... . 5 6 1 2 3 Public Public Public Public user user user user user user user user ** Ace s s e Public Public Public Public Public Public Type language tempttes tompiates templaes tmplate; tompiates
i 3 4 S e 8 3 10 11 13 11 15
P l u g m llame Default language (English) Default VVmCiassic WebFX OSX n Luna Dark
V
V v/
Joomla Content Author U Simpleboard Forum O Mamblog Blog YaNC 1 4b3 Newsletters PMS MyPMS and Pro v Install l l e w PliKjin V 0 O
5 6 7 8
Poka: 20
Uplo.id Pack.uje File Package File: j Ftzegldaj... Upload File & Install
Wysyanie obrazkw moe by dodatkowo moderowane, aby awatary byy wywietlane, dopki nie zostan zaakceptowane. Opcja moderacji moe by bardzo przydatna w przypadku strony o tematyce rodzinnej lub ochrony przed naruszaniem praw autorskich do obrazkw. Prawa autorskie i wykorzystanie obrazkw w internecie to temat peen kontrowersji. Bez wtpienia kopiowanie treci chronionych prawem autorskim jest naruszeniem praw waciciela fakt ten nie podlega dyskusji. Jest wielu autorw i posiadaczy praw autorskich, ktrzy nie maj nic przeciwko publikowaniu ich obrazkw, o ile nie s wykorzystane do dziaalnoci zarobkowej, a take nie s przedstawiane w sposb negatywny. Fanfilmy inspirowane rnymi produkcjami tworzone s od lat, a tylko kilka studiw zabrania tworzenia takich dzie. Jeli martwi Ci status prawny, powiniene skontaktowa si z prawnikiem. Aby umoliwi uytkownikom dodawanie obrazkw, zaloguj si na stron, na ktrej masz zainstalowany CB. Przejd do profilu uytkownika, gdzie zobaczysz pust ikon. Kliknij j, a nastpnie wybierz pozycj My CB Profile w User Menu. Nastpnie moesz wybra opcj Update Your Image w Edit menu, eby doda wasny obrazek. Nie zostanie on jednak wywietlony do momentu zatwierdzenia przez administratora.
Pobieranie i instalacja
Po pobraniu Community Buildera zauwa, e nie jest to pojedynczy plik, lecz zestaw plikw, ktre naley zainstalowa. W zestawie tym znajduj si nastpujce elementy:
comprofi Ter To archiwum zawiera waciwy komponent CB, ktry naley zainstalowa w Joomla!. cblogin
117
Wymagane s tylko dwa elementy: komponent comprofiler odpowiada za zarzdzanie systemem z poziomu interfejsu administracyjnego, i modu cblogin pozwala uytkownikom zalogowa si do systemu CB. Comprofiler to take oryginalna nazwa Community Buildera, do ktrej odwoania znajdziesz w wielu miejscach zaplecza. Przy pierwszym uruchomieniu CB powiniene wybra opcj Tools z menu. Jak zilustrowano na rysunku 4.11, doczone narzdzia pozwalaj zainstalowa przykadowe dane, skopiowa dane uytkownikw z obecnego systemu rejestracji, a take sprawdzi poprawno danych w bazie CB.
Tools Manager
This will load sample data Into the Joomla Community Builder component. This will s y n c h r o n i z e the JoomlaMlambo U s e r table w i t h the Joomla Community Builder U s e r Table. Please make s u r e b e f o r e s y n c h r o n i z i n g that the u s e r name t y p e (first/la stria me mode c h o i c e ) is set c o r r e c t l y in C o m p o n e n t s Builder - s Configuration - G e n e r a l , s o that the u s e r - s y n c h r o n i z a t i o n imports the n a m e s In the appropriate format. This will p e r f o r m a s e r i e s of t e s t s o n the Community Builder d a t a b a s e and report back potential inconsistencies without c h a n g i the database.
Unek 4.11. Na stronie narzdzi CB moesz wybra opcj instalacji przykadowych danych, skopiowania nych uytkownikw Joomla! do systemu CB, a take sprawdzi poprawno danych w bazie CB
rganizacje i e-commerce
Rozszerzenia zwizane z organizacjami i e-commerce czsto su do poczenia systemu Joomla! z zasobami zewntrznymi (na przykad zewntrznymi sieciami), dziki ktrym mona skorzysta z programw partnerskich, systemw elektronicznej patnoci i innych. Rozszerzenia tego typu wykorzystywane s gwnie przez organizacje, koordynuj oraz uatwiaj komunikacj wewntrz i na zewntrz organizacji. Rozszerzenia dla tego obszaru pogrupowano w JED w nastpujce kategorie: Reklamy i programy partnerskie (ang. Ads & Affiliates) Zawiera podkategorie: Programy partnerskie ( A f f i l i a t e Advertising), Amazon, Zarzdzanie bannerami (Banner Management), Ogoszenia (Classified Ads), Bannery naronikowe (Corner Banners), Reklamy Google (Google Ads), Odnoniki i reklamy tekstowe ( Text & Link Ads). E-Commerce Zawiera podkategorie: Handlowe programy partnerskie (Affiliate Carts), Aukcje (Auction), Bilingi i faktury (Billing & Invoices), Darowizny (Donations), Patny dostp (Paid Access and Content), Systemy patnoci (Payment systems). Sklepy internetowe (Shopping Cart).
118
Meneder subskrypcji
Jedn z wbudowanych funkcji Joomla! jest moliwo ograniczenia treci dla poszczeglnej grupy lub po prostu uczynienia artykuw niewidocznymi dla niezarejestrowanych uytkownikw. Niestety, nie istnieje funkcja ograniczania dostpu do treci do poszczeglnych uytkownikw w ograniczonym czasie. Takie moliwoci ma rozszerzenie Open Source Account Expiration Control & Subscription Manager (AEC). Jak przedstawiono na rysunku 4.12, powyszy komponent dodaje na stronie Joomla! funkcjonalno patnego dostpu do treci. Rozszerzenie AEC mona poczy z innymi (np. CB), co pozwala na korzystanie z takich systemw patnoci, jak: Paypal, Authorize.Net, 2Checkout, Allopass, viaKLIX i inne. Umoliwia okrelenie rnorodnych planw patnoci, na przykad darmowe okresy prbne, patne i doywotnie oraz darmowe prbki. Za pomoc interfejsu administratora mona w prosty sposb skonfigurowa opcje patnoci za treci, a take poczenie z rnymi usugami patnoci. Moliwe jest take ustawienie subskrypcji dla rnych kont uytkownikw Joomla!.
Twrcy AEC cigle dodaj nowe systemy patnoci, dlatego upewnij si, e dysponujesz najnowsz wersj. Dodatkowo na stronie rozszerzenia znajduje si forum 5 , na ktrym mona uzyska pomoc. Odwied stron AEC pod adresem: https://globalnerd. org/index.php/AECl. html
119
viaKLIX
ii ,:" : gggj^l'heckout
M.0!Tt v
| Allopass
m
While these integrations have been tested to be working, there might be a bug left here or there, so just tell us if you have a problem with one of the
u also have the choice to offer non-automatic payments to your plans This way, you can even handle customers who cant pay with one of the p
VISA1
Capelo
C a p e l o " is an artist, an architect, a painter, a sculptor, a n d a ceramist. H i s paintings a n d c e r a m i c pieces decorate his breathtaking h o m e a n d can be f o u n d in collections a r o u n d the w o r l d
derby:
Product N a m e v
Display* Start
10 v < Prev t 2
Ceramic Sink.
^ y&KBUXBs $242.12 A d d to Cart Capelo is an artist, an architect, a painter, a sculptor, and a ceramist. His paintings arid ceramic pieces decorate numerous places throughout the world.
Capelo is an artist, ari architect, a painter, a sculptor, and a ceramist. His paintings and ceramic pieces decorate numerous places throughout the world.
:
242.12
Quantity: 1 A d d to Cart
Interfejs administratora, ktry umoliwia ustawienie opcji systemu patnoci, a take skadania zamwie, przedstawiono na rysunku 4.14.
120
Rysunek 4.14.
Zaplecze rozszerzenia MicroShop umoliwia ustawienie systemw patnoci takich jak Paypal
SfedlAdministration
j1 U Store Summary
)% Edit Store !<'; List Payment Methods fp- A d d Payment M e t h o d Shipping M o d u l e List p H p4" Credit Card List A d d Edit Cr edit C a r d T y p e s List Export Modules A d d Export Module Configuration Edit Store "
%
List Payment Methods
-y'-1
\
Help
Orders i Vendor
:
S- Reports
121
project
^i-rtrol Panel Projects
iOid y o u k n o w ? Voters clicking or a project, ft will be set as- your urrerrt workspace.
Tasks
File M a n a g e i
Calendar
Board
Profile
Us
/ Projects
Hew Copy Title Zapozmii ? si ? z J o o m l a ! Archive Delete Project fountlei Administrator Total t a s k s , 0 Poka: wszystko V lle*v Copy A i chive Delete Search; Total m e m b e r s 1 Total j i o u p s ,, 0 Cieatedon 10/30/2008, ,
]
j
linek 4.15. Strona gwna rozszerzenia Project Fork przedstawia list projektw, do ktrych dany <tkownik ma dostp
Timesheet Calendar
Suit 39 5 40 12 41 19 42 26 43 Total Billable H o u r s : Total N o n - B i l l a b l e H o u r s - 27 m 28 2 9 20 21 22 13 - 14 * 1 5 * 16 17 1 8 :rfSS $ K* 10 *= 11 m Hon hie October Weil 1 S35 2008 Tim Fi i 3 Sat 4
Reports
gwna zszerzenia
0.00 iOJO 0.00 0 00 + 0.00 0.00 0 00 + 0.00 0.00 0.00 + 0.00 0.00 0.00 + 000 0.00 0 00 0 00
neWriter
loliwia godne towanie ;zystkich /nnoci izanych irojektem j klientami
24
25
30
31
Podobnie jak w przypadku Project Fork, wikszo funkcji rozszerzenia TimeWriter dostpna jest za porednictwem strony gwnej. Aby uzyska dostp do tych funkcji, kliknij odnonik Reports (lekko niefortunna nazwa) w prawym grnym rogu. Zostanie wywietlona lista odnonikw do nastpujcych funkcji: Timesheet Report by Company (Przegld kart pracy wedug firm)', Timesheet Report by Project (Przegld kart pracy wedug projektw)',
122
Show Vehicles (Poka list pojazdw)', Mileage Log Form (Formularz notowania Manage Companies (Zarzdzaj Manage Projects (Zarzdzaj firmami)', projektami). przebiegu)',
Zanim utworzysz projekt, musisz najpierw utworzy firm dopiero wtedy moesz zacz notowa liczb godzin. Kliknij odnonik Manage Companies, aby doda now firm. Nastpnie moesz klikn odnonik Manage Projects, aby stworzy nowy projekt. Kolejnym krokiem jest kliknicie ikony Assign na licie projektw, aby przypisa uytkownikw Joomla! do danego projektu. Funkcje tworzenia raportw umoliwiaj oglne zarzdzanie, a take tworzenie raportw tygodniowych dla okrelonych parametrw. Z poziomu zaplecza moesz zaimportowa dane Mambotastic Timesheets.
Rozszerzanie My EBay Store, przedstawione na rysunku 4.17, umoliwia zaprezentowanie oferty Twojego sklepu w serwisie eBay na stronie Joomla!. Informacje na temat poszczeglnych aukcji s dynamicznie aktualizowane i zawieraj najwiesze informacje. Rozszerzenie wywietla informacje o produkcie, doczone zdjcia, aktualn cen i dat zakoczenia aukcji. Bez problemu przedstawia informacje o wicej ni 150 aukcjach.
123
M Ebay Store y
1 SEARCH J o
Reload
M V
L YR 52 b H - A E 1M : P i Pd UB Ms : -I o S ui e M2 M4 P& P ER 45,00 32 min;:1; U ' Ocehiai 8 speccr Ryban pornobrile: a E te. avsater NW ER 24,99 3 minii U 1 F I P RAIE a R OT T G L D E fUNZIONitl il U CLO E F R DO AD E D ER 62,55 18 m U i n
'
J M 1
Modu My EBay Stor moe zosta umieszczony w dowolnym panelu na stronie Joomla!. Jego pooenie, a take pozostae ustawienia moesz zmieni, wybierajc modu na licie opcji Moduy. Ekran parametrw przedstawiony na rysunku 4.18 pozwala ustawi dobr wywietlanych przedmiotw.
Pilmetry tmnlufu Ebay Site Seller ID K e y w o r d Search ferrari Search title and description United States v
Tak
Cr)
Nie
Search . r t e y o i y ID -1 n i n v H n j>t ice M x i m u m price S h o w H e m s w i t h Gallery i m a g e s only S h o w Buy It H o w i t e m s only O . Tak ' ' Nie
Tak Nie
B>,ry Store Module Size Headet Image Ebay L o g o Enable Search Box Search Box position
Nie
Gra ( t ) Dolne
EndTime
v Descending
Nie V
Tak
Nie
awarto strony
Sercem kadej strony opartej na CMS jest jej zawarto. Rozszerzenia przedstawione w tym podrozdziale pozwol Ci wzbogaci typ treci zarzdzanych za pomoc Joomla! o podcasty, kartki elektroniczne, mapy i inne. Istniej nawet rozszerzenia potrafice zmieni stron Joomla! w rozszerzalny system wiki.
124
Podcasting w Joomla!
Podcasting to nowe znaczce medium. Najnowsze badania Bridge Ratings pokazuj, e liczba ludzi, ktrzy pobieraj podcasty, wzrosa z 820 000 w 2004 roku do 4,8 miliona ludzi w 2005. Prognozy na rok 2010 przewiduj poszerzenie grupy odbiorcw do 45 milionw. Wedug Business Week" przez ostatnie sze miesicy roku 2004 i pierwsze sze miesicy 2005 liczba podcastw wzrosa o 2500 procent. Podcasting to wersja audio kanaw RSS. By moe zauwaye ikon odpowiadajc za RSS na ulubionej stronie z newsami. Za pomoc aplikacji zwanej czytnikiem kanaw mona subskrybowa (zapisa si do) dany kana. Program bdzie na bieco automatycznie pobiera najnowsze wiadomoci na Twj komputer do pniejszego przeczytania. RSS to umowne oznaczenie dla grupy formatw opartych na jzyku XML, ktre zawieraj informacje o subskrypcj i.
Podcasty wykorzystuj praktycznie identyczne pliki RSS, co upodabnia czytniki podcastw do czytnikw kanaw. Najnowsze pliki audio pobierane s przez czytnik podcastw (najczciej w formacie MP3 lub AAC) na dysk komputera lub urzdzenie przenone. Nastpnie moesz odsucha ich zawarto na komputerze (czciej bdzie to odtwarzacz MP3 lub iPod). Najpopularniejsz stron zawierajc podcasty jest iTunes witryna firmy Apple.
125
Joomla! umoliwia doczenie podcastw na stronie, tak eby dodanie nowego pliku audio powodowao jego automatyczne pojawienie si na odpowiednim kanale RSS. W ten sposb uytkownicy bd mogli pobra go automatycznie. Rozszerzenie Podcast Suit, ktre dodaje funkcje obsugi podcastw, mona pobra pod adresem: http://wwwjIleblanc.com/joomla/Articles/Podcast_Suite,_Version_l.l_Stable/ Powyszy pakiet skada si z komponentu, moduu i dodatku, ktre poczone daj pen funkcjonalno podcastw w Joomla!. Rozszerzenie umoliwia take integracj z serwisem iTunes. Modu z pakietu Podcast Suit, zilustrowany na rysunku 4.19, wywietla odnonik do dynamicznie tworzonego kanau RSS.
sunek 4.19.
Your Details Submit an At tide Submit ,i W#b Link Logout
# si _
The Joornla! Core Team consists of volunteer developers, designers, administrators and managers who, together with a large range of work Groups of dedicated community members have taken Joomla! to new heights In its relatively short life This well-oiled machine s often copied but never surpassed. Joomla! has some wonderfully talented people taking Open Source concepts to the forefront of industry standards. Joomla! 1.5 is a major leap forward and represents the most exciting Joomla! release in the history of the project.
To ensure this code release, Wilco Jansen resorted to sending rum to joint lead-developer Johan Janssens. Johan, who's had a penchant for rum ever since the first "Pirate's of the Caribbean" movie screened, took the bait, mixed it with Cola, arid here we are with our latest 1.5 release It looks like pirate talk will figure quite a lot in future Joomla1 development!
Wicej...
? m J.
Only one edit window! How do ! , A ' create "Read more. "?
The FTP Layer allows file operations (such as installing Extensions ot updating the main configuration file) without having to make all the folders and tiles writable. This has been an
This is now implemented by Inserting a Re.id mo e... tag (the button is located below the editor area) a dotted line appears in the edited text showing the split location for the Read more... A new Plugm takes care of the rest. It is worth mentioning that this does not have a negative effect on migrated
Kana tworzony jest na podstawie ustawie okrelanych w interfejsie administracyjnym, na ekranie konfiguracji komponentu, co przedstawiono na rysunku 4.20. Rozszerzenie automatycznie wyszukuje nowe pliki w okrelonym folderze i tworzy kana na podstawie jego zawartoci. Niestety, to rozszerzenie nie ma funkcji obsugi wideo, czyli vodcastingu (yideo-on-demangcasting). Biorc pod uwag znaczcy wzrost vodcastingu, to niedocignicie powinno zosta wkrtce poprawione.
126
Rysunek 4.20.
Path f o i u p l o a d e d m e d i a components/com_podcast/media
Links O
Flash Player O
HTML Code
Quicktime Player
Listen Now!
EK-losi.ii e C o d e
Niezalenie od tego, czy chcesz przedstawi profesjonalne portfolio, czy tylko umieci ujcia pierwszych krokw Twojej creczki, Joomla! moe by odpowiednim rozwizaniem. Funkcj galerii zdj moe spenia kilka rnych rozszerze. Wedug ostatnich wylicze wyszukiwanie Google prowadzio do 50 rnych rozszerze dodajcych galerie na stronach Joomla!, zarwno komercyjnych, jak i darmowych. Rozszerzenie RSGallery2 jest najwyej ocenianym wrd aplikacji przeznaczonych dla Joomla! i cechuje si bogactwem funkcji. Umoliwia profesjonalne zarzdzanie galeriami i obrazkami. System kontroli dostpu, zintegrowany z systemem rejestracji uytkownikw Joomla!, wystpuje w kilkudziesiciu jzykach. Jeli masz zamiar zarzdza du iezb zdj cyfrowych, sprawd system Gallery2. Jest to jedna z najpopularniejszy aplikacji do tworzenia galerii, zawiera wiele profesjonalnych funkcji. Automatycznie tworzy kanay RSS, zawiera obsug komentarzy, wielu typw multimediw (nie tylko zdj), a take dziaa nawet na popularnych (duych) stronach internetowych. Chocia jest to oddzielna aplikacja PHP, moe zosta poczona ze stron Joomla! za pomoc specjalnej wtyczki Gallery 2 Bridge.
Rozszerzenie RSGallery2 (zobacz rysunek 4.21) napisano z myl o Joomla!. Tworzone pliki HTML i CSS s zgodne ze standardami. Posiada take kompletn obsug Joomfish, przez co moe dziaa w wybranym jzyku. Dodatkow funkcj stanowi zarzdzanie animacjami Flash!. Zanim zainstalujesz to rozszerzenie, upewnij si, e przynajmniej jedna z popularnych bibliotek graficznych (GD2, ImageMagick lub Netpbm) dostpna jest na Twoim serwerze PHP.
127
Home
O.iHf. i y Ocmo
Maci flower_5_bg_040404
flower_5_bg_040404
Home Gallery Demo Display Demo Download Forum Tutorial Documentation wiki FAQ j Development ACL explained Known issues Nightly Builds API Documentation Module Tutorials Flash Slide show Login Form
RSGallery2 zawiera panel sterowania, z ktrego mona zarzdza kadym aspektem rozszerzenia: od konfiguracji systemu, przez dodawanie zdj (pojedynczo lub w pakietach), zarzdzanie galeriami, zmian opcji wywietlania, po zarzdzanie baz danych zdj. Dodatkowo opcja wprowadzania zmian w CSS umoliwia dopasowanie galerii do wygldu aktualnego szablonu. Warto odwiedzi stron domow RSGallery2 (http://rsgallery2.net/). Moesz tam znale przykadow implementacj galerii, pobra najnowsz wersj rozszerzenia, czyta i wysya wiadomoci na forum powiconym rozszerzeniu lub uczy si na podstawie zamieszczonych przewodnikw. Dostpne s przewodniki opisujce wszystkie aspekty od instalacji, przez wasne szablony dla galerii, po tworzenie moduw. Strona zawiera take kompletn dokumentacj API, opis wszystkich klas, z ktrych skada si platforma RSGallery2.
omunikacja na stronie
Istniej rozszerzenia Joomla!, ktre pozwalaj doda rne funkcje komunikacji midzy uytkownikami, np. czat, kalendarz imprez lub nawet wsplnie redagowane przepisy. Komunikacja jest kluczowym elementem stron, ktre pretenduj do tytuu Web 2.0. Kilka rozszerze, ktre poszerzaj Joomla! o funkcje budowania wirtualnych spoecznoci, przedstawiono w rozdziale 10. Rozszerzenia dla tego obszaru pogrupowano w JED w nastpujce kategorie: Komunikacja (ang. Communications) Zawiera podkategorie: Zakadki i polecane (Bookmarks & Recommended), Czat (Chat), Komentarze (Comments), Kontakty (Contacts), E-mail, Formularze (Forms), Fora (Forums), Integracja z forami (Forum Bridges), Dodatki do forw (Forum extras), Ksigi goci (Guest Book),
128
Listy mailingowe (Mailing & Distribution Lists), Newsletter, Sondy (Polls), Quizy i badania (Quiz & Surveys), Shoutbox, SMS & PMS, Komunikacja z uytkownikami (User interaction). Kalendarze i wydarzenia (Calendars & Events) Zawiera podkategorie: Urodziny i wydarzenia historyczne (Birthdays & Historie Events), Rezerwacja (Booking & Reservations), Kalendarze (Calendars), Zegarki (Clocks), Odliczanie (Countdown), Data i czas (Date & Time), Wydarzenia (Events), Uroczystoci (Festivities).
Jedn z najpopularniejszy metod budowania wirtualnych spoecznoci jest umoliwienie uytkownikom nadsyania wasnych komentarzy zwizanych z danym artykuem lub wpisem na blogu. Fora internetowe s czsto puste, poniewa brakuje na nich prowokatorw piszcych nowe wiadomoci, ktre skaniaj innych do odpowiedzi. Funkcja dodawania komentarzy do istniejcej treci moe by solidn motywacj dla uytkownikw. Prawie kady lubi od czasu do czasu dorzuci swoje trzy grosze. Posiadanie sekcji komentarzy wymusza konieczno moderacji. Ludzie czsto nadsyaj treci zabronione, atakuj innych, zdradzaj informacje osobiste, dodaj reklamy, materiay obraliwe i obsceniczne, a take (co jest najgorsze) krytyk pod adresem autora strony. Zgoda na komentarze wymaga od administratora wikszej uwagi odnonie do tego, co dzieje si na stronie ni w przypadku braku komentarzy. Musisz zdawa sobie spraw, e powicenie dodatkowego czasu jest niezbdne, o ile nie chcesz, eby Twoja strona przerodzia si w Dziki Zachd rzdzony mentalnoci wszystko wolno".
Dodatek Akocomment umoliwia uytkownikom Joomla! dodawanie komentarzy pod kadym artykuem. Rozszerzenie Akocomment (omwione dokadniej w rozdziale 10) jest jednym z najczstszych rozszerze dodajcych komentarze w systemie Joomla!. Poprawnie obsuguje komentarze w rnych jzykach, np. angielskim, chiskim czy norweskim. Najczciej stosowana wersja rozszerzenia to Akocomment Tweaked Special Edition.
Interfejs administracyjny umoliwia dokadn konfiguracj rozszerzenia, wczajc w to zakadki, dodawanie, powiadomienia, zgaszanie, ulubione i szablony.
Ksiga goci
Jedn z funkcji najczciej pojawiajcych si na hobbystycznych stronach WWW jest ksiga goci. Ksigi goci zaliczane s do pierwszy funkcji komunikacyjnych, ktre sigaj pocztku samych stron internetowych. Umoliwiay odwiedzajcym zamieszczanie komentarzy (najlepiej komplementw) lub sugestii zwizanych z zawartoci strony.
Ksiga goci jest nadal bardzo popularna. Jedn z najlepszych funkcji dynamicznego systemi takiego jak Joomla! jest fakt, e zmienia si automatycznie. Dziki temu wyglda na ciglt aktualizowan nawet jeli nie bya odwieana od jakiego czasu. Wyszukiwarka Google wykorzystuje okolicznociowe bannery, aby zmienia wygld strony gwnej. A gdyby Twoje
129
witryna wywietlaa losowy wpis z ksigi goci na stronie gwnej? Oczywicie musiaby wprowadzi moderacj ksigi goci, aby zapobiec pojawianiu si reklam, spamu i treci obscenicznych na stronie. Moderacja wymagaaby co prawda dodatkowej pracy, ale za to mielibymy stron WWW, ktra za kadym razem wita odwiedzajcego zacht, wyraon sowami poprzednich uytkownikw. Zanim napiszesz modu, ktry pobiera losowy cytat z ksigi goci, musisz zainstalowa dodatek odpowiedzialny za zbieranie opinii uytkownikw. W rozdziale 10. znajdziesz wicej informacji na ten temat.
Send
130
131
sunek 4.23.
[J[
Trace:
]]
Of
LEff^J
Edit the page and hit Save. S e e for Wiki s y n t a x . Please edit the page only if you c a n i m p r o v e it. If you want to test some things, learn to make your first steps on the
Projects of JoomProsolutiQn.coro DokuWiki for Joomla! [[wiki:DokuWiki]] is a standards compliant, simple to use [[wp>Wiki]], mainly aimed at creating documentation of any kind. It is targeted at developer teams, workgroups and small companies. It has a simple but powerful [[wiki: syntax]] which makes sure the datafiles remain readable outside the Wiki and eases the creation of structured texts. All data is stored in plain text files no database is required. JOOMLA! ===== Joomla! is a Content Management System (CMS) created by the same award-winning team that brought the Matrbo CMS to its current state of stardom.Joomla! is the ideal tool for
Hoirolnninn amal I t-n lariw rlmismi^ cnwmtinitTr i.icVi ^ i t c ^ i nti-n
j S a v e j j Preview j j Cancel j
Poczwszy od wersji 4, sposb przechowywania danych oparty jest na formacie X M L . Przykadowy fragment kodu DocBook:
<book id="pro_joomla"> Joomla!</ti tle> < t i t l e > P r o f e s s i onal <chapter
czytasz na
opanowanie
opiera
Dziki przechowywaniu informacji w takim formacie dane mog by modyfikowane przez oprogramowanie niezwizane z systemem wiki. Oznacza to, e artykuy stworzone w OpenWiki mog zosta przetworzone na dowolny typ treci statycznych 6 . Przy wprowadzaniu zmian na stronie zostaj zapisane take rnice, dziki czemu moliwe jest odtworzenie poprzednich wersji. Na rysunku 4.24 przedstawiono przykadowy ekran porwnania wersji. Wstawiony tekst oznaczony jest znakiem plusa (+) po lewej stronie nowej wersji, wywietlanej w prawej kolumnie. Dodatkowo zmiany s podwietlane, co uatwia ich lokalizacj.
132
[[sta it]]
Show page J f O l d revisions I | Recent changes !
OPENWIKI
| Search
Differences
T h i s s h o w s y o u the differences b e t w e e n the selected revision and the current version of the page.
-v.iit
Line 2:
current
===== DokuTtfiki for Joomla! ===== + T h i s i s great 1 [[wiki:Dokuiki]] is a standards [ [wiki:DokuWiki] ] is a standards compliant, simple to use [[wp>Wiki]], compliant, simple to use [[wp>Wiki]], mainly aimed at creating documentation mainly aimed at creating documentation of any kind. It is targeted at developer of any kind. It is targeted at teams, workgroups and small companies, developer team3, workgroups and small It has a simple but powerful companies. It has a simple but powerful [ [wiki: syntax] ] which makes sure the [ [wiki: syntax] ] which makes sure the datafiles remain readable outside the datafiles remain readable out3ide the Wiki and eases the creation of iki and eases the creation of structured texts. Ail data is stored in structured texts. All data is stored in plain text files no database is plain text files no database is required. required.
s t a r t . H 6 9 8 7 4 8 2 3 . t x t (13312207 views) Last m o d i f i e d : 2008/10/30 01:32
OpenWiki ma jednak kilka cech, ktre mog sprawia problemy operatorom adaptujcym to rozszerzenie. Dla wielu uytkownikw mylcy moe by brak przycisku New Page (Nowa strona). Poniewa wszystkie strony musz by ze sob poczone, aby doda now, musisz najpierw stworzy odnonik na istniejcej stronie. Przykadowo nowe odwoanie, ktre naley wstawi w tre istniejcego artykuu, moe wyglda tak:
[[joomlajumpstart]]
Po klikniciu odnonika zostanie wywietlony ekran tworzenia nowej strony, co zilustrowano na rysunku 4.25. Rysunek 4.25. Kliknicie odnonika prowadzcego do nieistniejcej strony spowoduje wywietlenie ekranu tworzenia nowej strony
[[joomlajumpstart]] __
| Create this page | | Old revisions j [ Recent changes j Trace: <
OPEN WIKI
| Search J
| Index
Back to top
Kilka ogranicze OpenWiki: Wszystkie pliki kodowane sjako UTF-8 Dokumenty dostpne s tylko w formie zakodowanej w UTF-8, niezalenie od zestawu znakw ustawionego w Joomla!. Dlatego, niektre artykuy napisane w innych jzykach ni angielski (np. inne pliki DocBook) mog sprawia problemy w systemie.
133
Brak czci administracyjnej Z tego powodu systemem wiki nie mona zarzdza jak zwyczajnym rozszerzeniem Joomla!, caa konfiguracja musi przebiega z poziomu strony gwnej. Oddzielna wyszukiwarka Artykuy OpenWiki nie s dostpne dla reszty systemu Joomla!, z tego powodu wymagaj oddzielnej wyszukiwarki. Dlatego artykuy Joomla! s niewidoczne dla wyszukiwarki wiki, a artykuy wiki dla wyszukiwarki Joomla!.
Nriting
Przedstawione na rysunku 4.26 rozszerzenie eWriting umoliwia dodawanie artykuw przez odwiedzajcych stron. Rozszerzenie stworzono z myl o stronach powiconych fan fiction (na ktrych umieszczane s autorskie romanse lub historie zwizane ze Star Trekiem). W interfejsie przewidziano moliwo dodawania obrazkw i automatycznego przydzielania do kategorii.
rsunek 4.26. trona
i n I h i i s e c t i o n vve h a v e J'! S t o n e s
i.zszerzenia Iniide The Taidis Stones Nriting, Categories a ktrej tytkownicy mog Mtntl O o c t i w Stfine* odawa wasne oowiadania toth Doctor Storic,
.".iwii:;^
{3)
(7 2)
(3>
Zanim umoliwisz dodawanie opowiada, najpierw musisz okreli kilka kategorii, do ktrych mog by przydzielane. Kategorie rozszerzenia eWriting przypominaj kategorie Joomla!, mona im przypisa obrazek i nada opis. Po utworzeniu kategorii opowiadania mona dodawa w interfejsie administracyjnym mb z poziomu strony gwnej. Opowiadania zapisywane s w postaci rozdziaw i mog by wprowadzane z klawiatury lub wysyane w postaci plikw tekstowych (.ixt) lub plikw HTML (.htm albo .html) istnieje jednak moliwo okrelenia dodatkowych typw plikw w interfejsie administracyjnym. Na stronie gwnej mona te wstawi modu, ktry wywietla statystyki. W interfejsie administracyjnym mona zarzdza dodanymi opowiadaniami, docza nowe i tworzy rozdziay. Istnieje take moliwo dodawania obrazw do galerii uytkownika, integracji z rozszerzeniem Community Builder, Joomlaboard Forum lub systemami prywatnych wiadomoci (PMS), takimi jak Missus lub MyPMSII.
134
Twrcy e Writing s jednoczenie autorami rozszerzenia Missus, ktre dodaje moliwo wysyania prywatnych wiadomoci na stronie Joomla!. Wiadomoci wysyane midzy uytkownikami mog zawiera zaczniki. Rozszerzenie Missus moesz pobra ze strony internetowej e Writing.
Implementacja ogosze
Wprowadzenie na stronie moliwoci umieszczania ogosze moe by dobrodziejstwem dla Twoich uytkownikw. Wielu ludzi myli o eBayu jako gwnym miejscu sprzeday uywanych przedmiotw, ale istniej te strony, takie jak www.photo.net, ktre robi wietny interes, trafiajc w nisz rynkow, ktrej grupa odbiorcw skada si ze specjalistw. W przypadku rynkw niszowych osoby odwiedzajce stron nale do konkretnej, okrelonej grupy, co moe zwikszy dochody z wymiany. Oczywicie ogoszenia nie musz by ograniczone wycznie do sprzeday produktw. Oferty usug, informacje o wydarzeniach, anonse towarzyskie itp. wszystko to mona umieci jako ogoszenie. Biura ogosze nabray nowego znaczenia w dobie internetu dziki takim stronom jak cragslist1. Rozszerzenie Noah's Classifieds, przedstawione na rysunku 4.27, umoliwia tworzenie hierarchicznych kategorii bez ograniczenia liczby zagniede, doczanie zdj do ogosze, , okrelanie dodatkowych pl dla wybranych kategorii, a take powiadomienia e-mailem.
Rysunek 4.27.
135
Jeli klikniesz odnonik Home w menu Noah Classifieds, pojawi si opcja Create New Categon> (Utwr: now kategori). Nastpnie moesz ustawi parametry kategorii, aby umoliwi zwykym uytkownikom dodawanie ogosze. Wtedy, po wybraniu danej kategorii, zostanie wywietlona opcja Submit Ad (Dodaj ogoszenie). Za pomoc interfejsu administracyjnego, pokazanego na rysunku 4.28, mona w peni kontrolowa rozszerzenie, np. zablokowa dan kategori (eby nie mona byo dodawa do niej nowych ogosze) lub przypisa dodatkowe pola dla danej kategorii. sunek 4.28. z iministracyjna ikietu 'assifieds
Expirt on properties N u m b e r of days the user must be informed about the e x p i r a t i o n before N u m b e r of times: the user is allow ed to pro ong h i s / h e r e x p i r e d ads image up Maximum picture size in bytes Maximum picture w i d t h in pixels M a x i m u m picture height in pixels 0 0 0 Layout -ustomization 0 Loger,. Menu points 0 Register a m 0 Recent ads 01 0Sh Bsu 0P 0i 13 Help 'Help" ink destination Additional H E A D content
O
. ; ar ads
ngtt befon
Upewnij si, czy w sekcji ogosze umiecie informacj, e nie ponosisz odpowiedzialnoci za adne transakcje zawarte za jej porednictwem. Dodatkowo umie owiadczenie, e zastrzegasz sobie prawo do usunicia dowolnego ogoszenia z dowolnego powodu, jeli w Twoim mniemaniu godzi ono w dobro strony. Doskonaym przykadem s Terms of Use" (Warunki uycia") na stronie www.craigslist.org.
136
Rysunek 4.29.
S K l E I l i
Quail-WM 2010 E r g e b n i s s e 4. Spieltag ( 1 5 . 1 0 . 2 0 0 8 19.11.2008) Spieltag auswhlen: 04 Home * Fussball-Forum Gruppe 1 Mittwoch, 15. Oktober 2008 Malta Portugal Platz Ungarn H l Albanien Mannschaft Dnemark Ungarn Albanien j^jft Portugal Schweden Malta 1 2 0 0 4 2:1 ' Anmeldung 0:11 -11 Punkte 7 Spiele i G
0 : 1 (0:1)
* Credits * Impressum Quali WM 2010 Gruppe 1 Gruppe 2 U V Tore Diff. Gruppe 3 Gruppe 4 Gruppe 5 Gruppe 6 Gruppe 7 Gruppe 8 Gruppe 9
0: 0 1 0 1 1
1 '
ledzenie wynikw podzielone jest na projekty, co w praktyce opowiada danym ligom. Nastpnie okrelane s druyny i gracze. Oprcz gwnego komponentu odpowiedzialnego za ledzenie wynikw pakiet zawiera take kilka moduw: Events Statistic Module (Statystyki wydarze) Wywietla list eventtype dla wybranego projektu. Next Match Module (Nastpny mecz) Wywietla nastpny mecz dla wybranej lub ulubionej druyny. Random Player Module (Losowy gracz) Wywietla losowego gracza dla wybranego projektu i wybranej druyny. Ranking Module projektu. (Ranking) Przedstawia aktualne zestawienie dla wybranego
Results Module (Wyniki) Przedstawia ostatnie wyniki dla wybranego projektu. Results Tab Module (Zakadki wynikw) Przedstawia ostatnie wyniki pogrupowane za pomoc JavaScriptu w trzy pojedyncze zakadki. Team Players Module (Gracze z druyny) Wywietla list graczy Twojej ulubionej druyny wedug pozycji graczy. Navigation Menu Module (Nawigacja) Dostarcza dodatkowego menu nawigacyjnego, ktre umoliwia szybki dostp do zapisanych informacji.
Rozdzia 4. Dodawanie i modyfikacja dostpnych rozszerze W czci administracyjnej mona skonfigurowa miejsca docelowe dla poszczeglnych pozycji menu.
137
Z poziomu interfejsu administratora mona w peni skonfigurowa system ledzenia wynikw. ledzi mona wedug projektw, klubw, druyn, graczy, pozycji graczy, wydarze i sdziw wydarze. Odwied stron domow rozszerzenia, aby pobra najnowsz wersj wraz kilkoma przykadowymi konfiguracjami. Cz strony jest w jzyku niemieckim, dlatego znajomo tego jzyka uatwi Ci pene wykorzystanie moliwoci rozszerzenia. Stron domow moesz odwiedzi pod adresem: www.joomleague. de
Aby zainstalowa gr, musisz najpierw doda komponent bazowy o nazwie com_casinobase, ktry zawiera gwn bibliotek. Nastpnie moesz zainstalowa jedn lub wicej gier. Gry dostpne s take w wersji Flash, co przekada si na atrakcyjniejszy wygld i ywsz rozgrywk. Gr, ktra dostarcza najwicej emocji, jest prawdopodobnie ruletka. atwo popa w uzalenienie, dlatego moe si okaza, e odwiedzajcy bd cigle wraca na Twoj stron.
138
Obsuga quizow
Quiz moe przybra wiele form od prostej zagadki, po prbne podejcie do SAT-u s . Dodatki typu quiz wykazuj spory potencja na polu edukacji zarwno formalnej, jak i samodzielnej. Wyobra sobie, e jeste nauczycielem angielskiego, ktry umieci na stronie internetowej prosty test z gramatyki, aby uczniowie mogli powiczy przed gwnym sprawdzianem. Inny przykad prowadzisz stron internetow promujc zalety Peru, a na niej umieszczasz prosty quiz dotyczcy pooenia gwnych prowincji. Dziki komponentowi Quiz 2.0, przedstawionemu na rysunku 4.31, moesz tworzy quizy rnego rodzaju: od najprostszych, zawierajcych odpowiedzi tak lub nie albo prawda lub fasz, po test wyboru (take wielokrotnego). Po ukoczeniu quizu zostanie wywietlony jego wynik wraz z informacj o powodzeniu lub niepowodzeniu, w zalenoci od ustawie w interfejsie administracyjnym.
Rysunek 4.31.
Frage 1
Question 3 of 4 Frage 3 i 2. 3.
m
Antwort 1 0 Antwutl 2 tJ Antwort 3
Interfejs administracyjny Quiz 2.0 skada si z dwch opcji: edycji quizow i edycji kategorii quizow. Edycja quizow umoliwia stworzenie nowego lub modyfikacj istniejcego. Statystyki zawierajce informacje o liczbie udanych lub nieudanych prb, cznej liczbie quizow i punktacji dostpne s po wpisaniu adresu podobnego do: www.przyklad.com/index.php? option=com_quiz&task=stats
Rozszerzenie umoliwia wywietlanie quizow w rnych jzykach: angielskim, woskim, francuskim, duskim, norweskim i szwedzkim.
Podsumowanie
Rozszerzenia to jeden z kluczowych powodw szerokiego wykorzystania Joomla!. Wrd prawie 4000 mona znale niemale dowoln funkcj wzbogacajc system. W tym rozdziale przedstawiono rnorodne rozszerzenia, ktre wzbogacaj Joomla!, a w szczeglnoci:
SAT ustandaryzowany test dla uczniw szk rednich w USA, odpowiada polskiej maturze p r z y p . tum.
Rozdzia 4. Dodawanie i modyfikacja dostpnych rozszerze Udoskonalanie kluczowych funkcji strony WWW i rozbudowywanie interfejsu administracyjnego o bogatsze opcje wyszukiwania, specjalistyczne edytory WYSIWYG, zarzdzanie plikami, automatyczne tworzenie mapy strony i wiele innych. Wzbogacanie funkcjonalnoci zwizanych z prowadzeniem organizacji i e-commerce przez implementacj sklepu internetowego, patnych subskrypcji, zarzdzania projektami, ledzenia kart pracy, prezentacji aukcji. Poszerzanie zawartoci strony Joomla! o dodatkowe media, np. podcasty i galerie zdj. Ulepszanie komunikacji na stronie przez wprowadzenie systemu komentarzy, czata, ksigi goci lub funkcjonalnoci wiki. Dodawanie ledzenia wynikw sportowych i gier, co zwiksza atrakcyjno.
139
Spord setek dostpnych rozszerze masz spor szans znale takie, ktre speni wikszo Twoich potrzeb. Jeli jednak szukasz czego specjalnego, dotychczas niedostpnego, moesz napisa wasne rozszerzenie. Pierwszy krok w tworzeniu rozszerze, poczwszy od najprostszego typu moduu, opisano w rozdziale 5.
140
5
Tworzenie prostych rozszerze: moduy
Chocia z szerokiej palety dostpnych rozszerze Joomla! mona czsto dobra takie, ktre spenia wikszo potrzeb, wiele stron wymaga stworzenia specjalnego kodu. Czsto oznacza to zaprogramowanie rozszerzenia, ktre wywietla informacje w okrelony sposb. Tak rol graj wanie moduy, najprostsza forma rozszerze. Ich zadaniem jest gwnie wywietlanie informacji przy minimalnej interakcji z uytkownikiem. W systemie Joomla! moduy wykorzystywane s przede wszystkim do wywietlania podstawowych elementw strony gwnej, takich jak menu, bannery, pola wyszukiwania i sondy. Czsto wywietlaj te informacje zwizane z konkretnym komponentem. Przykadowo modu search wywietla pole, ktrego warto przekazywana jest do komponentu search, a ten wykonuje zapytanie do bazy danych. Poniewa funkcj moduw jest niemal wycznie wywietlanie informacji, zarwno programowanie, jak i instalacja s bardzo proste. W tym rozdziale opisano proces tworzenia trzech moduw: Pierwszy wywietla proste powitanie Hello World!", stanowi solidn podstaw dalszego tworzenia moduw dowolnego typu. Drugi modu wykorzystuje specjaln tabel w bazie danych do przechowywania ycze witecznych. Jeli dany dzie odpowiada jednemu spord wit zapisanych w bazie, zwizane z nim yczenia zostan wywietlone na stronie. Trzeci modu pobiera i wywietla informacje o kontaktach, ktre zostay wprowadzone do systemu za porednictwem komponentu Kontakty.
Podczas tworzenia powyszych moduw dowiesz si, w jaki sposb wykorzystywa interfejs administratora Joomla!, aby konfigurowa moduy. Poznasz take zasad dziaania moduw w ramach platformy Joomla!. Poniewa programowanie moduw jest proste i nie wymaga duych nakadw czasowych, wiele spord specyficznych problemw daje si rozwiza wanie podczas tworzenia rozszerzenia tego typu, posiadajcego okrelon funkcjonalno.
142
* * * * *
*/
@version $Id: mod hellojoomla.php 5203 2007-03-27 0l:42:10Z Danr $ @package Joomla @copyright (C) 2007 Dan Rahmel, Wszystkie prawa zastrzeone. @license GNU/GPL Prosty modu wywietlajcy powitanie Hello World
echo JText::_(
Powyszy modu skada si z dwch linii wykonywalnego kodu. Pierwsza powinna by umieszczana we wszystkich tworzonych rozszerzeniach, poniewa stanowi gwarancj, e rozszerzenie uruchamiane jest przez system Joomla!, a nie z zewntrz. Takie dziaanie zabezpiecza przed hakerami, ktrzy mogliby naduy rozszerzenia do celw, ktrych nie planowae. W drugiej linii umieszczono komend echo, ktra spowoduje wywietlenie powitania. Zwr uwag, e komenda echo nie zostaa uyta do wywietlenia zwykego tekstu. Powitanie jest najpierw przekazywane do metody _ (znak podkrelenia) klasy JText, a dopiero jej wynik zostaje wywietlony. Klasa JText odpowiada za wywietlanie tekstu w rnych jzykach, w zalenoci od zainstalowanych pakietw jzykowych. Jeli tekst przekazany do metody _ dostpny jest w wersji, ktra odpowiada jzykowi ustawionemu na stronie, zostanie zwrcona przetumaczona wersja. Zamy, e metoda zostaa wywoana z parametrem o wartoci Hello". Zamy take, e hiszpaski pakiet jzykowy zawiera tumaczenie tego sowa, a na stronie zostao ustawione wywietlanie komunikatw w jzyku hiszpaskim. W takiej sytuacji zwrcony tekst brzmiaby Hola". Dlatego, jeli aktualnie ustawiony pakiet jzykowy zawiera tumaczenie powitania Hello World!", zostanie ono wywietlone wanie w wybranym jzyku.
143
Jeli nie uda si znale odpowiedniego tumaczenia, metoda zwrci po prostu przekazany tekst. Zwr uwag, e nie jest brana pod uwag wielko liter ani nie jest dostosowywana interpunkcja. Dobrym pomysem jest wykorzystywanie klasy JText podczas wywietlania komunikatw, poniewa jeli Twj modu stanie si popularny, twrcy pakietw jzykowych bd w stanie przetumaczy go bez koniecznoci wprowadzania zmian w Twoim rozszerzeniu. Kolejnym krokiem jest utworzenie pliku deskryptora w formacie XML, w ktrym znajduj si informacje dla systemu Joomla! dotyczce instalacji moduu. Utwrz nowy plik pod nazw modhelloworld.xml, a nastpnie w edytorze tekstu wprowad poniszy kod:
<?xml version="1.0" encoding="utf-8"?> <install type="module" version="1.5.0"> <name>Hello World</name> <author>Dan Rahmel</author> <creationDate>Marzec 2007</creationDate> <copyright>(C) 2007 Dan Rahmel, Wszystkie prawa zastrzeone.</copyright> <1icense>GNU/GPL</l icense> <authorEmai1>admi n@joomlajumpstart.org</authorEmai1> <authorrl>www.joomlajumpstart.org</authorUrl> <versi on>l.0.0</versi on> <description>Modu Hello World</description> <files> <fi 1ename modue="mod_hel 1 oworld">mod_hel1oworld.php</f11ename> </files> </i nstal>
Plik deskryptora zawiera informacje co" i dokd", niezbdne przy instalacji rozszerzenia Joomla!. Atrybut type znacznika <i nstal 1> wskazuje, e instalowane rozszerzenie jest moduem. Atrybut version informuje, e modu przeznaczono do instalacji w Joomla! w wersji 1.5 i nowszych. Element <name> okrela nazw moduu. Element <description> przechowuje opis, ktry pojawi si na ekranie po zakoczeniu instalacji. Element <filename> zawiera list moduw plikw przypisanych do moduu wskazywanego przez atrybut module. To ju wszystko, co niezbdne jest do dziaania moduu Hello World. W odrnieniu od szablonw moduw nie mona po prostu skopiowa do odpowiedniego folderu, trzeba je najpierw zarejestrowa w systemie Joomla!. W tym celu musisz stworzy archiwum ZIP zawierajce folder z plikami moduu, ktre nastpnie zainstalujesz za pomoc opcji Rozszerzenia/Instaluj. Sposb tworzenia archiwum bdzie rni si w zalenoci od systemu operacyjnego. W przypadku Windowsa i MacOS-a wystarczy klikn prawym przyciskiem na danym folderze i wybra opcj utworzenia archiwum 1 . Jeli korzystasz z Linuksa, sprawd w dokumentacji, ktry program lub narzdzie najlepiej wykorzysta do tego celu. Podczas rejestracji nowego moduu informacje o nim zapisywane s w tabeli josjnodu les w bazie danych. Przechowywane s: nazwa moduu, informacje na temat rejestracji, ustawienia parametrw, pozycja i kolejno moduu, a take czy modu jest aktywny.
W systemie Windows XP opcja tworzenia archiwum ZIP dostpna jest jako Wylij do/Folder Skompresowany z menu kontekstowego p r z y p . tum.
144
Zmiany w pliku XML przeprowadzone po instalacji nie wpyn na informacje o module wywietlane w interfejsie administratora (wyjtek stanowi definicja parametrw pobierana z pliku XML). Zmiana tych informacji wymaga bezporedniej manipulacji w bazie danych MySQL lub ponownej instalacji moduu. Otwrz zaplecze Joomla! w oknie przegldarki, a nastpnie uruchom opcj Rozszerzania/ Instalator. Wybierz archiwum ZIP zawierajce modu, kliknij przycisk Wczytaj plik & Instaluj, aby doda nowy modu w systemie. Po ukoczeniu procesu instalacji kliknij opcj Rozszerzenia/Moduy, a na licie powinien pojawi si modu zainstalowany przed chwil, jak to przedstawiono na rysunku 5.1.
Rysunek 5.1.
Na licie Moduy pojawiaj si egzemplarze moduw dostpnych w systemie. Rozszerzenie stworzone przed chwiljest waciwie typem moduu, to w pewnym sensie szablon, na podstawie ktrego mona dodawa jeden lub wicej egzemplarzy. W prawej kolumnie pojawiaj si informacje na temat typu moduu, nowy egzemplarz jest typu mod hel loworld. Moesz tworzy dodatkowe egzemplarze tego moduu i innych, klikajc przycisk Nowy, a nastpnie wybierajc modu konkretnego typu. Zastosowanie kilku egzemplarzy jednego moduu moe mie sens szczeglnie wtedy, kiedy zmiana parametrw przekada si na zmian wygldu lub funkcji. Przykadowo modu modjnainmenu (Menu) wywietla list pozycji danego menu, ustawianego za porednictwem parametrw. W folderze /modules strony Joomla! znajdziesz katalog zawierajcy zainstalowany modu. Podczas tworzenia nowego moduu zmiany naley wprowadza w plikach rdowych w tym katalogu. W systemie Windows cieka dostpu do nowego moduu przypomina ponisz: C:\Program Files\Apache mod heoword Software Foimdation\Apache2.2\htdocs\modules\
145
Domylnie nowe moduy s wyczone. Kliknij czerwony X w kolumnie Wczony, aby wczy modu. Nastpnie powiniene sprawdzi ustawienia moduu, aby upewni si, czy pojawia si w odpowiednim miejscu. Domylnie modu pojawi si na pozycji left. W tym przypadku takie byo nasze zaoenie, jednak naley sprawdzi, czy ustawienia s poprawne. Kliknij nazw moduu na ekranie Moduy, aby otworzy okno ustawie moduu. Sprawd, czy modu wywietlany jest w odpowiednim miejscu (zobacz rysunek 5.2). Ustawienie parametru Kolejno wskazuje, e modu zostanie wywietlony jako ostatni element w lewym panelu. Ta informacja uatwi zlokalizowanie rozszerzenia na stronie gwnej.
unek 5.2.
mdJiellowoi I o d
Hello World
ill
B'fflj
Otwrz stron gwn Joomla! w przegldarce. Panel zawierajcy Main Menu powinien wywietla take powitanie Hello World! (zobacz rysunek 5.3). Modu Helto World jest kompletnym przykadem tworzenia i instalacji moduw. Moesz go wykorzysta jako podstaw dla bardziej zaawansowanych moduw. Powiniene go teraz wyczy, aby nie zamieca strony, poniewa nie zawiera uytecznych funkcji.
146
Rysunek 5.3. Powitanie Hello World! powinno pojawi si pod innymi moduami w lewym panelu
Haso
administrators and managers who, together with a large range of Work Groups of dedicated community members have taken Joomla! tc^iew heights in its relatively s h o j ^ f T T h i s well-oiled machine is oftpfuopied but never surpassed. Jodimla! has some wonderfully taleaKra peopie taking Open Source corrupts to the forefront of industrydfandards. Joomla! 1.5 is a p forward and represents the t exciting Joomla! release in the ' history of the project.
joint lead-developer Johan Janssens. Johan, who's had a penchant for rum ever since the first "Pirate's of the Caribbean" movie screened, took the bait, mixed it with Cola, and here we are with our latest 1.5 release. It looks like pirate talk will figure quite a lot in future Joomla' development!
Hello World
Hello World! Wicej..
..,, .,
This is now implemented by inserting a Read more... tag (the button is located below the editor area) a dotted line appears in the edited text showing the split location for the Read more. .. A new Plugin takes care ofthe rest. It is worth mentioning that this does not have a negative effect on migrated data from older sites. The new implementation is fully backward compatible
The FTP Layer allows file operations (such as installing Extensions or updating the main configuration file) without having to make all the folders arid files writable. This has been an issue on Linux and other Unix based platforms in respect of file permissions. This makes the site admin's life a lot easier and increases security of the site. You can check the write status of relevent folders by going to "HeIp->System Info" and then in the sub-menu to "Directory Permissions"
Podobnie jak dziao si to przy tworzeniu moduu Hello World, zaczniemy od stworzenia folderu w gwnym katalogu dysku twardego. Nazwij folder /modjiolidaygreetings. Tak samo bdzie te nazywa si folder wewntrz katalogu /modules, po zainstalowaniu moduu w systemie Joomla!.
holiday
147
witowania!"
"Tekst, ktry pojawi si pod yczeniami witecznymi." /> <param name="boldgreeting" type="radio" default="0" label="Pogrubienie" description= "Okrela, czy yczenia powinny by wywietlane pismem pogrubionym." > <option value="0">Nie</option> <opt i on value="l">Tak</option> </param> </params> </install>
Porwnujc powyszy kod z utworzonym wczeniej, zauwaysz pewnie, e w pliku pojawiy si definicje dwch parametrw w sekcji <params>. Te parametry (greeting i boldgreeting) stanowi przykad wasnych ustawie moduw, dostpnych w wikszoci przykadw. Po instalacji w systemie Joomla! warto tych parametrw mona zmienia za pomoc opcji Moduy. Obecno moduw pozwala administratorowi zmieni wygld moduu lub jego funkcje bez koniecznoci modyfikacji kodu rdowego. Powyszym parametrom przypisano dwa typy: text i radio. Parametr typu text przyjmuje jako warto cig znakw o maksymalnej dugoci 255. Warto radio odpowiada wyborowi jednej spord listy moliwoci. W tym przypadku jest to wybr midzy nie (warto 0) a tak (warto 1). Warto parametrw ustawia si za pomoc opcji Moduy, po klikniciu moduu ich wartoci s automatycznie zapisywane w bazie danych Joomla!. Parametry zdefiniowane w pliku deskryptora mog przyjmowa jeden z 21 dostpnych typw. System Joomla! ma wbudowane funkcje niezbdne do wywietlania i zmiany ustawie tych parametrw. Lista typw zawiera m.in.: category, editors, filelist, folderlist, helpsites,
imagelist, languages, list, menu,menuitem, password, radio, section, spacer, text i textarea.
* * * * *
*/
@version $Id: mod holidaygreetings.php 5203 2007-03-27 01:42:107, Daw $ ((package Joomla @copyright (C) 2007 Dan Rahmel, Wszystkie prawa zastrzeone. @license GNU/GPL Modul wywietlajcy yczenia witeczne w odpowiednie dni.
?>
<div><small> <?php echo JText::_( '<p>Dzi si aj jest ' ); echot dateC'l, j F Y") . 'r. </p>' ); </small></dnv>
148
}
$curDay = date("d"); icurMonth = date("m"): $db =& JFactory::getDB0(): $query = "SELECT *" . "\n FROM jos_greetings" . "\n WHERE holidayMonth = " . intval(icurMonth) . " and " . "holidayDay = " . intval(icurDay): $db->setQuery($query): iholidays = $db->loadObjectList(); if (count(iholidays)) { foreach (Iholidays as $holiday) { echo JText::_( '<p>' . $bb . $holiday->greeting . $be . '</p>' ):
. '</p>' );
}
?>
</div>
Powyszy kod jest bardziej skomplikowany ni skadajcy si z jednej linii modu Hello World. Pierwsza instrukcja wywietla aktualn dat jako ograniczon znacznikiem <smal 1 > W nastpnej sekcji pobierane s wartoci dwch parametrw, ktre mona ustawi w interfejsie administratora. Jeli parametrowi boldgreeting przypisano warto Tak, to zmiennym $bb i $be przypisywane s odpowiednie znaczniki HTML powodujce wywietlenie tekstu pismem pogrubionym. W kolejnym kroku obecny dzie i obecny miesic zostaj przypisywane do odpowiednich zmiennych wykorzystywanych w pniejszym etapie.
Pniej, po zakoczeniu przygotowa, nastpuje gwna cz skryptu pobranie z bazy danych listy wit. Najpierw zmiennej Sdb przypisywana jest referencja do aktualnego obiektu bazy danych. Nastpnie tworzona jest zmienna, ktra przechowuje zapytanie pobierajce yczenia dla obecnego dnia i miesica. Zwr uwag na fakt, e wartoci pobrane z funkcji date() przesyane s najpierw do funkcji intval (), zanim zostan umieszczone w zapytaniu. Dzieje si tak, poniewa funkcja date() zwraca numer miesica w postaci dwch cyfr, uzupeniajc go zerem (stycze = 01). A poniewa numery miesicy przechowywane s w postaci liczb cakowitych w bazie danych (stycze = 1), zastosowanie funkcji intval () usunie zbdny przedrostek, co zapobiegnie niejasnociom 2 .
Alternatywnym rozwizaniem byoby pobranie aktualnego dnia poprzez wywoanie date(" j") oraz aktualnego miesica poprzez wywoanie date( "n") obie funkcje nie dodaj zer wiodcych, PHP: date - Manua [online] http://piphp.net/date [dostp 02.11.2008] p r : y p . tum.
149
Zapytanie jest zapisywane w obiekcie bazy danych, a metoda 1 oadOb jectLi st () uruchamia zapytanie i zwraca list wartoci. Funkcj countO zastosowano celem sprawdzenia, czy znaleziono jakie wita odpowiadajce obecnej dacie. W przeciwnym wypadku wywietlane jest proste powitanie Witaj!". Jeli udao znale si pasujce yczenia, zostaj wywietlone w postaci kolejnych paragrafw (o ile kilka wit przypisano do jednej daty), a cao zwieczana jest dopiskiem ustawianym jako parametr moduu. Po zakoczeniu wprowadzania kodu stwrz archiwum ZIP lub TAR, zawierajce folder z plikami moduu. Nastpnie zainstaluj stworzone przed chwil archiwum za pomoc opcji Rozszerzenia/Instalator w interfejsie administratora. Jeli instalacja zostanie zakoczona powodzeniem, pojawi si stosowny komunikat z instrukcjami dotyczcymi korzystania z moduu co przedstawiono na rysunku 5.4. ;unek 5.4. udanej talacji wietlana jest varto pola scription Iliku skryptora
Witivii-i
r.l-i.u
Altykuy
Komponenty
Rozszei zeni.i
il.izdzi,i
Pomoc
vJ Rozszerzenia
Instaluj Komponenty Moduy Dodatki Jzyki Szablony
Modu witeczne yczenia w y wietla yczenia w zalenoci od aktualnej daty. yczenia przechowywane s w tal poiednictwein interfejsu MySQL.
Zanim jednak bdzie mona wstawi modu na stron, naley wprowadzi do bazy danych daty wit wraz z odpowiednimi yczeniami, do ktrych rozszerzenie moe si odwoywa.
150
Joomla!.
):
Po utworzeniu tabeli wprowad kilka przykadowych ycze. W programie MySQL Administrator moesz to zrobi, klikajc prawym przyciskiem tabel i wybierajc opcj Edit Table Data z menu kontekstowego. Nie zapomnij doda take przykadowego wpisu dla obecnej daty, aby sprawdzi, czy modu dziaa poprawnie.
Jeli chciaby doda przykadowe dane z poziomu wiersza polece, moesz uy poniszego kodu, ktry dodaje wpisy dla najpopularniejszych wit:
INSERT INTO 'jos_greetings' ('id','greeting','holidayDay'.'holidayMonth') (1, 'Wesoych wit Boego Narodzenia!'.25.12). (2. 'Szczliwego Nowego Roku'.1.1). (3, 'Wszystkim paniom, najlepsze yczenia',8.3): VALUES
Korzystajc z opcji Rozszerzenia/Instalator, zainstaluj archiwum zawierajce modu. Jeli instalacja zakoczy si powodzeniem, pojawi si stosowny komunikat.
Konfiguracja moduhl
W interfejsie administratora przejd do opcji Moduy i kliknij pozycj witeczne yczenia. W dolnej czci strony znajduj si parametry moduu, ktre zdefiniowae w pliku XML. jak przedstawiono to na rysunku 5.5. Wprowad wasny dopisek i wcz opcj pogrubiania tekstu.
Warto rozway wywietlanie moduu na pierwszej pozycji lewej kolumny przed innymi moduami przypisanymi do pozycji left. Moduy wywietlane na ekranie Moduy mona filtrowa za pomoc list rozwijalnych znajdujcych si w grnej czci strony. Wybierz pozycj left z drugiej listy, a spis moduw powinien zosta ograniczony tylko do tej pozycji. Nastpnie klikaj strzak w gr w kolumnie Kolejno, odpowiadajc moduowi witeczne yczenia, dopki nie pojawi si na samej grze (kolejno = 1), jak zilustrowano to na rysunku 5.6 Drug moliwocijest wprowadzenie liczby 0 w pole w kolumnie Kolejno i kliknicie maej ikony dyskietki w nagwku kolumny, co odpowiada funkcji Zapisz kolejno.
Po poprawnym wprowadzeniu zmian w konfiguracji moduu otwrz stron gwn Joomla! w przegldarce. W lewej czci strony powinny pojawi si yczenia, podobnie jak na rysunku 5.7.
W obecnej implementacji styl fontw okrelany jest w kodzie moduu. Dobr praktyk jesl wywietlanie elementw moduu z wykorzystaniem stylw zdefiniowanych w Joomla! (np. klasy modu etable). Dziki wykorzystaniu standardowych stylw wygld moduu bdzi komponowa si z reszt strony.
Rozdzia 5. Tworzenie prostych rozszerze: moduy unek 5.5. irowad wasny pisek i wcz cj pogrubiania (stu
151
sunek 5.6. 7ie kolejno Dduw, y modu Ziteczne czenia by wietlany <o pierwszy
Jeli masz zamiar wykorzysta ten modu na Twojej stronie, powiniene doda yczenia zarwno dla danego dnia wit, jak i dla dnia przed witami. Moesz take odpowiednio dostosowa wpis do ycze poprzedzajcych wita (np. dla Wigilii wit Boego Narodzenia).
152
Rysunek 5.7.
4 J o o m l a !
Joomla! 1.5 - 'Experience the Freedom! It has nevei easierto create your own dynamic Web site Manag content from the best CMS admin interface and in vii language you speak.
Szukej... Popular Wszystkim paniom, najlepsze yczenia Wesoego witowania! Content Layouts The Joomla! Commui i Welcome to Joomla! 1 Newsflash 4 New ish '
1 1
Home Joomla! Joomla! License Mo ahout sloomia* FAO The NewsWeb Links News Feeds
W e l c o m e to t h e F r o n t p a g e
Welcome to Joomla!
Joomla! is a free open source fiamewoik and content piii>iisliin<i system designed foi quickly creating highly intei active multi-lamjuatie Welt sites, online communities, media poitals. Ploys and eCommerce applications.
Pwrd ty t ee r 4 J o o m l a r
; Joomlai provides an easy-to-use graphical user interface thai simplifies the management arid publishing of large volumes of c ontent including HTML, documents, and rich media. Joomla! is used by organisations of all sizes for Public Web sites,
153
unek 5.8.
Kategoria:
[ Zmie ]
Szczegy
Tytu: Tehst zastpczy: Publik acja: Sekcja: brak Upoi z,idNov*<nie: P o z i o m dostpu: 0 (Contacts) Publiczne kontakty Kontakty przypisane do tej kategorii bd pubi Nie * Tak
IsSRSSH
Zastrzeony Specjalny - Wybierz grafik Lewa Podgld
Dostp do bazy danych w rozszerzeniu Kontakt z Nami przypomina kod moduu witeczne yczenia. Jednak w tym przypadku tabela, z ktrej bd pobierane dane, istnieje ju w systemie Joomla!. Wszystkie informacje o kontaktach przechowywane s w tabeli jos_contact_detai 1 s. Zwr uwag na fakt, e przechowywane s tutaj wszystkie kontakty nie tylko publiczne, ktre powinien wywietla modu. W kodzie rozszerzenia powinno wystpi zapytanie do bazy danych, ktra pobiera wycznie kontakty przypisane do kategorii publicznej. Odpowiednie zapytanie wymaga znajomoci pola category id kategorii publicznej. Na szczcie warto pola nd mona odczyta z listy kategorii. Po zapisaniu nowej kategorii pojawi si ona na licie. W prawej kolumnie widniej wartoci pola category id dla poszczeglnych wpisw. Zanotuj numer odpowiadajcy kategorii, ktra ma by publiczna, jak pokazano na rysunku 5.9.
sunek 5.9.
Aby wywietli list publicznych kontaktw, musisz najpierw wprowadzi dane uytkownikw. Otwrz opcj Komponenty/Kontakty/Zarzdzaj kontaktami, aby wywietli aktualn list wpisw. Moesz utworzy nowy wpis (zobacz rysunek 5.10) lub wybra istniejcy i przypisa go do publicznej kategorii. Po zakoczeniu wprowadzania zmian kliknij przycisk Zapisz, aby zapisa w bazie danych informacje o kontakcie.
154
Rysunek 5.10.
ff Kontakt: [Zmie]
Szczeyfy
N azw* Tekt zsipzy Publik acf<i K.Hegona Polecz 7. ( i z y t N o w n i k i v m - Brak uytkownikw 1 (Name) Poziom dostpu * Nie Tak _ Henryk Sienkiewicz
25SH3w Zastrzeony
Specjalny
Wszystkie niezbdne ustawienia zostay wprowadzone, dlatego mona przej do fazy implementacji moduu, aby wykorzysta przygotowane wczeniej informacje. Utwrz folder o nazwie mod contactus, w ktrym znajdzie si plik z kodem i plik deskryptora. W edytorze tekstu wprowad poniszy kod i zapisz go pod nazw w folderze mod contactus:
<?php * @version $ld: mod contactus.php * @package Joomla * @copyright * @license */ / / Zablokuj definedi ?> bezporednie uruchamianie (C) 2007 Dan Rahmet, GNU/GPL informacje o publicznych kontaktach. 5203 2007-03-27 Wszystkie prawa 01. 42:1OZ Danr $ zastrzeone.
modcontactus.php
* Modul wywietlajcy
<div style="border: lpx solid black: padding: 5px;"> <h3>Kontakt z Nami</h3> <?php $publiccat = $params->get('publiccat'. 0); $db =& JFactory::getDB0(); $query = "SELECT *" . "\n FROM jos_contact_details" . "\n WHERE catid = " . intval(ipubliccat); $db->setQuery($query): icontacts = $db->loadObjectLi st(): if(count($contacts)) { foreach (icontacts as Scontact) { echo JText::_( '<p><strong>' . $contact->name . '. </strong>'): echo JText::_( '<smal1>' . $contact->con_position . ', </small>'): echo JText::_( '<small>' . $contact->telephone . '. </small>'); echo JText::_( '<small>' '</small></p>'): . $contact->email_to .
155
'<p>Emai1
pomoc@przyklad.com</p>'):
</div>
Struktura kodu w duym stopniu przypomina modu witeczne yczenia. Dla tego rozszerzenia pierwszy znacznik <div> posiada przypisany atrybut stylu, ktry powoduje wywietlenie obramowania wok moduu. Po uruchomieniu moduu pobierana jest najpierw warto parametru publiccat, ktra odpowiada wartoci category id dla kategorii publicznej. Nastpnie pobierane s z bazy danych wszystkie kontakty zapisane w tabeli jos_contact_detai 1 s, z uwzgldnieniem odpowiedniej wartoci catid. Wynik zapisywany jest w postaci zmiennej $contacts. Jest to lista pozycji, ktre zostaj kolejno wypisane, najpierw pojawi si imi i nazwisko, nastpnie peniona funkcja, numer telefonu i adres e-mailowy. Jeli nie znaleziono adnych rekordw, na stronie pojawi si e-mailowy adres pomocy technicznej. Aby ukoczy modu, naley skonstruowa jeszcze plik deskryptora. Zapisz w folderze moduu pod nazw mod_contactus.xml poniszy kod:
<?xml version="l.0" encoding="utf-8"?> <install type="module" version="1.5.0"> <name>Modul Kontakt z Nami</name> <author>Dan Rahmel</author> <creationDate>March 2007</creationDate> <copyright>(C) 2007 Dan Rahmel. Wszystkie prawa zastrzeone.</copyright> <1 i cense>http://www.gnu.org/copy1eft/gpl.html GNU/GPL</1i cense> <authorEmai 1 >admi n{ajooml a jumpstart ,org</authorEmail> <authorUrl>www. jooml a jumpstart. org</authorllrl > <versi on>l.0.0</versi on> <descnption>Modul Kontakt z Nami wywietla informacje kontaktowe wpisw przyporzdkowanych do publicznej kategorii. Id odpowiedniej kategorii mona wprowadzi po wybraniu tego moduu w czci Moduy. </description> <files> <fi 1ename modue="mod_contactus">mod_contactus.php</fi1ename> </files> <params> <param name="publiccat" type="text" label="ID publicznej kategorii kontaktw" description="Kontakty przypisane do tej kategorii bd wywietlane na stronie." /> </params> </i nstal 1>
Prawdopodobnie zauwaye, e pole <description> zawiera wskazwki dotyczce konfiguracji. Warto tego pola wywietlana jest po poprawnym zakoczeniu instalacji, dlatego dobrym rozwizaniem jest umieszczanie w tym miejscu wskazwek dotyczcych niezbdnej konfiguracji moduu. Dla moduu Kontakt z Nami zosta zdefiniowany pojedynczy parametr: publ i ccat. Jego warto wykorzystywana jest w zapytaniu do bazy danych, ktra zwraca list kontaktw przypisanych do kategorii publicznej. Jeli wybr dotyczyby zwykych kategorii Joomla! (kategorii artykuw), typ parametru mgby zosta ustawiony na category. W rezultacie system Joomla! automatycznie stworzyby list rozwijaln zawierajc list dostpnych kategorii.
156
Utwrz archiwum podobnie jak przy poprzednich moduach, a nastpnie zainstaluj je w systemie za pomoc opcji Rozszerzenia/Instalator. Jeli modu zostanie poprawnie zainstalowany, wybierz go na licie Moduy i ustaw parametr, aby jego warto odpowiadaa ID kategorii publicznej, ktre bdzie wykorzystywane w zapytaniach do bazy danych.
Wybierz pozycj Kontakt z Nami na licie Moduy, aby otworzy ekran edycji parametrw. Kliknij pole oznaczone ID publicznej kategorii kontaktw, a nastpnie wprowad ID, ktre zapisae wczeniej, jak pokazano na rysunku 5.11.
Rysunek 5.11.
Prefei neje l))0<l_C0ltt.)CtUS Modu Kontakt z Nami Nie Tak P a anteny moduu i ID ubiieznej kiiteyofti kontakt^J
Nie * Tak left 2::Main Menu Zastrzeony Specjalny 59 Modu Kontakt z Nami wywietla informacje kontaktowe wpisw przypisanych do publicznej kategorii. Id odpowiedniej kategorii mona wprowadzi po wybraniu tego moduu w czci Moduy. ^ ^ ^
Uruchom teraz stron gwn w przegldarce. Powiniene zobaczy list kontaktw przypisanych do kategorii publicznej, podobnie jak to jest na rysunku 5.12. Stworzony modu stanowi doskona demonstracj dostpu do danych zapisanych w systemie Joomla!. Powi troch czasu na przejrzenie tabel w bazie danych Joomla!, co pozwoli Ci okreli miejsce przechowywania danych, ktre bd niezbdne przy implementacji danego moduu.
Rysunek 5.12.
E>ziiia,i jest Saturday, 8 March 2008r. Wszystkim paniom, najlepsze yczenia Wesoego witowania! Latest N e w s . J',M !.. v A jrii-v to .Joornla! . Newsflash 4 ^ ^ . Popular
^ ^
^
'i
Kontakt z Nami Hewyk Sienkiewicz. 123 45 67, srriki ewi cz fg;p o lsovpisarze.pl
W e l c o m e to the F r o n t p a g e W e l c o m e to J o o m l a ! ^ S1
Joomla! is afiee open source ft amewotk and content publishiug system designed foi quickly ci eating highly interactive multi-language Welt sites, online communities, media poitals. Nogs and eCoinmeice applications. 1 i Joomla! provides an easy-to-use graphical user Mnterface thai simplifies the management arid publishing of large volumes of content including HTML, documents, and rich media. Joomla! is used by organisations of all sizes for Public Web sites, Intranets, and Ertranets and is supported bv a community of thousands of users F w e a i by . . . JOOmlQ! version l.s
Home * Joomla" * Joomla! License Moi e about Joomla' FAO The News Wel> Links News Feeds
ISfMiBISIIllll I 1
157
Zsumowanie
Spord programowalnych rozszerze Joomla! moduy stanowi najprostsze i najatwiejsze w implementacji rozwizanie. Stworzenie moduu nie jest trywialne, jednak jego dystrybucja i instalacja, ze wzgldu na zapisywanie w postaci archiwum ZIP, nie nastrczaj trudnoci. Na stronie moe pojawia si dowolna liczba moduw, dlatego stosujc moduy, mona uzupeni system Joomla! praktycznie o kad pomniejsz funkcj. Jeli jednak dane zastosowanie wymaga bardziej rozbudowanej interakcji z uytkownikiem, najlepszym rozwizaniem jest stworzenie takiego komponentu, jak te, ktre opisano w rozdziale 6. W tym rozdziale przedstawiono proces tworzenia moduw, wyszczeglniajc ponisze etapy: Tworzenie moduu Hello World, stanowicego podstaw bardziej zoonych rozszerze. Implementacja moduu, ktry pobiera z bazy danych yczenia odpowiadajce aktualnej dacie, a nastpnie wywietla je na stronie. Programowanie moduu, ktry wywietla publiczne informacje o kontaktach, opartego na komponencie Joomla! do zarzdzania kontaktami.
Moduy s najprostsz form rozszerze Joomla!. W rozdziale 6. znajdziesz informacje na temat tworzenia wasnych komponentw. Programowanie komponentw stanowi bdzie prawdopodobnie gwn cz pracy w zakresie profesjonalnego programowania Joomla!.
158
6
Zaawansowane rozszerzenia: komponenty
Dziki wskazwkom umieszczonym w rozdziale 5 stworzye kilka prostych rozszerze, poznajc przy okazji podstawowe aspekty rozszerzalnoci systemu Joomla!. Programowanie tych kilku moduw ograniczao si do wykorzystania prostego edytora tekstu, poniewa wprowadzany kod by nieskomplikowany i wczeniej sprawdzony. Profesjonalne programowanie wymaga jednak duo wikszej kontroli nad projektem. Przykadowo stworzenie komponentu sklepu internetowego z kilkoma doczonymi moduami wymaga koordynacji wielu plikw, co czsto oznacza wspprac z innymi programistami. W tym rozdziale nawietlono proces tworzenia zaawansowanego rozszerzenia Joomla!. Do tego celu wykorzystasz profesjonalne rodowisko programistyczne (Eclipse), system kontroli wersji (Subversion), a take automatyczn generacj dokumentacji projektu (phpDocumentor). Bdziesz mia okazj pozna wszystkie kolejne etapy programowania, co pozwoli Ci lepiej poj, jak wyglda tworzenie profesjonalnych, komercyjnych aplikacji Joomla!.
160
jeli nad projektem pracuje grupa lub choby dwie osoby, wykorzystanie profesjonalnycl" narzdzi moe zadecydowa o zakoczeniu projektu o czasie i nieodkadaniu go w nieskoczono.
Majc to na uwadze, przykady opisane w tym rozdziale zostan stworzone z uyciem dwc profesjonalnych narzdzi programistycznych. IDE o nazwie Eclipse posiada funkcjonalno daleko wykraczajc poza zwyky edytor tekstu. Organizacja pracy zorientowana jest m projekty, a architektura oparta na wtyczkach dodatkowo usprawnia konstrukcj oprogramowania Joomla!, poniewa dostpne s rozszerzenia np. dla Subversion (SVN), kodu PHP XML i HTML. System kontroli wersji SVN usprawnia zespoow prac nad kodem, a takt umoliwia zarzdzanie archiwum kodu rdowego, nawet kiedy nad projektem pracuje tylkc jedna osoba. Systemy kontroli wersji to kluczowy element prawie wszystkich projektw wyjtkiem s tylko te najmniejsze. Moliwe, e korzystasz ju ze rodowiska programistycznego, ktre spenia Twoje potrzeby, i nie masz zamiaru zmienia go. Jeli tak jest, to wspaniale. Znalezienie rodowiska programistycznego speniajcego oczekiwania przypomina wyszukiwanie samochodu, ktiy Ci odpowiadajest to kwestia indywidualnego wyboru. Mimo wszystko warto przynajmniej pobienie zapozna si z podrozdziaami, w ktrych opisano Eclipse. By moe dziki temu odkryjesz nowe sposoby wykorzystania obecnego IDE, o ktrych wczeniej nie pomylae.
System kontroli wersji to jedna z technologii, z ktrych powinna korzysta jak najszersz; grupa programistw. Niestety, wielu ludzi nie dostrzega zalet pyncych z zastosowania jej a firmy programistyczne czsto nie traktuj tego jako obowizku. Tym sposobem system} kontroli wersji pozostaj niedoceniane. Gwnym zadaniem takiego systemu jest prowadzenif archiwum kodu rdowego i notowanie wszystkich zmian wprowadzonych w plikach. Zmiam wprowadzone w kodzie mog by konsultowane, a w razie potrzeby istnieje moliwo przy wrcenia starszej wersji.
Jednym z najczciej wykorzystywanych systemw kontroli wersji jest program Subversioi (SVN). SVN to zaawansowany program skadajcy si z czci serwerowej i czci klienta co umoliwia zarzdzanie projektem przez sie podczas konstrukcji oprogramowania. Na< jednym projektem moe pracowa kilku programistw jednoczenie. System obsugujt wprowadzanie zmian, ma narzdzia do rozwizywania konfliktw, jeli pojawi si dwie istotnie rnice si wersje tego samego pliku. Istnieje popularniejszy od SVN system kontroli wersji nazywa si Concurrent Versions System (CVS). SVN stworzono z myl o zastpieniu CVS, poniewa wiele decyzji projektowych poprzednika narzucao permanentne ograniczenia. Pomimo wielu podstawowych wad CVS zosta w znaczcym stopniu rozwinity, a jego popularno nie sabnie. Ja w codziennym uyciu preferuj CVS, gwnie ze wzgldu na archiwum starszych projektw stworzone w tym systemie. W przypadku Joomla! wiodcym rozwizaniem jest jednak SVN, dlatego programici Joomla! powinni rozway korzyci pynce z adaptacji akurat tego systemu kontroli wersji.
161
Poniej wymieniono kilka czstych problemw, ktre napotkasz w czasie tworzenia aplikacji, oraz sposoby rozwizania ich dziki SVN: W kodzie rdowym nowej wersji programu wprowadzono wiele zmian, po czym nagle okazuje si, e jedna z podstawowych funkcji przestaa dziaa a Ty nie masz pojcia dlaczego. Za pomoc SVN moesz zbada wczeniejsze wersje kodu, zobaczy, jakie zmiany wprowadzono w danej czci. W razie koniecznoci moesz przywrci projekt do stanu, kiedy dana funkcja pracowaa poprawnie, a nastpnie zdiagnozowa problem lub okreli rnice w dziaaniu nowej wersji. Twj komputer zepsu si, a Ty nie zrobie kopii zapasowej. Poniewa SVN jest systemem dziaajcym na serwerze, czsto gra take rol aplikacji archiwizujcej, uruchamianej na innej maszynie. Wprowadzenie zmian jest bardzo proste, poniewa polega to do klikniciu prawym przyciskiem pliku lub folderu i wybraniu opcji check in", aby zapisa zmiany. Jest to wygodny sposb tworzenia kopii zapasowych nawet dla leniwych programistw. Wielu ludzi pracuje jednoczenie nad danym projektem, z tego powodu niezbdna jest koordynacja wysikw i wprowadzanych zmian. Aplikacje podobne do SVN powstay, poniewa programici open source, pracujcy o rnych porach, w rnych miejscach potrzebowali skutecznego sposobu wprowadzania zmian bez ryzyka uszkodzenia projektu. Funkcja, ktra zostaa usunita kilka miesicy temu, jest znw potrzebna. Nie musisz szuka wrd kopii zapasowych, aby odnale waciwy plik, poniewa zmiany wersji oznaczane s w SVN. Dziki przegldaniu wersji programu wedug dat lub nazw mona atwo i szybko przywrci najnowsz wersj kodu, ktra zawieraa wymagan funkcj. Minimalna wersja danej procedury uruchamiaa si duo sprawniej przed wprowadzeniem zmian, wic programista chce podda jrefaktoryzacji, biorc za podstaw pierwsz implementacj. Pobranie starej wersji pliku z systemu kontroli wersji jest trywialne. Firma zamierza stworzy now wersj aplikacji, ktra wymaga znaczcych zmian, jednoczenie starsza wersja musi nadal by wspierana, musz pojawia si uaktualnienia i poprawki bdw. SVN pozwala na eleganckie rozwizanie tego problemu dziki opcji fork" 1 . Moliwe jest stworzenie nowej wersji niezalenie od starej i kontynuowanie prac jednoczenie nad obiema.
Kilka przykadw wymienionych wyej wiadczy o tym, jak zastosowanie systemu kontroli wersji moe uratowa sytuacj. W powyszym opisie cakowicie pominito bardziej znaczce aspekty, takie jak moliwo wgldu w histori ukoczonych projektw lub rola materiau dowodowego w przypadku oskarenia o kradzie kodu, jak odgrywa solidna dokumentacja konstrukcji oprogramowania.
162
Instalacja SVN
System SVN mona zainstalowa na kilka sposobw. Jeli preferujesz wiersz polecenia, moesz pobra baz systemu SVN z poniszej strony: http -.//subversion, tigris.org/ Jeli wolisz interfejs graficzny, moesz skorzysta z jednej z poniszych implementacji: TortoiseSVN Najpopularniejsza implementacja dla systemu Windows. TortoiseSVN (http://tortoisesvn.tigris.org) integruje si z Eksploratorem Windows, co pozwala na dostp do wszystkich funkcji bezporednio z menu kontekstowego. eSvn Wersja programu Subversion napisana w oparciu o bibliotek Qt, mona j znale na stronie http://esvn.umputun.com. JSVN Kod proof-of-concept, implementacja klienta SVN w Java Swingu, ktr mona znale na stronie http://jsvn.alternatecomputing.com. kdesvn Kolejny klient SVN dla rodowiska KDE, dostpny na stronie www.alwins-world.de/wiki/programs/kdesvn.
m psvn.el Interfejs SVN dla programu Emacs, dostpny na stronie www.xsteve. at/prg/emacs. QSvn Kolejny klient SVN napisany w oparciu o bibliotek Qt, dostpny na stronie www.anrichter.net/projects/qsvn/ RapidSVN Wieloplatformowa (Linux, Windows, MacOS X) nakadka graficzna napisana w C++ z wykorzystaniem platformy wxWidgets, dostpna na stronie http://rapidsvn. tigris. org. SCPlugin Wtyczk dla narzdzia Finder w systemie MacOS X mona znale na stronie http://scplugin.tigris.org.
m SmartSVN Wieloplatformowy (Linux, Windows, MacOS X) klient SVN dostpny na stronie www.syntevo.com/smartsvn. Mona na niej znale dwie wersje, darmow Foundation, i komercyjn Professional. Jest to implementacja SVN w Javie z wykorzystaniem biblioteki SVNKit. Subcommander Wieloplatformowa (Linux, Windows, MacOS X) nakadka napisana w C++ z wykorzystaniem biblioteki Qt, dostpna na stronie http://subcommander. tigris. org. svnX Nakadka graficzna narzdzi tekstowych SVN dla MacOS X, dostpna na stronie www.lachoseinteractive.net/en/community/subversion/svnx. tkSVN Klient systemw SVN i CVS napisany w Tcl/Tk, dostpny na stronie www. twobarley corns, net/tkcvs.html. WorkBench Wieloplatformowe (napisane w oparciu o wxPython i pysvn) narzdzie, obiektowa implementacja biblioteki SVN w Pythonie, mona znale j na stronie http://pysvn.tigris.org.
Rozdzia 6. Zaawansowane rozszerzenia: komponenty ZigVersion Komercyjny klient SVN dla Mac OS X, dostpny na stronie http://zigversion. com. Syncro SYN Client Wieloplatformowa nakadka, dostpna na stronie www. syncrosvnclient. com.
163
Jeli dopiero zaczynasz, zalecana jest instalacja TortoiseSVN. W doskonay sposb integruje si z systemem operacyjnym i pozwala na dostp do menu TortoiseSVN po klikniciu prawym przyciskiem dowolnego pliku lub folderu. Pliki mona uaktualnia i pobiera z repozytorium pojedynczym klikniciem. TortoiseSVN mona pobra ze strony: http://tortoisesvn. tigris. org Proces instalacji przeprowadzany jest w prostym, trjkrokowym kreatorze. Po zainstalowaniu aplikacji dostp do niej uzyskasz po klikniciu prawym przyciskiem okna Eksploratora Windows. Jeli nie zaznaczye adnych elementw, moesz nadal korzysta z funkcji programu, klikajc menu Plik, wpisy programu pojawi si jako jedne z pierwszych na licie.
Poniewa SVN mona zintegrowa z wieloma rodowiskami programistycznymi (a co najwaniejsze, z Eclipse), bdziesz mg obsugiwa repozytorium bezporednio z poziomu IDE.
164
Korzystanie z Eclipse
Eclipse jest profesjonalnym systemem programistycznym, stworzonym przez IBM, a nastpnie przekazanym spoecznoci open source. Eclipse posiada kompletne IDE, a za pomoc wtyczki obsuguje w peni programowanie w PHP. Praca z programem sprowadza si do zarzdzania projektami, do ktrych docza si pliki. Dla systemu Eclipse opracowano wtyczk o nazwie Subclipse, ktra bezproblemowo czy system kontroli wersji SVN ze rodowiskiem programistycznym. Proste kliknicie prawym przyciskiem myszy i wybr odpowiedniej opcji z menu pozwala uaktualni repozytorium lub pobra z niego najnowsz wersj projektu.
Konfiguracja Eclipse
Przy pierwszym uruchamianiu Eclipse pojawi si okno z pytaniem o pooenie folderu roboczego. Wybierz odpowiedni folder i zaznacz opcj Use this as the default, dziki czemu wybrany folder bdzie wykorzystywany przy kolejnych uruchomieniach. Uruchomienie Eclipse powoduje wywietlenie ekranu powitalnego, jak to przedstawiono na rysunku 6.2.
Podstawy workbencha
rodowisko programistyczne w systemie Eclipse nosi nazw workbench. Gwne okno workbencha przypomina to przedstawione na rysunku 6.3. Na wygld ekranu wpywa aktualnie ustawiona perspektywa. Kontroluje ona, ktre okna (lub czci w terminologii systemu Eclipse) s wywietlane i ktre zasoby dostpne. W lewym grnym rogu znajduje si pasek skrtw pozwalajcy na przeczanie midzy perspektywami, a take otwieranie kolejnych. Na pasku tytuu znajduje si informacja o aktualnie wywietlanej perspektywie. Na rysunku 6.3 ustawiona jest perspektywa Resource.
Rozdzia 6. Zaawansowane rozszerzenia: komponenty rsunek 6.2. kran powitalny wiera opcje, yre pomoc Ci ipozna si interfejsem rogramu skutecznie niego korzysta
165
g C*php
Sj- Navigator Result View
Resource
==
Ksiga Goci
Moesz utworzy nowy projekt, korzystajc z jednego z dostpnych szablonw (np. Java, Statyczna strona WWW, PHP, XML) powizanych z typem projektu, ktry zostanie utworzony. Programujc Joomla!, powiniene wybra projekt PHP. Zanim jednak utworzysz nowy projekt, warto rozway dodanie opcji automatycznego wstawiania we wszystkich plikach zabezpieczenia, ktre zapobiegnie wykonywaniu kodu spoza platformy Joomla!.
166
Zmiana domylnego szablonu PHP w celu dodania zabezpieczenia Joomla! pozwoli Ci lepiej zapozna si z Eclipse. Wybierz opcj Preferences z menu Window. Ustawienia wywietlane s w postaci drzewa, co wida na rysunku 6.4. Rozwi wze PHPeclipse Web Development, a nastpnie PHP, kliknij pozycj Code Templates.
Rysunek 6.4.
K Preferences type filter text $ Amateras ffl Ant ffi Coloring Editor EdipseUtilPlugins Help m HTML Tidy is Install/Update ffi Internet ffi Java 8 PHPeclipse Web Deve Browser Configur Browser Preview S PHP Code Assist Code Templat Formatter Help (WIN_3i HTTP Query Installed Inte Mark Occurre PHP Parser Spelling Task Tags Templates + PHP Fvtfirnal Tnn Code Templates Configure generated code and comments: Comments Ei Code Newly created HTML files ( j Import... Export... Export All.,. ]
Pattern:
<?plyp
i * Created on 3{date}
| * To change the template f o r t h i s g e n e r a t e d f i i * W i n d o w ~ P r e f e r e n c e s - P H P e c l i p s e - PHP - C o i f < > 0 Automatically add comments for new methods and types
s
(does not apply to comments contained in the code patterns) Restore Defaults Apply
W prawym panelu okna Preferences pojawi si lista dostpnych szablonw dla projektu tego typu. Wybierz pozycj New PHP files i kliknij przycisk Edit. Moesz teraz wprowadzi kod, ktry bdzie dodawany do kadego nowego pliku. W tym przypadku wprowad poniszy:
// zablokuj bezporednie uruchamianie
Kliknij przycisk OK, aby zapisa zmiany. Od tej chwili wszystkie pliki PHP utworzone w Eclipse bd zabezpieczone przed uruchamianiem spoza systemu Joomla!. Pakiet EasyEclipse zawiera wtyczka Subclipse. Jeli jednak zainstalowae standardow wersj Eclipse, musisz samodzielnie pobra i zainstalowa Subclipse, aby doda funkcj wsppracy z systemem SVN. Subclipse mona pobra na stronie: http://subclipse. tigris. org
167
adresem prowadzcego stron. Mog jednak zawiera take sugestie ulepsze, a take (oby jak najrzadziej) krytyk. W tym przypadku stworzysz komponent, ktry skada si z dwch czci: frontowej, umoliwiajcej wywietlanie wpisw w ksidze goci oraz dodawanie nowych za porednictwem formularza, i zaplecza, gdzie mona edytowa istniejce wpisy. Wikszo komponentw skada si z dwch czci, z czego jedna funkcjonuje jako interfejs uytkownika, a druga umoliwia zarzdzanie rozszerzeniem przez administratora. Najpierw utwrz projekt dla Ksigi Goci w Eclipse, wybierajc File/New/PHP Project. W kreatorze wprowad nazw projektu com_guestbook, jak zilustrowano to na rysunku 6.5. wrz nowy ojekt PHP Eclipse nazwie >m_guestbook
sunek 6.5.
N e w PHP project | PHP P r o j e c t Create a new PHP Project
Project name:
com_guestbook]
Finish
J [
Cancel
168
Biblioteki suce do generowania C A P T C H A dostpne s za darmo w internecie. Jeli wprowadzisz CAPTCHA PHP w wyszukiwarce internetowej, znajdziesz wiele przykadowych kodw. W czasie gdy powstawaa ta ksika, jedn z darmowych bibliotek mona byo znale na stronie www.cryptographp.com.
Cz frontowa komponentu
Funkcj czci frontowej jest wywietlanie informacji na stronie i interakcja z uytkownikiem. Poniewa komponenty s bardziej skomplikowane od moduw, wiele rozszerze (np. komponent Polis) wykorzystuje modu jako cz frontow interfejsu. Stanowi to jednak pewne ograniczenie szczeglnie jeli planujesz modyfikacj danych przez uytkownikw. W przypadku komponentu ksigi goci warstwa prezentacji zawiera nie tylko aktualn list wpisw, ale take formularz dodawania nowych komentarzy, ktry znajduje si poniej, co przedstawiono na rysunku 6.6. Do czci frontowej komponentu mona uzyska dostp z poziomu menu.
Rysunek 6.6.
Ksiga goci zawiera list wpisw wraz z informacj, kto je tam umieci
lESESSBB
Home Joomla" Overview Joomla" L i c e n s e More about Joomla! * FAO * The N e w s Web Links N e w s Feeds MojaK$ie*ja Goci
Podczas konstrukcji kodu zauwaysz pewnie, e wartoci zmiennych pobierane s (z acucha dania lub z danych wysanych formularzy) za pomoc metody getVarO, zamiast tradycyjnych instrukcji PHP. Metoda getVarO stanowi warstw zabezpiecze, w ktrej przebiega kontrola poprawnoci danych nadesanych przez uytkownika. Dane przesyane przez hakerw (takie jak prby atakw SQL Injection) s automatycznie wykrywane i usuwane. Zawsze uywaj tej metody, aby w peni wykorzysta zabezpieczenia wbudowane w platform Joomla!. Aplikacje internetowe, ktre pobieraj dane ze rde zewntrznych, powinny zawiera zabezpieczenia przed atakami przez wstrzyknicie (ang. injection). Najpopularniejszym typem takiego ataku jest SQL Injection. Polega on na wstawieniu kodu SQL do wykonywanego zapytania. Przykadowo formularz zawiera pole, w ktre uytkownik powinien wpisa swoje nazwisko. Jeli haker wprowadzi zamiast tego cig znakw podobny do "kowalski; Select * from Tabel aHasel", wyle formularz, a kod PHP wprowadzi po prostu warto pola w zapytanie, kod SQL nadesany przez hakera zostanie uruchomiony, a w rezultacie wywietli si zawarto tabeli (w tym przypadku bdzie to lista hase). Wicej informacji na ten temat i innych zagadnie zwizanych z bezpieczestwem znajdziesz w rozdziale 14.
169
* @version $Id: guestbook.php 5203 2007-06-15 02:45:14Z DanR $ * @copyright (C) 2007 Dan Rahmel, Wszystkie prawa zastrzeone. * @package Ksiga goci * Komponent ten wywietla list wpisw w ksidze goci i umoliwia dodawanie * nowych komentarzy przez zarejestrowanych uytkownikw */ // Zablokuj bezporedni dostp
defined! '_JEXEC' ) or die ( Brak dostpu' );
// Usu wszystkie znaki, ktre mog tworzy kod HTML, znaki powrotu karetki itp.
170
SfldLocation = . $db->getEscaped(JRequest::getVar( // Pobierz adres IP i przechowaj go z powodw bezpieczestwa iuserlp = . $_SERVER['REMOTE_ADDR'] . " . :
"(message. created_by, location, userip) " . "VALUES (" . itldMessage . ". " . intval($uid) ifldLocation $db->query(); echo "<hl>Dzikujemy za dodanie wpisu!</hl>"; echo "<a href=index.php?option=com_guestbook>" . "Powrt do ksigi goci </a>": . "." . iuserlp . ");"; $db->setQuery( iinsertFields. 0): . "." .
// Wywietl
list wpisw
w ksidze
goci
function displayGuestbookO { $db =& JFactory::getDB0(); // Wykonaj zapytanie " FROM # do bazy danych i pobierz list wpisw $query = "SELECT a.message. u.name" . guestbook AS a" . users AS u ON u.id=a.created_by" . " LEFT JOIN #
" ORDER BY a.created DESC": $db->setQuery( $query. 0); // Upewnij si przed wywietlaniem, foreach ($rows as $row) { // Sformatuj tekst do wywietlania na stronie . "</b>": HTML ENT_QUOTES): SrowMessage = htmlspecialchars($row->message, echo "<b>" . irowMessage echo " - " . $row->name; // Oddziel wpisy poziomymi liniami echo "<hr />";
pusta
if($rows = $db->loadObjectList()) {
}
dla nowych wpisw
// Wywietl formularz
<hl class="contentheading">Formularz dodawania wpisu do ksigi goci</hl> <form id="torml" name="torml" method="post" acti on="i ndex.php?opti on=com_guestbook&task=add"> <p>Wprowad tre wiadomoci:<br /> <textarea name="message" cols="60" rows="4" </p> <p> <label>Lokacja (opcjonalne) </p> : </label> id="message"></textarea>
171
Od razu po zapisaniu pliku kod zostaje automatycznie zanalizowany, a rodowisko zaktualizowane. Przykadowo w oknie Outline, po prawej stronie workbencha wywietlana jest lista wszystkich funkcji i metod zdefiniowanych w pliku, co przedstawiono na rysunku 6.7. Wpisy na tej licie maj posta odnonikw, wic jeli klikniesz ktry z nich, zostaniesz przeniesiony do odpowiedniego miejsca w oknie z kodem rdowym. Kliknij funkcj displayGuestbook(), a w oknie edytora zostanie podwietlona odpowiednia funkcja. Zwr uwag, e po prawej stronie nagwka funkcji znajduje si mae kko ze znakiem minusa ( - ) . Jeli klikniesz je, kod funkcji zostanie ukryty, a w miejsce minusa pojawi si plus (+). Moliwo ukrywania czci kodu uatwia zarzdzanie duymi plikami w Eclipse.
usiinek 6.7.
unkcje i metody awarie w pliku 'ywietlane s ' oknie Outline o prawej stronie
MIL
& J P Ksiga goci X .project IS* admin.guestbook.php jSj guestbook. php x guestbook. xml 0 install.sql Cl i inin^tflll.snl !. Outline :
'Brak dostpu' ) ;
adz
1% xs
addEntry() displayGuestbook()
itch( Request case ' a d d ' : addEntry(); break; default : displayGuestbook() break;
paramet getVar(
o dp o
Problems Console Bookmarks Tasks !: 1 items 5 Description TODO Doda do formularza pole do wprowadzania adr...
Resource
z administracyjna komponentu
Czci administracyjnej przypisano trzy scenariusze. Funkcja dl spl ayEntri es() wywietli tabel zawierajc list wszystkich wpisw z tabeli ksigi goci. Obok kadego wpisu pojawia si odnonik, ktry umoliwia jego edycj. Kliknicie odnonika powoduje ponowne wywoanie komponentu, tym razem jednak z parametrem task w cigu dania ustawionym na edit. Spowoduje to uruchomienie funkcji editEntryO prezentujcej formularz, ktrego pola odpowiadaj wartoci wybranemu wpisowi. Po wprowadzeniu zmian administrator klika przycisk Zapisz, aby zapisa zmiany, co skutkuje wywoaniem funkcji updateEntry(), ktra wprowadza zmiany w tabeli.
172
Joomla!. Profesjonalne tworzenie stron WN 1W Utwrz nowy plik PHP w rodowisku Eclipse i nazwij go admin.guestbook.php. zawiera cz administracyjn komponentu, wprowad poniszy kod:
<?php /** * @version $Id: guestbook.php 5203 2007-06-15 02:45:14Z DanR $ * @copyright (C) 2007 Dan Rahmel, Wszystkie prawa zastrzeone. * @package Ksiga goci * Komponent ten wywietla list wpisw w ksidze goci i umoliwia * nowych komentarzy przez zarejestrowanych uytkownikw */ // Zablokuj defined( bezporedni dostp
Plik ten
dodawanie
// Sprawd warto parametru task i wywoaj odpowiedni switch( JRequest::getVar( 'task' )) { case 'edit': editEntryi); break: case 'update': updateEntry(): break; default: displayEntriesO; break;
}
// Zapisz dane pobrane z formularza function updateEntry() { // Ustaw tytu w interfejsie administratora JToolBarHelper::title( JText::_( 'Uaktualnianie wpisu w ksidze goci' ). 'addedit.png' ); // Pobierz referencj do obiektu bazy danych
SfldMessage = '"' . $db->getEscaped(JRequest: :getVar( 'message' )) . ""'; ifldLocation SfldID = // Zapisz zmiany . $db->getEscaped(JRequest::getVar( w tabeli jos_guestbook 'id' )) .
iinsertFields = "UPDATE # _ g u e s t b o o k " . " SET message= " . SfldMessage . ". " . " location" .ifldLocation . " WHERE id = " . ifldlD ; $db->setQuery( iinsertFields. 0): $db->'query(); echo "<h3>Uaktualniono wpis!</h3>"; echo "<a href='index.php?option=com_guestbook'>Powrt do listy wpisw</a>":
// Wywietl list wpisw z ksigi goci function displayEntriesO { // Ustaw tytu w interfejsie administratora JToolBarHelper::title( JText::_( 'Wpisy w ksidze goci' ). 'addedit.png' ):
173
" ORDER BY created DESC"; $db->setQuery( iquery. 0. 10 ): Srows = Sdb->loadObjectList(); ?> <table class="adminlist"> <tr> <td class="title" width=10X> <strong><?php echo JText::_( </td> <td class="title" width=50t> <strong><?php echo JText::_( </td> <td class="title" width=10X> <strong><?php echo JText::_( </td> <td class="title" width=10S> <sttrong><?php echo JText::_( </td> </tr> <?php foreach ($rows as $row) { Slink = 'index.php?option=com_guestbook&task=edit&id=' . $row->id: 'Utworzono' ): ?></strong> 'Wpis' ): ?></strong> 'ID wpisu 1 ); ?></strong>
'Przez' ); ?></strong>
echo "<tr>" . "<td>" . $row->id ."</td>" . "<td><a href=" . $link . ">" . IrowMessage . "</a></td>" . "<td>" . $row->created . "</td>" . "<td>" . $row->name . "</td>" . "</tr>":
echo "</table>": echo "<h3>Kliknij tre wpisu w tabeli, aby przej do ekranu edycji,</h3>":
$db =& JFactory::getDB0(): iquery = "SELECT a.id. a.message, a.created, a.created_by, a.location" . " FROM # guestbook AS a" . " WHERE a.id = " . JRequest::getVar( $db->setQuery( iquery. 0, 10 ); if (irows = $db->loadObjectList()) { 'id' ):
174
value='<?php echo $rows[0]->location: ?>' /> <input name="id" type="hidden" id="id" value='<?php echo $rows[0]->id; ?>' /> </p> <p> <input type="submit" name="Submit" value="Zapisz zmiany" /> </p> </form> <?php } } ?>
Zapisz plik, kod zostanie automatycznie przeanalizowany, a w oknie Outline pojawi si rezultat, lista metod i funkcji.
Plik deskryptora
Plik deskryptora tego komponentu jest zdecydowanie bardziej skomplikowany ni ten dla moduu Hello World. Definicje umieszczone w pliku powoduj instalacj plikw zarwno czci frontowej, jak i zaplecza. Poniewa interfejs Eclipse nie zawiera opcji do tworzenia pliku XML, wybierz File/New/File selection. W oknie New File wprowad guestbook.xml jako nazw pliku. Nastpnie wprowad poniszy kod:
<?xml version="1.0" encoding="utf-8"?> <install version="1.5.0" type="component"> <name>Guestbook</name> <author>Dan Rahmel</author> <versi on>l.0.0</versi on> <description>Wywietla list wpisw z ksigi goci wraz z formularzem dodawania nowych komentarzy przez zarejestrowanych <fi1es> <fi 1ename </files> <install> <sql> <file driver="mysql" </sql> </i nstal1> <uni nstal1> <sql> <file driver="mysql" charset="utf8">uninstall ,sql</file> </sql> </uninstall> <administration> <menu>Guestbook</menu> charset="utf8">install,sql</file> component="com_guestbook">guestbook.php</fi1ename> uytkownikw.</description>
175
Po zapisaniu pliku w oknie Outline pojawi si schemat XML, jak zilustrowano to na rysunku 6.8. Kliknicie ktrego z elementw spowoduje jego podwietlenie w oknie edytora. Eclipse obsuguje format XML, wic jeli klikniesz prawym przyciskiem okno edytora, w menu kontekstowym pojawi si opcja Validate. Wybranie tej opcji spowoduje walidacj pliku XML i zaznaczenie bdw w pliku maymi czerwonymi ikonami na lewym marginesie.
sunek 6.8.
r t File
1
Search %
Project
Run
XML . -
,,u
"''- E B B Help
(M
ij
<8PHP
; _ Resource
Result View % :
&
- i tf? Ksiga Goci K .project admin.guestbook.php 3*1 guestbook. php * guestbook.xml install.sql uninstall.sql
'E): x *guestbook.xml Z i " G stall u. ^ *1 - - ' i n<name> vGeur es si ot bno. "o"k -1/ . a
S
* *
c > u chor a
D a n Rahree
-.filename
[ej filename component=com_guestbook ie] install iSi jej uninstall % ( f j administration [ej filename component=admin.guestbook |ej filename
ri i l e
dr iv
B<
Design ! Source 1 Tasks 1 items v ! Description PHP Browser
>
i j filename
Jjjg "> *
>
Plik deskryptora XML rni si od poprzednich przykadw, poniewa zawiera odwoania do dwch plikw SQL, ktre tworz tabel # guestbook podczas instalacji i oraz usuwaj podczas deinstalacji komponentu. Musisz stworzy te dwa pliki i doczy je do archiwum. Utwrz nowy plik o nazwie install.sql i wprowad do niego poniszy kod:
CREATE TABLE IF NOT EXISTS '#_guestbook' C i d ' INTEGER UNSIGNED NOT NULL A U T O J N C R E M E N T . "message' text NOT NULL. 'created_by' INTEGER UNSIGNED NOT NULL, 'location' VARCHAR(45), 'created' TIMESTAMP NOT NULL, 'userip' V A R C H A R 6 ) , PRIMARY KEY('id'))
176
Tworzenie archiwum
Twj projekt jest teraz gotowy, moesz stworzy archiwum, ktre posuy do instalacji w systemie Joomla!. Eclipse posiada nawet tak funkcj! W oknie nawigacyjnym kliknij prawym przyciskiem projekt com_guestbook i wybierz opcj Export... Zostanie wywietlone okno eksportu projektu, co zilustrowano na rysunku 6.9. Rozwi kategori General, wybierz opcj Archive File i kliknij przycisk Next.
Rysunek 6.9.
Select
Export resources to an archive file on the local file system.
Select an export destination; type filter text & General Ant Buildfiles , Breakpoints 4 - File System I J Preferences
Okno tworzenia archiwum ma kilka parametrw. Na licie wyboru powinien by zaznaczony Twj projekt, a w prawym panelu wszystkie pliki do niego nalece. O ile nie chcesz wykluczy ktrego z plikw (nikomu nie zaszkodzi jego obecno), domylne ustawienia s odpowiednie. Pozostaw niezmienione domylne ustawienia Save in zip format i Create directory structure for files. W pole tekstowe To archive file wprowad ciek, za pomoc ktrej zostanie utworzone archiwum, moesz si take posuy przyciskiem Browse. Wprowad nazw archiwum com_guestbook.zip i kliknij przycisk Finish. Eclipse utworzy archiwum i zapisze je w wybranym miejscu.
Instalacja komponentu
Otwrz opcj Rozszerzenia w interfejsie administratora Joomla! i zainstaluj komponenty. Archiwum utworzone w programie Eclipse jest poprawnie odczytywane przez platform Joomla!, a pliki kopiowane s w odpowiednie miejsce. Jeden plik zostanie umieszczony w folderze components, a plik deskryptora i cz administracyjna zostan zapisane w folderze administrator\components. W przyszoci moesz wprowadza zmiany bezporednio w plikach umieszczonych w tych folderach, o ile testowanie wymaga wycznie odwieenia okna przegldarki.
177
Jeli zostanie wywietlony komunikat o poprawnej instalacji, w menu Komponenty powinien pojawi si wpis Guestbook1, jak przedstawiono to na rysunku 6.10. Na razie nie ma potrzeby korzystania z tej opcji, poniewa ksiga goci nie zawiera jeszcze adnych wpisw. sunek 6.10. menu mponenty jawi si wpis lestbook, iry czy :.zci 'ministracyjn igi goci
Wttiyn.i
Me mi
Aityfcirty
Rozszerzenia
0 Pomoc
wylot
Mieni
Wytoyiif
Utwrz now pozycj w Main Menu, ktra czy z komponentem Guestbook. Po wywietleniu listy dostpnych komponentw wybierz pozycj Guestbook. Nastpnie na ekranie parametrw wprowad nazw Moja ksiga goci. Ze wzgldw bezpieczestwa upewnij si, czy pozycja bdzie dostpna wycznie dla zarejestrowanych uytkownikw pomoe Ci w tym rysunek 6.11. sunek 6.11. <ranicz dostp < ksigi goci ko dla rejestrowanych ytkownikw, iy zapobiec iduyciom igi goci zez spamerw t
1 1
Pozycja menu:
[utwrz]
yp pozycji menu
P.ir<tHieti Parametr
Guestbook
I Zmie typ 1
Wywietla list wpisw z ksigi goci, wraz z formularzem dodawania nowych komentarzy przez zarejestrowanych uytkownikw. Szczegy pozycji menu Tytifc Moja Ksiga Goci Tekst zastpczy: cze: index ,php?oplion=com_guestbook Wywietlaj w: Main Menu lladi zedna poayeja: v
a.
Joomla! Overview ! $ - What's New in 1.5? More about Joomla! The News Web Links News Feeds ^ ^ ** fr
Publikacja: O Nie
<3 Tak
Kolejno: Nowa pozycja znajdzie si^*nTocu. Po zapisaniu mona zmieni kolejno. Poziom dostpu: Powszechny Specjalny
'odczas tumaczenia tej ksiki przyjto konwencj tumaczenia nazw rozszerze, ale zachowywania iryginalnych nazw plikw. W przypadku komponentw Joomla! te dwa zaoenia wykluczaj si, oniewa przy instalacji pliki komponentu (dla moduw nie ma tego problemu) kopiowane s do katalogu ;om_nazwakomponentu, dlatego komponent Ksiga Goci bdzie w czci administracyjnej nosi oryginaln lazw Guestbook przyp. tum.
178
Aby przetestowa ksig goci, otwrz stron Joomla! w przegldarce i kliknij odnonik Moja ksiga goci. Na ekranie nie pojawi si adne wpisy, tylko formularz dodawania nowego. Wprowad wiadomo, podobnie jak zilustrowano to na rysunku 6.12, a nastpnie kliknij przycisk Dodaj wpis, aby zachowa j w systemie. Rysunek 6.12. Wprowad wiadomo w formularzu ksigi goci
N.i p e w n o tu j e s z c z e w i c e I - J a n Kowalski W s p a n i a a stroii.it.ik t i z y n t a ! - J a n Kowalski
Na ekranie pojawi si potwierdzenie wraz z linkiem kierujcym z powrotem do ksigi goci. Kliknij go, aby wywietli list wpisw. Teraz, kiedy w tabeli # guestbook znajduj si ju jakie wpisy, moesz przej do czci administracyjnej. Wybierz pozycj Ksiga Goci z menu Komponenty. Kady wiersz tabeli odpowiada jednemu wpisowi w ksidze goci, co pokazano na rysunku 6.13. Rysunek 6.13. W czci administracyjnej zostanie wywietlona lista wszystkich wpisw w ksidze goci
Okoo 200 znakw kadego wpisu wywietlanych jest w postaci odnonika. Jego kliknicie spowoduje wywietlenie formularza edycji wpisu co zilustrowano na rysunku 6.14. Rysunek 6.14. Kliknicie odnonika w tabeli spowoduje wywietlenie formularza edycji danego wpisu
Zmiany mona wprowadzi do bazy danych, klikajc przycisk Zapisz zmiany. Ze wzgldw bezpieczestwa, a take dla wygody praktycznie wszystkie znaki, oprcz liter, cyfr i podstawowej interpunkcji, s usuwane z wiadomoci dodawanych przez uytkownikw czci
179
frontowej. Cz administracyjna nie ma takich zabezpiecze. Pozwala to wstawia dodatkowe elementy uytkownikom posiadajcym prawa administratora. Komponent Ksiga goci skada si z czci frontowej i administracyjnej, tworzy wasn tabel do przechowywania danych, a take przeprowadza na niej rne operacje (pobieranie, wstawianie, uaktualnianie). Te cechy sprawiaj, e przykadowy komponent stanowi doskona podstaw dla kolejnych rozszerze zorientowanych na komunikacj z baz danych.
orzystanie z phpDocumentor
Jednym z aspektw konstrukcji oprogramowania, ktrym programici powicaj najmniej czasu, jest tworzenie dokumentacji. Proces tworzenia i uaktualniania dokumentacji wraz z rozwojem aplikacji moe by nudny i mczcy. Brak dokumentacji przekada si jednak na trudnoci w zarzdzaniu kodem i jego dalszym rozwijaniu. Program phpDocumentor zosta stworzony, aby ograniczy ten problem. Jest to aplikacja open source, ktra umoliwia programistom umieszczanie podstawowej dokumentacji, a take informacji na temat struktury aplikacji bezporednio w plikach rdowych. Program analizuje wszystkie pliki rdowe i zbiera informacje, z ktrych nastpnie tworzy dokumentacj. Moliwe jest utworzenie dokumentacji w takich formatach, jak HTML, PDF, CHM (skompilowany HTML) i XML. Poniewa generowanie dokumentacji jest zautomatyzowane, aplikacj phpDocumentor mona uruchomi w dowolnym momencie, aby utworzy najbardziej aktualn dokumentacj danego projektu. Oznacza to, e dokumentacja moe odwoywa si zawsze do stanu biecego, a sabo udokumentowane fragmenty kodu mona atwo zidentyfikowa na podstawie przegldu (dziki czemu wiadomo, gdzie uzupeni brakujce informacje).
stalacja
Instalacja programu phpDocumentor na serwerze WWW jest wyjtkowo prosta. Program nie wymaga dostpu do bazy danych ani adnych technologii renderowania, dlatego mona go uywa na dowolnym serwerze z obsug PHP. Pierwszym krokiem jest pobranie archiwum zawierajcego najnowsz wersj z serwisu SourceForge. Odpowiedni odnonik znajduje si na stronie phpDocumentor, ktr znajdziesz pod adresem: http: //www.phpdoc. org Nastpnie naley umieci zawarto archiwum na serwerze WWW. Zwr uwag, aby byo to miejsce publicznie niedostpne, poniewa phpDocumentor nie jest bezpieczn aplikacj. Na moim serwerze testowym umieciem program w folderze phpdoc w gwnym katalogu serwera WWW. Dostp do aplikacji odbywa si wtedy po wprowadzeniu poniszego adresu: http://localhost/phpdoc
180
Joomla!. Profesjonalne tworzenie stron WN 1W Zostanie wywietlony ekran powitalny zawierajcy kilka menu (Introduction, Config, Files, Outpu itd.). Pojawia si take aktualnie wybrany katalog i stan aplikacji. Zazwyczaj bdzie on brzmia Awaiting your command" (Czekam na rozkaz"). W tym rozdziale obsuga phpDocumentor zostaa ograniczona do interfejsu strony WWW. Istnieje jednak moliwo uruchamiania aplikacji z wiersza polece. Jeli zdecydujesz si na t drug opcj, warto rozway zastosowanie instalatora Pear, ktry uatwia proces przygotowania aplikacji.
*/
Powysza sekcja komentarza nosi nazw DocBlock, jest odczytywana i wykorzystywana przez program phpDocumentor przy tworzeniu dokumentacji kodu. Aby bya ona kompletna, podobne sekcje powinny by wstawiane przed wszystkimi funkcjami, klasami, metodami i procedurami. Organizacja dokumentacji opiera si na podziale na pakiet (ang. package). Pakiet jest pojciem zbiorczym dla grupy klas, metod i funkcji. Za pomoc znacznika @package moesz oznaczy miejsce wystpienia pakietu nadrzdnego. Pakiety podrzdne z kolei mona opisywa znacznikiem @subpackage. Poniej umieszczono fragment kodu rdowego systemu Joomla!, ktry naley do pakietu Joomla i podrzdnego pakietu Content:
* @package Joomla * @subpackage Content */
class T00LBAR_content { function _EDIT() {
Aby wyprbowa dziaanie aplikacji phpDocumentor, moesz uruchomi proces generowania dokumentacji z kodu rdowego Joomla!, poniewa zawiera on niezbdne sekcje DocBlock. Utwrz na serwerze WWW katalog, w ktrym bdzie przechowywana dokumentacja. Skada si ona z wielu plikw HTML, dlatego najlepiej przechowywa je w jednym miejscu. Za pomoc phpDocumentor regularnie tworzona jest dokumentacja dla platformy Joomla!. Najnowsz wersj znajdziesz na stronie internetowej http://api.joomla.org. Uruchom w przegldarce program phpDocumentor, a nastpnie kliknij zakadk Output na grze strony. W pierwsze pole, oznaczone Target, naley wpisa katalog, w ktrym zostanie umieszczona dokumentacja. Wprowad ciek dostpu do katalogu, ktry utworzye przed chwil.
1
Odpowiednio: wprowadzenie,
konfiguracja,
tum.
181
Kliknij zakadk Files, aby wybra pliki, ktre zostan przetworzone w programie. Katalog includes systemu Joomla! zawiera wiele klas opisanych znacznikami DocBlock. Wprowad ciek dostpu do tego katalogu, ktra w przypadku systemu Windows moe przypomina: C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\includes
Aby rozpocz proces, kliknij przycisk Create (new window). Generowanie moe potrwa kilka minut, poniewa Joomla! zawiera duo kodu, ktry naley przetworzy. Po ukoczeniu pojawi si okno zawierajce informacje o wyniku generowania dokumentacji. Znajduj si w nim take informacje o bdach i problemach, ktre wystpiy w trakcie tworzenia dokumentacji, co moe by szczeglnie pomocne, jeli dopiero zaczynasz prac z programem phpDocumentor. Przejd do katalogu, w ktrym zostaa zapisana dokumentacja i otwrz w przegldarce plik index.html. W oknie zostanie wywietlona lista plikw zapisanych w katalogu includes. W lewej kolumnie znajduje si lista pakietw, ktre zostay zdefiniowane, nastpnie lista przypisanych do nich plikw i klas. W sekcji klas kliknij odnonik JSite. Zostanie wywietlony przegld informacji o klasie wraz z list nalecych do niej metod. Oprcz szczegw klasy (np. komentarzy programistw) na stronie znajduje si opis zmiennych, metod i staych nalecych do klasy. Solidna dokumentacja dla programistw jest korzystna dla kadego projektu. Kilka chwil, ktre trzeba powici, aby doda niezbdne informacje do plikw, przeoy si na znaczce uatwienia w przypadku dalszego rozwijania programu. Zapoznaj si z instrukcjami programu phpDocumentor, poniewa zawiera on wiele dodatkowych funkcji, m.in. moliwo tworzenia kilku wersji dokumentacji (np. jedna wersja dla programistw, a draga dla uytkownikw), a take pobierania informacji z plikw zewntrznych, dziki czemu kod rdowy pozostaje wolny od obszernych komentarzy.
Zsumowanie
System komentarzy zawiera z pewnoci najwicej cech wsplnych dla komponentw Joomla!, poniewa oprcz bogatej funkcjonalnoci zwizanej z wywietlaniem ma take funkcje dostpne z poziomu interfejsu administratora. Wykorzystujc zaawansowane rodowisko programistyczne, takie jak Eclipse, wzbogacone dodatkowo o moliwoci systemu SVN, moesz tworzy komponenty, stosujc nastpujce techniki: dopasowywanie domylnych szablonw Eclipse w celu wstawienia niezbdnego podstawowego kodu; programowanie czci frontowej i administracyjnej, zawierajcych podan funkcjonalno; tworzenie archiwum poprzednich wersji kodu rdowego za pomoc interfejsu SVN dostpnego w Eclipse; udoskonalanie interfejsu ksigi goci, doczanie dodatkowych elementw formularza;
182
Joomla!. Profesjonalne tworzenie stron WN 1W uaktualnianie interfejsu administracyjnego w celu poprawienia integracji z platform Joomla!; generowanie dokumentacji w oparciu o komentarze zawarte w kodzie rdowym przetwarzanym przez program phpDocumentor.
Komponenty stworzone w tym rozdziale s klasycznym przykadem tradycyjnej interakcji ze stron WWW. Sercem nowego sposobu interakcji ze stronami WWW, nazywanym powszechnie Web 2.0, jest poczenie kilku technologii pod nazw Ajax. W rozdziale 7. opisano tworzenie aplikacji Joomla!, ktrej gwn czcijest dynamiczna interakcja z uytkownikiem bez ponownego przeadowywania strony.
7
Joomla! i Ajax
Ajax (ang. Asynchronous JavaScript and XML Asynchroniczny JavaScript i XML) to poczenie potnych technologii, ktre le u podstaw Web 2.0. Dziki technologii Ajax interakcja ze stron WWW jest duo atrakcyjniejsza dla uytkownikw ni wczeniejsze rozwizania. W przeszoci kada zmiana parametrw lub kliknicie przyciskw wizay si z przesaniem danych do serwera WWW, a nastpnie pobraniem w caoci nowej strony, ktra odzwierciedlaa wykonane akcje. Praca z aplikacjami internetowymi funkcjonujcymi w tym modelu bya niewygodna i nieatrakcyjna. W przypadku aplikacji zaprojektowanych z myl o Ajaksie moliwe jest osignicie prawie natychmiastowej reakcji na dziaania uytkownika. Wykonywanie takich czynnoci jak zmiana porzdku sortowania danych w tabeli poprzez kliknicie nagwka cechuje si minimalnym opnieniem. Jeli dana akcja wymaga pobrania dodatkowych informacji (np. wyjanienia dla danego terminu), to zamiast pobiera w caoci now stron, mona, korzystajc z technologii Ajax, przesa tylko wymagane minimum danych z serwera. Uaktualnianie informacji na stronie jest dynamiczne i nie wymaga przeadowania caego dokumentu. W systemie Joomla! wprowadzono funkcjonalno, ktra sprzyja implementacji rozwiza ajaksowych. Stosowanie wymiany informacji w tle prowadzi do dynamicznej i bogatej interakcji ze stron.
184
uruchamiany w przegldarce uytkownika, czy si w tle z serwerem WWW. Informacje mog by przesyane w obu kierunkach, a nastpnie dynamicznie formatowane i wywietlane w oknie przegldarki. Bardzo prostym, a jednoczenie coraz popularniejszym zastosowaniem Ajaksa jest chmurka" pojawiajca si po najechaniu kursorem myszy na dan pozycj. Rozwizanie tego typu stosowane jest na stronie Netflix (rysunek 7.1). Jeli uytkownik najedzie kursorem myszy na tytu lub zdjcie produktu, zostanie wywietlona chmurka" zawierajca powizane informacje i obrazki. W przypadku strony Netflix jest to czsto zdjcie pudeka z filmem, krtkie podsumowanie fabuy, ocena, wystpujcy aktorzy itp.
Rysunek 7.1.
Informacje o filmach na stronie Netflix pobierane s dynamicznie, a nastpnie wywietlane w postaci chmurki"
| Spjdf r-Man J J (2004)1- ; % The heroic arachnid iSk directed by Sam R a i m i \ Chabon. Peter Parker ( 1 through a major identity cn Spider-Man, he decides td ego, which leaves the city carnage left by the evil Dot meantime, Peter still cant Mary-Jane (Kirsten Dunst) Available Formats: DVD .an
The heroic arachnid is back in this live-action sequel directed by Sam Raimi and written by Michael Chabon Peter Parker (Tobey Maguire) is going through a major identity crisis. Burned outfrom being Spider-Man, he decides to shelve his superhero alter ego, which leaves the city suffering in the wake of carnage left by the evil Doc Ock (Alfred Molina). In the meantime, Peter still cant act on his feelings for Mary-Jane (Kirsten Dunst). SMllintj: Tobey Maguire, Kirsten Dunst Director: Sam Raimi Gerne: Action ^Adventure Rotiny: PG-1 3
Informacje wywietlane w chmurce" nie znajduj w kodzie rdowym strony. Z serwera pobierana jest strona zawierajca podstawowe informacje i kod, ktry pobiera i wywietla dodatkowe informacje, jeli to konieczne. Dziki temu czas pobierania strony zostaje skrcony, poniewa nie s przesyane niepotrzebne informacje. Jeli uytkownik najedzie kursorem myszy na ktr z pozycji, zostanie uruchomiony kod JavaScript, ktry pobierze z serwera nowe informacje, a nastpnie wywietli je w postaci chmurki". Ta magia" wymaga sprzenia kilku technologii. Przegldarka, reagujc na dane wydarzenie, musi by w stanie uruchamia kod JavaScript, ktry wysya danie do serwera. Nastpnie serwer musi zwrci odpowiednio sformatowane informacje, ktre odpowiadaj daniu. Kolejny etap to odebranie informacji w przegldarce, przetworzenie i formatowanie, tak aby mona byoby je wywietli, korzystajc z DOM. Liczba funkcji moe wydawa si zniechcajca, jednake wikszo z tych technologii jest szeroko stosowana. Dwie gwne przegldarki Internet Explorer (IE) i Mozilla Firefox od duszego czasu (kilka poprzednich wersji) maj niezbdn funkcjonalno. W praktyce oznacza to, e wikszo istniejcych przegldarek jest w stanie skorzysta z zalet Ajaksa. Niezbdne funkcje strony serwerowej dostpne s za porednictwem klasy JDocument, skadowej platformy Joomla!. Waciwie sformatowana odpowied serwera moe by przygotowana przez wasny komponent.
Rozdzia 7. JoomlaAjax
185
adomo wietlona oknie ilogowym ;t wynikiem namicznego dania sianego komponentu omia
H
k ' !
"
X >,J
w s t K Z
Wyszukaj
. Ulubione
v
^p' g ^ J Przejd
>
[MJ Produkt
f \> *
Gotowe
J Mj komputer
Ten prymitywny przykad stanowi szkielet rozwizania ajaksowego, ktry wkrtce wykorzystasz jako podstaw bardziej przydatnej aplikacji, poniewa posiada on prawie wszystkie znaczce elementy stosowane w zaawansowanych rozwizaniach.
rorzenie komponentu
Pierwszy element aplikacji stanowi komponent Joomla!. Odpowiada on bezporednio na dania, przy czym nie zawiera adnych elementw interfejsu, takich jak menu. Dlatego w naszym przypadku musi jedynie wywietla pojedyncz lini tekstu, odpowied na danie ajaksowe. Utwrz najpierw folder \comjproductinfo na dysku twardym. Umie w nim plik productinfo.php o nastpujcej treci:
<?php
186
Aby zainstalowa komponent, niezbdny jest take plik deskryptora XML. Wprowad nastpujcy kod i zapisz go w pliku o nazwieproductinfo.xml:
<?xml version="1.0" <install encoding="utf-8"?> type="component"> version="1.5.0"
<name>Informacje o produkcie</narne> <versi on>l.5.0</versi on> <description>Kornponent wywietlajcy informacje o produkcie w odpowiedzi na dania ajaksowe</descripti on> <files> <filename </files> <administration> <menu>Lipny Product <files> <filename </files> </administration> </instal1> component="com_productinfo">productinfo.php</filename> Info</menu> component="com_productinfo">productinfo.php</filename>
Utwrz archiwum o nazwie com_productinfo.zip, zawierajce oba te pliki, a nastpnie zainstaluj je w czci administracyjnej Joomla!. Moesz przetestowa dziaanie komponentu poprzez rczne wpisanie adresu URL dania w oknie przegldarki: http://localhost/index.php?option=com _productinfo&format=raw
Jeli komponent dziaa poprawnie, w oknie przegldarki zostanie wywietlona pojedyncza linia tekstu, co przedstawiono na rysunku 7.3. Jeli zagldniesz do rda dokumentu, zauwaysz, e nie ma tam adnego kodu HTML, tylko zwyky tekst. Ustawienie parametru format na raw (drugi parametr acucha dania) powoduje uruchomienie danego komponentu i zwrcenie wycznie jego wydruku. Wanie taka metoda jest stosowana na stronach korzystajcych z rozwiza ajaksowych do wywietlania informacji.
Rysunek 7.3.
' 3 hitp://loealhost/joomla/index. php?option Plik Edycja Widok
:
com
Wydruk komponentu stanowi informacja o dostpnoci danego produktu w postaci zwykego tekstu
Ulubione L^J
Narzdzia [Ml :. i .
Pomoc /
wVszukai
%J
Ulubione
v
: i jj|]J Przejd
http://localhost/joomla/index.php?option=com_productinfo&forrnat=r
| y Gotowe
Lokalny intranet
187
188
inny
model
try { myRequest = new ActiveX0bject("Msxml2.XMLHTTP"); } catch (e) { try { myRequest = new ActiveXObjectC'Microsoft.XMLHTTP"); } catch (e) {}
// Sprawd,
czy poprawnie
otworzono
obiekt
// Przypisz funkcj,
ktra zostanie
wywoana
po otrzymaniu
odpowiedzi
myRequest.onreadystatechange = displayReturn; // Otwrz docelowy adres URL myRequest.open('GET', myURL, true); // Wylij danie myRequest.send(nul 1);
function displayReturnO { // Sprawd, czy danie zostao ukoczone, 4ukoczone if (myRequest.readyState == 4) { // Sprawd kod statusu HTTP if (myRequest.status == 200) { // Wywietl komunikat zwrotny alert(myRequest.responseText); } else {
</script> </head> <body> <p style="border:lpx solid black;" onmouseover= "displayAjax('http://localhost/index.php?option=com_productinfo&format=raw')"> Mj produkt </p> </body> </html>
189
Umie ten plik w gwnym katalogu serwera Joomla! i otwrz w przegldarce. Zwr uwag, e adres przekazywany funkcji displayAjaxf) odwouje si w obecnej postaci do serwera zainstalowanego na komputerze lokalnym (localhost). Zmie go, jeli uruchamiasz stron Joomla! na zdalnym serwerze. Po najechaniu kursorem na tre paragrafu zostanie wywietlona wiadomo w oknie dialogowym. To chyba nie byo a takie trudne, prawda? W przypadku programu Firefox zabezpieczenie przed atakami cross-site scripting zablokuje dziaanie skryptu, jeli zostanie uruchomiony z twardego dysku komputera. Pojawi si komunikat Bd: nieobsuony wyjtek: Dostp do metody XMLHttpRequest.open zabroniony", a przegldarka zablokuje wywietlanie strony. Rozwizaniem jest przeniesienie pliku na serwer WWW i uruchomienie go stamtd. Teraz, kiedy podstawowa implementacja zostaa ukoczona, moemy przej do bardziej skomplikowanego przykadu. Wikszo rozwiza ajaksowych stosowanych na istniejcych stronach WWW wymaga poczenia dynamicznego generowania treci z interaktywn komunikacj, waciw dla technologii Ajax. W ten sposb pobiera si wicej informacji. Nastpny przykad jest kompletnym systemem ajaksowym opartym na Joomla!.
rorzenie komponentu
Pierwszym krokiem jest skopiowanie folderu \com_productinfo i nadanie kopii nazwy \com_articleinfo. Nastpnie zmie nazwy plikw productinfo.php i productinfo.xml odpowiednio na articleinfo.php i articleinfo.xml. Zmie kod w pliku articleinfo.php, aby odpowiada poniszemu:
<?php
* @version $Id: com articleinfo.php 5203 2007-07-27 01:45:14Z DanR $ * Komponent wykorzystuje warto parametru 'articlenum'
190
*/
// Wykonaj zapytanie
if "(Srows = $db->loadObjectList()) {
?>
Po wprowadzeniu powyszego kodu zmie odpowiednio plik deskryptora, aby wskazywa nowy plik i nazw komponentu. Nie zapomnij zmieni atrybutu component znacznika <fi 1 ename>. Jeli tego nie zrobisz, to przy prbie instalacji zostanie wywietlony komunikat e rozszerzenie zostao ju zarejestrowane w systemie! Utwrz archiwum o nazwie com_articleinfo.zip, zawierajce te dwa pliki, a nastpnie zainstaluj je w systemie Joomla!, korzystajc z opcji Rozszerzenia/Instalator. Bdc w interfejsie administratora, przejd do listy artykuw i zanotuj ID istniejcego artykuu. Wartoci pola ID poszczeglnych artykuw wywietlane s w kolumnie ID. Otwrz w przegldarce poniszy adres: http://localhost/index.php?opon=com_articleinfo&format=raw&articlemm
191
Oczywicie powiniene zmieni warto parametru articlenum, aby odpowiada ID artykuu znajdujcego si w bazie danych. W przegldarce powinno zosta wywietlonych pierwszych 200 znakw artykuu. Cakiem fajne, nieprawda? Teraz, kiedy sprawdzilimy poprawno kodu, moemy dokadniej przeanalizowa jego dziaanie.
iowied na danie
W pierwszej czci kodu umieszczono instrukcje, ktre przygotowuj dziaanie komponentu, a take pobieraj warto ID artykuu odczytan z odebranego dania. Do tego celu posuono si metod JRequest::getVar(), ktra odczytuje warto parametru z acucha dania. Pobrana warto zostaa zapisana w postaci zmiennej iarticlenum. Pod wywoaniem getVar() kryje si tak na prawd kilka funkcji. Gwnym zadaniem tej metody jest jednak pobieranie wartoci parametrw z rnych rde (GET, POST itd.). Jeli wic w kodzie komponentu potrzebujesz pobra informacje z acucha dania, formularza lub innego rda, moesz to zrobi za pomoc tej jednej metody. Warto zwrci uwag na fakt, e metoda ta usuwa z przesanych informacji fragmenty, ktre mogyby posuy do ataku SQL Injection (zobacz podrozdzia Zagroenia bezpieczestwa") lub innych prb wamania. Stanowi ona bardzo wan warstw zabezpiecze, dlatego najlepiej wykorzystywa t metod zamiast rcznego pobierania danych za pomoc instrukcji PHP. Nawet jeli niepodane informacje zostan przepuszczone przez metod getVar(), zostan usunite przez funkcj intval (), ktra zmienia podany cig znakw na bezpieczn i nieszkodliw liczb. Po ustawieniu zmiennej iarticlenum zmiennym SarticleTitle i SarticleBody przypisywane s wartoci domylne.
192
Poniewa klient potrzebuje wycznie dwch informacji (tytuu i skrconej treci artykuu), skomplikowany model XML jest zbdny. Za pomoc instrukcji echo tworzone jest proste drzewo XML, ktrego gwnym elementem jest <article>, a elementami potomnymi s <title> i <body>. Jeli wynikiem zapytania miaoby by kilka rekordw, mona by je zapisa w postaci kolejnych elementw <article>.
To by byo na tyle! Komponent odczytuje ID artykuu z acuchu dania, przeglda baz danych w poszukiwaniu odpowiedniego wpisu, przetwarza informacje do postaci zwykego tekstu i przesya z powrotem w postaci prostego drzewa XML. Modu bdzie w tym wypadku bardziej skomplikowany, obsuguje trzy etapy: interakcj z uytkownikiem, wysyanie dania i wywietlanie informacji zwrotnych.
Modu wywietlajcy informacje zwrcone za porednictwem Ajaksa bdzie skada si w moliwie jak najwikszym stopniu z napisanego wczeniej kodu. Platforma Joomla! jesi pena procedur i obiektw, ktre moesz wykorzysta, piszc wasny kod. W tym przypadku, zamiast pisa wasny kod odpowiedzialny za wywietlanie chmurek", posuymy si ju tym istniejcym w Joomla!.
System Joomla! zawiera wietn funkcj wywietlajc chmurki", ktre w znacznym stopnii mona dopasowa do wasnych potrzeb. Pochodzi ona z biblioteki overLIB, stworzonej prze Erika Bosrupa (www.bosrup.com/web/overlib), ktry askawie pozwoli na doczenie jej do instalacji Joomla!. Na jego stronie internetowej znajdziesz najnowsz wersj biblioteki ktr moesz wykorzysta, jeli planujesz implementacj poza systemem Joomla!. W przypadku platformy Joomla! wystarczy wstawi w kodzie strony jedn lini:
<script type="text/javascript" src="includes/js/overl ibjrini. js"></script>
Powysza instrukcja wskazuje, e kod biblioteki przechowywany jest w katalogu /includes/js Jeli dysponujesz wolnym czasem, warto przeanalizowa jej kod, aby pozna moliwe parametry i dostpn funkcjonalno.
Utwrz folder mod_artic1eajax, w ktrym bdzie przechowywany modu. Nastpnie otwr; go, wprowad poniszy kod i zapisz go pod nazwmod_articl eajax. xml:
<?xml version="1.0" encoding="utf-8"?> <install type="module" version="1.5.0"> <name>Ajax i artykuy</name> <versi on>l.5.0</versi on> <description>Ten modu wywietla odnoniki do 5 aktualnych artykuw. Odnonik do kadego posiada zdefiniowane zdarzenie onMouseOver, ktre uruchamia procedur ajaksow pobierajc informacje o artykule za pomc komponentu com_articleinfo. </description>
193
Powyszy kod to najprostszy plik deskryptora. Moesz go rozszerzy, jeli planujesz wstawi dodatkowe pliki i parametry, ktre rozszerz tworzon aplikacj.
orzenie mod_articleajax
Utwrz w folderze plik o nazwie mod_articleajax.php i wprowad poniszy kod:
<?php /**
* @version $ld: mod articleajax.php 5203 2007-07-27 01:45:14Z DanR $ * Ten modu wywietla odnoniki do 5 aktualnych artykuw. * Odnonik do kadego posiada zdefiniowane zdarzenie onMouseOver, ktre uruchamia * procedur ajaksow pobierajc informacje o artykule za pomoc komponentu com articleinfo. */
<script type="text/javascript" <script type="text/javascript"> src="inc1udes/js/overlib_mim.js"></script>
// Dla przegldarek takich jak Firefox, Safari i innych, ktre wykorzystuj ponisze:
if (window.XMLHttpRequest) { myRequest = new XMLHttpRequest(): if (myRequest.overrideMimeType) { myRequest.overrideMimeType('text/xml'): } else if (window.ActiveXObject) {
return false:
194
function displayReturnO { // Sprawd, czy danie zostao ukoczone, 4=ukoczone if (myRequest.readyState == 4) { // Sprawd kod statusu HTTP if (myRequest.status == 200) { // Pobierz gwny element XML var article = myRequest.responseXML.getElementsByTagNamei'article'): // Pobierz elementy title i body // IE6 wymaga typu mime ustawionego na text/xml", w przeciwnym razie nie odczyta //poprawnie odpowiedzi. // Dlatego, jeli niedostpny jest element o indeksie [0], mamy do czynienia z IE6 i musimy // rcznie zaadowa model obiektu. if (!article[0]) { myRequest.responseXML.1oadXML(myRequest.responseText): var article = myRequest.responseXML.getElementsByTagName('article'):
myRequest.onreadystatechange = displayReturn; // Otwrz docelowy adres URL myRequest.open('GET', myURL. true): // Wylij danie myRequest.send(null);
w postaci
overlib(myBody.CAPTION.myTitle,BELOW,RIGHT): } else { // Wystpi bd, wywietl chmurk " z komunikatem overlib('Wystpi problem podczas wykonywania pobierania'.BELOW,RIGHT):
dania.'.CAPTION.'Bd
</script> <small>Modu ajaksowy</small><br /> <?php //Zablokuj bezporednie uruchamianie defined( '_JEXEC' ) or die( 'Brak dostpu' ): //Zdefiniuj lokalne zmienne $db =& JFactory::getDB0(): $user =& JFactory::getUser(): Suserld = (int) $user->get('id'): //Zdefiniuj odpowiednie daty, aby zagwarantowa, e artykuy Snuli Date = $db->getNullDatei): Snow = date('Y-m-d H:i:s'. timet)): // Wyszukuj wycznie opublikowanych artykuw Swhere = 'a.state = 1 ' . " AND (a.publish_up = "' . Snuli Date . "' OR a.publish_up <= "' . Snow . "')" . " AND ( a.publish_down = "' . Snuli Date . "' OR a.publishjjown >= "' . Snow . "')"; s dostpne
195
// Utwrz zapytanie
$query = "SELECT a.id. a.title " FROM # content AS a \n" . " WHERE " . iwhere . "\n" . " AND a.access <= " . iuserld; \n" .
}
// Wywietl komunikat o bdzie, jei pobieranie danych nie powiodo si
echo Sdb->getErrorMsg(); ?>
Podobnie jak we wczeniejszym przykadzie, jeli uruchamiasz stron na zdalnym serwerze, musisz zmieni adres wykorzystywany przez funkcj di spl ayAjax(). Po ukoczeniu tworzenia moduu utwrz archiwum o nazwie mod_artic1eajax.ZTp i zainstaluj je, korzystajc z opcji Rozszerzenia. Jeli pozostawisz modu na pozycji left, zostanie on wywietlony na stronie gwnej. Otwrz przegldark internetow i otwrz stron gwn. Po najechaniu kursorem na kady z wywietlonych odnonikw zostanie wywietlona chmurka" zawierajca tytu i pierwszych 200 znakw artykuu, co przedstawiono na rysunku 7.4. Jak moesz zauway, dziki Ajaksowi sporo dodatkowych informacji jest byskawicznie przedstawianych uytkownikowi. Rysunek 7.4.
Tytu i pierwszych 200 znakw kadego artykuu zostan wywietlone w postaci chmurki"
Ajax i artykuy Latest N e w s
Content Layouts MM-' DOI I to Joomlal ..framework and content publishing system designed for quickly eating highly interactiue lultllanguage W e b sites online edia portals blogs and eCommerce appl
Popular
o the Frontpage
i II"! n' liximl.i Overview i l'."Int. cense i M u t .lii'.in Jiinitila: I FAO i Tire News i W e l l Links News Feeds
Joomlal
Joomia! is .1 flee open source i t a m e w o i k and content publishing system designed tot quickly Cio.itiri'j tii.jtitv iiiteiactive multi-language Well sites, online communities. media poitais. tilo'is .mil eC oinmei ce applications. pmered "v -Joomlal provides an easy-to-use graphical user Interface that simplifies the management and publishing of large volumes of content including HTML, documents, arid rich media. Joomlal is used by organisations of all sizes for Public Web sites, Intranets, and Extrais and is supported by a community of thousands of
J, J o o m l a !
196
Joomla!. Profesjonalne tworzenie stron WN 1W Korzystajc z potgi tego prostego przykadu, bdziesz prawdopodobnie chcia tworzy wasne rozwizania ajaksowe. Kod moduu jest bardziej skomplikowany ni ten komponentu, dlatego trzeba dokadnie go przeanalizowa, aby w peni rozumie jego dziaanie.
..Chmurki"
Jedn z pierwszych instrukcji w kodzie moduu jest znacznik script, ktry niezbdny jest do skorzystania z funkcjonalnoci biblioteki overLIB. Po doczeniu biblioteki moesz wywietli chmurk", wywoujc funkcj overLIBO. Istnieje moliwo okrelenia sporej liczby parametrw, ktre wpywaj na wygld chmurki, np. wysoko, kolor, umiejscowienie czy parametry wywietlanego tekstu.
Funkcje wywoujce
Poniej znacznika <scri pt> znajduj si definicje funkcji di spl ayAjax() i di spl ayReturn(). Funkcja di spl ayAjax() jest praktycznie identyczna z t, ktra wystpuje we wczeniejszym przykadzie wywietlajcym informacje o dostpnoci. Jedyn znaczc zmian jest parametr przekazywany funkcji. Zamiast podawania kompletnego adresu URL funkcja wymaga podania ID artykuu, na podstawie ktrego tworzony jest odpowiedni adres odwoujcy si do komponentu com_articleinfo. W przeciwiestwie do displayAjaxO w kodzie funkcji di spl ayReturn() zaszo wiele zmian. Zamiast prostego odbierania tekstu wysanego przez komponent (za pomoc obiektu reponseText) nowy kod napisano z wykorzystaniem obiektu responseXML, dziki czemu mona odczytywa dane sformatowane w postaci drzewa XML. Najpierw tworzone jest odwoanie do elementu gwnego <article>, a nastpnie pobierane s wartoci elementw <title> i <body>, zapisane w polu nodeVal ue. Pobrane wartoci znajduj zastosowanie przy wywoywaniu funkcji overLIB(), okrelana jest tre i nagwek chmurki". Te dwie funkcje odpowiadaj za cz wysyania i pobierania danych. Elementy odpowiedzialne za interakcj z uytkownikiem s odrobin bardziej skomplikowane, poniewa niezbdny jest dostp do bazy danych Joomla!, dziki ktremu pobiera si odpowiednie informacje o artykuach.
197
Dlatego podczas odwoywania do bazy danych wykorzystywane s dane aktualnie zalogowanego uytkownika. Warto zmiennej inullDate powoduje wywietlenie artykuw, dla ktrych nie okrelono daty wyganicia. Zmienna $now usuwa z listy przeszukiwanych artykuw te, ktre zostan opublikowane w przyszoci. Instrukcja zapisana w zmiennej $where gwarantuje, e zostan pobrane wycznie obecnie opublikowane artykuy. Klauzula WHERE jest nastpnie dodawana do zmiennej $query, ktra zawiera zapytanie pobierajce pola ID i title artykuw. W przypadku moduu konieczne jest wywietlanie wycznie prostej listy wpisw, dlatego nie ma powodu, aby pobiera nadmiarowe dane. Ostatecznie zostaje uruchomiona metoda setQuery(), ktra uruchamia zapytanie i pobiera maksymalnie pi rekordw. Moliwe byoby pobranie kompletnej listy artykuw, jednak modu zajby wtedy zbyt wiele miejsca w pionie, dlatego lepiej ograniczy zakres lub rozmiar pobieranych danych. Dla kadego rekordu pobranego jako wynik zapytania tworzony jest element <span>, dla ktrego zdefiniowano zdarzenie onMouseOver. Analizujc kod rdowy, moesz zauway, e do kadej pozycji przypisane jest odpowiednie ID w postaci parametru funkcji di spl ayAjax(). Kod rdowy wygenerowanej strony zawiera dla kadego zdarzenia onMouseOver odpowiedni ID artykuu. Dodatkowo przy definicji tego zdarzenia umieszczana jest instrukcja, ktra ukrywa wczeniej wywietlone chmurki". Dla kadego elementu <span> tworzony jest take odnonik do danego artykuu. Jego kliknicie powoduje uruchomienie komponentu com_content, ktry wywietla artyku, a odpowiednie ID przekazywane jest w postaci parametru. Nazw odnonika jest jedno z pl rekordu, tytu artykuu. Jeli podczas pobierania danych z bazy wystpi bd, na stronie pojawi si stosowny komunikat. Powiniene mie ju solidne umiejtnoci zwizane z implementacj rozwiza ajaksowych z wykorzystaniem platformy CMS Joomla!. Stworzony szkielet mona rozbudowywa w dowolny sposb, aby osign wiksz interaktywno.
198
Gromadzenie informacji
Wikszo da ajaksowych prowadzi do odebrania w przegldarce sformatowanych danych. Musisz zwrci szczegln uwag na zabezpieczenie si przed niepowoanym dostpem, a take atakami hakerw. Wikszo aplikacji ajaksowych wykonuje dania, ktre powoduj zwrcenie danych z bazy. Mog to by informacje na temat ceny/dostpnoci produktu, a nawet tajne informacje firmy. Poniewa dane pobierane s w formacie XML, nie trzeba duo czasu i wysiku, aby konkurencja stworzya, naduywajc komponentu ajaksowego, program pobierajcy dane do momentu, kiedy wszystkie informacje znajd si w ich bazie. Istnieje kilka sposobw obrony przed takim podstpowaniem. Najprostszym z nich jest zapewnienie, e dania nie s tworzone wedug prostego schematu, np. sekwencji liczb. Jeli produkty s ponumerowane od 1 do 50, sprbuj zastosowa inn metod identyfikowania rekordw, tak aby niemoliwe byo stworzenie aplikacji, ktra pobiera informacje dla kolejnych ID.
Zagroenia bezpieczestwa
Kolejne niebezpieczestwo stanowi potencjalny atak SQL Injection. W tym przypadku haker prbuje przesa zapytanie SQL w postaci parametru. Jeli dobierajcy program wstawia odebrane dane bezporednio do zapytania, moliwe jest zdradzenie wielu prywatnych informacji.
199
Na szczcie Joomla! zawiera funkcje takie jak getVar(), ktre zapobiegaj przenikaniu" wikszoci szkodliwego kodu. Zawsze pomyl dwa razy, zanim zdecydujesz si na ominicie funkcji wbudowanych w Joomla!, poniewa zawieraj wiele sprawdzonych i pewnych zabezpiecze.
odsumowanie
Wykorzystanie technologii Ajax na Twojej stronie moe sprawi, e w peni zasuy ona na miano witryny Web 2.0. Poczenie i waciwa implementacja niezbdnych technologii (HTML, XML, JavaScript itd.) mog by frustrujce, jednak trud zostaje wynagrodzony w chwili uruchomieniem strony. W tym rozdziale opisano implementacj rozwiza ajaksowych w Joomla!, a w szczeglnoci: opisano powizania midzy skadowymi technologii Ajax, a take sposoby implementacji w Joomla!; opisano dziaanie komponentw, pobieranie danych w formacie raw; tworzenie prostej aplikacji ajaksowej, ktra jest przykadem zastosowania caej platformy; rozszerzanie systemu Joomla! dodanie wywietlania chmurek", co jest demonstracj funkcjonalnoci technologii Ajax; zalety konserwatywnego punktu widzenia rozsdnego decydowania o miejscach implementacji rozwiza ajaksowych, wiadomo wad nowej technologii.
Implementacja technologii Ajax moe by cakiem skomplikowana. Jeli stanowi ona cze wikszego projektu, kod programu moe sta si zupenie niejasny. Narzdzia programistyczne noszce nazw wzorcw projektowych mog uatwi planowanie aplikacji, zredukowa liczb bdw i zwikszy zysk wiedzy z poprzednich aplikacji. W rozdziale 8. opisano, jak stosowa wzorce projektowe w programowaniu Joomla!.
200
8
Wzorce projektowe a Joomla!
Joomla! jest aplikacj napisan technik programowania obiektowego. Caa platforma skada si z zestawu klas, ktrych poczenie tworzy funkcjonalno systemu zarzdzania treci (CMS). Efektywne programowanie Joomla! wymaga zapoznania si z kilkoma paradygmatami programowania obiektowego i stosowania ich. Przykadem takich paradygmatw s wzorce projektowe. Wzorce projektowe to w istocie zestaw modeli konceptowych, wytycznych nowego sposoby programowania zorientowanego na obiekty. Modele, odzwierciedlane w postaci wzorcw projektowych, byy udoskonalane w ramach prac nad wieloma projektami. Waciwe dopasowanie wzorcw projektowych do problemu, nad ktrym pracujesz, moe dostarczy Ci sprawdzonych metod, ktre uatwi zadanie. Adaptacja skutecznych wzorcw projektowych oznacza w praktyce, e atwiej dotrzyma terminw, zarzdzanie systemem jest tasze, rozumienie ewolucji systemu prostsze, a nowi programici szybciej dostosowuj si do projektw. Dziki zastosowaniu wzorcw projektowych znika potrzeba wynajdywania koa przy kadym nowym projekcie. Poczwszy od wczesnych lat dziewidziesitych, pionierskich prac Ericha Gamma, Richarda Heima, Ralpha Johnsona i Johna Vlissidesa (tzw. Bandy Czterech ang. Gang ofFour), napisano wiele obszernych pozycji na ten temat. Oryginalna (i prawdopodobnie najwaniejsza) ksika nosi tytu Design Patterns: Elements of Reusable Object-Oriented Software1 (Addison-Wesley, Boston 1995), opisano w niej wiele podstawowych wzorcw uywanych obecnie cznie z tymi, ktre napotkasz w Joomla!. W tym rozdziale przedstawiono podstawy wzorcw projektowych, a poniewa zostay one zastosowane przez programistw Joomla! w konstruowaniu CMS, take przykadowe uycie w kodzie Joomla!. Rozumiejc zaoenia projektowe, na ktrych opiera si Joomla!, bdziesz w stanie nie tylko tworzy skuteczniejsze rozszerzenia, ale take lepiej poznasz sam platform, jej dziaanie i potencjalne zastosowania.
Wyd. polskie Wzorce projektowe. Elementy oprogramowania Warszawa, 2005, ISBN 83-204-3041-0 przyp. tum.
obiektowego wielokrotnego
uytku, WNT,
202
Wzorce projektowe
Wzorce projektowe stanowi wytyczne programowania obiektowego, ktre odzwierciedlaj podstawowe cele w procesie tworzenia aplikacji. Zostay stworzone, aby rozwiza konkretne, powtarzajce si problemy programistyczne w schematyczny sposb (wzorzec). Dokumentacja poszczeglnych wzorcw zawiera w wikszoci przypadkw takie informacje, jak: Nazwa oraz klasyfikacja Nazwa wzorca wraz z ogln klasyfikacj, ktra wskazuje na typ wzorca. Zazwyczaj jest to jeden z trzech podstawowych typw: konstrukcyjny, strukturalny lub czynnociowy. Problem Opis problemu, dla ktrego stworzono dany wzorzec. Rozwizanie Szczegowy opis rozwizania problemu, zawierajcy oglne modele konceptowe, procesy i obiekty. Hipoteza Oglny opis dziaania wzorca, a take jak jego zastosowanie prowadzi do rozwizania. Konkretny przykad problemu. Sugestywny przykad zastosowania wzorca do rozwizania
Zastosowanie Obszary zastosowania danego wzorca, a take jego ograniczenia. Konsekwencje Kompromisy i zalenoci, ktre wymusza zastosowanie wzorca. Wskazwki odnonie do implementacji Oglne sugestie dotyczce stosowania danego wzorca.
Pamitaj, e wzorce projektowe nie s doskonae ani nie s dogmatem, ktry trzeba stosowa za wszelk cen. Wzorce projektowe to zbir wytycznych, a im dokadniej si je stosuje, tym wicej zamierzonych korzyci uzyskuje si. W praktyce trzeba si czsto zmierza z ograniczeniami w adaptacji wzorcw, np. ze wzgldu na wydajno. Wzorce projektowe mog by take przytaczajcym ciarem, jeli projekt jest bardzo may. Nie istnieje prosty sposb na okrelenie wielkoci projektu, dla ktrego implementacja wzorcw ma sens. Mona z grubsza przyj, e jeli nad projektem pracuje lub bdzie pracowa w przyszoci co najmniej trzech programistw, wtedy warto ponie koszty zwizane z implementacj. W przypadku pojedynczych programistw zastosowanie wzorcw nie przekada si na znaczce korzyci, moe jednak suy wyrobieniu dobrych nawykw. Dziki temu, jeli projekt zostanie rozszerzony, jego struktura nie bdzie go ogranicza. Powiniene dokadnie zna zalety zastosowania poszczeglnych wzorcw, zamiast lepo stosowa je w tworzonych programach. Zaoeniem wzorcw projektowych jest uproszczenie i usprawnienie procesu tworzenia aplikacji, a wprowadzanie ich na sil, kosztem skomplikowania projektu, jest zaprzeczeniem tego zaoenia.
203
W ramach opisu powyszych kategorii przedstawiono po jednym wzorcu, ktry mona potraktowa jako reprezentacj pozostaych rozwiza programistycznych z danej kategorii.
Mzorce konstrukcyjne
Wzorce klasyfikowane do kategorii konstrukcyjnych zwizane s z mechanizmem tworzenia obiektw. Moe Ci si wydawa, e tworzenie obiektw jest proste, a wikszo zada wykonuje system. Istniej jednak przypadki, kiedy rczne zarzdzanie tworzeniem obiektw moe przekada si na znaczce korzyci, np. usprawnienie uaktualnie lub lepsze zarzdzanie zasobami szczeglnie w wikszych systemach. W wielu aplikacjach tworzenie nowych obiektw sprowadza si do wywoania, specyficznej dla danego jzyka programowania, instrukcji tworzenia obiektu. Istnieje jednak wiele zastosowa, dla ktrych zastosowanie dodatkowej warstwy w mechanizmie tworzenia obiektw przynosi korzyci. Przykadowo technologia DAL (Database Abstraction Layer warstwa abstrakcji bazy danych, np. PEAR DAL, PDO i ADOdb) tworzy warstw poredni midzy aplikacj a rdem danych, dziki czemu programista moe pisa kod, ktry za porednictwem DAL pobiera dane z dowolnego systemu baz danych. Zamiast tworzy obiekt czcy si bezporednio z baz danych, pobierany jest obiekt DAL. Gdy korzysta si z tej metody, moliwe jest zarzdzanie pul pocze (ang. connection pooling), dziki czemu dostpne poczenia niewykorzystywane przez procesy macierzyste mog by przekazane do kolejnych, zmniejszajc konieczno tworzenia nowych. Ten wzorzec konstrukcyjny suy oszczdzaniu zasobw serwera, a take, poniewa DAL obsuguje tworzenie obiektw, moe rozwiza wiele problemw zwizanych z dostpem do konkretnych rde danych. Powyej zosta opisany realny przykad wzorca konstrukcyjnego. Do kategorii wzorcw konstrukcyjnych nale: fabryka abstrakcyjna, metoda fabrykujca, wzorzec budowniczego, leniwa inicjacja, pula obiektw, prototyp i singleton. Definicje tych wzorcw opisuj niektre z procesw wymaganych przez aplikacj. Najczciej stosowanymi w Joomla! wzorcami z tej kategorii s: fabryka abstrakcyjna (przedstawiona niej jako przykad), singleton i wzorzec budowniczego.
204
Wzorzec singleton
Wzorzec konstrukcyjny singleton jest stosowany w Joomla! gwnie w przypadku obiektw czcych z baz danych. W aplikacjach bazodanowych otwieranie i zamykanie pocze wprowadza spory narzut. Aby zmniejszy ubytek wydajnoci, implementowany jest wzorzec singleton, tzn. w programie wykorzystywany jest pojedynczy egzemplarz obiektu, ktry odpowiada za poczenie z baz danych. Zamiast tworzy nowe poczenie przy kadym zapytaniu, komunikacja przebiega za porednictwem istniejcego poczenia. W systemie Joomla! zapytanie z wykorzystaniem obiektu bazy danych wyglda tak:
$db =& JFactory::getDB0(); $query = "SELECT *" . "\ n FROM josjnessages" . "\n WERE messageMonth = ". intval(icurMonth); $db->setQuery($query); SmyRows = $db->loadObjectList();
Operator przypisania referencji znajdujcy si przed wywoaniem metody JFactory: :getDB0() pozwala wykorzysta istniejcy ju obiekt bazy danych.
Wzorzec budowniczego
Wzorzec budowniczego stosowany jest w sytuacji, kiedy niezbdna jest konwersja danych. Budowniczy gra rol rozszerzenia dla klasy bazowej nazywanej dyrektorem. Dyrektor przetwarza plik lub strumie wejciowy i rozdziela go na poszczeglne elementy. Kady element jest kolejno przesyany do budowniczego, ktry tworzy z nich sformatowany wydruk.
205
Przykadem dyrektora moe by klasa przetwarzajca XML. Przesya ona kady znacznik i element drzewa XML do klasy budowniczego. Dziaanie klasy budowniczego zaley od oczekiwanego formatu wydruku. Jeden budowniczy moe zwrci list elementw oddzielonych przecinkami, inny moe z kolei utworzy kod SQL, ktry zapisuje otrzymane elementy w bazie danych. Wzorzec budowniczego pozwala na tworzenie budowniczych niezalenie od dyrektora. Przykadem wykorzystania wzorca budowniczego w Joomla! jest obsuga parametrw moduu. Wartoci tych parametrw mona zmieni w interfejsie administratora za pomoc opcji Moduy. Kod odpowiedzialny za obsug parametrw poszczeglnych typw (text, textarea, radio button, fi lei i st itd.) znajduje si w katalogu element, ktry mona znale w (zakadajc, e zaczynamy w gwnym katalogu Joomla!): \libraries\joomla\html\parameter\element W folderze jest kilkadziesit plikw PHP odpowiedzialnych za poszczeglne typy parametrw (xvp.filelist.php, imagelist.php, password.php itd.). Realizacja tego zadania w platformie Joomla! wyglda nastpujco: dyrektor pobiera list parametrw moduu, a nastpnie wywouje budowniczych poszczeglnych typw, ktrzy generuj odpowiedni kod HTML wysyany do przegldarki.
tfzopce strukturalne
Wzorce strukturalne zwizane s z organizacj klas w ramach platformy, przy zaoeniu specyficznego dziedziczenia. Celem tych wzorcw jest uproszczenie (na ile to moliwe) powiza midzy elementami (lub klasami) systemu. Wzorce nalece do kategorii strukturalnych to: adapter, agregat, most, kompozyt, pojemnik, dekorator, rozszerzalno lub platforma, fasada, waga pirkowa, porednik, rurki i filtry, dane prywatne klasy oraz wrapper. Najpopularniejsze wzorce wykorzystywane w Joomla! to wzorzec adaptera i wzorzec mostu.
Ifzorzec adaptera
Wzorzec adaptera wykorzystywany jest do poczenia ze sob dwch niekompatybilnych interfejsw. Stosuje si go w kodzie komponentw czcych z takimi technologiami jak np. Simple Machines Forum. Komponent czcy stanowi dwukierunkowy adapter, pozwala na komunikacj dwch niekompatybilnych systemw.
Ifzorzec mostu
Wzorzec mostu pozwala na implementacj warstwy abstrakcji za porednictwem ustandaryzowanego interfejsu. Najczstszym przykadem wzorca mostu jest system wydruku. System wydruku przesya informacje za porednictwem standardowego interfejsu do dowolnego sterownika drukarki. Poniewa interfejs wyjciowy jest abstrakcyjny, uytkownik moe zmieni sterowniki bez koniecznoci zmian w implementacji systemu wydruku.
206
Joomla!. Profesjonalne tworzenie stron WN 1W Innym przykadem tego wzorca jest ustawianie typu wydruku komponentu Joomla!. Moliwe typy zawieraj m.in. HTML (domylnie), raw i text (tekst). Kademu typowi odpowiada klasa, ktra wywietla dane w odpowiednim formacie.
Wzorce czynnociowe
Wzorce czynnociowe zwizane s z komunikacj midzy obiektami. Celem tych wzorcw jest uproszczenie i zwikszenie elastycznoci komunikacji midzy elementami systemu. Wzorce nalece do tej kategorii to acuch odpowiedzialnoci, polecenie, interpretator, iterator, mediator, pamitka, obserwator, stan, strategia, szablon, wizytator i jego warianty. Najczciej wykorzystywane w Joomla! s wzorce obserwatora, acucha odpowiedzialnoci i strategii.
Wzorzec obserwatora
W przypadku wzorca obsei~watora obiekt nazywany obserwowanym jest punktem czcym, ktry suy do powiadamiania innych obiektw o zmianie parametrw. Kady obserwator jest rejestrowany, a zmiana w obiekcie reprezentowanym przez obserwowany powoduje jego automatyczne powiadomienie. Prostym przykadem realizacji tego wzorca jest system automatycznego odtwarzania dla urzdze USB. Wyobra sobie, e zosta utworzony obiekt (obserwowany), ktry monitoruje stan urzdze USB. Jednym z obserwatorw jest program odtwarzajcy DVD. Zmiana stanu urzdze USB (np. wsadzenie pyty DVD do napdu) powoduje poinformowanie wszystkich obserwatorw. Obserwator obsugujcy odtwarzacz DVD sprawdzi, po otrzymaniu powiadomienia, czy zosta wsadzony film, jeli tak, to automatycznie uruchomi odtwarzanie go (o ile zosta skonfigurowany w ten sposb). Wzorzec obserwatora wykorzystywany jest w Joomla! do obsugi dodatkw (wtyczek). Kady dodatek jest rejestrowany w systemie wraz z informacj o zdarzeniach, ktre moe obsuy. W przypadku wystpienia zdarzenia danego typu obserwowany (Joomla!) powiadamia obserwatora (dodatek) o tym fakcie.
207
W Joomla! dodatek moe poinformowa system, e obsuy dane zdarzenie. W takiej sytuacji przetwarzanie zostaje przekazane dodatkowi, a system Joomla! nie wykonuje adnych dodatkowych akcji dla tego zdarzenia.
Izorzec strategii
W przypadku wzorca strategii algorytmy poddaje si hermetyzacji (zostaj zapisane w postaci obiektw). W ten sposb mona uaktualnia lub wymienia algorytmy bez wprowadzania zmian w systemie, zmianom podlega wycznie kod algorytmu wewntrz obiektu. Takie rozwizanie jest czsto stosowane podczas implementacji algorytmw uwierzytelniania i szyfrowania. Wzorzec strategii stosowany jest czsto w poczeniu z wzorcem fabryki. W sytuacji zmiany algorytmu wymieniany jest obiekt zwracany przez fabryk.
Wzorce wspbienoci
Chocia nie nale do wzorcw opisanych przez Band Czterech, wzorce wspbienoci coraz bardziej zyskuj na znaczeniu. W krgu specjalistw od baz danych wspbieno stanowi gwny problem. W przypadku typowej, duej organizacji system baz danych musi by w stanie obsuy tysice uytkownikw prbujcych w tym samym czasie uzyska dostp do tych samych danych, a take zmodyfikowa je. Typowy sprzedawca biletw na lotnisku musi sprawdzi, czy moe sprzeda bilet lub zrobi rezerwacj na dany lot w chwili, kiedy zada tego stojcy przed nim klient. System podczas przeszukiwania musi sprawdzi list lotw przylatujcych, obecne rezerwacje, moliwe poczenia (by moe take te nalece do innych linii lotniczych), a nawet przewidzie procent osb, ktre nic zrealizuj rezerwacji. Program musi na podstawie aktualnej wartoci sporej liczby zmiennych sprawdzi dostpno i moliwo rezerwacji lotu. Ten przykad jest odlegy od wikszoci zastosowa Joomla! (ktre nie wymagaj wspbienych operacji na du skal), wic wyobra sobie inn sytuacj: dwch ludzi (redaktor i dziennikarz) wprowadza zmiany w tym samym artykule dokadnie w tym samym momencie. Joomla! jest CMS-em, co w praktyce oznacza, e istnieje spora szansa, e autor artykuu bdzie dodawa kolejne informacje w tym samym momencie, kiedy redaktor poprawia artyku pod ktem poprawnoci. Dlatego warto zapozna si z kilkoma wzorcami wspbienoci, aby zrozumie, w jaki sposb rozwizuj konflikty zwizane ze wspbienoci, co moe mie zastosowanie obecnie i w przyszoci.
Wzorce architekturalne
Wzorce architekturalne nie zostay opisane przez Band Czterech, chocia maj zapewne najwiksze znaczenie dla programistw Joomla!. Wzorce tego typu nakrelaj ogln konstrukcj systemu, opisujc, jak funkcjonuje kompletny system.
208
Joomla!. Profesjonalne tworzenie stron WN 1W Najpopularniejszym wzorcem z tej grupy jest wzorzec klient-serwer. Polega on na tym, e uytkownik uruchamia wikszo skomplikowanych oblicze na wasnym komputerze (jego komputer jest w tej terminologii nazywany klientem), a z serwerem czy si, aby pobra dane z bazy. Wikszo operacji przetwarzania danych przebiega na komputerze klienta, a wikszo danych przechowywanych jest na serwerze zilustrowano to na rysunku 8.1.
Rysunek 8.1.
Implementacja wzorca klientserwer oznacza przetwarzanie zwizane z interfejsem uytkownika po stronie klienta, a koordynacja danych po stronie serwera
We wczesnych latach istnienia sieci Web powszechnie stosowany by wzorzec serwerowy, a wikszo przetwarzania miaa miejsce na serwerze. Nawet za pomoc prostej przegldarki mona byo korzysta z aplikacji internetowych. Wszystkie dane i logika programu znajdoway si na serwerze, przegldarka suya wycznie jako prosty wywietlacz. Nowe technologie tworzce Ajaksa, opisane w rozdziale 7., odpowiadaj rozwizaniu poredniemu midzy wzorcem klient-serwer a wzorcem serwerowym. Chocia aplikacja uruchamiana jest w gwnej czci na serwerze, przegldarka pobiera pewn cz logiki programu (zazwyczaj w postaci kodu JavaScript). Dlatego pewne elementy przetwarzania, np. kontrola poprawnoci danych, pobieranie dodatkowych danych, s wykonywane na komputerze klienta, chocia uruchamiany kod przesyany jest wczeniej z serwera. Cho w przeszoci konstrukcja Joomla! bazowaa na wzorcu serwerowym, to wraz ze wzrostem wykorzystania wzorca klient-serwer Joomla! wchodzi w wiat Web 2.0.
Wzorzec serwerowy
Joomla! jest esencj systemu serwerowego. Klient (przegldarka) uruchamia bardzo niewiele lub zero kodu. Serwer wykonuje wszystkie zapytania, tworzy warstw prezentacji i uruchamia wikszo kodu. Oprcz edycji treci artykuu (np. za pomoc TinyMCE) take cae przetwarzanie odbywa si na serwerze WWW (za pomoc kodu PHP), a sformatowana strona przekazywana jest do przegldarki. Wzorzec serwerowy ma prawdopodobnie najdusz histori zastosowania w informatyce. Jego korzenie sigaj stosowania kart dziurkowanych wsadzano je do centralnego komputera, ktry nastpnie wywietla wyniki. Kolejnym krokiem by system UNIX w latach 70. i 80., gdy wykorzystywano terminale do przesyania procesw na serwer, na ktrym byy wykonywane.
209
W erze nastpujcej po Uniksach dominujc rol przyj wzorzec klient-serwer, ale ju aplikacje internetowe spowodoway wzrost ponownego zainteresowania wiata komputerw wzorcem serwerowym. W czasie boomu dot-comw w latach 90. wiele firm przewidywao, e wzorzec serwerowy z powrotem przejmie pozycj gwnego modelu tworzenia oprogramowania w wiecie komputerw. Saba wydajno, zrywanie pocze, niewystarczajco szybkie komputery klientw sprawiy, e ta teza staa si nieprawdopodobna. Z powodu rozpowszechnienia szybkich czy i wydajnych urzdze klienckich dominujcym wzorcem w przyszoci bdzie prawdopodobnie wzorzec uruchamiania po stronie klienta.
Wzorzec Model-Widok-Kontroler
Trzy najwaniejsze wzorce projektowe systemu Joomla! (Obserwator, Kompozyt i Strategia) poczono w postaci wzorca Model-Widok-Kontroler (MVC Model-View-Controller). Celem zastosowania tego wzorca jest rozdzielenie aplikacji na trzy obszary, ktre mog by rozwijane (w miar moliwoci) niezalenie od pozostaych, przy czym zmiany wprowadzane w jednej czci maj minimalny wpyw na reszt. Kady obszar odpowiada konkretnej warstwie aplikacji: Model Logika lub waciwy kod aplikacji. Widok Warstwa prezentacji, tekst i grafika. Kontroler Komunikacja z uytkownikiem, przetwarzanie zdarze.
Jeli odniesiesz te trzy pojcia do realiw zwizanych z Joomla!, model odpowiada kodowi PHP i zapytaniom do bazy danych wykonywanym na serwerze WWW. Widok odpowiada
210
Joomla!. Profesjonalne tworzenie stron WN 1W szablonowi, ktry okrela sposb wywietlania zawartoci. Kontroler z kolei odpowiada za system zdarze menu i rozszerzenia, takie jak modu wyszukiwania, ktry przekazuje dane od uytkownika do modelu Joomla! w celu dalszego przetwarzania. Szablony Joomla! stanowi oczywist demonstracj zalet rozdzielenia obszarw aplikacji. Wybr nowego szablonu w interfejsie administratora moe cakowicie zmieni wygld strony WWW. Jeli kod modelu i kod widoku byyby poczone (co w przeszoci byo popularn praktyk), zmiana wygldu wymagaaby duej iloci programowania. Podobnie rozdzielenie interfejsu uytkownika oraz waciwego kodu aplikacji lub kontrolera i modelu umoliwia prac z aplikacj na wiele sposobw. Prostym przykadem jest kontroler, ktry pozwala uruchomi dan funkcj, zdefiniowan w modelu, z rozwijalnego menu lub po naciniciu klawisza. Bardziej zaawansowany przykad to podzia na interfejs wiersza polece i interfejs graficzny (oba dostpne dla MySQL), dziki czemu uytkownicy mog wybra preferowany sposb pracy z systemem. Na stronie internetowej oddzielny kontroler moe odpowiada za wersj tekstow menu, odpowiednie opisy odnonikw i obrazkw, ktre umoliwiaj nawigacj na stronie z du iloci grafiki ludziom z upoledzeniem wzroku. Dziki zapewnieniu uatwie dostpu strona moe by odwiedzana za pomoc przegldarki tekstowej (a take, w konsekwencji, przegldarki gosowej), a kod modelu pobierajcy tre artykuu pozostaje niezmienny. Przez wiele lat czyniono wysiki, by wprowadzi model MVC w systemach operacyjnych w celu umoliwienia zmiany interfejsu i tym samym dostosowania go do preferencji uytkownika. Jednym z niezbdnych kompromisw MVC jest spadek wydajnoci. Rozdzielenie poszczeglnych czci aplikacji oznacza, e kada z nich traktowana jest jak czarna skrzynka, a informacje musz by w caoci przekazywane z jednej warstwy do drugiej, co sprawia, e optymalizacja staje si trudnym zadaniem. Czciowe zastosowanie modelu MVC jest dowodem na to, e poczyniono wiele wysiku, aby uytkownicy mogli zmieni wygld lub temat wykorzystywany przez system operacyjny w zalenoci od preferencji. Brak penej implementacji MVC oznacza, e nadal trudno jest sprawi, aby MacOS wyglda i dziaa jak Windows Vista i vice versa. Podobnie jak systemy operacyjne, Joomla! nadal nie obsuguje w peni tego modelu. Szablony zawieraj spor ilo logiki w postaci kodu PHP (model) po to, aby umoliwi poprawne wywietlanie. Podobnie pewne aspekty moduw (kontrolery) s blisko powizane z warstw prezentacji (widokiem). Jak zaznaczono wczeniej, wzorce projektowe stanowi pewien ideal, do ktrego mona dy, a nie kaftan, ogranicznik wszystko-albo-nic. Chocia implementacja modelu MVC w Joomla! nie jest w peni zgodna z zaoeniami wzorca, platforma zawiera definicj obiektw dla kadej warstwy: JModel Klasa, ktra odpowiada funkcjom modelu w platformie Joomla!. JView Klasa, ktra odpowiada za warstw prezentacji w platformie Joomla!. JControl ler Klasa, ktra odpowiada funkcjom kontrolera w platformie Joomla!.
211
Rozpocznij od utworzenia folderu \com_hellomvc. Wewntrz tego folderu utwrz trzy podkatalogi, aby uzyska ponisz struktur: \com_hellomvc\controllers \com_hellomvc\models \com hellomvc\views
* %version * @package
*/'
212
Ze wzgldu na podzia MVC kod modelu nie musi zawiera instrukcji zwizanych z warstw prezentacji lub interakcji z uytkownikiem strony. Umoliwia to niezalene udoskonalanie gwnej logiki przez profesjonalnych programistw bez koniecznoci tradycyjnej wsppracy z grafikami i projektantami stron.
Pliki widoku
W przykadowym pliku widoku moesz dostrzec odwoania do czci zwizanych z kontrolerem i interfejsem uytkownika. Wprowad poniszy kod i zapisz go pod nazw view.html.php w folderze: \hellomvc\views\helIomvc:
<?php * @version * @package */ /* Zablokuj defined( /* Zaimportuj jimport( bezporednie $Id: hellomvc.php hellomvc 7122 2007-06-21 11:52:292 dam $
uruchamianie
*/
'joomla.application.component.view'):
class HelloMvcViewHelloMvc extends JView { function display($tpl = null) { /* Wywietl powitanie */ echo "<hl>Hello MVC!</hl>";
}
} ?>
O ile to moliwe, w widoku powinny by wykorzystywane elementy warstwy prezentacji wsplne dla wszystkich komponentw Joomla!. S one dostpne w bogatej bibliotece stylw zdefiniowanych w Joomla!, do ktrych mona odwoa si za pomoc atrybutw cl ass i i d. Stosujc dostpne style, prezentacja widoku bdzie automatycznie dopasowywana do reszty strony dla szablonu wybranego przez uytkownika. Metoda d i s p l a y ( ) wywoywana jest automatycznie, w reakcji na danie wywietlenia strony. Zwr uwag, e mona j zmieni bez wpywu na kod modelu lub kontrolera.
213
* @version * @package
}
} ?>
parent::di splay();
Po dodaniu odpowiedniej pozycji w menu, ktra uruchamia ten komponent, zauwaysz, e warstwa prezentacji nie rni si od tej, ktra jest waciwa dla braku implementacji wzorca MVC. Rnice dostrzeesz, dopiero kiedy bdziesz chcia rozbudowa jego funkcjonalno lub lepiej dopasowa prezentacj do aktualnie wybranego szablonu. Zalety zastosowania wzorca MVC stan si wtedy oczywiste. Zamiast obcia gwny kod rozszerzenia specjalnym, obsugujcym kilka wyjtkw, wystarczy wprowadzi zmiany w warstwie prezentacji, co ograniczy implikacj potencjalnych bdw. Zmiany wprowadzane w podstawowych algorytmach w czci modelu nie bd miay wpywu na wygld. Prezentacja moe zosta dopasowana do wymaga klienta, a programista nie musi si tym przejmowa. Jeszcze wiksz zacht jest fakt, e interfejs moe by dowolnie rozszerzany, bez wpywu na funkcjonowanie aplikacji. Dodanie takich uatwie, jak kalendarz otwierany w dodatkowym oknie lub interaktywne sprawdzanie pisowni, nie bdzie miao wpywu na kluczowe funkcje komponentu.
214
Teraz stwrz archiwum zawierajce komponent pod nazw com_hellomvc.zip i za pomoc opcji Rozszerzenia/Instalator zainstaluj go w systemie Joomla!. Jeli przypiszesz do niego odnonik w menu, a nastpnie uruchomisz, zostanie wywietlone powitanie, co przedstawiono na rysunku 8.2. Rysunek 8.2.
Komponent wywietli powitanie w gwnej kolumnie strony
Hello MVC! C p r g t ?0|]H oyih Su****^..^ V e c k e p-wi z s r e o i f z l i nii a t z z r e o r : l s w l y n oprosramow^^dostpnym na lcnj GNU GPL r! etonr ieci
Jest to bardzo piymitywny przykad, ktry pokazuje wycznie zarys tego, co mona osign dziki modelowi MVC. Przykadowo foldery controllers i models zostay utworzone, ale nie umieszczono w nich adnych plikw, poniewa komponent skada si z pojedynczego modelu i pojedynczego kontrolera. Tylko jeden plik zosta umieszczony w folderze \views, podczas gdy standardowy komponent zawiera oddzielny plik widoku dla kadego zadania (takiego jak displaylist, edit, newentry itd.). Komponent zosta ograniczony do minimum, aby mg lepiej pozna podstawy tego sposobu programowania.
215
Jeli przyjrzysz si uwaniej komponentom doczonym do Joomla! (wszystkie wykorzystuj struktur MVC), bdziesz w stanie rozbudowa przykadow implementacj Hello MVC na potrzeby komponentu dowolnego typu.
odsumowanie
Znaczenie wzorcw projektowych wzrasta wraz ze zwikszaniem si stopnia skomplikowania problemw, ktre napotykaj programici. Biblioteka sprawdzonych, dobrze udokumentowanych wzorcw projektowych stwarza moliwo redukcji kosztw i zapobiegania przekroczeniom terminw, tak czstym w przemyle informatycznym. Stosowanie wzorcw projektowych w programowaniu podsystemw, np. rozszerze platformy Joomla!, jest teraz wygodniejsze i korzystniejsze ni kiedykolwiek dotychczas. W tym rozdziale opisano stosowanie wzorcw projektowych, a w szczeglnoci: Przedstawiono konstrukcj platformy obiektowej Joomla!. Opisano projektowanie rozszerze, ktrych implementacja opiera si na skutecznoci wzorcw projektowych. Badanie istniejcego wzorca projektowego pod ktem zastosowania wzorcw projektowych, aby zrozumie dziaanie nowych technologii, takich jak Ajax.
Za pomoc wzorcw projektowych moesz czerpa z najlepszych praktyk programistycznych w pracy nad dowolnymi rozszerzeniami Joomla!. W rozdziale 9. dowiesz si, jak stworzy dodatek, ktry przetwarza artykuy w systemie Joomla!, bdc jednoczenie demonstracj kilku wzorcw.
216
9
Ingerencja w fundamenty Joomla!: wtyczki
Czytajc t ksik, miae ju okazj pisa moduy i komponenty, teraz przyszed czas na najbardziej skomplikowane rozszerzenia Joomla!: na wtyczki'. Gwnym zadaniem moduw jest wywietlanie informacji, a komponenty su przede wszystkim do interakcji z uytkownikiem. Rol wtyczki jest ingerencja w podstawy systemu, zmiana funkcjonalnoci Joomla! na najniszym poziomie. W tym rozdziale dowiesz si, jak stworzy prost wtyczk Hello World!, a nastpnie rozbudowa j do poziomu zaawansowanego rozszerzenia ktre przechwytuje tre artykuu, po tym, jak zostanie on pobrany z bazy danych wprowadzajc zmiany, zanim wygenerowana strona zostanie wysana do przegldarki uytkownika. Po napisaniu i przetestowaniu tej pary wtyczek, biorc pod uwag poprzednie bogate dowiadczenia zwizane z programowaniem moduw i komponentw, doczysz do grupy zaawansowanych programistw rozszerze Joomla!. Ostatnim, uzupeniajcym elementem Twojej edukacji bdzie zapoznanie si ze szczegami platformy programistycznej Joomla!. Platforma jest waciwym szkieletem, na podstawie ktrego skonstruowano CMS Joomla!, skada si z klas, ktrych bezporednie wykorzystanie, po uprzednim zrozumieniu, daje niekwestionowane korzyci.
Ang. plug-ins, w polskiej wersji jzykowej Joomla!, a take w pozostaych czciach tej ksiki nazywane dodatkami p r z y p . tum.
218
Joomla!. Profesjonalne tworzenie stron WN 1W Na ekranie Dodatki, w interfejsie administratora, informacja o kategorii danej wtyczki wywietlana jest w dwch miejscach: jako przedrostek nazwy wtyczki, a take w kolumnie Typ. Jak wida na rysunku 9.1, nazw kadej wtyczki poprzedza informacja o typie. Na przykad wtyczka LDAP zostaje wywietlona na licie jako Authentication LDAP. Typ wtyczki determinuje sposb jej funkcjonowania w systemie.
Rysunek 9.1.
Kategoria danej wtyczki wywietlana jest w kolumnie Typ, a take w postaci przedrostka nazwy
Wtyczka moe nalee do jednej z omiu kategorii: Authentication (Autoryzacja) Dostarczaj dodatkowych metod zwizanych z autoryzacj. Kilka domylnie doczonych wtyczek z tej kategorii to LDAP, OpenID, GMail i Joomla. Content (Zawarto) Umoliwiaj wprowadzanie zmian w treciach artykuw, po tym jak zostan pobrane z bazy danych i jeszcze nie zostan przesane do uytkownika. Umoliwia to zarwno modyfikowanie (np. ukrywanie adresw e-mailowych, aby zapobiec spamowi), jak i dodawanie informacji (np. oceny danej pozycji, komentarzy uytkownikw, opcji nawigacyjnych). Editor (Edytor) Do tej kategorii nale takie edytory, jak TinyMCE czy XStandard Lite. Editor button (Przyciski edytora) Maj za zadanie rozszerzanie funkcjonalnoci dostpnych edytorw poprzez dodawanie przyciskw, ktre su np. do wstawiania obrazkw lub podziau strony. We wczeniejszych wersjach Joomla! wtyczki z tej kategorii nosiy nazw editor-xtd. Search {Wyszukiwanie) Dodaj moliwo wyszukiwania treci danego typu np. artykuw, sekcji, kontaktw, odnonikw, kanaw RSS lub kategorii. System Wtyczki ingerujce w podstawowe funkcje systemu Joomla!, umoliwiaj kontrol i modyfikacj podstawowych zada, takich jak publikowanie, ukrywanie, a nawet instalacja.
Rozdzia 9. Ingerencia w fundamenty Joomla!: wtyczki User (Uytkownik) Su do synchronizacji bazy uytkownikw z innymi systemami, takimi jak Gallery2, Simple Machines Forum itd. XML-RPC Odbieraj zdarzenia przesyane protokoem XML RPC (Remote Procedure Cali zdalne wywoywanie procedur).
219
Utworzenie wtyczki wymaga napisania klasy, ktra dziedziczy po klasie podstawowej JP1 ugi n. W kodzie tej klasy definiuje si metody, ktrych nazwy odpowiadaj zdarzeniom Joomla!. Kod tych metod uruchamiany jest w momencie wystpienia danego zdarzenia. Przykadowo jeli zdefiniowae w klasie metod onAfterlnitialiseO, bdzie ona uruchomiana za kadym razem, kiedy zostanie odebrane danie wygenerowania strony, zanim system Joomla! rozpocznie jakiekolwiek przetwarzanie. Pogrupowanie wtyczek w wyej wymienione kategorie nie suy wycznie do organizacji. Definicja typu danej wtyczki implikuje zbir przechwytywanych zdarze. To ograniczenie nie dotyczy niektrych zdarze (szczeglnie z kategorii System). Dlatego pogrupowano je w cztery oglne kategorie: Content (Zawarto); Editor (Edytor); System and Search (System i wyszukiwanie); User (Uytkownik).
Zdarzenia nalece do powyszych kategorii mog by wykorzystywane wycznie we wtyczce odpowiedniego typu, chocia wikszo zdarze systemowych moe by przechwytywana przez wtyczki dowolnego typu.
220
Joomla!. Profesjonalne tworzenie stron WN 1W w treci przesyanej przegldarce uytkownika. Parametr params zawiera tablic parametrw zwizanych z widokiem, a parametr limitstart zawiera numer strony", ktremu odpowiada przesyana zawarto. onAfterDisplayTitle Nastpuje po wygenerowaniu tytuu, ale przed wywietleniem zawartoci. Funkcje przypisane do tego zdarzenia powinny zwraca tablic acuchw znakowych, kady z nich zostanie doczony do treci przed artykuem. To zdarzenie przydaje si szczeglnie wtedy, kiedy chcesz stworzy rozszerzenie wywietlajce obecn ocen artykuu przez uytkownikw. onBeforeDi spl ayContent Aktywowane bezporednio przed wywietleniem zawartoci. Funkcje przypisane do tego zdarzenia powinny zwrci tablic acuchw znakowych, kady z nich zostanie doczony do wynikowego acucha. Zdarzenie tego typu jest szczeglnie przydatne, jeli chcesz doda wasne definicje stylw dla wywietlanych treci. onAfterDi spl ayContent Nastpuje po wywietleniu treci artykuu. Funkcje przypisane do tego zdarzenia powinny zwrci tablic acuchw znakowych, kady z nich zostanie wstawiony na stronie, tu pod treci artykuu. To zdarzenie przydaje si szczeglnie, jeli zamierzasz doda system komentarzy, ktry wywietli komentarze pod danym artykuem.
Dziedziczc klas podstawow JPlugin i okrelajc typ wtyczki jako Content, moesz przechwytywa powysze zdarzenia i wprowadza zmiany w treci artykuw.
221
onSearch Uruchamiane jest w odpowiedzi na danie wyszukiwania. onSearchAreas Uruchamiane jest w odpowiedzi na danie wyszukiwania, z dodatkowym okreleniem, jakie obszary" (ang. areas) maj by przeszukiwane. onGetWebServi ces Umoliwia implementacj introspekcji wtyczek. Introspekcja jest technik programistyczn polegajc na wysaniu zapytania do obiektu celem pobrania informacji o jego API i funkcjach. W tym przypadku, jeli wtyczka zawiera metod odpowiadajc temu zdarzeniu, moe zwrci list zaimplementowanych funkcji wraz z opisem wtyczki w formacie doc-string, a take sygnatur zawierajc typy parametrw. Zdarzenie stosowane gwnie we wtyczkach XML-RPC.
222
Joomla!. Profesjonalne tworzenie stron WN 1W onLogi nllser Wykonywane po sprawdzeniu nazwy uytkownika i hasa wzgldem tabeli uytkownikw Joomla!. Jeli funkcja przypisana do tego zdarzenia zwrci warto False, autoryzacja uytkownika w systemie Joomla! zostanie zakoczona niepowodzeniem. onLogoutUser Aktywowane przy prbie wylogowania z systemu. Jeli funkcja przypisana do tego zdarzenia zwrci warto Fal se, wylogowywanie nie powiedzie si. onAuthenti cate Uruchamiane po poprawnej autoryzacji, zatwierdzonej przez wszystkie wtyczki, dane logowania przekazywane s w postaci obiektu JAuthenticateResponse, ktry zawiera rwnie wyniki zwrcone przez wtyczki. onAuthenti cateFai 1 ture Uruchamiane za kadym razem, kiedy danie autoryzacji zostao odrzucone przez kod jednej z wtyczek.
Nastpujce zdarzenia wystpuj w odpowiedzi na akcje zwizane z zarzdzaniem kontami uytkownikw z poziomu interfejsu administratora: onBeforeStoreUser Uruchamiane zanim zmiany konta uytkownika zostan zapisane w tabeli jos_users. onAfterStoretlser Aktywowane po zapisaniu zmian w tabeli jos_users. onBeforeDel etellser Uruchamiane zanim rekord konta uytkownika zostanie usunity z tabeli jos_users. onAfterDel eteUser Uruchamiane tu po usuniciu rekordu konta uytkownika z tabeli jos_users.
Dla tego konkretnego zdarzenia zwracany tekst zostanie wywietlony wycznie, jeli Tekst danego artykuu zosta wyczony przyp. tum.
wprowadzajcy
223
Joomla! Overview
Hello W o i Id!
* N<;ws feeds
If you're new to Web publishing systems, you'll find that Joomla! delivers sophistii robust enterprise-level Web site, empowered by endless extensibility'for your foes system of choice for small business or home users who want a professional loo conten t right So what's the catch? How much does this system cost? Well, there's good news ... and more good news! Joomla! 1.5 is free, it is release Public License v 2.0. Had you invested in a mainstream, commercial alternative add new functionality would probably mean taking out a second mortgage each ti
Podobnie jak przy tworzeniu moduw i komponentw, musisz stworzy plik deskryptora w formacie XML, ktry zawiera informacje dla instalatora dotyczce szczegw wtyczki, a take plik zawierajcy uruchamiany kod PHP.
Plik XML przypomina w sporym stopniu dotychczasowe deskryptory, tworzone dla pozostaych rozszerze. Zawiera on jednak grup parametrw specyficznych dla definicji wtyczki. Zwr uwag, e znacznik <install> zawiera dwa atrybuty, ktre wskazuj, e dane rozszerzenie jest wtyczk: type i group. Warto atrybutu type nie wymaga wyjanie. Atrybut group wskazuje na kategori wtyczki, jedn z wyszczeglnionych wczeniej (content, user, search, authentication itd.). Pliki nalece do wtyczki zostan zapisane w folderze odpowiadajcym danej grupie. Kolejnym elementem, na ktry musisz zwrci szczegln uwag, jest atrybut plugin znacznika <fi lename>. Wprowadzona nazwa powinna dokadnie odpowiada nazwie pliku z kodem PHP bez rozszerzenia. W przypadku wystpienia zdarzenia adowany jest plik PHP odpowiadajcy nazw wartoci tego atrybutu, ktra (w momencie instalacji) zapisywana jest w polu element, tabeli jos_plugins. Jeli wyszukiwanie pliku zakoczy si niepowodzeniem, kod odpowiedzialny za obsug zdarzenia nie zostanie uruchomiony.
224
Po zapisaniu pliku deskryptora utwrz kolejny plik i zapisz go pod nazw pl gHel 1 oWorl d. ph Umie w nim nastpujcy kod:
<?php
* @version * @package
*/
Analizujc powyszy kod, powiniene zauway, e nowa klasa o nazwie plgContentHell o EWorld dziedziczy klas abstrakcyjn JPlugin. Pierwsza zdefiniowana metoda nosi nazw pokrywajc si z nazw klasy, i z tego powodu gra rol konstruktora. W tym przypadku, dla zachowania kompatybilnoci z PHP4, uruchamia ona jedynie konstruktor klasy rodzica.
Poniej znajduje si definicja funkcji obsugujcej zdarzenie onAfterDisplayTitle. Wystpienie tego zdarzenia skutkuje przekazaniem trzech parametrw umoliwiajcych odczytanie (ale nie zmian) zawartoci artykuu, dla ktrego zostao wygenerowane zdarzenie. Poniewa tworzymy prosty program wywietlajcy powitanie, moesz spokojnie zignorowa te parametry. Kod funkcji zawiera definicj acucha znakw "Hel lo World!", ktry nastpnie zwracany jest do funkcji wywoujcej za porednictwem instrukcji return. To by byo na tyle. Utwrz archiwum zawierajce plik XML i PHP (moe by w formacie ZIP lub Tarball). Za pomoc opcji Rozszerzenia/Instalator zainstaluj plik w systemie. Domylnie nowe wtyczki nie s aktywne. Przejd do ekranu Dodatki, aby opublikowa dane rozszerzenie (znajdziesz je pod nazw Content Hello World!), co spowoduje jego aktywacj. Jeli otworzysz teraz stron Joomla!, zauwaysz, e midzy tytuem a treci kadego artykuu zostao wstawione powitanie. Nie byo to wcale trudne, prawda? Kolejna wtyczka bdzie odrobin bardziej skomplikowana, tak jak jej zadanie. Przejd teraz do opcji Dodatki i wycz wtyczk Hello World!, aby nie zamiecaa i nie spowalniaa systemu.
225
Jeli aktywowae wtyczk, a mimo to nie pojawio si adne powitanie przed treci artykuw, istniej dwa prawdopodobne scenariusze. Moliwe, e przegldasz skrty artykuw, ktre znajduj si na stronie gwnej, ale dla ktrych nie jest uruchamiane zdarzenie onAfterDisplayTi tle. Kliknij odnonik Czytaj wicej... lub tytu artykuu, aby przej do danego artykuu, a powitanie powinno zosta wywietlone we waciwym miejscu. Druga ewentualno to wyczona opcja Tekst wprowadzajcy dla jednego lub wszystkich artykuw. Przejd do opcji Artykuy w interfejsie administratora, a nastpnie kliknij przycisk Preferencje. Przestaw opcj Tekst wprowadzajcy na Poka. Moesz take zmieni ustawienia dla danego artykuu, znajduje si ono w grupie Parametry: rozszerzone.
226
Joomla!. Profesjonalne tworzenie stron WN 1W Po wywietleniu artykuu w niezmienionej formie na stronie gwnej odpowiada on dokadnie wprowadzonemu tekstowi (zobacz rysunek 9.3).
Rysunek 9.3.
Poniewa wtyczka Automatyczne Skrty nie zostaa jeszcze zainstalowana i aktywowana, tekst artykuu zawiera wiele skrtw
Artykut prbny
Analizujc ww. dane warto zwrci uwag na poziom wynagrodzenia, ii zarabia 800 z netto. Problem niskich pac dot. gownie zawodw tinans poprawy tego stanu rzeczy.
Po utworzeniu i aktywacji wtyczki skrty zostan zastpione odpowiednimi wyraeniami, a lektura tekstu bdzie prostsza (zobacz rysunek 9.4). Rysunek 9.4.
Po uruchomieniu wtyczki skrty zostan rozwinite, a peny tekst przesany do przegldarki
lite News Weh Links
Artyku prbny
News Feetls
Analizujc wyej y^miemone dane warto zwrci uwag na poziom wynagrodzenia, to zawodw, na przykad nauczyciel staysta zarabia 800 z netto Problem niskich pac dt finansowanych z budetu, a dotychczasowy projekt nie przewiduje poprawy tego stanu
Aby zrealizowa zaoenia tego rozszerzenia, konieczne bdzie zdefiniowanie metod obsugujcych zdarzenia typu Content. Sposb wprowadzania zmian w treci artykuw bdzie odpowiada innym zdarzeniom tego typu.
<creati onDate>July 2007</creati onDate> <authorEmail>admin@joomlajumpstart.com</authorEmail> <authorllrl>www. joomla jumpstart. com</authorllrl> <version>1.0</version> <description>Zastpuje skrty odpowiadajcymi <files> <fi 1 ename plugi n="rep!aceabbr">replaceabbr.php</fi 1 ename> </files> <params> <param name="replace_limit" type="text" size="5" default="50" zmian" description="Maksymalna </params> </instal l> liczba zmian skrtw jednego 1abel="Limit rodzaju"/> wyraeniami,</description>
Znacznikowi <name> mona przypisa dowoln warto, jednak konwencja Joomla! przyjmuje nazewnictwo z przedrostkiem wskazujcym typ wtyczki (w tym przypadku Content -"). Rozszerzenie bdzie dziaa nawet, jeli zignorujesz t konwencj, jednak zastosowanie si do niej uatwia okrelenie typu wtyczki wywietlanej na licie w interfejsie administratora.
227
Nazwa wtyczki systemu Joomla! przekazywana jest w postaci atrybutu plugin znacznika <filename>. W przypadku tej wtyczki atrybut plugin ma jeszcze wiksze znaczenie ni dla rozszerzenia Hello World!. Odpowiednie ustawienie jest niezbdne do pniejszego pobrania parametrw. Ta wtyczka ma jeden parametr repl ace_l imit (limit zmian). Jego uyteczno w przypadku wtyczki Automatyczne Skrty jest wtpliwa, ale jednak to penoprawna demonstracja stosowania parametrw.
(od wtyczki
Po zapisaniu pliku deskryptora na dysku twardym utwrz plik o nazwie w tym samym katalogu, a nastpnie wprowad poniszy kod:
<?php * @version * @package */ // Zablokuj definedi $ld: replaceabbr.php ReplaceAbbr 6138 2007-07-02 03:44:18Z danr $
replaceabbr.php
class plgContentReplaceabbr extends JPlugin { // Konstruktor kompatybilny z PHP4 function plgContentReplaceabbr( & isubject ) { parent:: constructi isubject );
nazwie
zdarzenia
function onPrepareContentt&iarticle. &$params, $1imitstart=0) { //Pobierz warto parametrw, na wypadek gdyby byy potrzebne pniej iplugin =& JPluginHelper::getPlugin('content'. 'replaceabbr'): ipluginParams - new JParameter( $plugin->params ): $num =1; if (!$pluginParams->get('replace_limit', 1)) { $num = $pluginParams->get('replacejimit'. 1):
'{replaceabbr=off}'
) === false ) {
'{replaceabbr=off}'.
} }
$num);
function replaceAbbrStr($myStr. $num) { // Utwrz tablic zawierajc skrty $abbr=array("dot."."dr", "mgr", "np.", "wg", "ww.", "tj.". "tzn."
228
); // Dodaj znaki tworzce wyraenie regularne ze skrtw, // abv dopasowywane byty wycznie poprawne skrty, //dodatkowo ignoruj wielko liter
for($i=0:$i < sizeof(iabbr);$i++) { $abbr[$i] = " A \ b " . str_replace('. 1 ,
",
$abbr[$i]) . "\\b\.?/i":
return SmyStr;
);
Kod powyszego rozszerzenia jest odrobin bardziej skomplikowany ni wczeniejsza wtyczka Hello World!. Rozpoczyna si od definicji klasy dziedziczcej JPlugin, pod nazw plgContent
"--Replaceabbr.
Wtyczka zawiera metod obsugujc zdarzenie onPrepareContent. To zdarzenie uruchamiane jest w momencie, kiedy tre artykuu jest gotowa do wysania do przegldarki. Jak moge zauway, funkcja ma trzy parametry: iarticle, iparams i $1 imitstart. Pierwsze dwa przekazywane s za pomoc referencji, co umoliwia modyfikacj wartoci tych zmiennych z czego zreszt skorzystamy. Parametr $1 imitstart zawiera numer aktualnej strony", co nie ma znaczenia dla tego przykadu. Wtyczka Automatyczne Skrty ma parametr (o nazwie replace_l i mit), ktrego warto musi zosta pobrana. Referencj wtyczki otrzymuje si za pomoc funkcji JPluginHelper:: ^getPlugin. Nastpnie odczytywane s wartoci parametrw, a stan parametru replacej i mit zapisywany jest w postaci zmiennej $num. Przed rozpoczciem przetwarzania nastpuje sprawdzenie, czy w treci artykuu znajduje si znacznik wskazujcy, e dany artyku powinien zosta zignorowany przez wtyczk. Instrukcj {replaceabbr=off} naley wpisa w tre artykuu. Nie jest to ani dyrektywa patTemplate, ani adna formalna deklaracja j e s t to znacznik wymylony na potrzeby tego rozszerzenia, aby umoliwi wyczanie przetwarzania danych artykuw bez dezaktywowania wtyczki. W przypadku wystpienia znacznika jest on usuwany z treci artykuu, a dalsze zmiany zostaj zblokowane za pomoc instrukcji return. Jeli odpowiedni znacznik nie zostanie zlokalizowany, warto $article~>text (przechowuje aktualny artyku) przekazywana jest funkcji replaceAbbrStrO w celu rozwinicia skrtw. Nastpie nadpisywana jest oryginalna tre zmiennej $article->text danymi zwrconymi przez funkcj. Instrukcja powrotu koczy funkcj i przekazuje sterowanie systemowi.
229
Funkcja repl aceAbbrStr() jest zwyczajn funkcj PHP, ktra wykorzystuje dwie tablice, w jednej umieszczane s wyraenia regularne, a nastpnie uruchamia preg_repl ace(), aby zamieni pasujce wystpienia na odpowiedniki, ktre zamieszczono w drugiej tablicy. Pierwszy argument funkcji preg_replace() zawiera list skrtw, ktre powinny zosta rozwinite. Deklaracja tablicy zawiera po dwa wpisy w jednej linii, co uatwia programicie odczytywanie i czenie z odpowiednimi rozwiniciami zapisanymi w drugiej tablicy. Zanim zostanie wywoana funkcja preg replaceO, niezbdna jest zmiana formatu skrtw, aby tworzyy one wyraenia regularne. Wyraenie regularne rozpoczyna si znakiem ukonika (/), ktry jest rodzajem ogranicznika dla danego wyraenia. Cig \\b odpowiada komendzie \b, zapis z dwoma lewymi ukonikami jest konieczny, aby nie zosta potraktowany jako sekwencja specjalna. Wstawienie \b na pocztku i na kocu danego skrtu oznacza, e musi on stanowi samodzielne sowo" (tzn. by z jednej i z drugiej strony ograniczony znakiem interpunkcyjnym lub znakami odstpu). Poprzez wywoanie funkcji str_repl ace() usuwane s kropki (ktre s elementem wyrae regularnych). Wyraenie koczone jest kolejnym ukonikiem (/), po nim wystpuje dyrektywa i, ktra informuje kod przetwarzajcy wyraenia regularne, eby ignorowa wielko liter przy wyszukiwaniu. Jeli nie zapoznae sijeszcze z przetwarzaniem tekstu za pomoc wyrae regularnych, powiniene uzupeni braki w edukacji. Wyraenia regularnie to potne narzdzie przetwarzania tekstu, a ich uycie moe oszczdzi ogromnie duo czasu i energii. Doskonae przewodniki znajdziesz na stronie www.regular-expressions.info/php.html. Funkcja preg_replace() wywoywana jest z czterema parametrami, pierwszy zawiera tablic skrtw ($abbr), drugi odpowiadajce rozwinicia (Sactual), trzeci przeszukiwany tekst (SmyStr), a czwarty maksymaln liczb zmian kadego skrtu ($num). Jeli ostatniemu parametrowi przypisano warto -1 (warto domylna), nie zostan wprowadzone ograniczenia liczby zmian. Wynik zapisywany jest w zmiennej SmyStr i zwracany do funkcji wywoujcej. Jestem pewien, e dziki tej prostej, przykadowej wtyczce zrozumiae potg tkwic w systemie rozszerze. Prawdopodobnie wiesz ju, w jaki sposb wtyczki ingeruj w podstawy platformy Joomla! i wpywaj na podstawowe aspekty dziaania systemu.
230
Joomla!. Profesjonalne tworzenie stron WN 1W Pakiet Application JAppl i cation i powizane biblioteki zaimplementowano z wykorzystaniem wzorca fabryki (w rozdziale 8. znajduje si wicej informacji na temat wzorcw projektowych). Cztery klasy, ktre dziedzicz ten pakiet
(JInstal 1 ation, JModel, JSite, JAdministrator) t w o r z C M S Joomla!. Pakiet
zawiera take biblioteki DAO (Data Access Object Obiekt dostpu do danych),
tzn. a b s t r a k c y j n klas JModel, a take klasy JModel Category, JModel Component, JModelMenu, JModelModule, JModel PI ugins, JModel Section. JModelSession
\libraries\joomla.
Pakiet Cache Implementacja bibliotek obsugujcych pami podrczn; abstrakcyjna klasa dziedziczona jest w postaci klas obsugujcych pami podrczn,
z a w i e r a a d a p t e r y JCacheCal 1 back, JCacheView, JCacheOutput i JCachePage.
Pakiet Base Podstawowy pakiet skadajcy si z klas takich jak JObject, ktry suy za podstaw obiektw JObservable i JTree. Zapisany w katalogu \libraries\joomla\base. Pakiet Client Zawiera biblioteki klienckie dla np. FTP (klasa JFTP) lub LDAP (klasa JLDAP). Pliki znajduj si w katalogu \libraries\joomla\client. Pakiet Database JDatabase i powizane biblioteki tworz warstw czc z funkcjonalnoci baz danych. Klasy obsugujce dostp do baz danych dziedzicz po JDatabase. Obecnie dostpne s wycznie klasy JDatabaseMySQL i JDatabaseMySQLi, ale planowane jest stworzenie odpowiednikw dla Oracle i Microsoft SQL Server. Klasa JSimpleRecordSet wykorzystywana jest w interakcji z baz danych. Pakiet znajduje si w katalogu \libraries\joomla\database. Pakiet Document Biblioteki zawierajce funkcje do generowania stron takich jak abstrakcyjna klasa JDocument. Klasa JDocumentHTML, ktra tworzy strony HTML stanowi rozszerzenie klasy JDocument. Pakiet znajduje si w katalogu \libraries\joomla\document. Pakiet Environment Klasy obsugujce interakcje z uytkownikiem, np. JReponse, JRequest, JBrowser i JURI (ta ostatnia przetwarza adresy URI). Pakiet znajduje si w katalogu \libraries\joomla\environment. Pakiet Event Obsuguje system zdarze w Joomla!, zawiera klas JDi spatcher, ktra dziedziczy JObservable (znajduje si w pakiecie Base); JPluginHelper; JEvent, ktra dziedziczy JObserver; i JP1 ugi n, ktra dziedziczy JEvent. Pakiet znajduje si w katalogu \libraries\joomla\event. Pakiet Filesystem Biblioteki zwizane z obsug systemu plikw. Zawiera klasy JArchive, JFile, JFolder i JPath. Procedury zarzdzania plikami wykorzystywane s gwnie dla wysyanych plikw, tj. multimediw, rozszerze i pakietw jzykowych. Pakiet znajduje si w katalogu \libraries\joomla\filesystem. Pakiet Filter Biblioteki filtrujce dane wejciowe i wyjciowe z dowolnego rda celem zapobiegnicia atakom. Zawiera klasy JInputFi Iter i JOutputFi Iter. Pakiet znajduje si w katalogu \libraries\joomla\fdter. Pakiet il8n Biblioteki obsugujce ustawienia regionalne i jzyki, zawiera klasy JLanguage (implementacja wzorca singleton), JText i JHelp. Pakiet znajduje si w katalogu \libraries\joomla\il8n.
Rozdzia 9. Ingerencia w fundamenty Joomla!: wtyczki Pakiet Installer Biblioteki zwizane z instalacj rozszerze. Zawiera abstrakcyjn klas JInstal ler, na podstawie ktrej stworzone zostay klasy JInstal!erComponent,
JInstallerLanguage, JInstal lerModule, JInstallerPlugin i JInstallerTemplate.
231
\libraries\joomla\installer.
Pakiet Parameter Biblioteki suce do manipulowania i wywietlania parametrw. Pakiet znajduje si w katalogu \libraries\joomla\parameter. Pakiet Registry Biblioteki powizane z konfiguracj systemu. Zawiera
klasy JRegistry, JRegistryFormat, JRegistryFormatlNI, JRegistryFormatXML,
\libraries\joomla\registry.
Pakiet Session Biblioteka do obsugi sesji Joomla! za pomoc klas JSessionStorage i JSession. Pakiet znajduje si w katalogu \libraries\joomla\session.
m Pakiet Template Biblioteki obsugi szablonw patTempl ate. Poniewa twrcy Joomla! odchodz od wykorzystania patTempl ate, nie zaleca si wykorzystywania funkcji i klas z tego pakietu w przyszoci mog wystpi problemy z kompatybilnoci. Pakiet znajduje si w katalogu \libraries\joomla\template. Pakiet User Biblioteki suce do aktywacji, autoryzacji i uwierzytelniania uytkownikw. Zawiera klasy JAuthorization; JUserHelper; JAuthentication, ktra dziedziczy JObservable; i JUser. Pakiet znajduje si w katalogu \libraries\ joomla\user.
i JPagination. Klasa JUti lity z a w i e r a m e t o d y sendMai 1 0 , sendAdminMai 1 0 , getHashO, getTokenO, parseAttributesO i isWinOSO. Inne f u n k c j e n a r z d z i o w e
m Pakiet Utilities Rne biblioteki, tn.in. JError, JMail, JMai 1 Hel per, JProfiler
uatwiaj obsug tablic, buforw, dat, bdw, funkcji, dziennikw, poczty, profilowania, simplexml i cigw znakw. Pakiet znajduje si w katalogu \libraries\joomla\utilities. Biblioteki zwizane z poczt elektroniczn, wczajc w to klas JMai 1, ktra dziedziczy klas PHPMai 1 er. Klasa JMai 1 Hel per posiada kilka funkcji zwizanych z listami elektronicznymi, np. cleanLine(), cleanText(),
cleanBodyO, cleanSubjectO, cleanAddress() i isEmailAddressO.
Jak wspomniano w poprzednich rozdziaach, CMS Joomla! jest waciwie aplikacj zbudowan na podstawie platformy Joomla!. Moliwe jest stworzenie innych aplikacji za pomoc tej platformy, ale informacje na ten temat wykraczaj poza ramy tej ksiki. Bezporednie programowanie platformy wymaga dokadniejszej analizy i lepszego zrozumienia kodu rdowego Joomla!. U podstaw platformy Joomla! le dwie klasy: JFactory i JVersion. JFactory to implementacja wzorca fabryki, suy do zwracania rnych obiektw, a JVersion przechowuje informacje dotyczce wersji aktualnej instalacji. Prawdopodobnie nie bdziesz korzysta z nich bezporednio, jednak s one podstaw, znajduj si na najniszym poziomie platformy, dlatego moe warto rozpocz dokadne badania Joomla! wanie od nich.
232
CMS Joomla! zosta podzielony na trzy rne aplikacje", ktre uruchamiane w rnych momentach, wypeniaj wymienione wyej zadania: JSite cz frontowa aplikacji; JAdmi ni strator cze administracyjna; Jlnstallation interfejs instalacji.
Wszystkie powysze klasy dziedzicz abstrakcyjn klas JApplication. Poniewa praktycznie wszystkie rozszerzania pisane s z myl o wspdziaaniu z klas JSite, klasy JAdmi ni strati on i Jlnstallation zostanjedynie pobienie opisane.
Aplikacja Jlnstallation
Aplikacja instalujca, ktrej odpowiada klasa JInstal 1 at i on, jest uruchamia zazwyczaj wycznie jeden raz w momencie instalowania systemu. Pliki rdowe mona znale w katalogu 1 installation. Wikszo podstawowej logiki znajduje si w katalogu \installation\ includes. Zawiera on ponisze pliki: application.php Inicjalizuje i uruchamia aplikacj instalujc, tworzy sesj. defines.php Tworzy globalne zmienne, zawierajce cieki wykorzystywane podczas instalacji. framework.php Importuje biblioteki platformy Joomla!, wykorzystywane przez instalator. xajax.php Zawiera kod ajaksowy stosowany przy asynchronicznej analizie skadniowej plikw XML, obsuguje instalacj przykadowych danych, sprawdzania poprawnoci poczenia FTP, uzupeniania informacji wykorzystywanych przy sortowaniu danych w bazie.
Rozdzia 9. Ingerencia w fundamenty Joomla!: wtyczki Katalog \installation\installer zawiera nastpujce pliki:
233
controller.php Zawiera definicj klasy JInstal 1 ationControl 1 er, gwny kod instalatora. Obsuguje wywietlanie ekranw instalacji, tj. wybr jzyka, wstpne sprawdzanie, wywietlanie warunkw licencji GPL, konfiguracj bazy danych i FTP oraz ekran kocowy. Zawiera take logik do utworzenia bazy danych. html.php Zawiera logik do obsugi warstwy prezentacji, wywietlania ekranw wygenerowanych przez JInstal 1 ationControl 1 er. installer.php Uruchamia klas JInstal!ationControl ler. jajax.php Obsuguje zadania ajaksowe, procedury w pliku xajax.php.
Chocia rzadko bdziesz wykorzystywa procedury instalatora, jednak warto zapozna si z jego kodem rdowym, poniewa podczas instalacji mog wystpi problemy. Komunikaty o bdach i inne problemy, ktre nie zostan wyjanione na ekranie, mog mie wyjanienie w kodzie rdowym. Nie powiniene zakada, e aplikacja instalujca bdzie znajdowa si na normalnej stronie Joomla!. Katalog I installation musi zosta usunity po zainstalowaniu Joomla! na serwerze. Dlatego nie jest moliwy dostp do niego, i to niezalenie od motyww, ktrymi si kierujemy.
render Wywietla gwn cz strony ze sprawdzaniem formatu (HTML lub kana RSS), a nastpnie wywouje metod generujc klasy JDocument. Po wywietleniu treci wywouje metod setBody obiektu JResponse, przekazujc wygenerowane dane. 1 ogi n Sprawdza autoryzacj podanej nazwy uytkownika i hasa. 1 ogout Wywouje metod logout klasy JAppl i cati on, aby zakoczy sesj.
234
Joomla!. Profesjonalne tworzenie stron WN 1W getPageParameters Pobiera parametry komponentu i menu, zwraca je w postaci tablicy o nazwie iparams. 1 oadConfi gurati on Wykorzystuje sta JPATH_SITE, aby zlokalizowa plik ustawie configuration.php, a nastpnie aduje konfiguracj. Przy wczonym trybie spucizny sprawdza ustawienia strony take w pliku mosConfig. getTempl ate Zwraca nazw szablonu wybranego do wywietlenia strony. Jeli zostao przypisanych kilka szablonw do aktualnego menuid, pobiera z tabeli jos_templ atesjnenu pierwszy pasujcy rekord. setTempl ate Wykorzystywana do wymuszania innego szablonu strony ni wybrany. createPathway Tworzy ciek URL dla rnych obiektw na stronie, takich jak elementy menu.
Metody zapisane w pliku tworz serce CMS-a. Zwr uwag, e kilka procedur zawiera wikszo logiki dostpnej w ramach platformy Joomla!.
cieki Joomla!
Istnieje spora liczba staych w kodzie Joomla!, ktre zawieraj odnoniki do rnych katalogw. Do tych staych nale: JPATH_R00T Przechowuje ciek do gwnego katalogu platformy Joomla!. JPATH_SITE Zawiera ciek do gwnego katalogu aplikacji JSite. JPATH_ADMINISTRATOR Przechowuje ciek do gwnego katalogu aplikacji JAdministrator. JPATH_INSTALLATION Zawiera ciek do gwnego katalogu aplikacji Jlnstallation.
m JPATH_BASE Przechowuje ciek aktualnie uruchamianej aplikacji. Z tego powodu, jeli uruchamiana jest aplikacja JSite, warto tej staej jest identyczna z JPATH SITE. Analogicznie dzieje si w przypadku interfejsu administratora, staa pokrywa si
zJPATH ADMINISTRATOR.
235
Wymienione stae tworz grup nielicznych zmiennych globalnych, ktre na pewno bd dostpne w przyszych wersjach Joomla!. Wikszo globalnych zmiennych oraz staych zostaa porzucona i w kolejnych wydaniach bd one usunite.
236
Joomla!. Profesjonalne tworzenie stron WN 1W Korzystajc z aplikacji zawierajcej funkcj przeszukiwania katalogw, np. jEdit, moesz przeszuka system Joomla! pod ktem tego tekstu 3 . W rezultacie otrzymasz list plikw, w ktrych wystpuje dany tekst co wida na rysunku 9.6. Po zapoznaniu si z wynikami wyszukiwania stanie si jasne, e za wywietlanie parametrw odpowiada kod w pliku admin. modules.html.php, ktry znajduje si w katalogu comjnodules interfejsu administratora.
Rysunek 9.6.
Wynikiem wyszukiwania w programie jEdit jest lista plikw, ktre zawieraj szukan fraz
t Module Parameters (2 occurrences in 2 files) f :\xampp!MdQCSjoomlaadministrator lcomponentsomjiiodules>admin.modules.litml4)hp (1 occurrence) 441 echo $parie->startPanel(JText:: ('Module Parameters), "param-page"); f C:\xat1lpp^ltdocs#omla^dministrator'danguasen-GBWr^GBxom_modules.iiti (1 occurrence) 35: MODULE PARAMETERS=Module Parameters
Kolejne wyszukiwanie, tym razem sw function render", powinno doprowadzi do pliku, w ktrym zdefiniowano funkcj do generowania wydruku parametrw moduu. Funkcj render() mona znale w 35 plikach, ale jedna pozycja znaczco si wyrnia: \libraries\joomla\html\parameter.php Powyszy plik zawiera wywoanie funkcji getParams(), ktra pobiera parametry. Moesz poda dalej tym tropem, a trafisz na poszukiwany kod. Inn metod byoby wybranie z pliku deskryptora, z sekcji parametrw takiego typu, ktrego nazwa jest unikatowa (np. radio), a nastpnie przeprowadzenie wyszukiwania. Pliki odpowiedzialne za wywietlanie tego elementu mona znale (bingo!) w katalogu: \libraries\joomla\htmI\parameter\element W tym katalogu znajdziesz kod wywietlajcy parametry wszystkich typw, np. odstpy, sekcje, redaktorzy, kategorie, lista plikw itd. Podajc dalej, napotkasz kod, ktry uruchamia tworzenie wydruku. Moesz teraz zdefiniowa wasny! Wikszo programistw Joomla! bdzie bada i modyfikowa interfejs systemu, dlatego najlepiej zacz od folderu \libraries\joomla. Pomocne w zrozumieniu funkcji poszczeglnych plikw bd opisy pakietw umieszczone wczeniej w tym rozdziale.
Musimy pamita, e Joomla! w oryginale wystpuje po angielsku, teksty w jzyku polskim bdjedynie w plikach z tumaczeniami, dlatego w tym wypadku powinnimy wyszukiwa Module Parameters"
przyp. tum.
237
Badanie com_content
Wywietlanie treci nie jest integraln czci platformy Joomla! odbywa si za porednictwem komponentu comcontent. Na serwerze testowym znajdziesz go w katalogu o ciece przypominajcej ponisz: C:\Program FiIes\Apache Software comcontent Foundation\Apache2\htdocs\components\
Podczas implementacji tego komponentu zastosowano wzorzec MVC (Model-Widok-Kontroler), opisany w rozdziale 8. Dziki analizie poszczeglnych plikw (w szczeglnoci content.php) moesz pozna sposb formatowania treci. Ostateczne generowanie kodu HTML dla komponentu obsuguje kod klasy ContentViewArticle. Znajdziesz j w pliku view.html.php w poniszym folderze: \components\com_content\views\article\view.html.php
Po utworzeniu folderu musisz dokona niezbdnych ustawie, aby pobra do niego pliki z repozytorium. Jeli korzystasz z programu TortoiseSVN na platformie Windows, kliknij prawym przyciskiem folder i wybierz opcj SVN Checkout. Zostanie wywietlone okno Checkout, jak to przedstawiono na rysunku 9.7. W pole opisane URL of the repository wprowad http://joom1acode.org/svn/joomla/developrnent/trunk i kliknij przycisk OK. Pojawi si okno z zapytaniem o nazw uytkownika i haso. Wprowad nazw anonymous (anonimowy) i pozostaw pole hasa puste. Klient systemu SVN poczy si z repozytorium i pobierze wszystkie pliki rdowe Joomla! do wybranego katalogu. Moe to troch potrwa, poniewa konieczne jest przesanie ponad 3000 plikw. Po zakoczeniu tego procesu moesz korzysta z pobranej wersji Joomla! jak z kadej innej.
238
Rysunek 9.7.
W oknie programu TortoiseSVN moesz wprowadzi dane repozytorium Joomla!
M^fffHBWW^
Repository URL of repository:
j
|7j
Checkout directory: C:\JoomlaSVN Checkout Depth Fully recursive f i Omit externals Revision (?) HEAD revision ( ) Revision Show log
O 1 K
Cancel
] [
Help
Aby w przyszoci uaktualni pobrane pliki, wystarczy z menu kontekstowego dla wybranego folderu wybra opcj SVN Update. Aplikacja poczy si z repozytorium i pobierze pliki, ktre zostay zmienione od momentu ostatniego dostpu. Zostanie wywietlone okno zawierajce informacje o postpie pobierania uaktualnionych plikw (zobacz rysunek 9.8). Po ukoczeniu przesyania pod list plikw zostanie wywietlony komunikat o liczbie przesanych bajtw, plikw poczonych, dodanych, usunitych lub uaktualnionych. Rysunek 9.8.
Informacje o przebiegu uaktualniania plikw pobranych z repozytorium SVN wywietlane s w specjalnym oknie
* C:UoomlaSVN
Action Updated ; Added Updated ; Added Updated I Added ; Added Added Updated Updated Completed Path C: \JoomlaSVN\libraries\joomla\database\table\backup, php C: \ JoomlaS VN\libraries\joomla\database\table\_acIgroup. php C: \ JoomlaS VN\libraries\joomla\database\table\extension .php C ; \ Joomla5VN\libraries\ joomla\database\table\axosection. php C: \ JoomlaSVN\libraries\)oornla\database\table\aro. php C;\ JoomlaS VN\libraries\joomla\database\table\adsection.php C: \JoomlaSVN\libraries\joomla\database\tabie\_aclob ject. php C: \ JoomlaS VN\libraries\joomla\dat abase\table\axo. php C:\JoomlaSVN\llbraries\loader.php C:\JoomlaSVN\CHANGELOG.php At revision: 11323
Uaktualnianie nie spowoduje usunicia innych plikw, ktre zapisae w folderze, nie naruszy take bazy danych Joomla!. Jeli zainstalowae Joomla!, dodae rozszerzenia, dostosowae konfiguracj lub wprowadzie inne zmiany, ktre bezporednio nie dotycz plikw rdowych, uaktualnianie bdzie transparentne. Zostan nadpisane wycznie te pliki, ktrych nowsze wersje znajduj si w repozytorium. Pobranie na dysk aplikacji Joomla! z repozytorium SVN spowoduje utworzenie w kadym katalogu folderu ,svn. Katalogi zawieraj du liczb plikw kontrolnych, ktre su do ledzenia wersji projektu. Nie usuwaj tych folderw, jeli planujesz uaktualnia pliki w przyszoci. Ich obecno jest niezbdna, aby klient SVN odczyta, ktre pliki wymagaj uaktualnienia, a ktre s w najnowszej wersji. Pliki znajdujce si w folderach ,svn s mae, ale ich liczba jest znaczca. Jeli zamierzasz przesa tak wersj za porednictwem protokou FTP, cay proces moe potrwa nawet 10 razy duej ni zazwyczaj. Dlatego zanim rozpoczniesz wysyanie, wykorzystaj opcj eksportu
239
plikw do innego folderu. Zostan skopiowane wycznie waciwe pliki, z pominiciem plikw kontrolnych. Jeli korzystasz z programu TortoiseSVN, kliknij prawym przyciskiem folder z projektem i wybierz opcj TortoiseSVN/Export. Poniewa opcja uaktualniania dostpna w SVN nie dotyczy w aden sposb bazy danych Joomla!, wszelkie zmiany wprowadzone przez programistw w bazie danych (lub dowolnym kodzie, ktry si z ni czy) mog spowodowa bdy w Twoim systemie. Mog zacz si pojawia bdy zwizane z baz danych przy prbie dostpu do bazy o zmienionej strukturze. Najprostszym sposobem przywrcenia prawidowego dziaania systemu jest usunicie lub zmiana nazwy pliku configuration.php, ktry znajduje si w gwnym katalogu, a nastpnie ponowne uruchomienie procesu instalacji. W czasie instalacji zostanie utworzona kopia zapasowa istniejcych tabel, z ktrej moesz skorzysta, aby rcznie przywrci artykuy lub ustawienia rozszerze. Repozytorium kodu Joomla! dla wersji 1.0.x mona znale pod adresem: http://joomlacode. org/svn/joomla/development/releases/l. 0
Repozytorium moduw Joomla l.x (ktre zawiera wersje archiwalne i eksperymentalne) mona znale pod adresem: http://joomlacode.org/svn/joomla/development Procedura logowania i dostpu dla powyszych zasobw jest identyczna jak w przypadku gwnego repozytorium Joomla!.
Podsumowanie
Wtyczki Joomla! zawieraj kod obsugi zdarze systemowych, ktre stanowi serce aplikacji Joomla!. Rozszerzenia tego typu maj rozlege moliwoci od przechwytywania i modyfikacji treci, po wstawianie dodatkowych formularzy uwierzytelniania uytkownikw. Dziki zapoznaniu si z procesem tworzenia wtyczek potrafisz ju programowa rozszerzenia wszystkich trzech typw, poniewa wczeniej nauczye si tworzy moduy i komponenty. Wiedz t oraz gruntown znajomo platformy Joomla! moesz wykorzysta w praktyce do stworzenia dowolnego systemu, jaki sobie tylko wyobrazisz. W rozdziale opisano proces tworzenia wtyczek Joomla!, budow platformy, a w szczeglnoci: Wprowadzono podzia na osiem typw wtyczek wykorzystywanych przez system Joomla!. Wyjaniono cztery kategorie zdarze systemowych, ktre moe obsugiwa kod wtyczek. Stworzono wtyczk Hello World! aktywowan przy zdarzeniu onAfterDi spl ay "-Title(), co powodowao dodanie powitania Hello World! midzy tytuem a treci artykuu.
240
Joomla!. Profesjonalne tworzenie stron WN 1W Zaprogramowano rozszerzenie Automatyczne Skrty, ktre przechwytuje tre artykuu, wyszukuje popularne skrty i wstawia w ich miejsce odpowiednie rozwinicia. Opisano poszczeglne pakiety skadajce si na platform Joomla!, aby zwikszy znajomo systemu i uatwi lepsze wykorzystanie dostpnych moliwoci. Przedstawiono wskazwki przydatne podczas samodzielnego badania i poznawania kodu rdowego Joomla!.
Po zapoznaniu si z funkcjonowaniem systemu z punktu widzenia programisty warto wrci do aspektw zwizanych z prowadzeniem strony WWW, ktre nadaj sens programowaniu Joomla!. W rozdziale 10. dowiesz si, jak zaimplementowa istniejce rozszerzenia, aby doda na stronie funkcje serwisu spoecznociowego.
10
Budowanie spoecznoci w Joomla!
wiatem Web 2.0 rzdz dwa sowa: interaktywno i spoeczno. Wiele organizacji zdao sobie spraw, e stworzenie wirtualnej spoecznoci (tzn. internetowej spoecznoci), chocia trudne, jest kluczowe, gdy chce si dobrze prosperowa na nowym rynku. Dodanie na stronie odpowiednich technologii jest zacht dla odwiedzajcych do wzbogacania zawartoci witryny, a take komunikowania si z innymi. Komunikacja przebiega za porednictwem rnych funkcji, np. czatw, forw, stron z informacjami osobistymi, ksig goci, sond, systemw komentarzy, sieci spoecznych, kalendarzy wydarze i systemw wiki. Niezalenie od tego, czy wirtualna spoeczno stanowi lune zgromadzenie czonkw (np. konsumenci umieszczajcy komentarze na temat produktw na danej stronie), czy ukierunkowana jest raczej na codzienne wizyty, jak np. MySpace, korzyci z jej istnienia s znaczce wzrost popularnoci i pozycji strony. Historia Joomla! jest przykadem sukcesu w budowaniu i rozwijaniu spoecznoci internetowej. Wraz z Joomla! zostao stworzone dobrze prosperujce forum (forum.joomla.org), katalog rozszerze wzbogacany przez uytkownikw, z moliwoci komentowania (extensions.joomla.org), a take katalog stron 0 duej skali, do ktrego pozycje dodawane s przez uytkownikw (www.joomla.org/content/ blogcategory/35/69). Rozwj Joomla! nie byby tak dynamiczny, gdyby nie skuteczne zastosowanie technologii spoecznociowych. Rozwijanie internetowej spoecznoci lub sieci spoecznej wymaga rozwagi w czasie instalowania systemu i czenia poszczeglnych technologii. W przeciwiestwie do tradycyjnych, statycznych stron internetowych witryny spoecznociowe kad nacisk na dynamiczne treci dodawane przez uytkownikw. Taka zmiana przekada si na ogrom nowych wyzwa od waciwej konfiguracji rde danych, co umoliwia zapisywanie danych przesyanych przez uytkownikw, po dodatkowe zadania administracyjne (zarwno automatyczne, jak 1 nadzorowane), co pomaga kontrolowa nowe treci. Na szczcie dla Joomla! istniej technologie, ktre uatwiaj budowanie skutecznych spoecznoci, a ich implementacja nie nastrcza wikszych trudnoci. W tym rozdziale dowiesz si, jak stworzy wirtualn spoeczno, korzystajc z dostpnych, darmowych rozszerze Joomla!.
242
Joomla!. Profesjonalne tworzenie stron WN 1W W czasie, kiedy pisaem t ksik, cz z wykorzystanych rozszerze nie zostaa jeszcze przystosowana do pracy z Joomla! w wersji 1.5. Mam nadziej, e do momentu, kiedy signiesz po t ksik, dla wszystkich wymienionych rozszerze bd dostpne uaktualnione wydania, zgodne z wersj 1.5. Jeli rozszerzenie, ktre chciaby wykorzysta, nie zostao uaktualnione, sprbuj znale zamiennik w katalogu rozszerze Joomla fextensions.joomla.org). Istnieje spora szansa, e uda Ci si znale rozszerzenie, ktre ma te same wymagane funkcje. Poniewa zarzdzanie wirtualn spoecznoci wymaga duo czasu, warto podczas przygotowywania systemu przyj postaw konserwatywn. Rozszerzalno systemu Joomla! czyni go idealnym materiaem do rozbudowywania krok po kroku. W wikszoci przypadkw moesz doda rozszerzenie, ktre oferuje okrelon funkcj w mniej ni 10 minut. Jeli nie zdobdzie ona popularnoci lub nie jeste zadowolony z dostpnych opcji, moesz w kilka sekund usun lub dezaktywowa dane rozszerzenie. Wikszo stron internetowych, ktre nie opieraj si na Joomla!, wymagaaby duej liczby dodatkowego programowania do wstawienia lub usunicia dodatkowych funkcji. Cz z rozszerze sucych do budowania spoecznoci internetowych zostaa ju opisana w rozdziale 4., dlatego w tym rozdziale zostanie jedynie krtko przedstawiona ich rola w tworzeniu spoecznoci. Opisanych zostanie wiele innych rozszerze posiadajcych funkcje rnego typu, ktrymi mona wzbogaci system Joomla!. Wszystkie wymienione rozszerzenia dostpne s za darmo. Jeli jednak istnieje szczeglnie znane rozszerzenie komercyjne, ktre charakteryzuje si specyficzn funkcjonalnoci, pojawi si informacja na jego temat. Przy kadym demonstrowanym rozszerzeniu pojawia si adres internetowy, pod ktrym mona byo je znale w czasie, kiedy pisaem t ksik. Czsto jednak projekty przenoszone s w inne miejsca. Wszystkie rozszerzenia wymienione w tym przegldzie mona znale w katalogu rozszerze Joomla!. Dlatego, jeli zanotowany adres strony internetowej jest nieaktualny, to za pomoc katalogu zdoasz odnale stron, na ktrej mona pobra rozszerzenie.
243
Praktycznie wszystkie udane spoecznoci internetowe podaj podobnym szlakiem, dlatego mona wyrni pewne punkty odniesienia.
ap 1. Programowanie i testy
Po zapoznaniu si z pomysem stworzenia wirtualnej spoecznoci powiniene wyksztaci wstpne wyobraenie na temat tego, jaki typ spoecznoci chcesz zbudowa. Joomla! pozwala na lokalne uruchomianie strony i eksperymentowanie z rnymi funkcjami. W ten sposb moesz zdecydowa, jakiego typu stron chcesz stworzy. Odpowiedzi na ponisze pytania poparte eksperymentami dadz Ci jasne wyobraenie na temat przyszej strony: Czy bdzie to spoeczno komercyjna, czy hobbystyczna? Robi to duo wiksz rnic, ni mylisz, poniewa odpowied na to pytanie okrela poszukiwan grup ludzi. Przykadowo komercyjna spoeczno skupiona wok produktu A nie bdzie raczej zdobywa czonkw spord fanw produktw B i C. Z drugiej strony, spoeczno hobbystw moe zrzesza fanw wszystkich produktw danej kategorii i nie musi suy promowaniu produktu A. Dodatkowo strony hobbystyczne maj duo luniejsze standardy, jeli chodzi o poziom wulgarnoci i dyskusje nie na temat, poniewa nie musz odpowiada przed sponsorami lub reklamodawcami. Czy istnieje jaki porzdek omawianych tematw? Wielu nieudanym wirtualnym spoecznociom brakowao szkieletu, ktry mona byo rozbudowywa, dodajc treci. Podobnie jak treja, ktry umoliwia rolinom dogodny wzrost i rozkwitanie, sadzenie" spoecznoci warto rozpocz od zdefiniowania listy tematw. Taka agenda uatwia odwiedzajcym odnalezienie interesujcych miejsc na stronie.
244
Joomla!. Profesjonalne tworzenie stron WN 1W Czy wirtualna spoeczno ma by dodatkiem do strony internetowej, czy jej gwn atrakcj? Poniewa funkcje spoecznociowe wymagaj powicenia duej iloci czasu, zwaszcza w zakresie zarzdzania, na wielu stronach traktowane s jako mao znaczce dodatki, a nie fundamentalne elementy strony. Cech takiej strategii jest zaleta stopniowej adaptacji nowych technologii, ktre czerpi z istniejcej bazy uytkownikw. W takim wypadku raczej nie jest moliwe zrealizowanie scenariusza w stylu MySpace, witryny, ktrej powodem istnienia jest spoeczno.
Po nakreleniu oglnych koncepcji mona przej do fazy konstrukcji. Wikszo wirtualnych spoecznoci wykorzystuje istniejce oprogramowanie (takie jak rozszerzenia opisane w tym rozdziale), dlatego programowaniu i wdraaniu powicany jest jedynie uamek czasu przeznaczonego na projekt. Po zainstalowaniu i skonfigurowaniu oprogramowania mona uruchomi platform realizujc zaplanowane cele. Konfiguracja moe oznacza utworzenie kategorii, dodanie podstawowych artykuw i warunkw korzystania ze strony oraz zastosowanie zabezpiecze w postaci logowania. Przed uruchomieniem strony powinny zosta przeprowadzone testy za pomoc narzdzi badajcych wydajno pod obcieniem, aby okreli granice obecnej instalacji. Odpowiednie informacje na ten temat znajdziesz w rozdziale 11. Wykorzystanie tych narzdzi, chocia wane w przypadku normalnej strony Joomla!, ma krytyczne znaczenie dla strony spoecznociowej, poniewa pozwala ustali grne granice spoecznoci dla aktualnej konfiguracji serwera. Na dalszym etapie dobrym pomysem moe by samodzielne rekrutowanie uytkownikw, ktrzy reprezentuj docelow grup, i zachcanie ich, aby przeprowadzili nieformalny test. Za pomoc opcji dostpu Joomla! moesz ograniczy funkcje spoecznociowe do grupy osb, ktre pomagaj w przygotowywaniu strony. Jeli strona ma by skierowana do nastolatkw, znajd kogo, kto j sprawdzi i podzieli si wraeniami. W przypadku strony skupiajcej specjalistw z brany high-tech, warto zapyta take o inne, polecane przez nich spoecznoci. Tym sposobem dowiesz si, jaki typ stron przyciga uytkownikw tego typu.
245
docenieni, poniewa nagrodz Ci, dodajc kolejne treci na stronie. Moesz ich nawet nagradza upominkami, dodatkowymi przywilejami na stronie lub specjalnym dopiskiem (takim jak tester strony, zaawansowany uytkownik, gwny wsppracownik itd.). Wielu zwolennikw wirtualnych spoecznoci przyrwnuje je do opieki nad ogrodem. Naley zasiewa nowe nasiona, przycina drzewa i usuwa chwasty. Wanie w fazie dojrzewania wysiki ogrodnika s najpotrzebniejsze, cho najbardziej mczce. Powiedzenie Nawet najpikniejsza ra kiedy widnie", doskonale oddaje fakt, e to, co na pocztku byo ekscytujce i nowe, zmienia si pniej w rutyn i nud. Na etapie dojrzewania wirtualna spoeczno podejmuje decyzj, czym chce zosta w przyszoci.
ap 3. Przedefilowanie i dojrzao
Wraz ze wzrostem siy wirtualnej spoecznoci webmaster powinien zbada, czy niezbdne jest przedefiniowanie strony. Przykadowo jeli zaoeniem strony miao by zrzeszanie mionikw joggingu, ktrzy wymienialiby si informacjami na temat butw do biegania, a wikszo odwiedzajcych wymienia informacje na temat najbardziej malowniczych tras, wtedy przedefiniowanie witryny ma sens. Moesz nawet chcie zmieni wygld strony, aby lepiej odpowiadaa ona zamieszczonym treciom, co w przypadku Joomla! nie jest wyzwaniem, biorc pod uwag atwo zmiany szablonw. By moe temat strony, ktry dotychczas sugerowa surowy profesjonalizm, naley ociepli, aby zwrci uwag na przyjazy ton komunikacji midzy czonkami spoecznoci lub vice versa. Zmiana wiodcego tematu strony nie musi oznacza porzucenia pierwotnego zaoenia (chocia moe). Czciej oznacza to jednak zmian priorytetw i powicenie zasobw tym obszarom, ktre odpowiadaj zainteresowaniom odwiedzajcych. Kierujc si przykadem strony o butach do biegania, przedefiniowanie oznaczaoby dodanie galerii, ktra umoliwiaaby uytkownikom dzielenie si zdjciami najbardziej malowniczych cieek. Dodatkowo mona by wprowadzi podzia na kategorie odpowiadajce rnym miejscom, aby odwiedzajcy mogli wstawia cieki w swojej okolicy. Nie ma prostej reguy, aby sprawdzi, czy strona wymaga przedefiniowania, ale istniej pewne specyficzne wskazwki, ktre sugeruj, kiedy naley dokona przedefiniowana. Przykadowo wybierz dat lub inne ramowe ograniczenie, a nastpnie przeanalizuj dokadnie dziennik i inne rda, aby zbada, co najbardziej interesuje uytkownikw. Przeznacz na analiz wystarczajco duo czasu, poniewa jest ona kluczowa dla wyznaczenia kierunku dalszego rozwoju strony. Po przeprowadzeniu przedefiniowania, kiedy masz ju stabiln spoeczno, regularnych uytkownikw dodajcych treci, przyszed czas, aby zastanowi si, jak lepiej moesz suy swojej spoecznoci. W tym momencie wiesz ju, kto odwiedza Twoj stron, na ktrych dodajcych moesz polega. Na tej podstawie moesz okreli, w jaki sposb wzbogaci ich dowiadczenia, a jeli strona stanowi przedsiwzicie komercyjne, jak zarobi na jej popularnoci. Aby podj odpowiednie dziaania, naley oceni ponisze elementy: Powizane tematy lub produkty Czy Twoja strona powicona butom do biegania moe suy take jako szczerze rdo informacji na temat fitenssu? Czy moe mgby umieszcza oglne informacje na temat dostatniego stylu ycia? Nie zapominaj, e nowe funkcje powinny by dodatkami. Wirtualna spoeczno
246
Joomla!. Profesjonalne tworzenie stron WN 1W moe atwo ulec samozniszczeniu, jeli stanie si zbyt oglna lub jeli znikn powody, ktre przycigny do niej ludzi. Udana strona skierowana do ludzi profesjonalnie uprawiajcych jogging nie jest miejscem dla pocztkujcych, ktrzy nie odrniaj pmaratonu od maratonu. Specjalne dziaania i oferty grupowe Kada wsppracujca grupa ludzi dysponuje spor si. Tak si mona wykorzysta na wiele sposb, np. organizujc konferencj, akcj zbierania datkw, zakupw zbiorowych ze znikami lub uruchamiajc kampani pisania listw popierajcych regionalnego polityka. Powiniene myle w kategoriach zarwno tego, co przyniesie korzy czonkom danej grupy (np. zakup duej iloci jakiego produktu), jak i tego, co bdzie miao pozytywny wpyw na ca spoeczno (np. zbieranie funduszy na szybszy serwer). Korzystajc z rozszerze Joomla!, takich jak forum czy ksiga goci, moesz okreli, czy uytkownicy byliby zainteresowani takim programem. Ukierunkowana reklama Wikszo stron zawiera jaki typ reklam, np. bannery, programy partnerskie lub odnoniki do produktw sprzedawanych przez internet. Dziki komponentowi Banner zarzdzanie kampani reklamow nie jest wyzwaniem, a wiele stron przytacza odwiedzajcych reklamami. Na kadej witrynie dostpna jest tylko ograniczona ilo miejsca na reklamy, jej przekroczenie sprawia, e staj si one nieatrakcyjne i zaczynaj odstrasza uytkownikw. Oce reklamy pojawiajce si na stronie pod ktem atrakcyjnoci i generowanych zyskw. Jeli banner prowadzi do spowolnienia adowania strony i praktycznie nie przekada si na zysk, to czy strona nie zyska na usuniciu tej reklamy? Jeli maa reklama powoduje due przychody, moe warto przenie j w bardziej widoczne miejsce. Oprcz oceniania obecnych partnerw mdre byoby take rozejrzenie si w poszukiwaniu nowych dostawcw i nowych moliwoci, ktre bardziej odpowiadayby celom Twojej strony.
247
i dodaj kilka artykuw, zanim ogosisz, e strona zawiera funkcje takie jak newsetter czy regularnie uaktualniany dzia. Moesz wstawi wszystkie przygotowane artykuy za jednym zamachem, a ich dat publikacji ustawi w przyszoci. Nie tylko bdziesz do przodu (zapobiegajc w ten sposb przekroczeniom terminw), ale take zabezpieczysz si na wypadek nagych sytuacji, aby nie wpyway negatywnie na odbir strony.
248
Skupienie na okrelonych treciach Wikszo wirtualnych spoecznoci dysponuje specjalistycznymi informacjami na wysokim poziomie. Tworzcy j ludzie s czsto profesjonalistami (lub pretenduj do tego miana), dlatego zamieszczane informacje stanowi kopalni wiedzy na dany temat. Lojalno odwiedzajcych Tradycyjna strona WWW ma sab si przycigania. Jeli webmaster przestanie dodawa atrakcyjne informacje, strona szybko upadnie, a ludzie przestan j odwiedza. Wirtualne spoecznoci funkcjonuj przez dugi czas, nawet jeli zostan pozostawione same sobie. Poytek spoeczny Niezalenie od elementu spajajcego spoeczno jest ona w znaczcej czci dobra". Wikszo spoecznoci czy ludzi o podobnych zainteresowaniach i uatwia im wymian informacji.
Powysze technologie mona czy i miesza, aby uzyska moliwie najlepszy efekt. Joomla' to doskonaa podstawa dla tych funkcji, poniewa jest spoiwem w obszarze administracji i wsplnej bazy uytkownikw. Rozszerzenia szczeglnie obciajce baz danych (np. forum) naley dokadnie monitorowa, aby dostosowa konfiguracj serwera baz danych w celu uzyskania najwyszej wydajnoci. Wirtualna spoeczno zawsze bdzie znajdowa si w fazie prace w trakcie", dlatego nie boj si dodawania nowych funkcji, ktre mgby pniej usun, poniewa s nieuywane Jeli wystarczajca liczba uytkownikw bdzie zgasza pretensje z powodu wyczenia funkcji, ktra wydawaa Ci si mao popularna, moesz ponownie wprowadzi j na etapie przedefimowama, aby da odwiedzajcym to, czego szukaj. Kolejne podrozdziay zawieraj opis jednego lub wicej rozszerze dla kadej funkcji charakterystycznej dla witryny spoecznociowej: ksigi goci, czatu, forum, sondy, komentarzy sieci spoecznych, kalendarza wydarze i systemw wiki. Na moim serwerze testowym nic
249
stwierdzono konfliktw midzy rozszerzeniami, tzn. instalacja jednego nie kolidowaa z innymi. Dlatego moesz dowolnie miesza i d o p a s o w y w a przedstawione aplikacje.
siga goci
Ksiga goci to jedna z najstarszych form komunikacji na stronach internetowych. Umoliwia ona odwiedzajcym umieszczanie komentarzy i komplementw odnonie do treci na stronie. (Samodzielnie utworzye m a aplikacj o b s u g u j c ksig goci w rozdziale 6.). Koszt czasu i energii niezbdny do implementacji ksigi goci jest niewielki, i taki te jest j e j efekt w p o b u d z a n i u spoecznoci. Dlatego ksiga lepiej s p r a w d z a si w charakterze dodatku d o tradycyjnej strony W W W ni j a k o element witryny spoecznociowej. Dwa najpopularniejsze rozszerzenia ksigi goci dla Joomla! to Easybook i Jambook. Poniewa zarwno idea, jak i implementacja ksigi goci jest cakiem prosta, oba rozszerzenia o f e r u j podobn funkcjonalno. Twj wybr bdzie prawdopodobnie zalee gwnie od tego, ktre rozszerzenie wizualnie lepiej pasuje do reszty strony.
asybook
Pokazany na rysunku 10.1 Easybook to doskonay, prosty k o m p o n e n t ksigi goci. J e d n z najlepszych f u n k c j i jest r o z b u d o w a n a o c h r o n a przed s p a m e m , z a s t o s o w a n i e o b r a z k w C A P T C H A i potwierdzenia wysyanego pod adresem e-mailowym oraz filtr sw. List zabronionych sw mona zdefiniowa w interfejsie administratora, moliwe jest take powiadamianie administratora o prbie wysania wiadomoci zawierajcej zabronione sowa. Easybook mona rwnie tak skonfigurowa, aby po dodaniu wiadomoci zosta w y s a n y list z daniem potwierdzenia pod p o d a n y m adresem e - m a i l o w y m , w przypadku braku potwierdzenia wiadomo zostanie zignorowana. ysunek 10.1. Vpis w aplikacji 7.asybook moe awiera kilka np. imi nazwisko Majcego) ub cakiem sporo il (np. e-mail, lumer ICQ, adres trony WWW), v zalenoci id decyzji administratora
Moja Ksiga Goci
Heine Joomki! uveiview Joomla' License Moie .iboii Joomla* FAO The News Web Links News Feetls fyloj.i Ksiga Goci
Jan Kowalski
30 listopad 2 0 23m i 08
Jan Kowalski
2 Entries in guestbook
Easybook zawiera obsug z n a c z n i k w B B C o d e , ktre u m o l i w i a j f o r m a t o w a n i e tekstu (pogrubianie, pochylanie itd.). Dodawanie wpisw mona ograniczy, pozwalajc na to w y cznie zarejestrowanym u y t k o w n i k o m , lub udostpni a n o n i m o w e wpisy. W zalenoci od ustawie w e wpisach m o g si pojawia take emotikony i inne obrazki. Easybook pozwala na wysyanie e-maili z podzikowaniem do u y t k o w n i k w dodajcych wpisy.
250
Rysunek 10.2. Interfejs administratora Easybook zawiera bogate opcje kontroli wywietlania i zapobiegania spamowi
Backend
Frontend
ecurity
Fielete
i Tools Switch the guestbook frontend offline. Message presented to the frontend users if gi
Nie O Tak
Das Gostebuch befindet sich im Wartungsmodus.<br />Bitte versuchen Sie es spoter wieder.
Auto-publish n e w guestbook entries. Notify webmaster w h e n n e w entries are post Email address to send notifications to. Send -Thank You- mail to the user.
Komponent Easybook jest kompatybilny z komponentem czcym Joomla! z Simple Machines F o r u m ( S M F ; z o b a c z p o d p u n k t S i m p l e M a c h i n e s F o r u m ( S M F ) " , aby z d o b y wicej informacji na temat tego rozszerzenia). Dostpny jest take w wielu jzykach, np. niemieckim, niderlandzkim, chiskim uproszczonym, woskim, rosyjskim, greckim, hiszpaskim, francuskim, n o r w e s k i m i duskim 1 . M o e s z zainstalowa rozszerzenie Easybook, pobierajc z poniszej strony archiwum ZIP: http://joomlacode.org/gf/project/easyjooinla/frs/ Po pobraniu w y p a k u j plik readme z a r c h i w u m . D o m y l n i e k o m p o n e n t wywietlany jest w j z y k u n i e m i e c k i m , aby z m i e n i go na angielski, musisz skorzysta z angielskiego deskryptora X M L i stworzy archiwum komponentu na nowo. Aby to zrobi, wypakuj wszystkie pliki z archiwum, nastpnie zmie nazw z easybook.xml na easybook.xmlde, a easybook. xmlen zmie na easybook.xml. Teraz utwrz archiwum zawierajce wszystkie pliki komponentu 2 .
W najnowszej wersji rozszerzenia jest to tylko sze jzykw (niemiecki, angielski, hiszpaski, wgierski, holenderski i rosyjski). W internecie mona znale polskie tumaczenie Easybook 1.2 p r z y p . tum. Te informacje odnosz si wycznie do komponentu Easybook dla Joomla! w wersji 1.0. W nowszej wersji poprawiono t niedogodno przvp. tum.
251
Po zainstalowaniu k o m p o n e n t u m u s i s z d o d a p o z y c j m e n u p r o w a d z c d o ksigi goci. N o w e wpisy mona dodawa za porednictwem czci f r o n t o w e j lub administracyjnej. Jeli klikniesz odpowiedni odnonik, zostanie wywietlony formularz dodawania wpisu (zobacz rysunek 10.3). Jedynymi w y m a g a n y m i polami s Name ( T w o j e imi i nazwisko) i E-mail (Twj adres e - m a i l o w y ) . Na rysunku w i d a take, e n o t o w a n y jest adres 1P k o m p u t e r a , z ktrego dodawany jest wpis. sunek 10.3. rmularz ^dawania <wego wpisu istpy jest rwno w czci ntowej, jak \dministracyjnej, i edyne magane pola Name i E-mail Moja Ksiga Goci - Sign guestbook
Home Joi>inl. overview i i i . m i l . i! L i c e n s e M o i e atoirt J o o m l a ! FAO The N e w s Wtti Links N e w s Feeds M o j . i Ksie<io G o c i IP addressName E-mail Show e-mail Homepage Lot ation !CQ number AIM nickname MSN m e s s e n g e r Yahoo m e s s e n g e r Skype nickname Website rating Guestbook entrf i (5 - Best rating, 1 - Worst rating) public Jan Kowalski kowal@o2.pl
Si
@@@
Submit entty
Chocia Easybook jest bardzo popularnym rozszerzeniem, ktrego instalacja i konfiguracja nie nastrczaj trudnoci, niektre strony w y m a g a j wikszej kontroli wygldu ksigi goci. Rozszerzenie Jambook umoliwia t a k kontrol dziki zastosowaniu systemu szablonw.
imbook
Jambook (zobacz rysunek 10.4) naley do najpopularniejszych k o m p o n e n t w dodajcych f u n k c j ksigi goci ze wzgldu na nacisk na ochron przed s p a m e m , moliwo importu wpisw AkoBook, a take zaawansowany interfejs administratora. Potny system szablonw pozwala wpywa na kady aspekt warstwy prezentacji czci f r o n t o w e j . Szablony m o n a edytowa z poziomu interfejsu administratora, co umoliwia d o p a s o w a n i e w y g l d u komponentu do szablonu strony. Poniej wymieniono niektre zabezpieczenia z ich dugiej listy: generowanie obrazkw C A P T C H A ; blokowanie adresw IP ma zapobiec naduyciom ksigi goci; integracja z systemem logowania Joomla!;
252
p o w i a d a m i a n i e administratora e-mailem o nowych wpisach; konfiguracja usuwania znacznikw H T M L z wiadomoci; ukrywanie adresw e - m a i l o w y c h ; ochrona przed m a s o w y m d o d a w a n i e m wiadomoci; m o d y f i k o w a l n a lista znacznikw H T M L , ktre mona wykorzysta w e wpisach.
Jeli korzystae wczeniej z rozszerzenia Easybook, J a m b o o k m o e zaimportowa wpisy utworzone w tamtej aplikacji. Nowe wiadomoci m o g by wprowadzane za pomoc aktualnie ustawionego edytora W Y S I W Y G lub w formie zwykego tekstu, ale formatowanie tekstu nie jest wtedy dostpne. Przycisk Podgld umoliwia sprawdzenie, jak wiadomo bdzie si prezentowa na stronie, przed ostatecznym dodaniem j e j do bazy. Zarejestrowani uytk o w n i c y s y s t e m u J o o m l a ! m o g p r z e z o g r a n i c z o n y czas, ustalony przez administratora, zmienia tre swoich wypowiedzi. K o m p o n e n t zawiera take f u n k c j chronic przed nieu m y l n y m p o d w j n y m d o d a w a n i e m tej s a m e j w i a d o m o c i co j e s t czsty p r o b l e m e m w przypadku niewprawionych uytkownikw ksigi goci. Jambook dostpny jest w wielu jzykach, m.in. angielskim, niemieckim, francuskim, portugalskim, serbskim (aciski zestaw znakw), norweskim i polskim. Ma take funkcj wyszukiwania w p i s w pod ktem w p r o w a d z o n e g o tekstu. Rozszerzenie Jambook mona pobra na stronie: www.jxdevelopment.com/jambook Jak pokazano na rysunku 10.5, cz administracyjna rozszerzenia Jambook jest zaskakujco rozbudowana, j a k na tak prost aplikacj. Moliwa jest nie tylko edycja i usuwanie wpisw, ale take m o d y f i k a c j a szablonw H T M L . D o m y l n a instalacja zawiera ponisze szablony, ktrych zmiana w p y w a na wygld komponentu: Show Wywietla pojedynczy wpis Jambook. List Okrela sposb wywietlania listy wpisw. List empty W y g l d listy wpisw, w przypadku gdy adne nie zostay dodane. List item Logika odpowiedzialna za generowanie wydruku poszczeglnych wpisw. Edit item W y g l d formularza edycji wpisu.
253
JX<
fSi8P$ W
J a m b o o k Conti ol P a n e l Wpisy
Wywietl wszystkie wpisy z opcjami publikacji, edycji oraz dodawania nowych pozycji.
Wspieraj Jambook
Aby umoliwi dalszy rozwj komponentu, pros wspiera autora dobrowolnymi datkami finansowymi klikaj w poniszy guzik.
Meneder szablonw
Edytuj szablony dla wszystkich stron i e-maili.
Mak A Dijmtian
S . o i u '
Konfiguracja Jambook
ZmieVj0144 opcje dla: przegl\u0105dania waciwoci, ustawienia e-mail, wysyania wiadomoci, spamu. Kliknicie na lo<jo komponentu powia.) do Panelu Konti olnego.
Thankyou
Dokumentacja komponentu (wraz ze wskazwkami dotyczcymi edycji szablonw) dostpna jest z poziomu interfejsu administratora. Jambook wykorzystuje do generowania obrazkw CAPTCHA funkcje TrueType biblioteki GD2. Dlatego obsuga TrueType musi by dostpna w systemie PHP, aby umoliwi dodawanie wiadomoci. W przeciwiestwie do PHP5 zawiera wbudowan obsug TrueType, w PHP4 trzeba zainstalowa dodatkowy modu.
:at
Pojcie czatu internetowego obejmuje wszystkie formy komunikacji, poczwszy od p o k o j w czatowych, przez nowoczesne implementacje Shoutbox, p o f u n k c j e zwizane z k o m u n i k a torami internetowymi. W ostatnich latach czaty dorobiy si wtpliwej reputacji z p o w o d u czstych naduy zwizanych z wykorzystaniem nieletnich. Nie ma tygodnia bez wiadomoci o przestpcy, ktry wykorzystywa p o k o j e czatowe do zych celw. Chocia wikszo czatw nie jest siedliskiem za, problem jest na tyle znaczcy, e warto p o w a n i e si z a s t a n o w i przed d o d a n i e m takiej f u n k c j o n a l n o c i na stronie. B e z p o r e d n i a komunikacja, typowa dla czatw, stwarza wiksze p r a w d o p o d o b i e s t w o naduycia ni inne technologie, gdzie komunikacja nie jest ciga, a wiadomoci s widoczne dla caego wiata. Powiniene b y w i a d o m p r a w n y c h k o n s e k w e n c j i , jeli j a k a z a " osoba, w y k o r z y s t u j c T w o j stron, dopuci si przestpstwa. Dokadniejsze informacje na temat tego zagadnienia znajdziesz w podrozdziale Odpowiedzialno prawna".
254
BlastChat
R o z s z e r z e n i e BlastChat ( z o b a c z rysunek 10.6) to k o m p o n e n t oparty na technologii Ajax, ktry za porednictwem zdalnego serwera (serwera BlueChat) udostpnia opcj czatu. Poniewa Twj serwer wykorzystywany jest wycznie do zainicjowania poczenia, komponent nie obcia zasobw i cza. N a stronie BlastChatu z n a j d u j e si informacja, e j u ponad 14 tysicy stron wykorzystuje t technologi. Oprcz komponentu, ktry odpowiada za dziaanie czatu, do pakietu doczony jest modu, ktry wywietla list dostpnych uytkownikw z odnonikami do ich profili. Rysunek 10.6. BlastChat, dziki technologii Ajax, uaktualnia list wpisw na czacie bez przeadowywania caej strony
O
Home Joomla! wervtey* Joomla! License Moie about J o oni.i! FAO The News Welt Links News Feeds
Mojo Ki.lfM
/News3i P o k o j e ] [C h a t t e r s ][ W e b s i t e s ] i -
Joomla!
Goci
Mj Blast ii.it
i fti JS>
S /;,
<5
"
CO
S
i."
~
OT
"
Dwik n
Wszyscy
P o w e r e d by BlastC hat
Instalacja k o i n p o n e n t u i m o d u w nie odbiega od s t a n d a r d o w e j p r o c e d u r y , o d b y w a si za p o m o c opcji Rozszerzenia/Instalator. Po zainstalowaniu k o m p o n e n t u BlastChat moesz z poziomu interfejsu administratora doda konto usugi BlastChat. Otwrz ekran konfiguracji rozszerzenia w interfejsie administratora Joomla!, wybierajc opcj Komponenty/BlastChat. A b y uruchomi czat na stronie, musisz najpierw utworzy konto na serwerze, z ktrego korzysta rozszerzenie BlastChat. Ekran konfiguracji komponentu umoliwia przeprowadzanie d a r m o w e j rejestracji. Po zarejestrowaniu si na serwerze BlastChata musisz si zalogowa i ustawi serwer pod k t e m obsugi T w o j e j strony, jak pokazano to na rysunku 10.7. Procedura rejestracji nowej strony umoliwia dodanie j e j do centralnego katalogu BlastChata, co m o e si przeoy na wzrost popularnoci.
255
Wehsite Details Name: Abbreviation: URL: Intra id: Private key: Description localhostJjoomla
"b?cd64610a977afd60cfcde96edfbd9b"
"0?eSf4Q1 S5e768bd8ca59d7de1 a70c5d" (Do not share this value! It is used for security purposes) Hj pierwszy czat
Intranet serverAvebsite:
tlil
[.j y e s
BlastChat korzysta z Ajaksa do pobierania w i a d o m o c i na czacie. W rezultacie wywietla zmieniony tekst w oknie czatu bez uaktualniania caej strony. Ekran konfiguracji rozszerzania pozwala okreli rozmiary okna czatu (Width szeroko, Height w y s o k o ) , a take w y m i a r y s a m o d z i e l n e g o okna (Detached Width i Detached Height), o b r a m o w a n i e (Frame Border), szeroko i wysoko marginesw (Margin Width i Margin Height). Warstwa prezentacji opiera si na stylach zdefiniowanych w Joomla!, dlatego wygld czatu powinien dobrze pasowa do reszty strony. Administrator czatu ma nad nim k o m p l e t n kontrol, moe: wysya wiadomoci publiczne (do poszczeglnych uytkownikw i pokoi); usuwa uytkownikw z danego pokoju; blokowa dostp uytkownikom do j e d n e g o pokoju lub kilku; ustawi dugo bana; zablokowa dostp z danego adresu 1P; nadawa innym uytkownikom uprawnienia moderatora.
Interfejs B l a s t C h a t a zosta n a p i s a n y w j z y k u J a v a S c r i p t , a j e g o d z i a a n i e s p r a w d z o n o w przegldarce Mozilla Firefox (wersje 1 i 2), Internet Explorer (wersje 6 i 7), Opera (wersje 8 i 9), a take Netscape (8.1). Komponent BlastChat jest kompatybilny z JoomFish, dlatego obsuguje wszystkie jzyki wspierane przez to rozszerzenie, wczajc w to tekst pisany od prawej do lewej strony.
hat
Komponent utChat, przedstawiony na rysunku 10.8, jest rozszerzeniem zbudowanym w oparciu o skrypt PhpFreeChat, d o s t o s o w a n y do u r u c h a m i a n i a w r o d o w i s k u J o o m l a ! . T e c h n o l o g i a Ajax wykorzystywania jest do odwieania okna czatu bez koniecznoci przeadowania caej strony. utChat jest prost i m p l e m e n t a c j czatu, dostpn w wielu j z y k a c h , a na dodatek nie zuywa wiele z zasobw serwera. Moesz pobra rozszerzenie utChat z poniszej strony: http://video.joomlapl.com/tag/utchal/
256
Rysunek 10.8. Komponent utChat wykorzystuje skrypt PhpFreeChat, aby doda do Joomla! obsug czatw
utChat
Joomla!
o n o adasmiauczynski
o
e ii e
O
*
6 > t &
Q
&
|j #
ffi^l 7 </
5
? t"'",' zr. t"! .jma*-! n^s.:-: 1 ^
B / u s @ c
Po z a i n s t a l o w a n i u k o m p o n e n t u u t C h a t z p o z i o m u interfejsu administratora musisz doda pozycj menu czc z czci frontow rozszerzenia. Komponent utChat nie korzysta z bazy danych Joomla! do zapisywania wiadomoci i nickw, tylko przechowuje wszystkie wiadomoci w postaci prostego archiwum. PhpFreeChat (a take, w konsekwencji, utChat) zawiera nastpujce f u n k c j e : Moliwo p r o w a d z e n i a kilku pokoi. Prywatne wiadomoci midzy uczestnikami. Funkcje dla moderatorw (m.in. moliwo usuwania i blokowania uytkownikw). M o d y f i k a c j e za p o m o c arkuszy stylw (CSS). Obsuga d o w o l n e g o jzyka, ktry mona zapisywa i wywietla w postaci kodowania UTF-8. Wsparcie f o r m a t o w a n i a tekstu i e m o t i k o n w za p o m o c BBCode. W a s n y system wtyczek, ktry pozwala na zmian miejsca przechowywania danych (przykadowo mona doda zapisywanie wiadomoci w bazie danych).
Domylna konfiguracja nie okrela domylnie wykorzystywanego jzyka. Po zainstalowaniu komponentu wybierz w interfejsie administratora opcj utChat z menu Komponenty. Zostanie wywietlony edytor, ktry umoliwia m o d y f i k a c j parametrw, jak przedstawiono to na rysunku 10.9. Ustawienia zapisywane s w postaci kodu PHP, ktry jest bezporednio uruchamiany przez rozszerzenie.
257
ck S u t p a r a m s [ 1 f r o z e n n i.c k ' ]] - TRUE; Jutparams('channeirs'] = i : r a y ( ' P o k o j l ' , 'Pokoj f u r p a r a m s I 1 t h e m e ' ] = 'msn i u t p a r a m s [ ' l a n g u a g e ' 1 = 1 en__US 1 . '( $utparams [ 1 admins 1 ] = aa rr a ;y ( ' admin 1 =>- ' ) ; r r
2'J;
K o m p l e t n dokumentacj rozszerzania utChat (a raczej skryptu phpFreeChat) znajdziesz na stronie: www.phpFreeChat. net
irum dyskusyjne
Forum to ogromnie popularna metoda wiadczenia p o m o c y technicznej z a r w n o dla produktw komercyjnych, j a k i open source. Spoeczno Joomla! rozwija si wanie dziki forum (forum.joomla.org), ktre zrzesza programistw i webmasterw Joomla!. Forum Joomla! wykorzystuje do dziaania aplikacj Simple Machines Forum (SMF). rde forw dyskusyjnych naley upatrywa w poprzedzajcych strony W W W systemach BBS. Wraz z rozrostem internetu dyskusje zostay przeniesione na grupy dyskusyjne. Obecnie forum w postaci strony internetowej mona atwo doda d o istniejcej witryny lub systemu Joomla!.
258
Rysunek 10.10. Chocia cz frontowa SMF uruchamiana jest w ramach interfejsu Joomla!, to zawiera wasny zestaw tematw, ktre okrelaj jej wygld
1 Posts 1 Topics
Forum Stats A 1 Posts in 1 Topics by 1 Members. L a t e s t Member: t e s t L a t e s t Post: " W e l l unit- to * , M n " ( Today at 1 2 : 1 7 : 0 5 PM ) View the most recent posts o i the forum. : [More Stats]
S M F z a w i e r a w a s n y s y s t e m wtyczek, dostpnych jest wiele rozszerze, np. galerie, filtry antyspamowe, funkcje uatwiajce pozycjonowanie (SEO), Shoutbox, zarzdzanie reklamami i wiele innych. S M F naley zainstalowa oddzielnie od Joomla!, pakiet mona pobra na poniszej stronie: www.simplemachines.org A b y u m o l i w i i n t e g r a c j ze s t r o n J o o m l a ! , S M F n a l e y u m i e c i w e w n t r z struktury k a t a l o g w J o o m l a ! . J e d n y m ze s k u t e c z n y c h s p o s o b w j e s t u t w o r z e n i e f o l d e r u 1forum w g w n y m katalogu Joomla! i zainstalowanie tam oprogramowania forum. Instalacja SMF p r z y p o m i n a w instalacj J o o m l a ! , u r u c h a m i a n a j e s t przez w p r o w a d z e n i e w przegldarce o d p o w i e d n i e g o adresu, nastpnie kreator przeprowadzi Ci przez proces instalacji. Po zainstalowaniu S M F naley doda komponent czcy, aby umoliwi uruchamianie forum w r a m a c h interfejsu witryny Joomla!. K o m p o n e n t czcy ( S M F Bridge) moesz pobra ze strony: www.simplemachines.org/download/? brie/ges3.
Z w r uwag, e istnieje sporo innych rozszerze, ktre p o z w a l a j poczy S M F i Joomla!. Kade z nich m a swoje w a d y i zalety. Powiniene j e d n a k korzysta z komponentu SMF Bridge, p o n i e w a jest to oficjalne rozszerzenie, stworzone przez programistw S M F co zapewnia tym s a m y m n a j l e p s z kompatybilno. Po zainstalowaniu k o m p o n e n t u czcego m u s i s z s k o n f i g u r o w a go za p o m o c interfejsu administratora, aby w s k a z y w a miejsce instalacji SMF. Wybierz odpowiedni opcj z menu komponenty, eby wywietli ekran konfiguracji zilustrowany na rysunku 10.11. Najwiksze z n a c z e n i e ma parametr Palh to SMF (cieka dostpu do S M F ) , p o n i e w a j e g o poprawne ustawienie jest w a r u n k i e m dziaania poczenia. W pole naley w p r o w a d z i odpowiedni ciek absolutn.
Fireboard
W przeciwiestwie do SMF, ktra jest odrbn aplikacj, Fireboard (poczony z rozszerzeniem J o o m l a b o a r d ) f u n k c j o n u j e j a k o uzupenienie systemu Joomla!. Rozszerzenie przedstawione na rysunku 10.12 zostao napisane z m y l o wykorzystaniu w systemie Joomla!,
3
Oficjalne rozszerzenie SMF Joomla Bridge nie jest ju rozwijane ani dostpne na stronie SMF. Powodem przerwania prac bya niekompatybilno licencji. Wicej infonnacji na http://www.simplemachines.org/ community/index.php?topic=184557 przyp. tum.
259
&
dlatego nie w y m a g a adnych cznikw. Integracja z systemem jest znaczca zwaszcza w zakresie wygldu i uprawnie uytkownikw. Fireboard bezporednio wykorzystuje listwy kontroli dostpu ( A C L ) Joomla! do zarzdzania uprawnieniami u y t k o w n i k w . sunek 10.12. frontowa omlaboard 'korzystuje :tuainy ablon strony ) stworzenia idobnej ezentacji
-Joomlaboard-Forum
:atriie posty ; ! R e g u l a m i n i i Pomoc szukaj w forum
Forum '' . - i go ty Fol tlili Forum 1 Sample Forum 1 Pobierz nagwki ostatnich p o s t w
Joomlaboard Forum Component i i i Stable T'JJO Shoes M - F a o t o r y Wersja PL Zwiastun .otispam integration b y JoorniaPi.oom T e a m
Tenuity 1
Odpowiedzi
Ost.Ttli |)OST
Fireboard posiada nastpujce f u n k c j e f o r u m dyskusyjnego: nieograniczona moliwo definiowania kategorii i podkategorii; obsuga wielu j z y k w ; system szablonw p o r w n y w a l n y z S M F ; umieszczanie d o d a t k o w y c h funkcji w panelach: n a j n o w s z e wiadomoci, najnowsze wtki, przyklejone tematy i inne; opcja wybierania wasnych ulubionych w t k w przez u y t k o w n i k w ; import danych Joomlaboard; wasna architektura wtyczek, ktra pozwala na integracj z Joomap, tworzenie map stron Google, obsug Joom!Fish, systemw komentarzy i innych; generowanie kanaw R S S i d o k u m e n t w w formacie P D F ; integracja z systemem profili u y t k o w n i k w C o m m u n i t y Buildera; obsuga systemw prywatnych wiadomoci, takich jak ClexusPM i Uddeim.
Moesz pobra komponent Fireboard i p o w i z a n e moduy z poniszej strony: www. bestofjoomla. org
260
Rysunek 10.13. Panel kontrolny rozszerzenia Fireboard pozwala na dostp do konfiguracji, zarzdzania uytkownikami i wystanymi plikami oraz do administracji forum
\
. . ifiguracja
_ M
<% ipJL 3
Uytkownicy
css 18-
skm
Przegldarka grafik Edytor pliku CSS
Kategorie i fora
Przegldarka plik w
- O Blokowanie Forum
f^yi
Synchronizacja uytkownikw
O
Strona domowa Fireboard
|
Wczytaj przyktedc w e dane
Umieszki
(**)
Przelicz statystyki kategorii Rangi
Po klikniciu przycisku New zostaniesz przeniesiony do ekranu tworzenia kategorii. Pozostaw u s t a w i e n i e Item Level na Top Level ( P o z i o m n a d r z d n y ) , a n a s t p n i e w p r o w a d nazw, np. Inwestowanie w nieruchomoci. Zapisz kategori i przejd do tworzenia kolejnej. Tym r a z e m w y b i e r z z listy Item Level k a t e g o r i , k t r p r z e d c h w i l u t w o r z y e , a nastpnie wprowad tytu forum. Uytkownicy bd mogli teraz dodawa wiadomoci na utworzonym forum.
Sondy
Sondy m o g by doskonaym dodatkiem, jeli wirtualna spoeczno zostaa uruchomiona. Niektrzy spord o d w i e d z a j c y c h z a g o s u j tylko p o to, aby zobaczy wyniki sondy. Jeli j e d n a k wirtualna s p o e c z n o j e s t j u silna, s o n d y m o g b y d o s k o n a m e t o d poznania opinii uytkownikw. M o g suy take za rdo informacji i opinii spoecznoci na rne tematy take na temat strony.
261
0.14
Welcome to Joomla!
&
Joomla! is used for? 0 O Community Sites Public Brand Sites eCommerce Blogs Intranets Photo and Media Sites All of the Above!
Joomla! is a free open source fi amewoik and content publishing system designed toi quickly ci eating highly interactive multi-language Web sites, online communities, media paitis, hloys and eCo applications. Joomla! provides an easy-to-use graphical user interface that versti 1.5 simplifies the management and publishing of large volumes of content including HTML, Powered by
0 0 0 Q O
M Joomla!
G o s u j J I Wyniki
Who's
Online
Moesz skorzysta take z innych rozszerze, ktre m a j wicej funkcji i o f e r u j w i k s z elastyczno. Modu sondy doczony jest take do pakietu S M F , ktry miae o k a z j zainstalowa wczeniej. Aby doda sond w aplikacji SMF, kliknij przycisk Add Poll z panelu administratora S M F . Zostanie wywietlony ekran tworzenia sondy (co przedstawiono na rysunku 10.15). M o e s z doda dowoln liczb odpowiedzi, skonfigurowa czas trwania sondy, a take wstawi k o m u nikat opisujcy p o w o d y j e j uruchomienia. ysunek 10.15. )odanie sondy ' programie SMF ?st tak proste jak wysanie nowej wiadomoci a forum
Post n e w poll S u b j e c t : ;Miejsce spotkania Message icon: Question: Standard v, .;>'
Gdzie najlepiej SI spotka? O p t i o n 1: Kawiarnia O p t i o n 2: Park miejski Option 3: Gra w. Jerzego O p t i o n 4: O p t i o n 5: j ( Add Option)
.. Options:
Po11
W panelu a d m i n i s t r a t o r a S M F m o l i w e j e s t u s t a w i e n i e w i e l u d o d a t k o w y c h p a r a m e t r w i funkcji sond. Jedn z zalet uruchamiania sond w S M F jest ich bliskie powizanie z tematem forum dyskusyjnego. Skoro prbujesz zgromadzi na swojej stronie z a a n g a o w a n spoeczno, to czy istnieje lepszy sposb pozyskania opinii u y t k o w n i k w ni umieszczenie sondy w miejscu, gdzie dyskutowane s sporne tematy. Sondy utworzone w programie S M F pojawiaj si na licie tematw (zobacz rysunek 10.16) w dziale, w ktrym zostay umieszczone. Po klikniciu odnonika p r o w a d z c e g o d o sondy wywietlany jest formularz umoliwiajcy oddanie gosu zamiast wprowadzenia wiadomoci. Do p o p r a w n e g o dziaania sond niezbdne jest wczenie obsugi ciasteczek w przegldarce, poniewa modu sondy wykorzystuje je, aby zapobiec wielokrotnemu gosowaniu przez tego samego uytkownika w j e d n e j sondzie.
262
test
Miejsce spotkania
o n : T o d a y at 0 6 : 2 5 : 2 5 PM
_ A t u i
L J :
teRmo aaa
M &
'
kkkkk
'
R e p o r t to m o d e r ator
37.206.22.160
Pages:[1]
Komentarze
Komentarze to szczeglnie e f e k t y w n a metoda b u d o w a n i a spoecznoci. Nie w y m a g a j dod a w a n i a t e m a t w na f o r u m , ktre nie d a j p e w n o c i , czy d o c z e k a m y si odpowiedzi, ale j e d n o c z e n i e u m o l i w i a j wysyanie opinii i dzielenie si wraeniami na temat okrelonych treci umieszczonych na stronie. Przeogromna liczba udanych stron zawiera funkcj komentowania. Niektre witryny (np. epinions.com) nie zawieraj wielu artykuw gwn tre stanowi opinie uytkownikw. Komentarze staj si coraz popularniejsz funkcj na wszystkich wielkich stronach. Niektre z nich to Onet.pl, Wp.pl, Gazeta.pl. Implementacja rozszerzenia A k o C o m m e n t lub JoomlaComment umoliwi odwiedzajcym dodawanie komentarzy pod k a d y m artykuem. Wczenie funkcji k o m e n t o w a n i a oznacza nie tylko udostpnienie platformy dla konstruktywnej krytyki, pozwala take o d w i e d z a j c y m na uzupenianie treci artykuu d o d a t k o w y m i i n f o r m a c j a m i i odnonikami.
263
opcjonalne powiadamianie uytkownika o kolejnych komentarzach; generowanie obrazkw C A P T C H A , ktre z a p o b i e g n spamowi; integracja z profilem uytkownika w systemie C o m m u n i t y Builder.
Aplikacja dostpna jest w wielu jzykach: angielskim, brazylijskim, portugalskim, chiskim, czeskim, fiskim, francuskim, niemieckim, greckim, wgierskim, indonezyjskim, woskim, norweskim, polskim, rosyjskim, sowackim, hiszpaskim i tureckim. Podczas dodawania komentarza mona w p r o w a d z i d o d a t k o w o adres e-mailowy i adres strony d o m o w e j uytk o w n i k a ( z o b a c z r y s u n e k 10.17), a a d m i n i s t r a t o r m o e z a d e c y d o w a , czy te d o d a t k o w e informacje b d wywietlane obok komentarzy. suneK 10.17. ygld <oComment st jednoczenie zyjazny profesjonalny Write Comment
p l e a s e k e e p the topic of m e s s a g e s relevant to the subject of t h e article. P e r s o n a l v e r b a l a t t a c k s will b e d e l e t e d , P l e a s e d o n ' t u s e c o m m e n t s t o p l u g y o u r w e b s i t e , S u c h m a t e r i a l will b e r e m o v e d . J u s t e n s u r e t o * R e f r e s h * y o u r browser for a new security c o d e t o b e d i s p l a y e d prior to
clicking code,
Jan Kowalski
s u m ( a E l i a is e s
Wspaniaa strona, pozdrawiam jej autorw
# w c* a #
Code:*
i 1 i wish t o b e c o n t a c t e d by e m a i l r e g a r d i n g a d d i t i o n a l coir m e n t
Send
Formatowanie tekstu moliwe jest dziki zastosowaniu znacznikw BBCode, prostego jzyka, podobnego do HTML. Znaczniki umieszcza si w nawiasach kwadratowych: [b] o d p o w i a d a pogrubieniu (ang. bold), [i] pochyleniu tekstu (ang. itali), a [u] podkreleniu (ang. underline). Dodatkowo obsugiwane s wypunktowane listy, emotikony i wprowadzanie tekstu w dowolnym jzyku obsugiwanym przez Joomla!. A k o C o m m e n t moesz pobra na: www.visualclinic.fi" Pakiet A k o C o m m e n t skada si z wtyczki (bot_akocomment_SE.zip), k o m p o n e n t u (com_ akocomment_SE.zip) i dwch moduw (mod_ac_lastcomments.zip i mod_ac_mostfavowed. zip). Wtyczka p o w o d u j e wywietlanie odnonika Komentarzy (x) pod k a d y m artykuem, przy czym litera x odpowiada liczbie dodanych komentarzy. Kliknicie tego odnonika powoduje uruchomienie komponentu.
264
Rysunek 10.18. Interfejs administratora AkoComment umoliwia konfiguracj procesu dodawania i wywietlania komentarzy
General
Layout
Postinq
Notification
Reports ; Favoured
Template With individual botcommand {moscomment} you can choose we not for every content item individually. Using the second option comments on/off for complete sections. If you use second operating mode, you can choose here which comment system. Multiple selections are possible.
Main O p e i atiiuj M o d e :
HI
Sections available :
O Nie Tak
Nie
Tak
|^pfii||||||||| Username Choose where to open the comments. Open in new window
S h o w c o m m e n t s o n Ai chives :
Nie Tak
AkoComment Tweaked Special Edition www.visualclinic.fr v.1.4.6 Based on AkoComment v.2 Copyright 2004 by Arthur Konze - w w w rnamboportal corn
Praktycznie wszystkie elementy systemu komentarzy mona ustawi, dopasowujc dostpne parametry lub m o d y f i k u j c szablon. Do parametrw wywietlania nale Autolimit num of comments to display (Automatycznie ograniczaj liczb wywietlanych komentarzy), Num of comments per page (Liczba komentarzy na stronie), Show favoured link (Wywietlaj prom o w a n y odnonik), Show quote this article in website link (Pokazuj odnonik do cytowania treci artykuu), Show hits/view (Wywietlaj liczb odson), Show print link (Pokazuj odnonik uruchamiajcy drukowanie), Show send Email link (Wywietlaj odnonik do powiadamiania znajomych przez e-mail), Show read more link (Pokazuj odnonik Czytaj wicej"). Dostpna j e s t o p c j a w y w i e t l a n i a listy k o m e n t a r z y w oparciu o arkusze stylw lub w postaci tabeli HTML.
JoomlaComment
K o m p o n e n t !JoomlaComment, przedstawiony na rysunku 10.19, dodaje na stronie funkcje komentowania z wykorzystaniem technologii Ajax. Umoliwia take importowanie komentarzy rozszerzenia AkoComment. Rozszerzenie J o o m l a C o m m e n t zawiera nastpujce funkcje: interfejs systemu komentarzy opiera si na technologii Ajax, dlatego nie jest w y m a g a n e p r z e a d o w y w a n i e caej strony; obsuga obrazkw; awatar uytkownika; cytowanie innych komentarzy;
265
fi
-kolor-
-rozmiar-
"
e @ OiD
>
[ Wylij |
formatowanie tekstu i emotikony, obsuga B B C o d e ; integracja z profilami i awatarami w systemie C o m m u n i t y Builder; dostpno w wielu jzykach: angielskim, sowackim, czeskim, woskim, niemieckim, norweskim, hiszpaskim, tureckim, greckim, wgierskim, perskim, bugarskim, macedoskim, niderlandzkim, brazylijskim i portugalskim.
Podobnie jak w wikszoci z a a w a n s o w a n y c h k o m p o n e n t w p o z w a l a j c y c h na d o d a w a n i e treci przez uytkownikw, take w I J o o m l a C o m m e n t w b u d o w a n o f u n k c j e chronice przed spamem: generowanie obrazkw C A P T C H A ; blokowanie u y t k o w n i k w ; lista cenzurowanych sw; ograniczenia dugoci wpisu.
U o o m l a C o m m e n t moesz pobra na poniszej stronie: http://joomlacode.org/gf/project/joomagecomment/frs/ Podobnie jak wikszoci komponentw, instalacja UoomlaComment odbywa si za p o m o c opcji Rozszerzenia/Instalator. Co rni ten k o m p o n e n t od pozostaych? fakt, e w t y c z k a dodajca odnonik do komentarzy pod k a d y m artykuem instalowana jest automatycznie. Interfejs administratora, zilustrowany trw p o g r u p o w a n y c h w trzy zakadki: (Zabezpieczenia). W zakadce General komentowanie w wybranych sekcjach na rysunku 10.20, umoliwia konfiguracj parameGeneral (Oglne), Layout (Ukad strony) i Security m o n a wczy obsug technologii A j a x , wyczy i kategoriach, ustawi obsug B B C o d e , format daty
266
Rysunek 10.20. Interfejs administratora IJoomlaComment pozwala na konfiguracj wygldu stron dodawania i wywietlania komentarzy
General
Security
Postmy
Layout
B i < Settings Uninsuli complete mode: Nie O Tak Delete also tables when uninstall! Do not active except if you would i ijoomlacomment ar For expert only 1 ou can change here the joscomment mamtaoi fund h a c k e d the corserit html (tor example: to display the read only fundi V V if auto: W i l l i e e mosContiijlanguage parameters it auto will use the mosConfigtanguage parameters Php iconv library i input t h e chat se 1: of y o u t joonila installation it it is different ti C l i c HERE t o c h e k if it is s u p p o r t e d h y t h e inconv tit , t i y ' els joomlacommert support, It t h i s i s m u i h j j ade ft out a r e l e a s e o l d e i than 3.0 J . once you parameter, qotot- ansae Comment.: and use She Convert To LCh*se convert r e l i e d a: If y o u had change I, some comments ici*8te<i with ajax have to be c others ('created w ithout siax'i have not to be converted i In this case, comments only (those with strange character?!). h i s . S e c t i o n s .'1 C a t e g o r i e s ciii m a Exclude I n c l u d e : Exclude O include ff INCLUDE, this W' i! allow comments for ems which are IN selected sections Oft IN s& eeted categories. If EXCLUDE, this v 'ill not allow comments for items which are IN sele selected .--ections OR IN s elected categories eld to exclude/include items Ids Format: list of Ids
M a m h o t content f u n c t i o n :
on FVepare Content
Fi o u t e w l l a n g u a g e : Bsckend lanytiage: Local chaise*: if y o u we <tj><jf a d i n g o l d e t i eie,?e thant :i,0. i e a d catefully d e s c r i p t i o n o n t h e fiiiiirt:
fssclude I n c l u d e i t e m s i d s :
Clic to Exclude-lnc ude sections-. Use CTRL, or SHIP key to select unselect lines.
Sieci spolecznociowe
Chocia najpopularniejszym przykadem sieci spoecznociowej jest MySpace.com, strony tego typu m o g zawiera dosownie wszystko od listy moich ulubionych filmw", po list przepisw kulinarnych. Sieci spoecznociowe stanowi platform, ktrej sercem jest k l a s y f i k o w a n i e list z a k a d e k i d z i e l e n i e si nimi a w k o n s e k w e n c j i list stron, ktre wskazuj. Proces ten odbywa si poprzez przesyanie odnonikw lub wiadomoci e-mailem. Zaoeniem sieci spoecznociowych jest tworzenie przez u y t k o w n i k w list zakadek (odsyaczy do stron W W W ) , ktre u w a a j za interesujce. Listy s nastpnie przypisywane do odpowiednich kategorii i znacznikw, aby mona byo j e wyszukiwa i przeglda w katalogu. U y t k o w n i c y m a j dostp do list umieszczonych przez innych, m o g ocenia poszczeglne odnoniki lub cae listy. Czsto listy zakadek publikowane s w formie kanaw RSS, co pozwala zainteresowanym na ledzenie n a j n o w s z y c h zakadek z danej listy. Struktura a r t y k u w J o o m l a ! j e s t w i e t n y m r d e m materiaw, ktre m o n a sugerowa innym. Dostpnych jest kilka rozszerze, ktre w s p p r a c u j z rnymi serwisami spocczn o c i o w y m i , u y t k o w n i k musi w y c z n i e klikn o d p o w i e d n i ikon, aby doda artyku umieszczony na T w o j e j stronie do listy zakadek. J e d n y m z najpopularniejszych rozszerze tego typu jest SocialBookmarkerBot.
267
jcialBookmarkerBot vl.3.2
Aby zachci uytkownikw do dodawania zakadek wskazujcych artykuy na Twojej stronie, moesz zainstalowa rozszerzenie Social BookmarkerBot, ktre wstawia rzd przyciskw na dole wybranych podstron (zazwyczaj s to podstrony zawierajce artykuy), przedstawiono to na rysunku 10.21. Przyciski pozwalaj na szybkie dodanie zakadek na stronach: BlinkBits, Blinklist, Blogmarks, BlogMemes, Del.icio.us, Digg, Facebook, Fark, FeeMeLinks, Furl, Google Bookmarks, Ma.gnolia, Netscape, Netvouz, Newsline, P l u g M , RawSugar, Reddit, Shadows, Simpy, Slashdot, Spurl, Squidoo, StumbleUpon, T a i l r a n k i l i n k a G o G o , Technorati, W i n d o w s Live, Witsts i Yahoo! Bookmarks. (sunek 10.21. ozszerzenie Social ookmarker wywietla list rzyciskw, ktre pozwalaj a dzielenie si zakadami innymi uytkownikami
Add this page to your favorite Social Bookmarking websites
fi
*l
ui
4i> m
>* KS
-4
U*
Dostpna jest take opcja wywietlania sprytnych" przyciskw dla stron Digg, Del.icio.us i Reddit w p r a w y m lub lewym g r n y m rogu kadego artykuu. Ich pojawianie m o n a ograniczy do podstron zawierajcych skrcon wersj artykuu lub do tych zawierajcych cae artykuy. Panel moe by wywietlany na grze, na dole lub zarwno na grze, jak i na dole; moe zawiera wszystkie lub wybrane przyciski. Rozszerzenie usuwa take wszystkie dodatkowe informacje z acucha dania, takie jak ID uytkownika, generowane s absolutne adresy U R L (to znaczy, e dziaaj niezalenie od miejsca, w ktrym zostan umieszczone). Przycisk dla witryny Digg, wywietlany po prawej stronie artykuu, dziaa poprawnie tylko wtedy, gdy wczona jest opcja Proste adresy na ekranie Konfiguracji Globalnej w interfejsie administratora. W przeciwnym wypadku wystpuje bd generowany przez kod JavaScript, pobrany z serwera Digg.com. Wtyczk SocialBookmarkerBot mona znale pod poniszym adresem: http://joomladigger.com/joomla-extensions/plugins/more-traffic-for-yourjoomla-website. html Instalacja odbywa si standardowo za p o m o c opcji Rozszerzenia/Instalator, wtyczk naley opublikowa po zainstalowaniu. Domylnie panel z przyciskami wywietlany jest pod wszystkimi artykuami na stronie. K o r z y s t a j c z interfejsu administratora, m o n a ustawi opcje wywietlania przyciskw.
alendarz wydarze
Kalendarz wydarze to doskonay sposb na skupienie w j e d n y m miejscu ludzi zainteresowanych wydarzeniami danego typu, zachca take spoeczno do spotka na ywo. Rozszerzenia oferujce funkcjonalno kalendarza wydarze dostpne dla Joomla! s j e d noczenie proste i dobrze skonstruowane. Rozszerzenie Event Calendar (JEvents) jest bardzo elastyczne w zakresie prezentacji i organizacji zdarze w kategoriach. JCalPro zawiera wicej funkcji zwizanych z regularnymi wydarzeniami i planowaniem.
268
[December 01 200
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Pakiet Eevents Calendar (JEvents) skada si z kilku k o m p o n e n t w , m o d u w i wtyczek: Komponent Komponent Events Calendar administracyjny G w n y komponent wywietlajcy kalendarz. Umoliwia konfiguracj systemu.
Modu kalendarza dla Events Calendar May kalendarz z zaznaczonymi wydarzeniami, ktry mona wstawi np. na stronie gwnej. Modu listy nadchodzcych z n a j d u j c y c h si w bazie. wydarze Lista nadchodzcych wydarze
269
Umoliwia w y s z u k i w a n i e wydarze w p r o w a d z o n y c h
Wtyczka tworzenia raportw z wydarze A u t o m a t y c z n e d o d a w a n i e odnonika pod wydarzeniami, ktry przenosi na stron, gdzie m o n a doda zdjcia i relacje z minionych wydarze.
Przed wprowadzeniem wydarze do kalendarza musisz najpierw utworzy kategori za p o m o c opcji Add Category w czci a d m i n i s t r a c y j n e j k o m p o n e n t u J E v e n t s ( p r z e d s t a w i o n o to na rysunku 10.23). Po zapisaniu kategorii musisz j j e s z c z e opublikowa, poniewa domylnie nowe kategorie nie s aktywne. Po utworzeniu kategorii moesz zacz dodawa wydarzenia. irsunek 10.23. 'rzed /prowadzeniem ikichkolwiek tydarze naley definiowa o najmniej jedn atego
Add Category Kolor Category Title Category Name Image Image Position Ordering Access XXXXDescription XX XX Color Picker Wakacje Wakaqe articles jpg Left
V;
V V / U ABC
Public U
w m mm
*! i n
- Styles -- v d, >t
-- Format f
-- Font family s r
:= i = i
W A
u ' * a -
- H i
Wprowadzanie wydarze (zobacz rysunek 10.24) odbywa si w czci frontowej rozszerzenia JEvents. Dla nowego wydarzenia mona wpisa tytu, wybra kategori i wprowadzi k o m pletny opis. Opcjonalnie m o n a ustawi informacje o miejscu, dane kontaktowe i inne niezbdne informacje dla danego wydarzenia. Wprowadzone dane wykorzystywane s podczas wyszukiwania, dlatego dodajc wydarzenia, staraj si umieszcza sowa kluczowe, aby uytkownicy zainteresowani wydarzeniami danego typu mogli j e odnale. Jeli przejdziesz do ekranu konfiguracji w interfejsie administratora (zilustrowanym na rysunku 10.25), z n a j d z i e s z o p c j e p o z w a l a j c e na k o n t r o l o w a n i e w y g l d u , a take dostpu i uprawnie uytkownikw. Moliwe jest take ustawienie pliku C S S w y k o r z y s t y w a n e g o na stronach z wydarzeniami. Arkusz stylw m o n a zmienia, aby odpowiednio d o p a s o w a wygld kalendarza do aktualnego szablonu strony. Rozszerzenie Events Calendar moesz pobra na stronie: joomlacode.org/gf/projects/jevents Instalacja odbywa si za pomoc opcji Rozszerzenia/Instalator i nie rni si od postpowania w przypadku innych k o m p o n e n t w . A b y w s t a w i kalendarz E v e n t s C a l e n d a r na stronie, dodaj pozycj m e n u czc z k o m p o n e n t e m .
270
Rysunek 10.24. Ekran dodawania nowych wydarze zosta podzielony na kilka zakadek
Common
Calendar
images:
Extra
Help i
About
I
S=
k W 1
m i
--styles-4> C2f! Z
-- Format -a !
1
v J -
-- Font family ~ ii !3 u
v A -
J j a '
JL
i l l
X,
xa I n
- s
," |
B a w si z nami!|
Grafika <?
Pagebreak
Readmore
JEvents
Component ' : .--4,
CSS
These settings aie only foi the compone Admin Mail Access Publish from Frontend First Day View mail View "By" View "Hits" View Repeat and time Show All Repeat Events in Year List Hide "See By Categories (appropriate if events legend module is visible) Show Copyright Footer Date Format Use 12hr time Format Use new Icon Navigation bar Navigation Bar Color Start Page No. of Events Use Simple Default Event Color Event color rule Titlelength t woj^adres .pi Only special ghts and admins Admins and Super Admins only V Sunday first V O Nie ak C ) Nie ak O Nie ak O Nie % ak O Nie ak Nie O ak v
O Nie ak
O ak Q V
Nie
JCalPro
Jednym z najatrakcyjniejszych kalendarzy jest rozszerzenie JCalPro, przedstawione na rysunku 10.26. Zastosowanie rnych stylw pozwala dopasowa kalendarz do prezentacji reszty strony. Wygld wszystkich elementw moe by modyfikowany przez zmian plikw CSS. Dodawanie wydarze odbywa si z wykorzystaniem edytora ustawionego w Joomla!, co pozwala na w p r o w a d z a n i e f o r m a t o w a n e g o tekstu. Rozszerzenie jest cile zwizane z systemem zabezpiecze Joomla!, dziki czemu moliwa jest kontrola dostpu prywatnych kategorii, a take zarzdzanie wprowadzaniem wydarze. Dostpne s take moduy wywietlajce wersj minikalendarza, a take nadchodzce wydarzenia.
271
fiSJ
Si=j
Weekly view 0
7
O Football Game 14 <> Football Game
u
Oeuiiness : Meeting
13
17 n -M
25
20
It
<> Football
27
m
;
OfWonthSy | Work
i Sports
T y p e m ome k e y w o r d s . . ,
!j Go .
JCalPro zawiera nastpujce funkcje: Widok zdarze z danego dnia, tygodnia, miesica, a take z danej kategorii. Integracja z kategoriami Joomla!, w tym kontrola uprawnie. G e n e r o w a n y kalendarz jest zgodny ze standardami X H T M L i CSS. W p r o w a d z o n e zdarzenia m o n a w y s z u k i w a za p o m o c standardowej wyszukiwarki Joomla!. Zastosowanie edytora W Y S I W Y G ustawionego w Joomla!, co pozwala na formatowanie tekstu. Moliwo m i n u t o w e g o planowania zdarze. Funkcja importowania zdarze i kategorii systemu Extcalendar. Modu wywietlajcy nadchodzce wydarzenia. Obsuga wielu j z y k w za porednictwem funkcji systemu Joomla!. Powiadamianie administratora o n o w o d o d a n y c h wydarzeniach. Obsuga wydarze okresowych, cao- i kilkudniowych. Powiadamianie uytkownika o wydarzeniach przez e-mail.
272
Systemy Wiki
Jedn z najbardziej interesujcych interaktywnych technologii (i prawdopodobnie najszybciej z y s k u j c na popularnoci) jest system wiki. W systemie tym artykuy pisane s przez uytk o w n i k w . Kolejni o d w i e d z a j c y m o g edytowa lub rozszerza istniejce artykuy. Najpopularniejszym p r z y k a d e m takiego systemu jest Wikipedia, encyklopedia tworzona przez uytkownikw. Chocia zasada dziaania Joomla! (system C M S ) pozwala na dodawanie treci przez uytk o w n i k w , rozwizanie to nie zostao stworzone z m y l o umoliwieniu duej grupie ludzi wprowadzania maych zmian w artykuach funkcji lecej u podstaw systemw wiki. Dla Joomla! stworzono kilka dobrych rozszerze, uzupeniajcych system o funkcjonalno wiki. D o takich rozszerze z a l i c z a j si OpenWiki i WikiBot.
OpenWiki
O p e n W i k i 4 (zobacz rysunek 10.27) jest k o m p o n e n t e m czcym system Joomla! z aplikacj P H P D o k u W i k i . Zawiera p e n implementacj A C L w oparciu o grupy Joomla!, takie jak Gwny Administrator, Administrator, Operator, Autor, Redaktor itp. Moliwe jest okrelenie uprawnie tworzenia, edycji, odczytywania, usuwania artykuw i wysyania plikw. O p e n W i k i zawiera wiele uytecznych funkcji: Prosta skadnia do f o r m a t o w a n i a artykuw w stylu wiki. Nieograniczona liczba wersji danej strony z funkcji diff, podwietlajcej rnice midzy wersjami. Obsuga f o r m a t o w a n i a tekstu i doczania obrazw. O p c j o n a l n y system n a z w CamelCase. A u t o m a t y c z n e generowanie indeksu pod k t e m przeszukiwania caego tekstu. Przyciski szybkiego dostpu w celu przyspieszenia edycji. N a w i g a c j a okruszkowa uatwiajca przegldanie. Czarna lista (blokowanie spamu). Oznaczanie stron j a k o tylko do odczytu. Obsuga p o n a d 30 j z y k w .
273
Open W i k i
P r o j e c t s
O f
Table of Contents
J oo m P roso lu tio n . c o m
is a standards compliant, simple to use u , mainly aimed at creating documentation of any kind. It is targeted at developer teams, workgroups and small companies. It has a simple but powerful which makes sure the datafiles remain readable outside the Wiki and eases the creation of structured texts. All data is stored in plain text files - no database is required.
Joomla! is a Content Management System (CMS) created by the same award-winning team that brought the Mambo CMS to its current state of stardomjoomla' is the ideal tool for developing small to large dynamic community websites, intra company portals, corporate portals, weblogs and much more. The OpenWiki component is a integration of DokuWiki, aiming at a light, flexible and powerful documentation tool for Joomla I users. The component would be following original DokuWiki's steps except some experiments on Database storage.
System szablonw umoliwiajcy d o p a s o w y w a n i e wygldu. Wasna architektura wtyczek (dostpnych jest ponad 100). Generowanie kanaw RSS.
Rozszerzenie OpenWiki m o n a pobra na stronie: http://wwwjoomla.sk/rozsirema/stiahnutie/Joomlal_rozsirenia/Sprava_suborov_a_ dokumentacie/Open Wiki_with_Slimbox_l. 1.0/ Instalacja o d b y w a si za p o m o c opcji Rozszerzenia/Instalator i nie rni si od postpowania w przypadku innych komponentw. W p i s w m e n u na stronie gwnej odsyajcy do OpenWiki d o d a w a n y jest automatycznie. O b s u g a systemu D o k u W i k i (cz uytkownika i administratora) o d b y w a si z poziomu strony gwnej Joomla!. K o n f i g u r a c j k o m p o n e n t u czcego OpenWiki m o n a przeprowadzi w czci administracyjnej. Aplikacja DokuWiki, na ktrej opiera si OpenWiki, nie zapisuje artykuw w bazie danych. S one przechowywane w postaci plikw. Dlatego do poprawnego dziaania OpenWiki niezbdne s uprawnienia zapisu w odpowiednich katalogach. Rozszerzenie opiera si w gwnej czci na funkcjach PHP fwriteO i fopenO, dlatego upewnij si, e nie zostay one wyczone na serwerze, na ktrym chcesz zainstalowa OpenWiki.
W interfejsie administratora Joomla! moesz uzyska dostp do ekranu konfiguracji O p e n W i k i (OpenWiki Configuration Settings zobacz rysunek 10.28), wybierajc pozycj O p e n W i k i z m e n u K o m p o n e n t y . M o l i w e j e s t u s t a w i e n i e u p r a w n i e i p a r a m e t r w dla t w o r z o n y c h artykuw.
274
OpenWtki C Display
'
A n t i s p a m Perniission S a f e m o d e en W
>
WikiBot
WikiBot czy stron Joomla! z w o l n encyklopedi Wikipedia. Rozszerzenie pozwala na oznaczenie sw w treci artykuw, aby prowadziy do odpowiednich stron w encyklopedii. Dziki w y k o r z y s t a n i u tego narzdzia p o c z e n i e strony J o o m l a ! z o g r o m n b a z danych Wikipedii jest bardzo proste. Rozszerzenie W i k i B o t m o n a znale na stronie: www. theinevitabledossier. com/wikibot.html Po
Instalacja wtyczki o d b y w a si s t a n d a r d o w o , za p o m o c opcji Rozszerzenia/Instalator. instalacji rozszerzenie musi zosta opublikowane, aby przetwarza tre artykuw.
Rozszerzenie WikiBot dziaa w tle systemu Joomla!. Wystarczy doda niezbdne znaczniki w treci zwykego artykuu. Sowa naley oznacza w sposb identyczny jak na Wikipedii, u m i e s z c z a j c j e w p o d w j n y c h n a w i a s a c h k w a d r a t o w y c h , np. [[te sowa]]. WikiBot zawiera obsug znacznikw w wielu jzykach. Odnoniki mona take zapisywa w postaci [[artyku |nazwa odnonika]]. Tekst umieszczony wewntrz znacznikw zostanie automatycznie zmieniony w odnonik d o Wikipedii podczas otwierania strony. Sowa oznaczone podwjnymi po wybraniu opcji podgldu. po zapisaniu artykuu. nawiasami nie s wywietlane w postaci Zmiana widoczna jest wycznie w czci odnonika frontowej,
Dobr moderatorw
W i r t u a l n e s p o e c z n o c i w y m a g a j d u o p r a c y , d l a t e g o z a n i m si s p o s t r z e e s z , bdziesz potrzebowa wsparcia w prowadzeniu spoecznoci. Spoecznoci czsto korzystaj z wolontariatu moderatorw, wybranych spord uytkownikw wykazujcych due zaangaowanie
275
w dziaalno strony. Czsto dobr moderatorw wymaga wycznie przeanalizowania dziennika. Potencjalni moderatorzy spdzaj sporo czasu na stronie i zazwyczaj dobrowolnie su innym p o m o c i informacjami. Dlaczego kto mgby chcie powica swj czas j a k o wolontariusz, dostajc niewiele lub w ogle nie otrzymujc za to pienidzy? Powodw jest kilka najprostszym i najwaniejszym jest pasja, ktrej przedmiot zwizany jest z tematyk strony. Wielu ludzi odczuwa w e w n t r z n potrzeb dodawania czego od siebie, nawet jeli jest to odrobina czasu powicona wirtualnej spoecznoci. Kolejnym powodem, dlaczego kto chciaby zosta moderatorem, jest namiastka wadzy. Jest to jednoczenie najwikszy problem, z j a k i m musi sobie radzi webmaster. Z a z w y c z a j moderator, ktry naduywa swoich uprawnie, robi to w taki sposb, e ofiara m a mae szanse, aby si obroni lub zgosi nieuczciwe traktowanie. Z a b l o k o w a n i e uytkownika ogranicza moliwo zgoszenia naduy. D o b r y m pomysem jest umieszczenie na stronie e-mailowego adresu administratora. Skargi w y s y a n e pod tym a d r e s e m nie b d w aden s p o s b cenzurowane. Pamitaj, aby podchodzi do nadsyanych skarg odrobin nieufnie. Znane s przypadki osb w y s y a j c y c h na f o r u m dla dzieci o b r z y d l i w e w i a d o m o c i p e n e s e k s u a l n y c h o d n i e s i e i przeklestw. Po zablokowaniu moliwoci w y p o w i e d z i osoby te zaczy wysya skargi, e pady o f i a r niesprawiedliwoci, a ich p r a w o wolnoci w y p o w i e d z i zostao n a r u s z o n e . Dlatego przegldajc skargi od uytkownikw, rozpatruj j e oddzielnie, w sposb obiektywny i logiczny.
rowadzenie spoecznoci
Prowadzenie spoecznoci przypomina kierowanie samochodem, w ktrym kilkanacie osb ciska si na miejscu pasaera a kada z nich trzyma rk na kierownicy. Podobnie spoeczno porusza si z y g z a k i e m " , czsto n o t u j c z a s k a k u j c y rozrost, a p o t e m stagnacj. Cigym zagroeniem jej istnienia s inne spoecznoci, ktre m a j dokadniejsze informacje lub lepszy interfejs uytkownika. Poniej zamieszczono kilka wskazwek, ktre pomog zachowa zdrowy rozsdek i zapewni stay wzrost liczby odwiedzajcych i czonkw: Zamie na stronie w widocznym miejscu list regu Nie m o e s z wini uytkownikw za naruszanie regulaminu strony, jeli nie mogli si z nim zapozna. Umie na stronie zasady w w i d o c z n y m miejscu, aby o d w i e d z a j c y mogli j e przeczyta i aby nie pojawiay si wtpliwoci. W przypadku f o r u m oznacza to z a z w y c z a j umieszczenie regulaminu w postaci tematu na forum, a nastpnie przyklejenie" go w d a n y m dziale, eby zawsze pojawia si j a k o pierwszy na licie. Pilnuj, aby strona pozostawaa czysta Podobnie j a k graffiti w ssiedztwie, obecno spamu na stronie p o w o d u j e wraenie, e jest ona opuszczona lub nieuywana. Webmaster, ktry zasn, prowadzc wirtualn spoeczno, bez wtpienia uderzy w drzewo.
276
Podsumowanie
Budowanie efektywnej spoecznoci wirtualnej jest j e d n z najtrudniejszych (a jednoczenie najbardziej satysfakcjonujcych i najbardziej opacalnych) czynnoci w procesie rozwijania stron internetowych. P o n i e w a skuteczna wirtualna spoeczno w y m a g a wsppracy wielu odwiedzajcych, zarzdzanie ni m o e kosztowa wiele wysiku. Na szczcie, narzdzia gotowe do wykorzystania w systemie Joomla! uatwiaj z a r w n o pocztkowe uruchomienie strony, jak i dalsze zarzdzanie ni. W tym rozdziale opisano etapy i narzdzia zwizane z tworzeniem wirtualnych spoecznoci w oparciu o Joomla!, a w szczeglnoci: w a d y i zalety wirtualnych spoecznoci; metody p o p r a w y interakcji na stronic W W W ; sposoby przedefiniowania strony na dalszym etapie istnienia; konstruowanie zoonej strony przez sprzenie ze sob kilku technologii; adaptacj rnych rozszerze dodajcych interaktywne funkcje; p o p r a w n instalacj rozszerze, aby zapewni m a k s y m a l n e wykorzystanie i minimum problemw.
Im popularniejsza jest Twoja strona, tym wiksze znaczenie ma dostrojenie ustawie pod ktem maksymalnej wydajnoci. Mona atwo straci wielu czonkw wirtualnej spoecznoci, jeli strona bdzie s z w a n k o w a lub dziaa powoli. W rozdziale 11. opisano rnorodne techniki i k o n f i g u r a c j e , ktre p o m a g a j w d o s t r o j e n i u s e r w e r a J o o m l a ! p o d k t e m m a k s y m a l n e j wydajnoci.
impression.
11
Prowadzenie profesjonalnej strony
Przeprowadzenie podstawowej instalacji Joomla! nie nastrcza trudnoci, dlatego w krtkim czasie mona uzyska w peni dziaajc stron. W peni profesjonalna instalacja wymaga jednak duo wikszego wysiku, zwaszcza w zakresie zarzdzania i administracji. Chocia Joomla! zawiera wiele funkcji przeznaczonych dla pocztkujcych uytkownikw, take eksperci odnajd moliwoci niezbdne do prowadzenia profesjonalnej strony. Dodatkowym atutem jest bogaty zasb narzdzi dostpnych dla serwerw skadowych systemu. Poniewa niedostrojony" system nigdy nie osignie wydajnoci tego, ktry zosta dokadnie skonfigurowany, warto zainwestowa czas w dostosowanie ustawie wszystkich aplikacji. Zmiana ustawie pod ktem potrzeb danej strony Joomla! pozwoli uzyska lepsz wydajno bez zmiany sprztu. Poszczeglne techniki przedstawione w tym rozdziale mona skategoryzowa nastpujco: programowanie i testy, administracja Joomla!, obsuga Joomla! i ostateczne dostrajanie strony. Oczywicie zakres wyszczeglnionych kategorii pokrywa si w niektrych punktach, poniewa wszystkie zwizane s z zarzdzaniem serwerem Joomla! i jego konfiguracj.
rogramowanie i testy
Profesjonalne programowanie Joomla! nie sprowadza si wycznie do wyboru waciwego IDE. Rwnie wana jest znajomo tych jego funkcji, ktre w s p o m a g a j diagnozowanie problemw, stosowanie dostpnych narzdzi PHP, a take implementacja zautomatyzowanych procedur testujcych. Wszystkie wspomniane zagadnienia odgrywaj znaczc rol w procesie tworzenia solidnego systemu. Poznane dotychczas aspekty pracy z Joomla! zwizane byy gwnie z samym systemem. Profesjonalna instalacja wykracza jednak poza t platform, o b e j m u j e take zastosowanie zewntrznych narzdzi i konfiguracj innych serwerw. Aktywacja wbudowanych procedur diagnozujcych Joomla! znaczco uatwia programowanie, poniewa jest rdem dodatkowych komunikatw.
278
Ustawienia diagnostyczne
W panelu administratora z n a j d u j si opcje pozwalajce a k t y w o w a kilka procedur diagnostycznych, ktre u a t w i a j p r o g r a m o w a n i e na serwerze testowym. Wczenie tych funkcji p o w o d u j e wywietlanie informacji dotyczcych dziaania systemu. Na ekranie Konfiguracja globalna, w panelu Diagnostyka (zobacz rysunek 11.1) znajdziesz ustawienia trybu diagnostycznego Joomla!. Rysunek 11.1. Wczenie ustawie diagnostycznych uatwia programowanie na serwerze testowym
Konfiguracja globalna
D w a d o s t p n e u s t a w i e n i a to Analiza systemu i Analiza jzyka. W c z e n i e k a d e j z nich p o w o d u j e d o c z e n i e w d o l n e j czci strony d o d a t k o w y c h k o m u n i k a t w s y s t e m o w y c h . Zwr uwag, e informacje generowane s przez system Joomla! i rni si od tych, ktre w y w i e t l a j si po wczeniu opcji P H P di spl ay errors. Po a k t y w o w a n i u opcji d i a g n o s t y c z n y c h na stronie p o j a w i si d o d a t k o w e k o m u n i k a t y , p o d o b n e d o tych z i l u s t r o w a n y c h na r y s u n k u 11.2. I n f o r m a c j e podzielono na pi sekcji: Informacje o wydajnoci, Zuycie pamici, Zapytania do bazy danych, Wczytane pliki jzyka, Frazy nieprzetlumaczone. W a r u n k i e m w y w i e t l e n i a k o m u n i k a t w d i a g n o s t y c z n y c h jest odpowiednie odwoanie w kodzie szablonu. Jednak wikszo szablonw zawiera wymagan instrukcj: <jdoc: include type="modules" name="debug" />. Rysunek 11.2. Komunikaty diagnostyczne na stronie po wczeniu odpowiedniej opcji
Zuycie pamici*
279
W pierwszej sekcji wywietlany jest czas uruchamiania w y k o n y w a n i a funkcji dla poszczeglnych zdarze. Druga sekcja odzwierciedla zuycie pamici przez serwer Joomla!. Kolejne grupy z a w i e r a j i n f o r m a c j e szczeglnie p r z y d a t n e w procesie tworzenia rozszerze i diagnozowania bdw systemu. Poniej, w kolejnej grupie, z n a j d u j e si lista zapyta S Q L w y k o n a n y c h w czasie g e n e r o w a nia strony zilustrowano to na rysunku 11.3. Czsto suy ona za d o s k o n a w s k a z w k podczas szukaniu rda bdw, jednoczenie umoliwia wgld w funkcjonowanie systemu Joomla!. Rysunek 11.3. W odpowiedniej sekcji wywietlane s wszystkie wykonanie zapytania SQL
Informacje o wydajnoci*
Zuycie pamici*
WHERE
FKOM
WHERE SELECT
FKOM
.1
WHERE
WWFTTF.
Opcja Analiza jzyka spowoduje wywietlenie wszystkich tekstw, ktre pojawiy si na stronie i dla ktrych nie znaleziono tumacze (przedstawiono to na rysunku 11.4). Jeli pracujesz nad pakietem j z y k o w y m lub bierzesz udzia w poprawianiu tumaczenia Joomla!, to ta opcja pozwoli Ci okreli, co zostao jeszcze do zrobienia. Rysunek 11.4. Opcja Analiza jzyka spowoduje wywietlenie na stronie tekstw, dla ktrych nie znaleziono tumacze
Wczytane pliki jzyka*
280
Powysza komenda spowoduje wywietlenie komunikatu na ekranie wraz z podsumowaniem dziaania skryptu. Moesz take uruchomi kod P H P w pliku i zapisa wydruk w innym pliku. Jeli chcesz uruchomi plik test.php, a j e g o wydruk (bez nagwkw HTTP) zapisa w pliku test.html, p o w i n i e n e zastosowa ponisz komend:
php -q test.php > test.html
Lista przecznikw zawiera m.in.: -h lub -? Wywietla list wszystkich przecznikw wraz z krtkim opisem. -r -v W y k o n u j e p o j e d y n c z lini kodu podanego j a k o parametr. Wywietla zainstalowan wersj P H P .
-d D e f i n i u j e warto danej dyrektywy. Przykadowo poniszy kod ustawi m a k s y m a l n y czas uruchamiania skryptu: php -d m a x execution time=20 -m Wywietla list aktualnie z a a d o w a n y c h m o d u w P H P i Zend. - i P o w o d u j e w y g e n e r o w a n i e informacji identycznych z dostarczanymi przez f u n k c j phpi nfo( ). -q Wycza umieszczanie n a g w k w H T T P w g e n e r o w a n y m wydruku. -S Wywietla podany plik z podwietlonymi elementami kodu rdowego. Ten sam rezultat m o n a uzyska z poziomu PHP, w y w o u j c funkcj highl ight_fi le( ). c Okrela katalog, w k t i y m z n a j d u j e si plik php.ini.
-a Przecza P H P w tryb interaktywny, w ktrym w p r o w a d z a n e komendy s natychmiast u r u c h a m i a n e (tryb niedostpny na platformie Windows).
281
Bezporednie uruchamianie kodu PHP moe by dobrym sposobem na sprawdzanie dziaania prostych rozszerze. Jeli korzystasz z systemu opartego na Uniksie, moesz take skorzysta z zalet trybu interaktywnego (przecznik -a), ktry jest p r a w d o p o d o b n i e najbardziej uytecznym narzdziem do testowania f r a g m e n t w kodu PHP.
automatyzowane testy
P o s z c z e g l n e e t a p y p r a c y na s e r w e r z e t e s t o w y m o b e j m u j w y s z u k i w a n i e p r o b l e m w , sprawdzanie wspdziaania elementw systemu i testy j e d n o s t k o w e . Faza testw to w a n y e l e m e n t w p r o c e s i e k o n s t r u k c j i o p r o g r a m o w a n i a . N i e s t e t y , c z s t o nie p o w i c a mu si d o s t a t e c z n e j u w a g i , c h c c sprosta t e r m i n o w i w y d a n i a a p l i k a c j i . W r a z z p o p u l a r y z a c j p r o f e s j o n a l n e g o p r o g r a m o w a n i a w z r a s t a liczba aplikacji p r z e p r o w a d z a j c y c h z a u t o m a t y zowane testy, a spada wysiek niezbdny do przeprowadzania skutecznej analizy kodu.
esty jednostkowe
P r o g r a m i c i s k o m p l i k o w a n y c h aplikacji c z s t o s t o s u j strategi testw jednostkowych (ang. unit testing), aby upewni si, e o p r o g r a m o w a n i e spenia zaoenia projektu i dziaa poprawnie. Testy j e d n o s t k o w e p o l e g a j na stworzeniu serii testw, dla ktrych z n a n e s poprawne rezultaty, nastpnie uruchamia si j e w systemie.
282
Moesz zastosowa take aplikacj Selenium, ktra umoliwia zautomatyzowane testowanie stron W W W . Z n a j d z i e s z j na stronie: h ttp ://selenium. selen iumh. org
Uruchamianie strony
Po u k o c z e n i u f a z y t e s t w p r z y c h o d z i pora na p r z e n i e s i e n i e strony na s e r w e r w p r o d u k c y j n y c h . Jest to j e d n o z n a j b a r d z i e j p r o b l e m a t y c z n y c h s y s t e m J o o m l a ! nie z a w i e r a w b u d o w a n y c h narzdzi w s p o m a g a j c y c h Dlatego, aby s t w o r z y kopi z a p a s o w , trzeba przenie z a r w n o dane danych, jak i pliki, z ktrych skada si system Joomla!. j e d e n lub wicej zada, poniewa p r o c e s migracji. zapisane w bazie
283
pozostaych e l e m e n t w , np. k o m p o n e n t w i niskiego p o z i o m u z a b e z p i e c z e , w a c i w e g o dla rodowiska testowego. Poniewa migracja midzy serwerami jest w gwnej mierze przeprowadzana rcznie, warto mie list k l u c z o w y c h e t a p w , aby nie p r z e o c z y ktrego z nich. P o d s t a w o w a lista elementw, ktre naley przenie: Rozszerzenia Wszystkie zainstalowane moduy, komponenty i dodatki wykorzystywane na serwerze testowym musz zosta zainstalowane i skonfigurowane na serwerze produkcyjnym. Rczne kopiowanie plikw rozszerze nie jest z a z w y c z a j d o b r y m p o m y s e m , p o n i e w a t w o r z o n e czsto w a s n e tabele, z m i e n i a j k o n f i g u r a c j , a czsto instaluj take komponenty interfejsu administratora systemu Joomla!. Dyrektywy PHP.ini Plik PHP.ini z n a j d u j c y si na serwerze testowym zawiera prawdopodobnie zmiany uatwiajce programowanie. Pamitaj, e wiele dyrektyw powinno mie rne ustawienia w rodowisku testowym i p r o d u k c y j n y m , g w n e ze w z g l d w b e z p i e c z e s t w a . W wikszoci p r z y p a d k w n i e z b d n e s z m i a n y wartoci dyrektyw zwizanych z rozszerzeniami PHP, np. w c z a j c e bibliotek gd2, niezbdn do p o p r a w n e g o uruchamiania aplikacji Joomla!. Dyrektywy Apache w httpd.conf Podobnie j a k w przypadku PHP, wikszo zmian konfiguracji serwera Apache zwizana jest z a k t y w a c j moduw, co ma zapewni t s a m f u n k c j o n a l n o w obu rodowiskach. Plik configuration.php Joomla! Powiniene z a w s z e tworzy kopi z a p a s o w pliku c o n f i g u r a t i o n . p h p na s e r w e r z e p r o d u k c y j n y m , z a n i m p r z y s t p i s z do przenoszenia strony na serwer produkcyjny uchroni Ci to przed utrat ustawie waciwych dla serwera produkcyjnego. Pamitaj, aby d o p a s o w a warto odpowiednich parametrw w pliku p o zakoczeniu migracji, tak aby odpowiaday rodowisku p r o d u k c y j n e m u . K l u c z o w z m i a n przy przenoszeniu pliku configuration.php z serwera testowego na p r o d u k c y j n y j e s t d o p a s o w a n i e ustawie poczenia z b a z danych.
284
Pamitaj, aby tworzy kopi zapasow plikw znajdujcych si na serwerze produkcyjnym nie wykorzystuj serwera testowego jako podstawy kopii. Chocia rodowisko testowe jest wanym etapem, waciwa strona, z ktrej korzystaj uytkownicy, znajduje si na serwerze produkcyjnym. Jeli ona zawiedzie, bdzie Ci zalee na przywrceniu jej w moliwie krtkim czasie. Serwer testowy odpowiada zazwyczaj pewnej fazie prac programistycznych i nie nadaje si do bezporedniego przeniesienia na serwer produkcyjny.
A p l i k a c j a M y S Q L A d m i n i s t r a t o r p o z w a l a na o k r e s o w e t w o r z e n i e kopii z a p a s o w e j bazy danych. Kliknij ikon Backup w lewej czci gwnego okna programu, a nastpnie, po tym, j a k zmieni si prawy panel, kliknij przycisk N e w Project. System kopii zapasowych zwiera wiele opcji (zobacz rysunek 11.5), ktre p o z w a l a j m.in. tworzy kopi z a p a s o w struktury i danych (wczajc w to tworzenie i u s u w a n i e tabel). Rysunek 11.5. Rozbudowane ustawienia planowanych kopii zapasowych w programie MySQL Administrator
Backup Project Advanced Options Schedule
A d v a n c e d Options * if* Specify detailed settings of how your backup should be performed Backup E ;ution Method The backup will be executed in a single transaction This option is necessary ti a consistent snapshot of your InnoDB tables All tables are locked with FLUSH READ LOCKS. This option is necessary to cr consistent snapshot of your MylSAM tables This backup method is the same as InnoDB Online Backup but also logs the c position of the binlog if the option is activated for the server Each table will be backed up independently. This may lead to inconsistent bac and should be avoided if possible Backup all tables. Use this option if tables are added to schmas frequently Nr backup content table selection will be ignored.
Normal backup
Complete backup
Output File Options Backup Type: No C R E A T E S Nn F X T F N D F n I N S F R T S | SQL Files Type of generated backup file. j Compatibility mod ' A N S I Quotes S a v e Project
L...
New Project
Alternatywnym rozwizaniem jest wykorzystanie jednej bazy danych z rnymi przedrostkami tabel poszczeglnych instalacji Joomla! p r z y p . tum.
285
W p o w y s z y m f r a g m e n c i e wirtualne serwery z a k a d a n e s na podstawie adresw IP, tzn. adresy IP przypisywane s wirtualnym serwerom dziaajcym na j e d n e j maszynie. Alternatywnym rozwizaniem s wirtualne serwery na podstawie domeny, ktre pozwalaj obsugiwa kilka stron w r n y c h d o m e n a c h na m a s z y n i e d y s p o n u j c e j j e d n y m a d r e s e m IP. S e r w e r uruchamia o d p o w i e d n i stron na podstawie parametru hostname dostarczonego w daniu H T T P . Wicej informacji na temat wirtualnych serwerw korzystajcych z przekierowania na podstawie d o m e n y znajdziesz na stronie serwera Apache (http://httpd.apache.org/docs/ 1.3/vhosts/name-based.html).
286
PhpMyAdmin
Jeli do zarzdzania serwerem M y S Q L wykorzystujesz narzdzie phpMyAdmin, moesz tak j e skonfigurowa, aby dziaao z w i e l o m a serwerami M y S Q L . Niezbdna zmiana w konfiguracji sprowadza si do ustawienia zmiennej $cfg['Servers' ], np. pole $cfg[ 'Servers'] '-[Si][ 'host' ]2 p o w i n n o zawiera n a z w danego serwera.
Testy obcieniowe
Przed p r z e n i e s i e n i e m strony do r o d o w i s k a p r o d u k c y j n e g o w a r t o podda system testowi obcieniowemu (ang. load testing). Test tego typu polega na wytworzeniu sztucznego obcienia serwera W W W (np. wysyanie setki da w bardzo krtkim czasie) i monitorowaniu rezultatu. Szczeglnie uyteczne jest sprawdzanie systemu przy obcieniu, ktre wykracza poza normalne warunki, dziki czemu mona w y z n a c z y granic poprawnego dziaania. Test obcieniowy mona przeprowadzi za p o m o c narzdzia open source o nazwie Dieseltest Load Testing Software, ktre przedstawiono na rysunku 11.6. Za p o m o c programu mona symulowa rne scenariusze, obcienie generowane przez setki lub tysice uytkownikw. M o l i w e j e s t z a p i s y w a n i e i o d t w a r z a n i e s c e n a r i u s z y , k t r y c h rezultaty w y w i e t l a n e s na bieco. Pakiet zawiera take narzdzia, ktre p o z w a l a j na analiz dziennikw, dziki czemu mona zebra dodatkowe statystyki. Program Dieseltest m o n a znale na stronie: http://sourceforge.net/projects/dieseltest
W miejsce $ naley wstawi 0 dla pierwszego serwera, 1 dla drugiego itd. p r z y p . liitm. 1
287
Current Test: Victual Users Run time (min:sec) Use recorded host
NewTesll.tst
Timeout (sec) Use recorded think time 60 (7
Testy pod o b c i e n i e m dla serwera M y S Q L m o n a p r z e p r o w a d z i , stosujc aplikacj D B Monster, ktr znajdziesz na stronie: http://sourceforge.net/projects/dbmonster Narzdzie D B M o n s t e r tworzy n a j p i e r w l o s o w e dane, ktre z o s t a n u m i e s z c z o n e w bazie danych. Po wstawieniu danych moesz wykorzysta program do analizy zapyta, aby okreli, na ile zostay one zoptymalizowane i jak skutecznie dziaaj w przypadku duej iloci danych. Aby sprawdzi konfiguracj M y S Q L i ogln wydajno serwera, moesz wykorzysta pakiet Database Opensource Test Suite for Linux Test Project, dostpny na stronie: http.V/ltp.sourcefbrge. net
Kada z w y m i e n i o n y c h aplikacji p o z w a l a stworzy profil obcienia, tzn. okreli, j a k i e operacje bd przeprowadzane na serwerze w czasie testw. Stworzenie skutecznego profilu obcienia ma w sobie elementy sztuki i nauki. Wiele informacji, w s k a z w e k i zagadnie, ktre warto r o z w a y , tworzc profil obcienia, z n a j d z i e s z w artykule autorstwa S t e v e ' a Splaine'a Modeling the Real World for Load Testing W e b Sites" (www.stickyminds.com/ s.asp ?F=S3116_A R T_2).
rwnowaenie obcienia
Bliniaczym zagadnieniem dla testw pod obcieniem jest r w n o w a e n i e obcienia. Jeli strona zyska o g r o m n p o p u l a r n o , p r a w d o p o d o b n i e b d z i e d z i a a na kilku s e r w e r a c h , z ktrych cz m o e suy j a k o z a b e z p i e c z e n i e (nawet jeli j e d n a z m a s z y n z a w i e d z i e , strona nadal bdzie dostpna), a reszta m o e obsugiwa p r z e k a z y w a n e dania (rozsyane midzy identyczne serwery, aby zapewni lepsz w y d a j n o caej witryny). W rodowisku testowym moliwoci rwnowaenia obcienia s z reguy niewielkie. Serwer testowy dysponuje ograniczonymi zasobami, dziaa zazwyczaj w sieci lokalnej ( L A N ) i w y k o n u j e wszystkie usugi ( W W W , PHP i baz danych). Po przeniesieniu do rodowiska
288
Umidzynaradawianie
Podczas tworzenia wersji 1.5 aplikacja Joomla! zostaa napisana od podstaw, gwnie pod ktem obsugi stron w j z y k a c h innych ni angielski. J e d n y m z najwikszych w y z w a tego procesu byo wprowadzenie kodowania tekstu w standardzie UTF-8, co pozwala na skuteczn Obsug wielu j z y k w . S c h e m a t k o d o w a n i a z n a k w U T F - 8 z a k a d a z a p i s y w a n i e ich w postaci c i g w o rnej dugoci. Jeden znak (np. litera z aciskiego alfabetu) m o e z a j m o w a j e d e n bajt, podczas gdy inny (rzadki chiski p i k t o g r a m ) n a w e t trzy b a j t y . N a p r a w d rzadkie znaki w y m a g a j zuycia czterech bajtw. Powyszy schemat ma spor przewag nad standardem Unicode, ktry polega na zapisywaniu k a d e g o z n a k u w postaci d w c h b a j t w . K o d o w a n i e U T F - 8 p o z w a l a na bogatszy zestaw z n a k w , a r o z m i a r w i k s z o c i t e k s t w nie w z r a s t a z n a c z c o . P o n i e w a litery aciskie k o d o w a n e s w postaci j e d n e g o bajta, teksty w j z y k a c h z a c h o d n i o e u r o p e j s k i c h (a take niektrych r o d k o w o e u r o p e j s k i c h , np. p o l s k i m ) m a j rozmiar p o r w n y w a l n y z tekstami zakodowanymi systemami j e d n o b a j t o w y m i \ przy czym tekst zapisany w ten sposb nie jest ograniczony do j e d n e g o j z y k a . Wszystkie n o w e w y d a n i a Joomla! z a w i e r a j pen obsug wielu j z y k w , a take tekstw pisanych od p r a w e j d o lewej. Jeli p l a n u j e s z obsug z n a k w spoza alfabetu aciskiego, sprawd czy Joomla! i serwer M y S Q L zostay odpowiednio skonfigurowane, aby korzysta z kodowania UTF-8.
Np. ISO 8859-2 i CP1250, dwoma popularnymi systemami kodowania znakw na polskich stronach internetowych przed rozpowszechnieniem UTF-8 przyp. tum.
289
290
Server Machine s J| Several server applications will be running on this machine, Choose this option for web/application servers. MySQL will have medium memory usage.
Dedicated MySQL Server Machine ( \ J! This machine is dedicated to run the MySQL Database Server, No other servers, such as a web or mail server, will be run, MySQL will utilize up to all available memory.
U s t a w i e n i a w y k o r z y s t a n i a s e r w e r a baz d a n y c h , z i l u s t r o w a n e na r y s u n k u 11.8, powinny w s k a z y w a w p r z y p a d k u wikszoci s y s t e m w Joomla! d o m y l n o p c j Multifunctional Database. Jeli j e d n a k p r o w a d z i s z stron, ktra nie musi o b s u g i w a d u e j iloci danych w p r o w a d z a n y c h przez u y t k o w n i k w lub sklep internetowy, ktry w y m a g a zachowania spjnoci transakcji, opcja Non-Transactional Database Only zwikszy w y d a j n o serwera. Jeli prowadzisz stron e-commerce, dla ktrej spjno transakcji ma najwysze znaczenie, najlepszym w y b o r e m bdzie p r a w d o p o d o b n i e Transactional Database Only. Ekran ustawie pocze, p r z e d s t a w i o n y na r y s u n k u 11.9, pozwala okreli oczekiwan liczb jednoczesnych pocze. Dla wikszoci instalacji Joomla! ustawienie Decision Support (DSS)/OLAP bdzie dobrym wyborem. Wybr opcji Online Transaction Processing (OLTP) spowoduje zuycie wikszej czci zasobw, poniewa zostan zarezerwowane na wypadek w y s z e g o obcienia. Kolejne ekrany p o z w a l a j dostawa opcje zwizane z protokoem sieciowym, trybem strict i innymi. Nie zmieniaj domylnych ustawie, chyba e ze wzgldu na zapor sieciow musisz z m i e n i n u m e r portu M y S Q L . N i e p o w i n i e n e w p r o w a d z a z m i a n na ekranie wyboru domylnego zestawu znakw (zobacz rysunek 11.10), chyba e planujesz ponown instalacj Joomla!. Zestaw z n a k w bazy danych powinien zosta ustawiony przed instalacj Joomla!, aby instalator odpowiednio dopasowa procedury skadowania w bazie danych.
sunek 11.8. ona ograniczy py baz danych -) wielofunkcyjnyc baz danych, sz wycznie Usugujcych ansakcje i baz ez obsugi ansakcji
MySQL Server Instance Configuration Choose the configuration for the server instance, Please select the database usage. C Multifunctional Database General purpose databases. This will optimize the server for the use of the fast transactional InnoDB storage engine and the high speed MylSAM storage engine. Transactional Database Only Optimized for application servers and transactional web applications, This will make InnoDB the main storage engine. Note that the My 15AM engine can still be used. * fSon-Transactional Database Only! Suited for simple web applications, monitoring or logging applications as well as analysis programs. Only the non-transactional MylSAM storage engine will be activated.
Ksunek 11.9. 1stawienia ocze serwerem ptymalizuj lySQL pod ktem czekiwanego bcienia
MySQL Server Instance Configuration Wizard MySQL Server Instance Configuration Choose the configuration for the server instance. Please set the approximate number of concurrent connections to the server, Decis;ionSupport(DSS)/OLAP: a jjk m$r Select this option for database applications that will not require a high number of concurrent connections. A number of 20 connections will be assumed.
Online Transaction Processing (OLTP) j* / jk Choose this option for highly concurrent applications that may have at any one time up to 500 active connections such as heavily loaded web servers.
Manual Setting "r'i Please enter the approximate number of concurrent connections. Concurrent connections:
ysunek 11.10. Vybierz opcj lest Support for Aultilingualism UTF8), jeli ilanujesz obsug nnych jzykw li angielski
MySQL Server instance Configuration W i z a r d MySQL Server Instance Configuration Choose the configuration for the server instance. Please select the default character set. Standard Character Set fHeio!) Makes Latin 1 the default charset. This character set is suited for M k t , . E n g l i s h and other West European languages.
UTF8 the default character set, This is the recommended character set for storing text in many different languages. Manual Selected Default Character Set / Collation 4T ? j Please specify the character set to use. Character Set: utf8
< Back
j I
Next >
Cancel
292
rdo problemw
Baza danych Joomla! zostaa zaprojektowana pod ktem oglnego wykorzystania, dlatego istniej sposoby, aby poprzez zmian j e j struktury uzyska w y s z wydajno. Na dodatek tabele, ktre tworzysz na potrzeby wasnych rozszerze, take m o n a zoptymalizowa.
Optymalizacja indeksw
Jednym z gwnych obszarw odpowiedzialnych za problemy z wydajnoci s indeksy tabel w y k o r z y s t y w a n e p r z e z s e r w e r b a z d a n y c h ( w a n i e m a n i p u l a c j a indeksami jest rdem n a j w i k s z y c h z y s k w w y d a j n o c i ) . D a n e w b a z i e d a n y c h p r z e c h o w y w a n e s w lunym p o r z d k u (s n i e p o s o r t o w a n e ) . N a przykad dla tabeli p r z e c h o w u j c e j dane o kontaktach rekord dla nazwiska Zieliski" m o e zosta zapisany j a k o pierwszy, a rekord dla nazwiska A d a m c z y k " na s a m y m kocu. U t w o r z e n i e p o s o r t o w a n e j listy wszystkich nazwisk, ktre zaczynaj si na liter B", wymagaoby powicenia duej czci zasobw i czasu procesora. A b y p r z y s p i e s z y f u n k c j e w y s z u k i w a n i a i s o r t o w a n i a , s e r w e r baz d a n y c h w y k o r z y s t u j e i n d e k s y , tj. list o d w o a d o r e k o r d w p o s o r t o w a n w p e w i e n s p o s b . W r a z z danymi na serwerze zapisywany jest take indeks. W naszym przykadzie zapytanie spowodowaoby odwoanie si do indeksu dla pola nazwisko. Indeks w bazie danych gra tak rol jak skorowidz w ksice p o z w a l a s z y b k o o d n a l e o d p o w i e d n i stron (lub rekordy w przypadku bazy danych). Indeksy naley utworzy dla wszystkich pl (lub ich kombinacji) czsto wykorzystywanych w z a p y t a n i a c h . N a r y s u n k u 11.11 z i l u s t r o w a n o f u n k c j p r o g r a m u M y S Q L Administrator, ktra p r z e d s t a w i a list i n d e k s w bazy danych J o o m l a ! . P r z y k a d o w o tabela jos content posiada siedem powizanych indeksw, co umoliwia szybkie sortowanie danych po wartoci pl, takich j a k access, catid, section itd. Kiepski dobr indeksw jest jednym z gwnych powodw problemw z wydajnoci. Indeksy r z a d k o u y w a n e (lub n i g d y n i e u y w a n e ) nie p r z e o si na znaczcy wzrost wydajnoci. Wrcz przeciwnie m o g spowolni prac serwera, poniewa w y m a g a j zapisywania d o d a t k o w y c h danych przy wstawianiu n o w y c h lub m o d y f i k o w a n i u istniejcych rekordw.
293
ODiiila15 All loomlal 5 indices Table Name jos_contact_details ios_fb_messages ~ ~ jos_newsfeeds jos_sb_categories ~ | jos_sb_messages ~ jos_sb_moderation jos_weblinks ~J| jos_sb_categories Fin! os_categories osjnenu jos_comment jos_users jos_users i s _'h_users Type BTREE BTREE BTREE BTREE BTREE BTREE BTREE BTREE BTREE BTREE BTREE BTREE BTREE BTREE BTREE BTREE UNIQUE NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL UNIQUE Unique Not Nu NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL
Index Name > 3 cslf j catid * > 3 > 3 i catid catid catid catid ^ catid catpaient
<
>
Jednym i najczstszych z bdw, ktre niwecz zysk wydajnoci, jest porzdek pl tworzonego indeksu. Podczas tworzenia indeksu odwoania sortowane s w e d u g kolejnych pl, tzn. dla indeksu nazwisko_imie wpisy sortowane s najpierw w e d u g nazwiska, a nastpnie w e d u g imienia. Z tego p o w o d u w y s z u k i w a n i e rekordw w e d u g nazwiska bdzie korzysta z tego indeksu, natomiast zapytanie o d w o u j c e si wycznie do pola imienia nie zyska na zastosowaniu indeksu, poniewa nieoczekiwany wynik zapytania nie p o k r y w a si z zaoeniami indeksu w bazie danych.
294
295
Opis Liczba cakowita z zakresu - / + 127 Liczba cakowita z zakresu - / + 32.767 Liczba cakowita z zakresu - / + 8.388.607 Liczba cakowita z zakresu - / + 2.147.483.647 Liczba cakowita z zakresu - / + 9.223.372.036.854.775.807 Liczba zmiennoprzecinkowa o pojedynczej precyzji Liczba zmiennoprzecinkowa o podwjnej precyzji Liczba zmiennoprzecinkowa o dokadnoci okrelanej przez uytkownika Cig znakw o okrelonej dugoci Cig znakw o zmiennej dugoci z narzuconym limitem Tekst o zmiennej dugoci Tekst o zmiennej dugoci Tekst o zmiennej dugoci Dane binarne Dane binarne Dane binarne Data zapisana zgodnie ze standardem ISO 8601 4
Liczba bajtw i 2 3 4 8 4 8 Zmienna Okrelona dugo, do 255 Zmienna (do 65.535) Zmienna (do 65.535) Zmienna (do 16.777.216) Zmienna (do 4.294.967.295) Zmienna (do 65.535) Zmienna (do 16.777.216) ' Zmienna (do 4.294.967.295) 3 3 8 4 1 1 lub 2 od 1 do 8
;HAR /ARCHAR
3L0B
1EDIUMBL0B _0NGBL0B DATE TIME 1ATETIME
Czas zapisany zgodnie ze standardem ISO 8601 3 czony zapis daty i czasu w formacie yyyy-ddmmhh:mm:ss czony zapis daty i czasu w postaci liczby sekund od 1 stycznia 1970 roku Rok w formacie YYYY Lista predefiniowanych wartoci, z ktrej mona wybra jedn Lista predefiniowanych wartoci, z ktrej mona wybra zero, jedn lub wicej
TIMESTAMP
YEAR ENUM
SET
Opisywanym take jako yyyy-mm-dd, np. zapis 2008-12-11 odpowiada zapisowi 11 grudnia 2008 roku przyp. tum. Oznaczanym take jako hh:mm:ss, np. 23:59:59 p r z y p . tum.
296
Dziki d o k a d n e m u okreleniu, ktre pola w y m a g a n e s przez aplikacje, czas przesyania danych zostanie znaczco ograniczony:
SELECT name, telephone FROM jos_contact_details
Poniej umieszczono list k o l u m n zwracanych po w y k o n a n i u instrukcji EXPLAIN: Kolumna select type Okrela typ w y k o n a n e g o zapytania. W a r t o simple o z n a c z a , e z a p y t a n i e nie z a w i e r a o p o d z a p y t a ani o p e r a t o r a UNION. Primary oznacza gwne zapytanie (jeli zastosowano podzapytania). Union, Dependent Urn on i Union Result o d w o u j si d o z a p y t a z o p e r a t o r e m UNION. Subquery, Dependent Subquery, Uncacheable Subquery i Derived w s k a z u j e podzapytanie. Kolumna type Opisuje, w jaki sposb wykonywane s zapytania czone. Wartoci system i const odpowiadaj wyszukiwaniu najwyej po jednym kluczu. Inne moliwe wartoci to eq_ref, ref, ref_or_nul1, index_merge, unique_subquery, index_subquery, range i index. Warto all oznacza, e podczas wykonywania zapytania dane z tabeli w y k o r z y s t a n o bezporednio, z pominiciem indeksw. Kolumna possi bl e_keys Lista p o t e n c j a l n y c h i n d e k s w , ktre m o g y b y zosta w y k o r z y s t a n e podczas uruchamiania zapytania. Kolumna key W s k a z u j e n a z w indeksu M y S Q L , ktry zosta wykorzystany podczas uruchamiania zapytania.
297
Szczeglnie polecam zapoznanie si z sekcj Optimizing Queries with EXPLAIN" w podrczniku MySQL (frttp://dev.mysql.com/doc/refman/5.0/en). Komenda E X P L A I N to najpotniejsze i najuyteczniejsze narzdzie do optymalizacji zapyta. Zwr szczegln uwag na kolumn type, poniewa jej warto najczciej podpowiada, jakie dziaania naley podj.
0 Slow Queries Log: : >< . " J w u l " , l Enter a name for (he slow query log Otherwise a default name will be used.
R e j e s t r o w a n i e z a p y t a m o n a w c z y take z p o z i o m u w i e r s z a p o l e c e , u r u c h a m i a j c M y S Q L komend:
mysqld - -1og-siow-querles=joomlaSlowQLog
298
Przecznik - help wywietli list parametrw k o m e n d y dump. Dane na temat wydajnoci zapyta MySQL moesz uzyska, take stosujc modu myshow. Nie jest to atwe narzdzie, zarwno w zakresie konfiguracji, jak i uruchamiania. Dlatego najpierw warto zapozna si z informacjami na stronie domowej programu (http://jfontain.free.fr/myshow/myshow.htm), aby okreli, czy spenia ono Twoje potrzeby.
Powiniene nie tylko o b s e r w o w a w y d a j n o zapyta M y S Q L , ale take analizowa ogln wydajno systemu. Narzdzie MyTop (http://jeremy.zawodny.com/mysql/mytop) przypomina funkcjonalnoci program Top w systemie Linux, jednak odnosi si do monitorowania wtkw i o g l n e j w y d a j n o c i serwera M y S Q L . M o l i w e j e s t o b s e r w o w a n i e lokalnych i zdalnych serwerw. Program dostpny jest dla systemw W i n d o w s , Linux i MacOS.
Administracja
Dziki J o o m l a ! a d m i n i s t r a c j a staa si b a r d z o prosta. J e d n a k e w r a z z r o z r o s t e m strony z a r z d z a n i e materiaami i u w i e r z y t e l n i a n i e m u y t k o w n i k w oraz p o r z d k o w a n i e systemu w celu usunicia nieaktualnych danych staje si uciliwym zadaniem. Ale istniej metody radzenia sobie z tymi problemami, w gwnej mierze dziki zastosowaniu otwartych standard w w systemie Joomla! i kompatybilnoci z wieloma technologiami. P r z y k a d o w o uwierzytelnianie m o n a u s p r a w n i dziki z a s t o s o w a n i u LDAP (Lightwieght Directory Access Protocol), co pozwala globalnie zarzdza kontami uytkownikw. Zarzdza menu, u y t k o w n i k a m i i starymi materiaami m o n a z a r w n o z poziomu interfejsu administratora, jak i poprzez bezporedni manipulacj bazy danych Joomla! za p o m o c narzdzi M y S Q L . W i k s z o zada z w i z a n y c h z z a r z d z a n i e m , n a w e t w p r z y p a d k u duych stron Joomla!, m o n a w y k o n a bez drogich i zoonych narzdzi.
Uwierzytelnianie LDAP
L D A P jest standardem, ktry okrela sposoby scentralizowanej autoryzacji dostpu. Zamiast oddzielnego konta w k a d y m systemie, z ktrego korzysta uytkownik, mona zastosowa centraln autoryzacj za p o m o c katalogu L D A P , ktry umoliwia uwierzytelnianie uytk o w n i k a w d o w o l n y m systemie. P r z y k a d o w o s e r w e r L D A P m g b y zawiera informacje o uwierzytelnianiu niezbdne dla serwera W W W , FTP, CMS, poczty itd. Oznacza to, e pojedyncze konto uytkownika przechowywane na centralnym serwerze LDAP pozwala na dostp do wszystkich pozostaych serwerw.
299
Na szczcie do Joomla! doczona jest wtyczka, ktra obsuguje uwierzytelnianie L D A P . C h o c i a nie da si z a p i s a p r z y n a l e n o c i d o g r u p y (np. R e d a k t o r , A d m i n i s t r a t o r itd.) na serwerze L D A P , mona p r z e c h o w y w a tam n a z w uytkownika i haso.
odateK LDAP
A b y wczy f u n k c j o n a l n o L D A P w systemie Joomla!, u r u c h o m o p c j Dodatki z m e n u Rozszerzenia w panelu administratora. W a c i w e rozszerzenie nosi n a z w Authentication LDAP. Kliknij jego nazw, aby wywietli list parametrw, jak przedstawiono to na rysunk u 11.13. U s t a w warto parametru Opublikowany na Tak, p o n i e w a d o m y l n i e dodatek jest wyczony. ysunek 11.13. 'aramei/y iodatku LDAP imoliwiaj iokan (onfiguracj iostpu 1o serwera LDAP
Jodatek: pmien]
yt
Pi efet elicie Ustawienia dodntku
y'
Jeli dany serwer L D A P obsuguje opcj s z y f r o w a n y c h pocze, ustaw warto parametru Negocjacja TSL na Tak. To spowoduje szyfrowanie poczenia z serwerem LDAP, co chroni przesyane dane przed przechwyceniem. W pole oznaczone Podstawowa DN wprowad nazw wyrniajc serwer L D A P (powinna by n i e p o w t a r z a l n a ) . P a r a m e t r o w i Szukaj wyraenia n a l e y p r z y p i s a cig s t o s o w a n y przy w y s z u k i w a n i u n a z w y u y t k o w n i k a . P r z y k a d o w o w a r t o uid=[search] s p o w o d u j e w y s z u k a n i e n a z w y u y t k o w n i k a w k o l u m n i e uid. Pole DN uytkownika wykorzystywane jest w y c z n i e przy b e z p o r e d n i c h p o w i z a n i a c h , j e g o u s t a w i e n i e s k u t k u j e w y s a n i e m d o d a t k o w y c h danych podczas logowania, lista powinna zosta rozdzielona rednikami ( : ) , np. uid=[username];dc=mojafi rma:dc=com. Pola Uytkownik poczenia i Haso poczenia powinny pozosta puste, o ile dostp do serwera jest a n o n i m o w y . Parametry m a j c e w n a z w i e w y r a z M a p u j p o z w a l a j okreli, ktre pola na serwerze L D A P b d zawiera dane niezbdna dla systemu logowania Joomla!.
300
OpenLDAP
Jeli chcesz u r u c h o m i w a s n y serwer L D A P , m o e s z w y k o r z y s t a aplikacj O p e n L D A P , darmow implementacj standardu LDAP. Program dostpny jest dla systemw Linux, UNIX, M a c O S i BeOS, m o n a go pobra ze strony d o m o w e j ( w w w . o p e n l d a p . o r g ) . Jeli korzystasz z systemu Windows, aplikacj moesz pobra ze strony ILEX (http://download.bergmans.us/ openldap). Zwr uwag, e wikszo sieci opartych na platformie Windows wykorzystuje usug Active Directory, ktra wspiera standard L D A P . W celu przetestowania serwera LDAP moesz zastosowa dowoln, nowoczesn przegldark. W y s t a r c z y w p r o w a d z i prefix / d a p w m i e j s c e t r a d y c y j n e g o http, w p i s u j c adres podobny d o poniszego: ldap://ldap. itd. umich. edit
Jeli wykonujesz wiele czynnoci zwizanych z L D A P , warto rozway instalacj programu Luma, ktry jest narzdziem do przegldania i testowania LDAP. Moesz pobra go za darmo na stronie d o m o w e j (http://luma.sourceforge.net). Konfiguracja serwera LDAP nie naley do zada prostych. Dlatego jeeli nie masz dowiadczenia z LDAP. to powiniene zapozna si z jedn z wielu doskonaych publikacji opisujcych t technologi. Wiele cennych informacji znajdziesz w ksice Marka Wilcoksa Implementing LDAP.
Obsuga
Obsuga strony jest rwnie wana, jak waciwa instalacja. C M S w wielu aspektach przypomina o g r d , p o n i e w a n a l e y w y r y w a c h w a s t y , e k s t e r m i n o w a s z k o d n i k i i p r z y c i n a nawet najwspanialsze kwiaty. Dziki utrzymywaniu systemu w dobrym stanie zachowasz dobr wydajno. Dopuszczenie d o tego, aby n i e p u b l i k o w a n e artykuy przytaczay system lub konta nieaktywnych uytk o w n i k w zachcay hakerw, m o e zniweczy wysiki podczas instalacji systemu.
Czyszczenie systemu
Baza danych Joomla! m o e z czasem ulec zamieceniu z p o w o d u iloci niepublikowanych artykuw, nieuywanych menu, nieaktywnych kont uytkownika itd. Czyszczenie systemu mona rozpocz w interfejsie administratora Joomla!. Sporo zada zwizanych z czyszczeniem s y s t e m u z a j m u j e z b y t w i e l e c z a s u , jeli j e s t p r z e p r o w a d z a n y c h z panelu administratora. C z z nich mona w y k o n a szybko, bezporednio manipulujc b a z M y S Q L . Zanim zabierzesz si do rcznego czyszczenia systemu, sprawd koniecznie, czy w katalogu rozszerze Joomla! ('extensions.joomla.org) istnieje rozszerzenie, ktre wykonuje dane zadanie. Rozszerzenia pozwalaj obej wiele ogranicze
301
302
303
Podsumowanie
Zarzdzajc profesjonaln stron Joomla!, musisz pamita, e T w o j e dziaania powinny odpowiada zaoeniom przedsiwzicia. W tym rozdziale opisano sposoby konfiguracji i instalacji Joomla!, a w szczeglnoci: Testowanie fragmentw kodu za pomoc interfejsu tekstowego PHP. Podstawy tworzenia i przywracania kopii zapasowych systemu Joomla!. Tworzenie wirtualnych serwerw w aplikacji Apache. Dostrajanie MySQL w celu najlepszej wydajnoci, w zalenoci od typu instalacji Joomla!.
304
Gwnym punktem tego rozdziau byo zarzdzanie materiaami na stronie. Joomla! zawiera jednak take funkcje czce z zewntrznymi zasobami. W rozdziale 12. opisano sposoby czenia i pozyskiwania treci zewntrznych od kanaw RSS, po screen scraping.
12
czenie z zasobami zewntrznymi
a d n a strona W W W nie p o w i n n a by s a m o t n w y s p . Dziki J o o m l a ! szczeglnie atwo moesz poczy witryn z zewntrznymi zasobami, np. kanaami RSS, transakcjami e C o m merce, za porednictwem technologii EDI (Electronic Data Interchange) czy bazami danych, pobierajc dane w formacie X M L . Stworzono dosownie dziesitki rozszerze, ktre su do wykorzystania zewntrznych zasobw. Jeli nie moesz znale rozszerzenia, ktre m a wymagane moliwoci komunikacyjne, lub musisz skorzysta z niestandardowego protokou, platforma programistyczna Joomla! uatwia stworzenie wasnej aplikacji. W tym rozdziale dowiesz si, jak skonfigurowa stron Joomla!, aby pobiera treci zewntrzne, a take j a k u t w o r z y w a s n y k a n a R S S . D o w i e s z si, j a k u z u p e n i J o o m l a ! , dziki zastosowaniu rozszerze, o programy partnerskie. W kocu, wykorzystujc nabyte umiejtnoci programistyczne, stworzysz wasne rozszerzenia, ktre wykorzystuj dostpne API (implementacja Google Maps) lub interfejs oparty na formacie X M L (usuga wyszukiwania k o d w zip USPS), a take napiszesz prosty program typu screen scraper, ktrego zadaniem bdzie pobranie danych umieszczonych na innej stronie w formacie H T M L .
Kanay RSS
J e d n z technologii, ktra w n a j w i k s z y m s t o p n i u w p y n a na a u t o m a t y z a c j w y m i a n y i n f o r m a c j i , s kanay RSS. U y t k o w n i k o d w i e d z a j c y d a n stron (np. www.CNN.com) m o e p r z e g l d a d o s t p n e m a t e r i a y , o ile j e s t p o d c z o n y d o internetu. Jeli na stronie dostpny jest kana RSS, o d w i e d z a j c y m o e s u b s k r y b o w a go, co s p o w o d u j e p o b i e r a n i e podobnych treci.
306
Rysunek 12.1. Klient poczty Thunderbird wywietla kanay RSS iv formie przypominajcej przegldanie listw elektronicznych
4* Gazeia.pl Plik
4
artykuy Widok
H H K 3 3 D . X
Edycja
Przejd
Pobierz
. /
Napisz
Usu Data
03:27 03:27 03:27 03:27 03:27 03:27
Wszystkie foldery
+ Poczta A k t u a l n o c i i bogi
S Nadawca
Gazeta.pl - a r t y k u y Gazeta.pl - a r t y k u y Gazeta.pl - a r t y k u y . Gazeta.pl - a r t y k u y Gazeta.pl a r t y k u y Gazeta.pl artykuy
f | Kosz
+ fi^y L o k a l n e f o l d e r y
Witamy
Thunderbirdz
pm
f
te
fev-
Program p o c z t o w y Mozilla Thunderbird ma wicej moliwoci ni kiedykolwiek wczeniej. Teraz jeszcze atwiej jest zarzdza wiadomociami w w y g o d n y i bezpieczny sposb.
x B 2
p r
MB
Nieprzeczytane: 8
Razem: 8
SL8TR [IDLE]
T a k e przegldarka Mozilla Firefox zawiera p e w n e e l e m e n t y agregatora. Jeli na stronie, ktr odwiedzasz, dostpny jest kana RSS, na pasku adresu zostanie wywietlona symbolizujca to ikona (co zilustrowano na rysunku 12.2). W tej sytuacji wystarczy klikn ikon i w y b r a opcj subskrypcji za p o m o c dynamicznych zakadek, a nowe wpisy b d pobierane automatycznie.
307
Plik
Edycja -
Widok ?
Historia - ',"'!
Zakadki $
Narzdzia
Pomot
http://ioomiajumpstart.com/
> -
g-;
iySQl :; SeiectaMinor
MAIN MENU
i . w h y do ! need Joomla? 2. How is Joomla! organised? . 3- Joomla! Presentation . F r e q u e n t l y Asked Questions (FAQs) B e g i n n i n g Joomla! < Zakoczono \ In F a r t l . y o u installed a m o d u l e to the Joornla s y s t e m . Part 2 will t a k e y o u ...through the q u i c k a n d simple process of installation a n d c o n f i g u r a t i o n o f a i ^ j ^ ^ j ^ c o m p o n e n t . Components a r e the d o m i n a n t t y p e of extension a n d form the backbone of m u c h of t h e extensible f u n c t i o n a l i t y a v a i l a b l e to t h e Joomla CMS.
' R E A D MORE...
Poniej umieszczono przykadowy adres kanau R S S dla w i a d o m o c i w portalu Gazeta.pl: http://rss.gazeta.pl/pub/rss/wiaclomosci.xml Nagwek i kilka przykadowych wpisw kanau RSS w y g l d a j tak:
<?xml version="1.0" encoding="utf-8"?> <rss xmlns:taxo="http://purl .org/rss/l.O/modules/taxonomy/" channel> <title>Gazeta.pl - artykuy</title> version="2.0">
<1 i nk>http: //serwi sy.gazeta.pl /rss/0.54825,3686466.html</li nk> <description>Najnowsze artykuy z Gazeta.pl</description> <1anguage>pl</1anguage> <copyright><![CDATA[Copyright &#169: Agora SA All rights reserved]]></copyright> <dc:1anguage xmlns:dc="http://purl.org/dc/elements/1.1/">pl</dc:1anguage> <dc:rights xml ns:dc="http://purl.org/dc/el ements/1.1/"><![CDATA[Copyright &#169: Agora SA All rights reserved]]></dc:rights> <image> <title>Gazeta.pl</title> <url>http://www.gazeta.pl/i mg/w/l/gazeta.gi f</url> <11nk>http://www.gazeta.pl</i nk> </image> <item> <title><![CDATA[Biesiadowali w ekskluzywnej restauracji i nie zapacili]]></title> <1 i nk>http://wiadomosci.gazeta.pl /Wi adomosci/1.80277.6063047.Bi esi adowali_w_ekskluzy wnej_restauracji_i_ni e_zapl aci 1 i.html?skad=rss</li nk> <description><![CDATA[Dwudziestu studentw biesiadowao w jednej z najbardziej ekskluzywnych restauracji w Wenecji, a nastpnie po zakoczonym przyjciu opucio lokal nie zapaciwszy rachunku w wysokoci ponad 2000 euro.]]></description> <pubDate>N, 14 gru 2008 20:46:00 GMT</pubDate> <guid>http://wi adomosci.gazeta.pl /Wiadomosci/1.80277.6063047.Bi esi adowali _w_ekskluzy wnej_restauracji_i_nie_zaplaci1 i.html</guid> <dc:date </item> xmlns:dc="http://purl.org/dc/elements/1.1/">2008-12-14T20:46:00Z</dc:date>
308
Na pocztku pliku z n a j d u j si informacje n a g w k o w e dotyczce kanau RSS. Poniej jest sekcja zawierajca banner reprezentujcy kana RSS. Ostatecznie wewntrz elementu <item> s informacje o artykuach, ktre wywietlane s w agregatorze. Kanay RSS staj si coraz bardziej zaawansowane. Podcasty (kanay RSS dla plikw audio) i vodcasty (kanay RSS dla plikw wideo) wykorzystuj praktycznie identyczne pliki jak standardowe kanay. Popularne agregatory multimedialne (np. Times firmy Apple) wykonuj dokadnie te same operacje (np. sprawdzanie kanau pod ktem nowych treci, pobieranie nowych materiaw), ktre wykonuj standardowe czytniki kanaw RSS.
Joomla! makes it easy to launch a Web site of any kind. Whether you want a brochure site or you are building a large online community, Joomla! allows you to deploy a new site tn minutes and add extra functionality as you need it The hundreds of available Extensions will help to expand your site and allow you to deliver n e w services that extend your reach into the Internet A b o u t Jooml.i: Featuie: llM$ The Community
Najnowsze wiadomoci
Horn Joomla? L i t e M o i e about Jooml.i! FAO The Hews Web Link Hews Feeds * Sonda: 52 proc cila K ' i wzrost poparcia dia SL.D Gdyby wybory odbyty si dzi, PO zdobyaby 52 proc. gosw - wynika z sondau TNS OBOP dla programu Forum w TYP Info F;onie te poparcie dla SLD, ktry mgby liczy na 12-procentowe poparcie. Bus zderzy 7 ,1'Rh -k"j!->a o--.ot-a ztinA. .^t ranni Bus, ktrym jechay cztery osoby w tym dziecko, zderzy si z samochodem osobowym w woj. pomorskim. Jedna osoba zgina, osiem zostao rannych.
Popular
Muzumaska r odzina zostaa wyproszona z samolotu po tym jak wsppasaerowie usyszeli ich rozmow o najbezpieczniejszym miejscu na pokadzie - informuje CNN. Linie lotnicze odmwiy rodzinie przebukowania biletw mimo e agenci FBI uznali spraw za nieporozumienie. I I i
i I 1
309
Aby aktywowa modu Feed, otwrz panel administratora i wybierz opcj Moduy. Z n a j d pozycj oznaczon Feed Display i kliknij j. Zostan wywietlone aktualne ustawienia m o d u u przedstawiono to na rysunku 12.4. lysunek 12.4. Jstawienia rioduu okrelaj, ctry kana RSS iraz w jaki iposb bdzie wywietlany
M Podgld
' O
Modul:
[Zmie]
V Zastosuj
Zamknij
Typ. moduu: mod_Feec T.*tu Najnowsi Poka tytu Wazony O Nie (?) Q ^ 0
P.<uneliy moduu Przyrostek klasy moduu .,(..; > ar:V'; http /Ass gazeta pl/pub/rssAjiac K.mt I O O T * i.
E S B S S Zastrzelony Specjalny
;Vik,
O Tak Ni.
Konfiguracj moduu naley rozpocz od ustawienia tytuu moduu, ktry bdzie pojawia si nad list w p i s w . W t y m p r z y k a d z i e u s t a w i o n y zosta tytu Najnowsze wiadomoci. Z m i e p o z y c j m o d u u , aby nie p o j a w i a si w l e w e j k o l u m n i e , p o d i n n y m i m o d u a m i . Moesz wybra pozycj right, aby wpisy pojawiay si w prawej kolumnie. W tym przykadzie zostaa ustawiona pozycja userl, aby nagwki byy wywietlane w grnej r o d k o w e j czci strony. D o d a t k o w e u s t a w i e n i a , u m i e s z c z o n e w p a n e l u Parametry moduu, p o z w a l a j w p y w a na wywietlanie kanau. O p c j o n a l n y p a r a m e t r Przyrostek klasy moduu p o z w a l a ustawi przyrostek dla stylw CSS (dodawanych np. do t a b l e . m o d u e t a b l e ) , w ten sposb m o e s z wpyn na wygld moduu niezalenie od reszty strony. Kolejny parametr pozwala wprowadzi adres kanau RSS. W pole oznaczone Adres kanau w p r o w a d dowolny, p o p r a w n y adres URL, ktry w s k a z u j e kana w formacie R S S lub Atom. Odnoniki do rnych kanaw m o e s z z n a l e w k a t a l o g u RSS. List n a j p o p u l a r n i e j s z y c h k a t a l o g w z n a j d z i e s z na stronie R S S Specifications (www.rss-specijications.com/rss-directory.htm). Poniewa p r z y k a d o w y w t e k z a w i e r a w p i s y w j z y k u p o l s k i m , nie m a p o t r z e b y w c z a n i a opcji Kana RTL (right-to-left od prawej do lewej), ktra jest przydatna dla kanaw w jzykach takich jak mandaryski. Wycz opcje Tytu i Wprowadzenie. Odpowiadaj one za wywietlanie informacji doczonych przez publikujcego kana, przez co nie masz nad nimi kontroli. W przypadku kanau duego portalu, jakim jest Gazeta.pl, nie powiniene martwi si, e na stronie pojawi si niepodane treci, jednak w przypadku niewielkich, niekomercyjnych kanaw RSS (pomimo ciekawych materiaw) ryzykujesz pojawienie si na stronie obraliwych komunikatw. Z w r uwag, e opcja Tytu nie w p y w a na wywietlanie tytuu moduu (na ktrego tre m a s z wpyw).
310
T o by byo na tyle! Z a kadym razem, kiedy uytkownik otworzy stron gwn, na stronie pojawi si najnowsze wpisy z ustawionego kanau RSS wraz z odnonikami do waciwych artykuw (w zalenoci od ustawie m o g pojawi si te wstpy). Funkcjonalno zwizana z kanaami RSS w Joomla! nie jest ograniczona wycznie do odczytywania kanaw. Z a p o m o c Joomla! moesz udostpni wasny kana.
311
TiliriilllHMiaiiiMi 38 P d l d * og 0 ii
Modul: [Zmie]
referencje Typ moduu. mod_syndicate Ty!ul r-:ia twtoi -.-:j Kanal RSS {*} Nie O Tak
*
> Parametry n o t iu td l
Wzn Q coy
Nje
Tak
36 Wywietla graficzne odnoniki do generatorw kanau informacyjnego RSS Twojej witryny. Umoliwia pobieranie i wywietlanie na innych stronach nagwkw wiadomoci z Twojej uuitryny. Pi zypisAiiie m e n u menu' (*) Wszystkie { ) B.ak Wszystl<le Zaznaczone
Rysunek 12.6. Ikona symbolizujca kana RSS wywietlana jest przez modu Syndication, pojawia si take na pasku adresu
ht:/oahs/oma/ tp/lclotjol2
With a library of hundreds of free Exteoiflorrs, you can add what you need site grows Don"! wait, look throughittle Joomla! Extensions library today.
4 Jo0mla!
About Joomla!
The Community
Najnowsze wiadomoci
Sonda: 52 proc- da PO i wzrs popaicia dla SLD Gdyby wybory odbyt/ si dzi, PO zdobyaby 52 proc. gosw - wynika z sondau TNS OBOP dla programu Forum w TVP Info. Ronie te poparcie dla SLD, ktry mgby liczy na 12-procentowe poparcie Bus zderzy -;i z auch Jedna o-:-oba zgina, s ranni Bus, ktrym jechay cztery osoby w tym dziecko, zderzy si z samochodem osobowym w yyoi. ponflHffdm. ^tedna osoba zgjnpjp. yflpnych, .,
Popular
zarejestrowane. Zanim jednak umiecisz stron w katalogu, upewnij si, e kana zawiera przyzwoit ilo materiaw, ktre s regularnie uaktualniane. Wikszo katalogw pozwala uytkownikom ocenia kanay RSS, dlatego jeli Twj kana bdzie kiepski, inni uytkownicy szybko si o tym dowiedz.
312
Rysunek 12.7. Rozszerzenie Auto Articles 3000 wywietla pobrane artykuy, przechowywane w bazie danych Joomla!
C o m p u t e r s and T h e Internet
L e g a l Mattel s
more. Public Relations and the Internet CCMP / BSCI Exam Tutorial: IP Version 6 Zero Compression Cisco CCNACCMP Home Lab Tutorial: Cabli g Your Access Server
Site P r o m o t i o n
more. Calling a Lawyer Should Be a Private Home Sellers First Move The Lemon Law In Florida - Stating The Law As It Affects Consumers The Motion Picture Association Of America And Copyrights
Wei) Development
more. SEO 1 ,2,3 for Dummies Using Your Rotator Site as an Online Secrets ry increase Your Traffic For Free
W i iting
more Dedicated Server Is Better Than Shared Server Finally, Someone Made The Web Design Process Easy To Understand The Power of Effective Brochures
more. Building A Rock Solid Query Letter Publishers Are Standing In Line To Publish Yc u What Is In An Article That Makes It Good Powered by : Free Eine Aticles
Search:: | s e a r c h now... j
Auto Articles 3000 to pakiet komponentw (jeden dla czci frontowej, drugi dla panelu administratora) oferowany jako darmowa usuga firmy Elerion, Ltd. Podstawowa instalacja powoduje wprowadzenie 230 artykuw do bazy danych Joomla!. Nowe s automatycznie pobierane w regularnych odstpach czasu (domylnie jest to 30 minut). Rozszerzenie Auto Articles 3000 moesz pobra na stronie: www. articles3000. com
Moesz okreli tematyk pobieranych artykuw, korzystajc z odpowiedniej opcji w panelu administratora, jak to przedstawiono na rysunku 12.8. Niestety, artykuy pobrane za pomoc komponentu nie s przechowywane w ten sam sposb, jak zwyke artykuy, w tabeli jos_content. Oznacza to, e nowe materiay s niedostpne dla wikszoci funkcji Joomla! (np. wyszukiwania), a take innych rozszerze (np. tych odpowiedzialnych za tworzenie mapy strony). Rozszerzenie przechowuje pobrane artykuy w tabeli jos_a3000_articles, w bazie danych Joomla!. Pamitaj jednak, e j e d n z cudownych cech open source jest jego otwarto! Masz peny dostp do kodu rdowego i danych wikszoci rozszerze. W tym przypadku oznacza to, e moesz rcznie skopiowa artykuy pobrane przez komponent Auto Articles 3000 do tabeli jos_content zawierajcej normalne artykuy Joomla!. Musisz tylko pamita, eby odpowiednio dopasowa warto niektrych pl, takich jak ID sekcji i kategorii (odpowiednio sectionid i catid), aby artykuy zostay odpowiednio zapisane. Kopiowanie artykuw mona wykona, stosujc instrukcj MySQL INSERT INTO. Informacje, jak skonstruowa odpowiednie zapytanie, znajdziesz na stronie: http: //dev. mysql. com/doc/refman/5.0/en/insert-select, html
313
Q Q 0 O
9
Q Q
Kolejnym sposobem ingerencji w funkcjonalno rozszerzenia jest zmiana czstotliwoci pobierania artykuw. Moesz tak j ustawi, aby artykuy byy pobierane czciej ni co 30 minut. Nie jest to moliwe z poziomu interfejsu administratora. Zmiana tego typu wymaga ingerencji w kod rdowy. Otwrz plik zawierajcy kod komponentu w edytorze tekstu, moesz go znale (wzgldem gwnego katalogu Joomla!) w: 1 components \com_a3000\a3000.php
Warto parametru time zwracana jest w sekundach, wic warto 1800 odpowiada 30 minutom. Zmie t liczb wedug upodoba.
314
Po pierwszym uruchomieniu konta Google bd wywietlane wycznie spoeczne ogoszenia (zobacz rysunek 12.9), dopki pracownik Google nie zbada Twojej strony. Po potwierdzeniu zgodnoci z warunkami umowy (brak pornografii, nielegalnych materiaw itd.) zostan wywietlone patne reklamy. Rysunek 12.9. Zanim tre strony zostanie zweryfikowana przez pracownikw Google, bd wywietlane wycznie ogoszenia spoeczne
m
Today
Help Rebuild Lives & Communities in Hurricated States
Have you heard about the Nuts and Bolts Filmmaking book from Focal Press? This book opens the world of professional moviemaking to guerilla filmmakers everywhere. Not only Is the book full of Hollywood techniques, most of the equipment shown in the book can be constructed for under $30. Click on the above link
Program AdSense mona take konfigurowa, np. czy materiay w oddzielne kanay", co pozwala monitorowa reklamy w rnych czciach strony. Zarzdzanie kontem odbywa si z poziomu strony W W W , co zilustrowano na rysunku 12.10. Rysunek 12.10. Ekran administracyjny Google AdSense przedstawia podsumowanie wywietle, przychodw i innych danych
Today's Earnings: $4527.50
View payment history View 1 Today >j Page im ressions
A d S e n s e for C o n t e n t top channels
;.iick$
Page Cid
Earnings 54325.25
A d S e n s e for S e a r c h
CTR
Sign-tips
Conversions [21
Earnings S200 50
A d S e n s e for M o b i l e C o n t e n t - G e t started
Total Earnings
$4527.50
315
W panelu administratora AdSense moesz wygenerowa kod, ktry powiniene wstawi na stron. Jest to fragment napisany w jzyku JavaScript, ktry przypomina poniszy:
<script type="text/javascript"><!-google_ad_client = "pub-xxxxxxxxxx": google_ad_width = 728: google_ad_height = 90; google_ad_format = "728x90_as": google_ad_type = "textjmage": google_ad_channel //--></scnpt> <script type="text/javascr1pt" src="http://pagead2.googlesyndi cati on.com/pagead/show_ads.js "> </script> ="xxxxxxxxxx":
Aby wstawi kod wywietlajcy reklamy AdSense na stronie Joomla!, moesz wykorzysta rozszerzenie o nazwie Mod HTML (http://fijiwebdesign.com). Jest to nieskomplikowany modu, ktry pozwala wywietli dowolny kod HTML lub JavaScript na stronie Joomla!. Domylnie, po zainstalowaniu moduu, tworzony jest jeden egzemplarz o nazwie Htm! Module. Moesz zmieni jego ustawienia, korzystajc z opcji Rozszerzenia/Moduy w panelu administratora pokazano to na rysunku 12.11. ysunek 12.11. kran edycji arametrw loduu Mod ITML pozwala /prowadzi 'owolny kod ITML, ktry ostanie /ywietlony a stronie
Ustaw tytu moduu, aby odpowiada treci (np. GoogleOl, poniewa jest to pierwszy modu zawierajcy reklamy google). Wycz wywietlanie tytuu, wcz pokazywanie moduu na stronie i wybierz pozycj. Waciwy kod wprowad w pole HTML box. Wreszcie kliknij przycisk Zapisz (w prawej grnej czci ekranu), a reklamy Google automatycznie pojawi si w wybranym miejscu. Aby utworzy kolejny egzemplarz moduu wywietlajcego reklamy Google, kliknij przycisk Nowy na stronie Moduy. Zaznacz HTML Module jako typ moduu (zobacz rysunek 12.12), kliknij przycisk Dalej. Od tego momentu konfiguracja przebiega identycznie jak we wczeniejszym przykadzie.
316
Rysunek 12.12. Tworzc nowy egzemplarz moduu, wybierz typ HTML Module
Ota,
O Wpirijtz
Link to a specific product on A m a z o n . c a and show some information about t h a t p r o d u c t . T h e Product Links tool lets y o u build customised T e x t Links, T e x t and Image links, a n d Image only links to A m a z o n p r o d u c t s . Y o u r links will include your A s s o c i a t e tag and y o u will be paid for qualifying revenues coming through this link. Use Product Previews t o e n h a n c e y o u r Product Links. A d d Product Links n o w
t
amaxonmp3
Link to A m a z o n product c a t e g o r i e s and promotions using our stylish graphical banners. Many standard banner sizes and shapes available. S h o w special graphics for special A m a z o n . c a promotions s u c h as Back to School or Mothers Day. Easy t o add, Earn referrals o f up t o 15% o f sales. A d d Banners N o w
J&M
f amazonconi
W panelu programu partnerskiego (zobacz rysunek 12.14) moesz znale informacje na temat skutecznoci reklam, tzn. ile klikni zakoczyo si sprzeda. Warto zwrci szczegln uwag na list produktw, aby okreli, ktre z nich trafiaj w zainteresowania odwiedzajcych, a ktre nigdy nie s wybierane.
Rozdzia 12. czenie z zasobami zewntrznymi ysunek 12.14. V panelu arzdzania najduj si iformacje a temat lopularnoci skutecznoci eklam
317
Earnings S u m m a r y T o t a l items s h i p p e d Referral R a t e ( I n c r e a s e this t o Referral F e e s Gift C e r t i f i c a t e / C a r d Earnings Kindle S u b s c r i p t i o n E a r n i n g s Prime S u b s c r i p t i o n Earnings 6.00% b y referring 7 more items)
Glossary
'J&zs&j
Conversion
0.00%
Do zarzdzania reklamami Amazona moesz wykorzysta jedno z dostpnych rozszerze Joomla!. Moesz zdecydowa si na Mod HTML, ktry zademonstrowano w ramach opisu programu Google AdSense, lub wybra rozszerzenie stworzone specjalnie dla programu partnerskiego Amazona.
318
Joomla!.
S'ryb Z!
i Pdld og
O O
wg yoi ,'
Dodatek: [zmie]
0 Rerwszy
FFFFFF
Use {amazon \i='itm#itiHtr aligns***'} where the id i the amaze s id of the product.<br/> You can find the id by searching amazon.com for a product and looking at the uil.<br /><br /> The ui will look something l k this:<br !> http:/Awi*Ai.amazon.com ie /gp/produ ctf<fo nt co I o r r d > B00005RIY5 <Ho nt>/ief= p d_ka r_giAj_1 = e /002-5997680-7114400?%5 Fencoding=UT F8&v= g I a n ce&n= 130 < b r br /> The highligi
000 000
0000FF
Moesz wstawi dowoln liczb odwoa, ale pamitaj, e kada reklama jest oddzielnie pobierana z serwerw Amazona. W praktyce oznacza to, e dziaanie Twojej strony moe zosta spowolnione, jeli pracuje ona na czu o niskiej przepustowoci lub serwer Amazona * jest przeciony. Jeli produkt nie jest poprawnie wywietlany, sprbuj wyczy na chwil edytor WYSIWYG, a nastpnie ponownie wprowad kod odpowiedzialny za reklamy w tre artykuu. Niektre edytory WYSIWYG niepoprawnie odczytuj kod reklam, co doprowadza do bdw zapisu.
Rozdzia 12. czenie z zasobami zewntrznymi ysunek 12.16. mazon Products eed Brigde czy tron Joomla! ezporednio e sklepem mazon Message from Dean - May 8th 2007
! a m currently testing out a new version of the APF Bridge Component - If you notice any errors within this demo store please drop me a line
319
Books : Categories
Only within this Category v Search
P i eakitKi D a w n tTtm 1 witttttit Saua. Book 41 by. Steahenie Meyer August 02, 2008
List Pt ice: Atn.tzori.coin's Pi ice: 112.64 V o n S a w : $10.35 (45%) Pricsi subject to change.
Pakiet APF Brigde skada si z kilku rozszerze, ktre odpowiadaj za rne funkcje. Poszczeglne rozszerzenia to: Komponent APF Bridge czy bibliotek APF Perl z Joomla!. Dodatek mosAPF_05.b3 We wsppracy z komponentem przeszukuje tre artykuu i wstawia w miejsce znacznikw APF informacje ze sklepu Amazon. Dodatek mosAPF_button Dodaje przycisk do edytora WYSIWYG Joomla!, ktry pozwala wstawi poszczeglne znaczniki APF Brigde. Stosowanie tego rozszerzenia oszczdza czas i zmniejsza ryzyko bdw spowodowanych niepoprawnym wprowadzeniem. Modu modapfsearch Wywietla pole wyszukiwania, ktre umoliwia przeszukiwanie sklepu Amazon w danym kraju.
System APF napisano w Perlu w oparciu o bibliotek cURL, ktr zastosowano do przesyania plikw. Jeli na Twoim serwerze nie zainstalowano biblioteki cURL, nie bdziesz mg uruchomi APF.
320
Joomla!. Profesjonalne tworzenie stron WN 1W EDI (Electronic Data Interchange elektroniczna wymiana danych) to zbir standardw stosowanych przy elektronicznej wymianie informacji midzy organizacjami. Mimo braku rozgosu format ten jest gwnym standardem wykorzystywanym przy wikszoci oglnowiatowych elektronicznych transakcji. Ze wzgldu na gwnym obszar zastosowania (B2B) wikszo implementacji EDI pozostaje ukryta", w przeciwiestwie do spopularyzowanych formatw, takich jak XML. Dziki odpowiednim rozszerzeniom moesz zmieni Joomla! w serwer EDI.
Dokumenty EDI
EDI stosowany jest czsto do automatyzacji realizacji transakcji. Dokumenty EDI mog by przesyane w dowolny sposb, np. przez FTP, HTTP, MIME, bezporednio poczony modem, AS2, AS2 lub VAN. Value Added Network (VAN) to rodzaj zabezpieczonej, prywatnej sieci, oferowanej przez firmy, takie jak INOVIS, GXS i BT*EDINET. Coraz czciej stanowi take warstw zabezpiecze w przypadku przesyania danych przez internet, co zmniejsza koszty i daje wiksze moliwoci przesyu. Korporacja Wal-Mart stosuje standard Applicability Statement 2 (AS2), ktry narzuca model klient-serwer w komunikacji EDI. Standard nakrela list wymaga (np. statyczny adres IP serwera bazowego), ktre ograniczaj ryzyko kompromitacji systemu. Protok AS2 opisano w dokumencie RFC 4130, dostpnym pod adresem: www.ietf.org/rfc/rfc4130. txt
Wikszo dokumentw EDI odpowiada treci oryginalnym, papierowym materiaom, ktre zastpuje. Standardowy format dokumentw okrelono dla wielu bran, np. przemysu maszynowego (plany konstrukcyjne, harmonogram pracy itd.), przemysu medycznego (dane o pacjentach, wyniki bada laboratoryjnych itd.), transportu (faktury, zamwienia itd.). Opisy kilku standardw dokumentw EDI znajdziesz na stronie: http://rapidnet.org/Default.aspx?tabid=486
Standardy EDI
Istniej dwa gwne standardy EDI. Standard ANSI ASC Xl2 (najczciej nazywany po prostu AT/2) jest gwn implementacj wykorzystywan w Stanach Zjednoczonych. W Europie stosowany jest standard United Nations/Electronic Data Interchange For Administration, Commerce, and Transport (UN/EDIFACT), popierany przez ONZ. Standardy dla dokumentw X12 dla rnych bran pogrupowano w kategorie przedstawia je (z odpowiednimi skrtami) tabela 12.1.
321
Standardy okrelajce rne pozycje, w tym porozumienia o wsppracy reklamowej, powiadomienia o bonach, faktury/zlecenia kupna/zmiany zlece kupna artykuw spoywczych, faktury, utrzymanie artykuw, bony producentw i wykup bonw, katalogi handlowe, zlecenia zakupu i potwierdzenia tych zlece, charakterystyki kont, powiadomienia i potwierdzenia zwrotw, listy przewozowe oraz powiadomienia o wysyce i zafakturowaniu. Standardy zwizane z ewidencj zasobw, zapytaniami o artykuy, reklamacj materiaw, badaniem zobowiza materiaowych, statusem i zatwierdzaniem cen, informacj o cenach, zatwierdzaniem (lub wycofaniem zatwierdzenia) produktw probami o oferty cenowe, zamwieniami oraz odpowiedziami na oferty cenowe. Definicje dotyczce kont firmowych, elektronicznej rejestracji formularzy podatkowych i potwierdze ich zoenia, rozlicze dochodw i aktyww, zawiadcze o stanie zatrudnienia, powiadomie o upowanieniach udzielonych penomocnikom, oceny lub korekty nalenoci podatkowych, owiadcze o uzyskanych dochodach, informacji statystycznych oraz wymiany informacji podatkowych. Standardy okrelajce sposb raportowania o odwiedzonych klientach, raporty z analiz dedukcyjnych, przydzia funduszy rozwojowych, odpowiedzi na oferty przetargowe, powiadomienia o korektach stanu magazynowego, powiadomienia o przewozach magazynowych, zamwienia przewozu, powiadomienia 0 odbiorze przekazanego towaru do magazynu oraz powiadomienia o wysyce towaru z magazyn li. Definicje dotyczce analizy kont, ich rozdziau i informacji oraz obsugi i statusu, informowania o obcieniach, kontroli oglnego obcienia, raportowania sprzeday komisowej, wycigw z konta/faktur dotyczcych usug skonsolidowanych, korekt po stronie winien" i ma", zatwierdzania obcie, raportw finansowych, zawiadomie o zwrotach finansowych, faktur przewozowych, podsumowania dziaalnoci operacyjnej, faktur, depozytw, sprawozda z wydatkw operacyjnych, wnioskw o uniewanienie patnoci oraz zawiadomie o zleceniach zakupu 1 przelewach. Standardy dotyczce podmiotw gospodarczych, nakazw sdowych i egzekucyjnych, wnioskw sdowych, elektronicznej rejestracji potwierdze zoenia formularzy podatkowych, wnioskw o przyznanie koncesji przez Federaln Komisj cznoci, rekompensat okresowych, sprawozda zwizanych z opatami licencyjnymi, informacji statystycznych, powiadomie o stawkach podatkowych, informacji o stawkach podatkowych lub zwrocie podatku z tytuu ubezpieczenia od utraty pracy, okrelenia jednolitych kodw handlowych oraz informacji o rejestracji wyborcw. Standardy dotyczce raportowania danych o kosztach zwizanych z wykonawcami, potwierdze lub korekt dostawy/zwrotu, zapisu bazowego dostaw/zwrotw, zapyta/informacji o towarach, zapyta o statusie zamwienia, raportw o statusie zamwie, planowania harmonogramu z uwzgldnieniem moliwoci wydania towarw, danych na temat funkcjonowania produktw, korygowania zapisu transferu produktw, raportw o odsprzeday i transferze produktw, kolejnoci produkcji, odbioru potwierdzenia (akceptacji) certyfikatu oraz odpowiedzi w sprawie korekty zapisu transferu produktw.
Magazyny (WAR)
Finanse (FIN)
Urzdowe (GOV)
Produkcja (MAN)
322
Tabela 12.1. Kategorie formatw dokumentw standardu X12 cig dalszy Kategoria Dostawy (DEL) Co zawiera Standardy dotyczce przydziau zada zwizanych z transportem, rachunkw i faktur przewozowych, informacji zbiorczych na temat bezporednich dostaw do sklepw, zamwie na usugi logistyczne, odpowiedzi od usugodawcw logistycznych, zbiorczego zestawienia adunku dla przewonikw, dokumentacji zlecenia usugi transportowej, odpowiedzi na przydzia zada transportowych, instrukcji zwizanych z tras i przewonikiem, zgoszenia adunku (manifest przewozowy), powiadomie o wysyce i zafakturowaniu, informacji o rozbienociach w dostawie wysanego towaru, informacji wysykowych orazhannonogramu przewozu. Standardy dotyczce klauzul i postanowie umownych, treci czci skadowych, streszcze umw, statusu sfinalizowania umowy, raportw dotyczcych zarzdzania patnociami wynikajcymi z umowy, propozycji cenowych w umowach, raportowania danych o kosztach kontrahentw, pogbiania komunikacji, zmiany przydziaw zada logistycznych, utrzymania zamwie usugowych, historii cen, powiadomie o zaopatrzeniu, zachowania wymiarw produktw, raportowania kosztw projektu, raportowania harmonogramu projektu, specyfikacji (informacji technicznych), charakterystyki partnerw handlowych, przegldu wynikw sprzeday oraz innych informacji. Standardy okrelajce dziaalno rentow, szczegy przegldu pojazdw samochodowych, pobierane korzyci i wiadczenia, zawiadczenia o ubezpieczeniu przewoonego adunku, raporty o stanie roszcze i ledzenie odpowiedzi na wnioski, ledzenie realizacji wiadcze, warunki i zakres przyznawania ich oraz informacje 0 ich wysokoci, zapytania o warunki nabycia wiadcze, zakres i wysoko wiadcze, wiadczenia zdrowotne, zawiadomienia/patnoci dotyczce wiadcze zdrowotnych, powiadomienia o statusie wiadcze zdrowotnych, proby o status wiadcze zdrowotnych, informacje o dostawcy usug medycznych, informacje na temat usug medycznych, wnioski o ubezpieczenie na ycie i przyznanie renty inwalidzkiej, opis systemu ubezpiecze, dane na temat agenta ubezpieczeniowego, raportowanie wymogw ubezpieczeniowych, status wnioskw o ubezpieczenie/rent, wiadczenia dotyczce utraty lub zniszczenia pojazdw samochodowych, zgaszanie wypadkw medycznych, informacje o pacjentach, zawiadomienia o stratach losowych 1 utracie mienia, raporty o zniszczeniu mienia, raporty dotyczce urazw ciaa, chorb i wypadkw losowych, usugi informacji ubezpieczeniowej oraz orzeczenia wypaty. Definiuje komunikaty usug kryptograficznych, ledzenie statusu danych, struktur formularzy elektronicznych, transfer plikw, potwierdzenia funkcjonalne, zapytania oglne, odpowiedzi lub potwierdzenia, potwierdzenia rezerwacji, listy adresowe, anulowanie ustale oraz komunikaty tekstowe. Standardy dotyczce wnioskw o przyznanie wiadcze na podstawie ubezpiecze hipotecznych, informacji o zdolnoci kredytowej, raportw o kredycie hipotecznym, zamwienia raportu o kredycie hipotecznym, statusu domylnego poyczki hipotecznej, wpisu do ksigi wieczystej, powiadamiania o zmianie zapisw dotyczcych wasnoci lub hipoteki, raportu o nieruchomoci, proby o raport o nieruchomoci, inspekcji nieruchomoci, informacji o spacie nieruchomoci, dokumentowania tytuu do nieruchomoci, zamwienia usug ubezpieczenia tytuu do nieruchomoci, wnioskw o poyczk mieszkaniow, wnioskw o ubezpieczenie hipoteczne, odpowiedzi na wniosek o ubezpieczenie hipoteczne, raportu o dodatkowym zabezpieczeniu hipotecznym inwestora oraz przekazania dodatkowej poyczki hipotecznej.
Hipoteka (MOR)
323
Jako i bezpieczestwo Standardy okrelajce dane toksykologiczne z testw przeprowadzanych na zwierztach, uprawnienia do prowadzenia samochodw dostawczych, (SQQ) wymian informacji na temat uprawnie do prowadzenia samochodw dostawczych oraz ich bezpieczestwa, karty charakterystyk substancji niebezpiecznych, protokoy niezgodnoci, raporty z wynikami testw oraz dania 1 raportowanie wynikw testowych. Informacje dla studentw (STU) Definiuje podania o przyjcie do instytucji edukacyjnych, ewidencj kursw edukacyjnych, podania o stypendium i pomoc finansow, wnioski o wydanie zawiadcze z przebiegu studiw (wycigi), odpowiedzi na wnioski o wydanie zawiadcze z przebiegu studiw (wycigi) i powiadczenia, potwierdzenia przyjcia na studia, wnioski o kredyt studencki, porczenia kredytw studenckich, nakaz zwrotu kredytu studenckiego oraz weryfikacj statusu i spaty kredytu studenckiego.
Europejski standard U N / E D I F A C T zosta z a a k c e p t o w a n y przez ISO j a k o standard 9735. Nie uwzgldniono w nim okrelonego zestawu kategorii jak w X l 2 . Zamiast tego d o k u m e n t y zdefiniowano w formacie wiadomoci identyfikowanych przez skrty przedstawione w tabeli 12.2. abela 12.2. Skrty Metoda Skrt APERAK AUTACK. AUTHOR BANSTA BAPLIE BAPLTE BOPBNK BOPCUS BOPDIR BOPINF CALINF CASINT UN/EDIFACT Opis Znaczenie Bdy transmisji i potwierdzenia Bezpieczne uwierzytelnianie i potwierdzanie Autoryzacja Stan realizacji zlece bankowych Plan rozmieszczenia adunku i wolne miejsca Oglna liczba towarw lub ilo adunku Rozliczenia bankowe i zestawienie transakcji Zestawienie salda patnoci klienta Deklaracja bezporedniego salda patnoci Informacja od klienta na temat salda patniczego Informacja o przybyciu statku Proba o wystpienie na drog sdow w postpowaniu cywilnym
324
Tabela 12.2. Skrty UN/EDIFACT cig dalszy Metoda CASRES CHAMAP COARRI CODECO CODENO COEDOR COHAOR COLADV COMDIS CONAPW CONDPV CONDRA CONDRO CONEST CON1TT CONPVA CONQVA CONRPW CONTEN CONTRL CONWQD COPARN COPINO COPRAR COREOR COSTCO COSTOR CREADV CREEXT CREMUL CURRAC CUSCAR Opis Wystpienie na drog sdow w postpowaniu cywilnym Tablica odwzorowa Raport o wyadowaniu (zaadunku) kontenera Raport przyjcia (odprawy) kontenera Powiadomienie o gotowoci do klarowania statku/wyganiciu pozwolenia Raport o stanie kontenerw Zamwienie specjalnej obsugi kontenera Zawiadomienie o dokumentacji Spr handlowy Informacja o pracach do wykonania Oszacowanie patnoci bezporedniej Zarzdzanie plikami planw projektowych Organizacja i struktura planw projektowych Okrelenie warunkw kontraktu Zawiadomienie o przetargu Oszacowanie patnoci Oszacowanie iloci Odpowied na powiadomienie o pracach do wykonania Oferta przetargowa Komunikat kontrolny Okrelenie liczby elementw roboczych Zgoszenie kontenera Zawiadomienie o kontenerze Polecenie wyadowania (lub zaadowania) kontenera Polecenie zwolnienia kontenera Potwierdzenie wyadowania (zaadowania) zawartoci kontenera Polecenie wyadowania (zaadowania) zawartoci kontenera Zawiadomienie o udzieleniu kredytu Szczegowe zawiadomienie o udzieleniu kredytu Wielostronne zawiadomienie o udzieleniu kredytu Rachunek biecy Zgoszenie adunku do odprawy celnej
325
326
Tabela 12.2. Skrty UN/EDIFACT cig dalszy Metoda ITFMBF IFTMBP IFTMCS 1FTMIN IFTMSC 1FTRIN IFTSAI 1FTSTA IFTSTQ IHCEBI INSPRE INVOIC INVRPT ITRGRP ITRRPT JAPRES JIBILL JINFDE JOBAPP JOBCON JOBMOD JOBOFF MEDADR MEDAUT MEDPID MEDREQ MEDRPT MESGEV MIGRPT MOVINS ORDCHG Opis Rezerwacja staa Rezerwacja tymczasowa Status wykonania instrukcji zawartych w umowie Instrukcja transportowa Spedycja i transport pojedynczej przesyki Informacja o tempie spedycji i transportu Harmonogram spedycji i transportu oraz informacje o dostpnoci towaru Informacja o statusie midzynarodowego transportu multimodalnego Proba o status midzynarodowego transportu multimodalnego Interaktywne zapytania i odpowiedzi na temat uprawnie i wiadcze z tytuu ubezpieczenia zdrowotnego Skadka ubezpieczeniowa Faktura Raport magazynowy Przeadunek na trasie przewozu Szczegowy raport o przeadunku na trasie przewozu Wyniki przegldu poda o przyjcie do pracy Sprawozdanie rozliczeniowe wsplnego udziau Proba o informacje na temat pracy Przedstawienie ofert osb ubiegajcych si o przyjcie do pracy Potwierdzenie zlecenia pracy Modyfikacja zlecenia pracy Zlecenie pracy Niepodane dziaanie leku Wstpna autoryzacja medyczna Identyfikacja osoby Proba o usug medyczn Wyniki badania medycznego Wydarzenie towarzyskie Zgoszenie instrukcji wdraania wiadomoci (MIG, ang. Message implementation guide) Instrukcja rozmieszczenia i zamocowania adunku Proba o zmian zamwienia
327
328
Tabela 12.2. Skrty UN/EDIFACT cig dalszy Metoda SAFHAZ SANCRT SCRIPT SKDACK SLSFCT SLSRPT SSCLDE SSDREQ SSIMOD SSRECH SSREGW STATAC SUPCOT SU PM AN SUPRES TANSTA TESTEX TESTIM TINREQ TINRSP TRADES TRADIN TRAILS TRALOC TRAREQ TRAVAK TRAVIN VATDEC VESDEP WKGRDC WKGRRE Opis Dane na temat bezpieczestwa i materiaw niebezpiecznych Regulacje prawne dotyczce midzynarodowego przewozu towarw Zapytania i odpowiedzi dotyczce recept komunikat interaktywny Potwierdzenia harmonogramu Prognoza sprzeday Raport sprzeday Decyzja w sprawie wiadczenia z opieki spoecznej Proba o przesanie danych dla opieki spoecznej Zmiana danych identyfikacyjnych Historia ubezpieczeniowa pracownika Powiadomienie o zarejestrowaniu pracownika Wycig z konta Zawiadomienie o skadkach na fundusz emerytalny Obsuga funduszu emerytalnego Odpowied dostawcy Raport o stanie zbiornikw Komunikat testowy w trybie jawnym Komunikat testowy w trybie ukrytym Proba o informacje turystyczne Odpowied na prob o informacje turystyczne Definicje opisu podry i ruchu ulicznego Szczegowe informacje na temat trasy podry lub ruchu ulicznego dotyczce pojedynczego podrujcego Planowanie i wskazwki dotyczce trasy podry i ruchu ulicznego Lokalizacja trasy lub pooenia w ruchu ulicznym Proba o informacje na temat trasy podry lub ruchu ulicznego Potwierdzenie informacji na temat trasy podry lub ruchu ulicznego Informacja o sytuacji na trasie podry lub w ruchu ulicznym Podatek VAT Wypynicie statku Decyzja w sprawie dodatku pracowniczego Proba o przyznanie dodatku pracowniczego
329
Rozszerzenie Skylark
Za pomoc rozszerzenia Skylark moesz zmieni Joomla! w serwer EDI. Skylark umoliwia zarzdzanie partnerami handlowymi, procesami biznesowymi, protokoami komunikacyjnymi, a take konwerterami formatw dokumentw. Nie ma ogranicze odnonie do typw obsugiwanych dokumentw, przetwarzane s zarwno przychodzce, jak i wychodzce dokumenty. Rozszerzenie Skylark skada si z zestawu komponentw i moduw. Obsugiwane s nastpujce transporty (protokoy komunikacyjne): Generic (oglne, np. FTP, SMTP i POP3), ARI (wykorzystuje HTTP), Honda (wykorzystuje IBM MQ), Stihl (wykorzystuje HTTP).
Po ukoczeniu instalacji zostanie wywietlony odnonik do wprowadzenia (zobacz rysunek 12.17). Warto zapozna si z jego treci, poniewa wyjania podstawowe zasady dziaania komponentu. Rysunek 12.17. Wybierz Skylark introduction aby zapozna si ? przydatnymi informacjami wprowadzajcymi
SkylaikEDlit>a,lllaIi<msircciissrtll
"
.
Please read the following notes. Before Skylaik EDI can actually be used for anything you will need to i s a l and configure additional Skylaik ntl EDI modules. This can be a ltl involved and so you are strongly advised to read the Skylaik EDI Administration Manual for information on how ite
ble by clicking on the "Help" menu i e t individual pages within Skylark EDI car This i the fourth alpha release of Skylark EDI. An alpha release i a version of the software that i sil in development and probably has features, s s s tl sometimes important features, missing or not woiking. Features that are woiking may be changed without notice, be broken by a future release, or simply be removed. In short, an alpha release i not suitable for a production environment. s I you are upgrading from a previous release then you will need to update your database schema. Update scripts are available to a s s you. but f sit please read the section on updating Skylaik in the Administration Manual for f l instructions. Substantial changes have been made to drivers for ul this release. I you have produced your own drivers for earlier releases of Skylark EDI then you w l need to amend them before they w l work f il il correctly with this release. Refer t the Skylaik EDI Developers Manual and the release notes for further information. o The following shortcuts w l take you directly to specific pages in the help system ( t i not s r c l necessary to c i k on "Continue" at this point). il i s tity lc
330
331
Rewolucyjny rozrost popularnoci aplikacji graficznych oznacza spory problem dla organizacji, ktre zainwestoway ogromne iloci czasu i pienidzy w tekstowe programy napisane z myl o komputerach typu mainframe. Nie mino dziesi lat, a aplikacje tekstowe z nowinek technologicznych zmieniy si w zabytek. Niezbdne okazao si przepisanie aplikacji, tak aby korzystay z nowych paradygmatw GUI. Jeszcze wikszym wyzwaniem, ni ogrom pracy programistycznej, bya konwersja danych przechowywanych w tych specyficznych systemach. W czasie projektowania tych systemw nie stosowano oglnych standardw, poniewa nie byy one jeszcze zdefiniowane. W ten sposb zmiana formatu danych staa si wielkim wyzwaniem. Na scenie pojawiy si wtedy screen scrapery. Screen scraper by programem poredniczcym midzy aplikacj tekstow a uytkownikiem lub bardziej zaawansowanym programem pobierajcym dane. W przypadku aplikacji graficznych screen scraper to warstwa porednia midzy interfejsem graficznym, ktry by czci frontow systemu, a waciw aplikacj tekstow, pracujc w tle. Dane byy odczytywane z wydrukw programw tekstowych i przesyane do aplikacji graficznych. W ten sposb uytkownik mg korzysta ze wszystkich nowoczesnych udogodnie, takich jak moliwo cofania, wycinania, kopiowania i wklejania (a take wielu innych). Gdy uytkownik klikn przycisk Zapisz, screen scraper przesya dane do waciwej aplikacji tekstowej, symulujc wprowadzanie danych z klawiatury. Czciej zadaniem screen scraperw byo filtrowanie informacji z wydrukw, generowanych przez aplikacje tekstowe. Otrzymywane dane byy nastpnie przesyane do nowego systemu, np. systemu zarzdzania baz danych (DBMS). Wraz z upywem czasu i spadkiem zastosowania aplikacji tekstowych screen scrapery traciy na znaczeniu i popularnoci. Wikszo organizacji wymienia stare systemy na zgodne ze standardami serwery baz danych, ktre umoliwiay du elastyczno przechowywanych danych. Znikna konieczno stosowania programw typu screen scraper, poniewa zgodny ze standardami system przechowywania danych pozwala na dostp do nich za porednictwem aplikacji middleware dowolnego typu. Wraz z wybuchem popularnoci HTML wszystko si zmienio. Niemale z dnia na dzie udostpniono ocean danych w niezaszyfrowanym, publicznym i atwo dostpnym formacie. Wszystkie informacje publikowane na stronach WWW, dostpne dla przegldarek internetowych, s dostpne take dla programw zbierajcych, ktre przetwarzaj pobrane dane, aby zapisa je lub wywietli w innym formacie. Poniewa PHP posiada wbudowane funkcje zwizane z obsug HTTP, stosunkowo prosto mona napisa program, ktry pobiera kod HTML danej strony internetowej, a nastpnie wyszukuje na niej podane informacje. Implementacja takiego programu w postaci komponentu Joomla! nie sprawia wikszego problemu.
332
Joomla!. Profesjonalne tworzenie stron WN 1W Problemem technicznym zwizanym z wykorzystaniem screen scrapera jest brak standardowego API, ktre umoliwia dostp do danych. W praktyce oznacza to, e kada zmiana na stronie zewntrznej moe spowodowa, e Twj program przestanie dziaa, poniewa zakada, e dane pojawi si w okrelonym formacie. W przeciwiestwie do czowieka, ktry jest w stanie odczyta informacje poprawnie, niezalenie od tego, czy wywietlono je w trzech, czy czterech kolumnach, program musi kierowa si cisymi reguami przy zbieraniu informacji. Z tego powodu screen scraper moe dzisiaj dziaa bezbdnie, a jutro nie dziaa wcale. Zastosowanie aplikacji tego typu wymaga cigego nadzoru. Kolejny aspekt techniczny zwizany jest z dziaaniami dcymi do zablokowania scrapera. Niektre organizacje aktywnie zwalczaj aplikacje tego typu, poniewa pobieraj informacje, marnotrawic cze internetowe i inne zasoby. Dodatkowo ich zastosowanie eliminuje potrzeb odwiedzenia strony, na ktrej pojawiy si materiay, zapobiegajc np. wywietleniu reklam, ktre s rdem zysku dla waciciela. Biorc pod uwag problemy prawne, moe si okaza, e zwielokrotnianie informacji ze zdalnej strony na Twojej witrynie jest nielegalne, chocia informacje s publicznie dostpne. Dziaa tutaj ta sama zasada, jak przy kopiowaniu artykuw i twierdzeniu, e jest si ich autorem to plagiat. Dla materiaw dostpnych w sieci kwestie zwizane z prawem autorskim s bardzo niejasne. Niektre strony s kompilacj informacji z innych rde, co utrudnia ustalenie oryginalnego rda. Ponowna publikacja w zmienionym formacie dodatkowo utrudnia cay proces. Dodatkowym problemem natury prawnej mog by warunki korzystania z danej strony. Google na przykad zabrania korzystania z aplikacji typu screen scraper, o czym pisze w dokumencie Warunki korzystania z serwisw spki Google". Mimo e bardzo atwo mona pobra informacje udostpniane w Google, jest to dziaanie nielegalne. Chocia moesz by w stanie pobra informacje i opublikowa je na swojej witrynie bez konsekwencji prawnych, moe by to dziaanie nieetyczne. Bez adnych wtpliwoci program, ktry automatycznie pobiera dane z danego serwera WWW, zuywa jego zasoby. Mona take zaoy, e waciciel tej strony nie zamierza opublikowa informacji, aby byy one dostpne dla programu, a nastpnie ponownie wykorzystane w nieznanym celu. Obok tych niejednoznacznych sytuacji istnieje sporo zastosowa, dla ktrych screen scraping jest szalenie uyteczn technik. Wiele rzdowych stron WWW zawiera informacje, ktre s dostpne za darmo i do dowolnych zastosowa. Ich powszechno finansowana jest z pienidzy podatnikw (np. komunikaty ministerstwa zdrowia). Czsto informacje te umieszczane s w trudno dostpnych miejscach lub s podane w tak niejasnej formie, e ponowna publikacja w zmienionym formacie moe by zaklasyfikowana jako suca dobru publicznemu. Pamitaj, e nawet publiczne bazy danych zawieraj czasem ostrzeenia przed automatycznym pobieraniem danych. Przykadowo Warunki korzystania z usug Google zawieraj poniszy fragment, ktry wyklucza nieautoryzowane zastosowanie screen scrapera: Uytkownik zgadza si nie uzyskiwa dostpu do usug Google inaczej ni za porednictwem interfejsu oferowanego przez Google w celu uzyskiwania dostpu do usug Google z wyjtkiem przypadkw wyranie dozwolonych w osobnej umowie na pimie.
333
Chocia opisana w tym rozdziale technologia moe suy do pobierania informacji praktycznie z dowolnych stron, czyli take z tych, ktre tego zabraniaj, powiniene szanowa wol ich wacicieli i nie stosowa aplikacji typu screen scraper w takich wypadkach.
Po wyszczeglnieniu najwaniejszych punktw komponentu moemy przej do fazy konstrukcji, aby uzyska efekt przedstawiony na rysunku 12.18. Rysunek 12.18. Screen Scraper wywietli na stronie sformatowane informacje oobrane z zewntrznego rda
i 1. Hemingway
Category: book By: Lynn, Kenneth Schuyler Published: 1987 Language: English Details Check Availability
]
mmJ>
2. 2, Hemingway
Category: book By. McDowell, Nicholas Published: 1989 Series. Life and works Language. English Check Availability i
334
Plik deskryptora
Plik deskryptora w tym przypadku jest prymitywny, suy wycznie do zarejestrowania komponentu w systemie. Wprowad poniszy kod w edytorze tekstu i zapisz go pod nazw comscrape.xml:
<?xml version="1.0" encoding="utf-8"?> type="component"> install version="1.5.0" <name>Scrape</name> <author>Dan Rahmel</author> <creationDate>July 2007</creationDate> <copyright>(C) 2007 Dan Rahmel. Wszystkie prawa zastrzeone.</copyright> <authorEmail>admin@joomlajumpstart.org</authorEmai1> <authorllrl >www.jooml a jumpstart. org</authorUrl > <versi on>l.0.0</versi on> <description>Pobiera warto pola z formularza, wykonuje zapytanie na zdalnej stronie i zwraca odczytane <fi les> <filename </files> <admini stration> <menu>Scrape</menu> <fi les> <fi lename </files> </admini stration> <params> <param name="url" type="text" default".gov" label="Strona zewntrzna" description="Adres strony, z ktrej zostan pobrane informacje." /> </params> </i nstal1> component="com_scrape">scrape.php</filename> component="com_scrape">scrape.php</filename> informacje.</description>
informacje
'_JEXEC' ) or die(
335
SmyGet = "": SmyAgent = "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1:" " en-US: rv:1.8.1) Gecko/20061010 Firefox/2.0\r\n"; SmyApp = "Content-Type: appl ication/x-www-form-urlencoded"; Sfp = fsockopen(SmyUrl. 80. SerrNum. Serrstr. 30): if (!Sfp) { return "Bd #". SerrNum . "przy pobieraniu strony.<br />\n"; } else { Sout = "GET " . SmyPath . " HTTP/1.0\r\n": Sout .= "Host: ". SmyUrl . "\r\n"; Sout .= SmyAgent . SmyApp . "\r\n"; Sout .= "Connection: Close\r\n\r\n"; fwrite($fp, Sout); while (!feof($fp)) { SmyGet .= fgets(Sfp, 128); } fclose(Sfp); Spattern = "/<ol class=\"result\">(,*)<\/ol>/s": preg_match(Spattern. SmyGet. Smatches): return SmatchesEO]:
// Wywietl formularz
function displayQueryEntryO { ?> <hl class="contentheading">Formularz zapytania</hl>
336
<input type="submit" name="Submit" value="Wywietl wyniki" /> </p> </form> <?php } ?>
Umie oba pliki w archiwum o nazwie com_scrape.zip i zainstaluj komponent w systemie Joomla!. Zadaniem tego kodu jest po prostu wycicie fragmentu zawierajcego wyniki i wstawienie go na Twojej stronie. W przypadku zmiany strony musisz dopasowa wyraenie regularne przekazywane funkcji preg_match(), aby pobierany by waciwy fragment kodu HTML.
Komponent Joomlamap
Google udostpnia darmow usug, ktra pozwala webmasterom wstawi na swoich stronach zdjcie satelitarne lub map (lub oba elementy jednoczenie) danej okolicy. Poniewa mapa pobierana jest z serwera Google (informuje o tym stosowny komunikat), zawiera odpowiednie znaki wodne, ale take dodatkowe dane. Jest to rekompensata dla Google za to, e usuga jest darmowa. Chocia dostpny jest ju komponent, ktry czy API Map Google z systemem Joomla!, samodzielna implementacja takiego rozszerzenia ma wysok warto dydaktyczn, pozwala Ci zrozumie, jak funkcjonuje komunikacja ze zdalnym API. Interfejs komponentu pozwoli uytkownikowi wprowadzi adres w pole tekstowe, jak przedstawiono to na rysunku 12.19. Rysunek 12.19. Wprowad adres w pole adresu komponentu Joomlamap
ViVswlGt lokalizacj
Gdy uytkownik kliknie przycisk Wywietl lokalizacj, komponent zostanie przeadowany, tym razem warto parametru task bdzie ustawiona na goto. Komponent odczyta warto z formularza, za pomoc procedury geokodowania przetumaczy podany adres na dugo oraz szeroko geograficzn i wywoa API Map Google w celu wywietlenia odpowiedniej mapy, jak przedstawiono to na rysunku 12.20.
Rozdzia 12. czenie z zasobami zewntrznymi ysunek 12.20. Component oomlamap przedstawiajcy sidok satelitarny siatk ulic
337
Twoja lokalizacja
Lokalizacja Gryfino
El
]
i
C i i O L ^ ^ a r t o mapy 2008 PPWK Tete Atlas * Wr do Joomlamap Copyright 2009 Open Source Matters Wszelkie prawa zastrzeone. Joornlal jest wolnym oprogramowaniem dostpnym na licencii GNU GPL.
Aplikacja internetowa Mapy Google tworzy obiekt map, ktry mona manipulowa za pomoc kodu JavaScriptu, aby ustawi takie parametry, jak lokalizacja, zblienie, typ widoku (widok ulic, satelitarny, hybrydowy) i inne.
ejestracja w systemie
Kada strona, ktra korzysta z API Map Google, musi mie przypisany unikatowy klucz. Jeli klucz wysany wraz z daniem mapy bdzie niewaciwy, mapa nie zostanie zwrcona. Oznacza to, e musisz mie oddzielny klucz dla serwera testowego i serwera produkcyjnego. Dodatkowo system Google rozrnia wielko liter w adresie, dlatego klucz przypisany stronie www.przyklad.com/mapa nie zadziaa na stronie www.przyklad.com/Mapa. Aby zdoby klucz, musisz zarejestrowa si na poniszej stronie: www.google, com/apis/maps/signup.html
lik deskryptora
Plik deskryptora w tym przypadku jest prymitywny, suy wycznie do zarejestrowania komponentu w systemie. Wprowad poniszy kod w edytorze tekstu i zapisz go pod nazw com Joomlamap.xml:
<?xml version="1.0" encoding="utf-8"?> <instal1 version="1.5.0" type="component"> <name>Joomlamap</name> <author>Dan Rahmel</author> <creationDate>July 2007</creationDate> <copyright>(C) 2007 Dan Rahmel. Wszystkie prawa zastrzeone.</copyright> <authorEmai1>admi n@joomlajumpstart.org</authorEmai1> <authorUrl>www. joomlajumpstart .org</authorllrl> <versi on>l.0.0</versi on> <description>Komponent wywietla map odpowiadajc adresowi wprowadzonemu w pole tekstowe</descri pti on> <files> <fi1ename </files> component="com_joomlamap">joomlamap.php</fi1ename>
338
<?php * @version $Id: joomlamap.php 5203 2007-06-15 02:45:14Z DanR $ * @copyright Copyright (C) 2007 Dan Rahmel. Wszystkie prawa zastrzeone. * @package Joomlamap * Komponent czcy z usug Map Google, wywietla map dla wprowadzonego */
adresu
bezporedni
dostp
'_JEXEC' ) or die( Brak dostpu' ): warto parametru task i uruchom 'task' )) { waciw funkcj
displayAddressEntryO; break;
// Przetwrz
dane przesane
w {
formularzu
function gotoLocation()
SuserKey = $params->get('key', 0); // Pobierz warto poa location z formularza IfldLocation = JRequest::getVar('location') : // Usu wszystko, co mogoby by kodem HTML itp. $fldQuery = preg_replace("/[^a-zA-Z0-9 //" echo "<hl>Twoja ?> lokalizacja</hl>": . "<p>": echo "<p>Lokalizacja: " . SfldLocation
339
function showAddresstaddress) { if (geocoder) { geocoder,getLatLng( address. function(point) { if (!point) { alertiaddress + " not found"): } else { map.setCenter(point. 13); var marker = new GMarker(point); map.addOverlay(marker); marker.openlnfoWindowHtml(address); map.addControl (new GSmalIZoomControl O):
);
i //]]> loadO; showAddress('<?php echo ifldLocation; </script> <?php echo "<a href=index.php?option=com_joomlamap>" . "Wr do Joomlamap</a>": ?>'):
}
// Wywietl formularz do wprowadzania adresu
function displayAddressEntryO { ?> <hl class="contentheading">Formularz wyszukiwania mapy</hl> <form id="forml" name="forml" method="post" acti on="i ndex.php?opti on=com_joomlamap&task=goto"> <p>Wprowad adres:<br /> <textarea name="location" cols="60" rows="l" </p> <p> <input type="submit" name="Submit" value="Wywietl lokalizacj" /> id="location"></textarea>
</p>
</form> <?php } ?>
340
Utwrz archiwum zawierajce oba pliki pod nazw comjoomlamap.zip i zainstaluj w systemie Joomla!, korzystajc z opcji Rozszerzenia/Instalator. Po przejciu do ustawie komponentu moesz ustawi klucz dostpu do Map Google.
W wiadomoci e-mailowej, ktr otrzymasz, znajdzie si take adres serwera testowego. Adres ten moe przyj posta http://testing.shippingapis.com/ShippingAPlTest.dU lub https://secure.shippingapis.com/ShippingAPITest.dll (adresy mog si rni). Intencj USPS jest dopuszczanie do gwnej bazy wycznie dokadnie przetestowanych aplikacji. Tym sposobem oszczdzane s zasoby USPS, ktre zostayby zmarnowane, jeli diagnostyka byaby przeprowadzana z uyciem gwnego serwera.
1
Narzdzie USPS pozwala wyszukiwa adresy na terenie Stanw Zjednoczonych, dane na temat pastw europejskich s niedostpneprzyp. tum.
341
amodzielne testy
Jeli dysponujesz ju ID uytkownika, moesz samodzielnie sprawdzi dziaanie serwera i przekona si, czy Twoja przegldarka wywietli pobrane dane. Poniej znajduje si (wzity z podrcznika na stronie USPS) adres sucy do testw:
http: //NAZHASERWERA/ShippingAPITest. dl 1 ?API=Z1pCodeLookup&XML= <Zi pCodeLookupRequest%20USERID="IDUZYTKOUNIKA"> <Address ID="0"><Addressl></Addressl> <Address2>6406 Ivy Lane</Address2> <City>Greenbelt</City><State>MD</State> </Address></ZipCodeLookupRequest>
Adres zosta zapisany w kilku wierszach, aby atwiej byo go odczyta, pamitaj jednak, e przy wprowadzaniu musisz poda cay cig jako jedn lini. Nie zapomnij take wstawi w miejsce NAZWASERWERA i ID U YTKO WNIKA informacje, ktre otrzymae w wiadomoci potwierdzajcej rejestracj. Po wprowadzeniu adresu i naciniciu klawisza Enter Twoja przegldarka powinna pobra informacje i wywietli j e w postaci drzewa X M L (zobacz rysunek 12.22). irsunek 12.22. obrane lformacje zostan ywietlone ' przegldarce ' postaci rzewa XML
<?xml version="1.0" ?> <ZipCodeLookupResponse> Address ID="0"> <Address2>6406 IVY LIM</Address2> <City>GREENBELT</City> <State>MD</State> <Zip4>HBk/Zip4> </Address> </ZipCodeLookupResponse>
W przypadku bdu pobierania informacji upewnij si, czy wprowadzie poprawn nazw serwera i ID uytkownika. Jeli bd nadal wystpuje, poszukaj informacji w podrczniku na stronie USPS, poniewa format adresu mg si zmieni. Zauwa, e zwrcony kod ZIP zosta zamaskowany, poniewa pochodzi z serwera testowego penego dostpu do systemu waciwe informacje pobierane s z gwnej bazy danych po tym, jak aktywujesz w peni swoje konto'.
E-mail wysyany po rejestracji w systemie zawiera dokadne informacje, jakie kroki naley podj, aby uzyska dostp do gwnej bazy danych przyp. tum.
342
Joomla!. Profesjonalne tworzenie stron WN 1W Wprowad poniszy kod i zapisz go pod nazw ziptest.php w gwnym katalogu serwera testowego:
<html><meta http-equiv="Content-Type" content="text/html; <hl>Test Wyszukiwarki kodw ZIP</hl> <?php $myWTID= "MOJE ID": SmyAddress = "6406 Ivy Lane": SmyCity = "Greenbelt": SmyState = "MD": SmyUrl = "http://testing.shippingapis.com/ShippingAPITest.dll?" "API=ZipCodeLookup&XML=<ZipCodeLookupRequest "<Address ID='0'><Addressl></Addressl>" . "<Address2>" . SmyAddress . "</Address2>" . . SmyState . "</State>" . "<City>" . SmyCity . "</City><State>" "</Address></Zi pCodeLookupRequest>": echo SmyUrl: echo "<hr />"; try { @Sdoc = DOMDocument::load($myUrl); } catch(DOMException $e) { echo '<p>': printr(Se): echo '</p>': USERID='" . charset=utf-8"><body>
. SmyWTID .'">" .
foreach (Sparams as Sparam) { echo "ID=" . Sparam ->getAttribute('ID').'<br>'; echo "<hr />"; Sparams = Sdoc->getElementsByTagName(* Zi p5'): foreach (Sparams as Sparam) { echo "Zip 5=". Sparam ->textContent .'<br>': // getAttrlbuteC'ID')
Sparams =
Sdoc->getElementsByTagName('Zip4'):
foreach (Sparams as Sparam) { echo "Zip 4=". Sparam ->textContent ,'<br>': // getAttributet'ID') } ?> <h2>Gotowe.</h2> </body> </html>
343
Nie zapomnij przypisa zmiennej $myWTID waciwego ID uytkownika. Jeli otworzysz ten plik w przegldarce 3 , powinna zosta wywietlona strona podobna do tej, ktra jest przedstawiona na rysunku 12.23. Jeli prba zakoczya si powodzeniem, w dolnej czci powiniene znale odpowiednie wartoci Zip 5 i Zip 4. ysunek 12.23. ikrypt ziptest.php 'obiera z serwera ISPS kod ZIP 'la ustalonego dresu
Gotowe. Jeli test zakoczy si niepowodzeniem, to dziki komunikatom na ekranie powiniene wiedzie w przyblieniu, gdzie wystpuje problem. Test rozpoczyna si od wywietlenia adresu serwera wraz z przesanym daniem. W kolejnym kroku pojawia si pena odpowied serwera (format XML), a nastpnie wyniki przeszukiwania drzewa XML trzy wartoci. W przypadku bdu moesz porwna otrzymany wydruk z poprawnym, zilustrowanym na rysunku 12.23, aby znale rnice.
lik deskryptora
Plik deskryptora jest bardzo prosty i suy do instalacji komponentu w systemie. Wprowad poniszy kod w edytorze tekstu i zapisz go pod nazw comzipfinder.xmt
<?xml version="1.0" encoding="utf-8"?> <install version="1.5.0" type="component"> <name>zi pfi nder</name> <author>Dan Rahmel</author> <creationDate>July 2007</creationDate> <copyright>(C) 2007 Dan Rahmel. Wszystkie prawa zastrzeone.</copyright> <authorEmail>admi n@joomlajumpstart.org</authorEmai1 > <authorllrl>www. jooml ajumpstart. org</authorllrl> <version>1.0.0</version> <description>Pobiera dane w formacie XML z wykorzystaniem parametru.</description> <fi les> <fi 1ename component="com_zi pfi nder">zi pfi nder.php</fi 1ename> </files> <administration> <menu>Zip Finder</menu> <files> <fi1ename component="com_zi pfi nder">zi pfi nder.php</fi 1ename> </files> </administration>
Plik naley uruchomi za porednictwem serwera WWW, wpisujc przykadowo http://loca!host/ziptest.php przyp. tum.
344
Kod komponentu
Komponent Zipfinder wywietli formularz pozwalajcy wprowadzi adres, miasto i stan. Wartoci tych pl umieszczane s w daniu wysyanym do serwera USPS, ktry zwraca wyniki w formacie XML. Wprowad poniszy kod w edytorze tekstu i zapisz go pod nazw\zipfinder.php\
<?php /** * @version SId: zipfinder.php 5203 2007-06-15 02:45:141 DanR $ * @copyright Copyright (C) 2007 Dan Rahmet. AU rights reserved. * @package ZipFinder * Odczytuje warto parametru, nastpnie wysya danie do zdalnego * pobiera i wywietla sformatowany wynik */ // zablokuj defined( bezporedni dostp 'Brak dostpu' ); funkcj
serwera,
'_JEXEC' ) or dieC
// W zalenoci od parametru task wywoaj waciw switch( JRequest::getVar( 'task' j) { case 'query': doExecuteQuery(); break: default: displayQueryEntryO: break:
// Przetwrz dane pobrane z formularza function doExecuteQuery() { // Pobierz przesiane dane ifldAddress = JRequest::getVar('address') : ifldCity = JRequest::getVar('city') ; ifldState = JRequest::getVar('state') : // Usu ponisze 3 linie po zakoczeniu testw ifldAddress = "6406 Ivy Lane"; ifldCity = "Greenbelt": ifldState = "MD"; // Usu wszystkie niepodane znaki ifldAddress = preg_replace("/ra-zA-Z0-9 .?!i()\'\"]/". "", ifldAddress); ifldCity = preg_replace("/ra-zA-Z0-9 .?!$()\'\"]/". "". ifldCity); ifldState = preg_replace("/[ A a-zA-Z0-9 .?!i()\'\"]/". "". ifldState): imyData = getZIp($fldAddress. ifldCity. ifldState); echo "<hl>Znaleziony kod ZIP</hl>": echo "<p>Dla adresu: " . ifldAddress . "," . ifldCity . "," . ifldState . "</p> echo "<h2>Zip+4: " . imyData . "</h2>"; echo "<a href=index.php?option=com_zipfinder>" . "Powrt do wyszukiwarki</a>";
345
. SmyWTID .'">" .
}
Szip5 = ""; Szip4 = "": Sparams = Sdoc->getElementsByTagName('Zi p5'); foreach (Sparams as Sparam) { if (strlen(Szip5) > 0) Szip5 .= ". ": Szip5 .= Sparam ->textContent:
}
Sparams = Sdoc->getElementsByTagName('Zi p4'): foreach (Sparams as Sparam) { if (strlen(Szip4) > 0) Szip4 .= ". "; Szip4 .= Sparam ->textContent :
}
return Szip5 . "-" . Szip4;
}
// Wywietl formularz wyszukiwania
function displayQueryEntry() { ?> <hl class="contentheading">Formularz wyszukiwania kodu ZIP</hl> <form id="forml" name="forml" method="post" acti on="i ndex.php?opti on=com_zi pfi nder&task=query"> <p>Wprowad adres: <INPUT type="text" name="address" size="80" ><BR> <p>Wprowad miasto: <INPUT type="text" name="city" size="30" ><BR> <p>Wprowad skrcon nazw stanu: <INPUT type="text" name="state" size="2" ><BR> </p> <p> <input type="submit" name="Submit" value="Znajd kod ZIP" /> </p> </form> <?php } ?>
Utwrz archiwum zawierajce oba pliki i korzystajc z opcji Rozszerzenia/Instalator, w panelu administratora, zainstaluj komponent w systemie. Uruchomienie komponentu spowoduje wywietlenie formularza, ktry naley wypeni, wprowadzajc poprawny
346
adres. W zaprezentowanej wersji adres jest ignorowany, zamiast tego wykorzystywany jest adres wprowadzony na stae w kodzie rdowym, a danie wysyane jest do serwera testowego. Otrzymany adres ZIP wywietlany jest na stronie, jak to pokazano na rysunku 12.24. Rysunek 12.24. Komponent Zipfinder wywietla kod ZIP dla przykadowego adresu
Zi p+4 : H K i i i i S l l
Powrt do wyszukiwarki
Po przeprowadzeniu penej aktywacji i uzyskaniu dostpu do gwnego serwera USPS powiniene dopasowa adres serwera, a take usun trzy linie kodu narzucajce wyszukiwany adres.
Podsumowanie
Dostp do zasobw zewntrznych z poziomu strony Joomla! rozszerza moliwe zastosowania systemu. W tym rozdziale opisano sposoby interakcji z sieciami zewntrznymi, a w szczeglnoci: Pobieranie zewntrznych materiaw przez kanay RSS i za pomoc rozszerzenia Auto Articles 3000. Stosowanie kanaw RSS wraz z analiz uytego formatu. Publikowanie materiaw na stronie w postaci kanaw RSS lub Atom, dostpnych dla odwiedzajcych. Implementowanie obsugi programw partnerskich Google i Amazon w celu zarabiania na prowadzeniu strony. Adaptowanie rozszerzenia Skylark EDI w celu umoliwienia komunikacji zgodnej z EDI ze stron Joomla! w roli serwera. Programowanie wasnego rozszerzenia typu screen scraper, ktre pobiera dane tekstowe z zewntrznej strony WWW. Wykorzystywanie internetowego API (takiego jak AP1 Map Google) w kodzie komponentu po to, aby doda funkcjonalno usug zewntrznych na stronie Joomla!. Tworzenie komponentu wysyajcego danie w formacie XML do zewntrznego serwera (w tym przypadku jest to USPS). Odpowied, w formacie XML, jest pobierana, przetwarzana, a odczytane informacje wywietlane s na stronie.
Komunikacja z zasobami zewntrznymi moe rozszerzy zakres funkcji Twojej witryny, co moe przeoy si na wzrost popularnoci. Oba te czynniki wpywaj na pozycj Twojej strony na stronach wynikw rnych wyszukiwarek internetowych. W rozdziale 13. opisano kilka innych rozwiza, ktre pomog Ci zoptymalizowa stron pod ktem jak najlepszej pozycji w wynikach wyszukiwania.
13
Pozycjonowanie i marketing w wyszukiwarkach internetowych
Nie ma wikszego sensu utrzymywa strony, ktrej potencjalni uytkownicy nie mog znale. Sprawienie, by bya zauwaalna w wyszukiwarkach internetowych, jest jednym z najwaniejszych aspektw skutecznego zarzdzania ni. Techniki SEO (Search Engine Optimization) sprawi, e Twoja strona bdzie znajdowa si wyej w rankingach wyszukiwarek internetowych. W tym rozdziale opisano rne aspekty pozycjonowania stron zwizane bezporednio z Joomla!. System Joomla! zawiera kilka funkcji, ktre pozytywnie wpywaj na ranking. Wbudowane funkcje uatwiaj robotom internetowym indeksowanie strony, co przekada si na lepsze odzwierciedlenie jej zawartoci. Istnieje take grupa oglnych technik, ktre o ile stosowane s konsekwentnie, wspomagaj pozycjonowanie. W tym rozdziale przedstawiono pokrtce take aspekty marketingu w wyszukiwarkach internetowych (SEM Search Engine Marketing), patnych reklam, ktre wpywaj na wzrost ruchu na Twojej stronie. Techniki SEM s bezporednio zwizane z SEO, jednak due, komercyjne organizacje zatrudniaj najczciej firmy od SEM (np. The Search Agency), ktre zajmuj si wszystkimi kwestiami zwizanymi z wyszukiwarkami internetowymi. Z drugiej strony, mae i niekomercyjne strony kad wikszy nacisk na SEO, ze wzgldu na niski (lub zerowy) koszt implementacji. Poniewa wikszo stron Joomla! jest redniej lub maej wielkoci, w rozdziale przedstawiono gwnie techniki SEO. Pamitaj, e techniki zwizane z pozycjonowaniem stron ulegaj cigym zmianom. Dziaania, ktre dzisiaj winduj ranking strony, jutro mog znaczco straci na znaczeniu. Jednak adna z opisanych w tym rozdziale technik nie wpynie negatywnie na pozycj strony. Dlatego nawet jeli w przyszoci strac one na znaczeniu, cigle warto bdzie je stosowa.
348
Ustawienia Joomla!
Programici Joomla! zdaj sobie spraw ze znaczenia pozycjonowania strony. Dlatego system ten zawiera kilka usprawnie, ktre pozytywnie wpywaj na ranking. Jeli powicisz odrobin czasu na dostrojenie konfiguracji systemu, a nowe materiay bdziesz dodawa ze starannoci i dbaoci o szczegy, to korzystajc z wbudowanych funkcji Joomla!, wpyniesz na pozycj strony w wynikach wyszukiwania. Zmiana kilku globalnych opcji ma natychmiastowy wp Z tego powodu implementacja poytecznych funkcj w interfejsie administratora.
Proste adresy
Domylnie wszystkie odnoniki w ramach witryny Joomla! odwouj si do jednego pliku (,index.php), waciwa strona, menu lub artyku wybierane s za pomoc parametrw w acuchu dania. Przykadowo standardowy adres artykuu wyglda tak: http://www.przyklad.com/index.php?Itemid=27&option=com_content , Taka strategia jest bardzo mylca dla robota internetowego. Robot internetowy (program, ktry indeksuje strony WWW) nie rozpoznaje zbyt dobrze sensu parametrw podanych z acuchu dania. acuch dania z reguy suy do przechowywania parametrw ustawionych przez odwiedzajcego zwizanych z wywietlaniem pewnych treci. Przykadowy adres strony, ktra wykorzystuje acuch dania do tego celu, mgby wyglda tak: http://www.przykad, com ?userid=98239992107& viewsetting=A TVPDKIKXODER Robot internetowy nie powinien zapisywa wartoci tych parametrw. W ten sposb powstaje trudno w rozrnianiu, ktre parametry odnosz si do ustawie uytkownika, a ktre wpywaj na wybr prezentowanych materiaw. Z tego powodu parametry acucha dania s czsto ignorowane przez roboty internetowe, take domylna konfiguracja adresw w systemie Joomla! bardzo negatywnie wpywa na pozycj strony. Na szczcie istnieje rozwizanie tego problemu ustawienie Proste adresy, ktre mona znale na ekranie trzy opcje zwizane z prostymi adresami: Proste adresy, Korzystaj z modrewrite i Adresy z przyrostkiem. Jeli aktywujesz opcj Proste adresy, adres danego artykuu w systemie Joomla! bdzie przypomina poniszy: http://www.przyklad.com/index.php/tytid-artykidu Powyszy przykad dokadnie spenia wymagania, pozwalajc robotowi internetowemu poprawnie zaindeksowa stron WWW. Jest to nowa technika wprowadzona w Joomla! 1.5. Powyszy adres powoduje uruchomienie pliku index.php w nim znajduje si kod odczytujcy cay adres, na podstawie ktrego zwracana jest odpowiednia strona. Rozwizanie to dziaa zarwno w przypadku serwera Apache, jak i IIS.
Rozdzia 13. Pozycjonowanie i marketing w wyszukiwarkach internetowych fsunek 13.1. / Joomla ostpne s a ekranie onfiguracji ''iobainej trzy stawienia wizane prostymi dresami
349
Konfiguracja globalna
X
" " t - 1 " > > a :
*"
'S N. O Tk i i
.y*>y=k-
,,,.. 0Tlk
Jedynym wymaganiem do poprawnego dziaania tej funkcji na serwerze Apache jest wczona (ustawienie On) dyrektywa AcceptPathlnfo. Wicej informacji na temat tej dyrektywy moesz znale na stronie dokumentacji Apache: http://httpd.apache.Org/docs/2.0/mod/core.html. Jeli powysza dyrektywa zostaa wyczona (niektrzy dostawcy usug internetowych wybieraj tak konfiguracj), pozostaje Ci aktywacja opcji Korzystaj z mod rewrite, ktra powoduje tworzenie odnonikw w postaci: http://www.przyklad.com/home/44-pierwszy-artykul-w-joomla W przeciwiestwie do poprzedniej opcji (wywoanie pliku index.php, ktry interpretuje przekazany adres) ustawienie Korzystaj z mod rewrite opiera si na funkcjonalnoci moduu serwera Apache o nazwie mod_rewrite. Jego dziaanie polega na tumaczeniu adresw, tzn. na podstawie regu zdefiniowanych w pliku .htaccess wywoywane s odpowiednie pliki. Do poprawnego dziaania tej funkcji niezbdna jest zmiana nazwy pliku htaccess.txt, ktry znajduje si w gwnym katalogu Joomla! na .htaccess. Jeli korzystasz z systemu Windows i sprbujesz przeprowadzi t operacj za p o m o c Eksploratora, zostanie wywietlony komunikat o bdzie. Rozwizaniem tego problemu jest uycie komendy ren z wiersza polece, ktra suy do zmiany nazwy pliku. Pamitaj, e odpowiednie opcje naley wczy, zanim zarejestrujesz stron w wyszukiwarkach internetowych. Jeli aktywujesz nowe funkcje po zaindeksowaniu strony (lub po tym, jak na innych stronach pojawiy si ju odnoniki do Twojej witryny), strona moe straci w rankingu, poniewa zaindeksowane wczeniej adresy nie s j u dostpne. Jeli dotychczas korzystae ze starszej wersji Joomla! z wczonym rozszerzeniem SEF, upewnij si, e po uaktualnieniu korzystasz z tego samego dodatku. Schemat tworzenia adresw w Joomla! 1.5 rni si pewnie od tego stosowanego przez stare rozszerzenie, dlatego wszystkie odnoniki wedug starego schematu spowoduj wystpienie bdu 404 strona nieznaleziona, co ma bardzo destrukcyjny wpyw na pozycj danej witryny. Jeli przenosisz materiay ze statycznej witryny do systemu Joomla!, a wczeniejsza wersja strony zostaa ju zarejestrowana przez roboty internetowe, wykorzystaj jedno z rozszerze do tworzenia prostych adresw (np. OpenSEF) zamiast wbudowanych funkcji Joomla!. Inne rozszerzenia pozwalaj Ci samodzielnie okreli, pod jakim adresem bd dostpne poszczeglne artykuy i kategorie. Moesz w ten sposb stworzy take taki zestaw regu dziki ktremu nowe adresy bd odpowiaday strukturze starej, statycznej wersji strony, a to z kolei sprawi, e cay proces konwersji bdzie niezauwaalny dla robotw internetowych.
350
Metadane
Jednym z najwaniejszych i niewidocznych aspektw SEO s odpowiednie metadane, czyli informacje o informacjach. W przypadku stron W W W metadane zawieraj opis artykuu, list sw kluczowych i informacje o stronie, ktre pozostaj niewidoczne dla odwiedzajcych, odczytywane s jednak przez roboty internetowe. Jeli otworzysz stron w edytorze tekstu, to w czci nagwkowej znajdziesz znaczniki przypominajce ponisze:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="description" content="Ministerstwo Sprawiedliwoci - urzd administracji powoany przez Prezesa Rady Ministrw w celu obsugi urzdujcego Ministra Sprawiedliwoci." /> <meta name="GENERATOR" content="Microsoft FrontPage 4.0"> <meta name="keywords" content="Ministerstwo Sprawiedliwoci, wymiar sprawiedliwoci, sprawiedliwo, sdownictwo, sdy. Prokuratura Krajowa, prokuratura. Minister Sprawiedliwoci. Prokurator Generalny, Prokurator Krajowy, justice, judiciary, sd apelacyjny, sd okrgowy, sd rejonowy, prokuratura apelacyjna, prokuratura okrgowa, prokuratura rejonowa, zwalczanie przestpczoci, przestpczo, wiziennictwo, notariat, notariusze, adwokatura, adwokaci, komornicy, radcy prawni, rejestr zastaww, zastaw rejestrowy. Krajowy Rejestr Sdowy, Krajowy Rejestr Karny. Centralny Zarzd Suby Wiziennej, prawa ofiary" /> <meta name="ProgId" content="FrontPage.Editor.Document">
W kodzie HTML umieszczono znaczniki metadanych, ktre zawieraj informacje o danej stronie. Znacznik z atrybutem name ustawionym na description zawiera krtki opis strony. Znacznik z atrybutem name ustawionym keywords zawiera list sw kluczowych, ktre najlepiej odpowiadaj treci strony. Znaczniki z atrybutem name ustawionym na GENERATOR i ProgID zawieraj informacje o programie wykorzystanym do tworzenia strony (bardzo rzadko wykorzystywane przez roboty internetowe). Wszystkie te dane zapisywane s przez robota internetowego podczas indeksowania i wykorzystywane w rnym stopniu do wyliczenia pozycji danej strony.
Opis
tttyt 1 y
system
'.t..., H . | . -. .-.- j o o m l a .
Polskie
Centrum
Joomla!
Tytuy i m t a b w e l l a,no, I M * ! * *
. O
Nfe
Tak
Me
Tak
351
etadane artykuu
W systemie Joomla! kady artyku ma wasne metadane, ktre mona ustawi w panelu Metadane przy wprowadzaniu treci artykuu (zobacz rysunek 13.3). Dostpne pola to Opis (description), Sowa kluczowe (keywords), Roboty (robot) i Autor (author). Zostan one umieszczone w sekcji <head> wygenerowanego dokumentu HTML dla danego artykuu. tsunek 13.3. ariel Metadane, o prawej stronie dytora artykuw, moliwia prowadzenie pisu, sw luczowych, stawie robotw iternetowych informacji autorze
II
ID aitykuhi: Status
19 Opublikowane
Odsony 146 Wyczy Postawiony 13 razy l l t w o i z o n y poniedziaek, 09 padziernik 2006 07 4 Poprawiony niedziela, 04. listopad 2007 16:50 P a r a m e t r y : artyku P a r a m r y : ro; Metad systemu z i t r e c i Joomla 1 ruchu open soui
c f
t * ystem cj
t?
jood news! 3oomlal 1.5 s free, It Is released under an Open Source s v 2.0. H^d y o y I iri a mainstream. commercial alternative, >ur walet arK! to a i d new functionality w o j d probably mean taking out ited something addhgl
dels rbr content management software For a start, It's r for everybody, and lybody can develop It further. I ; free, software s u ; a r up, MySQL, and Apache
W przeszoci tekst zawarty w sekcji keywords mia bardzo due znaczenie, poniewa sowa kluczowe suyy robotom internetowym do kategoryzowania stron. Zmienio si to, poniewa spamerzy naduywali tej funkcji tak intensywnie, e aktualnie wiele robotw internetowych zupenie ignoruje metadane. Niektre wyszukiwarki nadal jednak zapisuj te informacje, dlatego warto powieci odrobin czasu i uzupeni odpowiednie pola. Najwaniejszym polem dla kadego artykuu jest Opis. Chocia znaczenie pola keywords (Sowa kluczowe) spado, wikszo wyszukiwarek nadal respektuje opis strony. Czsto ta informacja wykorzystywana jest j a k o krtki opis strony w wynikach wyszukiwania. Przykadowo wspomniane wczeniej metadane s dla Google opisem strony (zobacz rysunek 13.4). Dlatego zawarto pola description mona traktowa j a k o dodatkow zacht dla odwiedzajcych.
352
Rysunek 13.4. Metaznacznik description wykorzystywany jest przez wyszukiwarki przy wywietlaniu opisu strony na licie wynikw wyszukiwania
Grafika
Wiadomoci
Wideo
Grupy dyskusyjne
Gmaii
wiece) '
Zlgi aou
Wyniki 1 - 1 0 spord okoto 46.200 dla zapytania Nnts alul Bolls Fllmmaking. (Znaleziono w 0.08 sek.)
Filmmaking is a site focused on Nuts .mil Bolts Filiiim<ikiiitj including storytelling , shooting tips, motion graphics, film technology, 3D rendering, ... > www cvisual.com/ - 36k - f-opm - F'odobne stiony - Filtr
Filmmaking - Nuts arid Bolts arid Guerilla, your source for Nuts and in-II'Mii ]
Linki sponsorowane
Nuts and Bolts Filmmaking - Elsevier Nuts <m<l Bolts Filmmaking, an ideal book for the rapidly growing number of low- budget filmmakers, provides how-to information on the day-to-day techniques ... www.else--ier.com/vvps/product/cvvs_hom8/702196 - 31k - hopi* - Podobne irony - Filtr
Writers Store. Nuts and Bolts Filmmaking Practical Techniques ... - [ Hum
Rysunek 13.5. Joomla! ma wbudowan funkcj nawigacji okruszkowej, ktra wpywa na pozycj strony
J o o m l a !
Joomla! Overview
Yesterday all servers iri the U.S. went out on strii more R A M and better CPUs. A spokes person sa for better R A M was due to some fool increasing t speed. In future, buses will be told to slow down i motherboards. News T h e Community Szukaj...
Overview
Modu Breadcrumbs znajdziesz, wybierajc z menu w interfejsie administratora opcj Rozszerzenia/Moduy. Ekran ustawie tego moduu zilustrowano na rysunku 13.6. Modu ma kilka ustawie, np. moliwo ustawienia Znaku rozdzielajcego. Domylnie symbol rozdzielajcy stanowi dwa znaki wikszoci ( ) . Rysunek 13.6. Moesz zmieni ustawienia moduu Breadcrumbs w interfejsie administratora Modu:
Szczegy y p moduu: mod_bi e.idcrumbs Tytu; Bteadcrumbs Poka tytu: Wtoczony: Pozycja: Kolejno: Poziom dostpu: [Zmie]
O O
Nie
'S' Tak
v
Tekst elementu startowego Home Znak rozdzielajcy Pt zyr ostek klasy moduu Parametry: rozssersone
breadcrumb
ID: 35 Opis: Wywietla ciek powrotu. Przypisanie m e n u Pozycje menu: Poycie wybrane: Wszystkie O Brak O Zaznaczone A
353
Kapa strony
Im bardziej elementy nawigacyjne uatwiaj poruszanie si po stronie, tym lepsz pozycj bdzie miaa witryna w rankingach wyszukiwarek. Mapa strony stanowi narzdzie, ktre pozwala zarwno wyszukiwarkom, jak i uytkownikom odnale wszystkie materiay na stronie. Map strony mona traktowa jak gwny spis treci, odnonik do niej znajduje si zazwyczaj jako jedna z ostatnich pozycji w menu nawigacyjnym. Na szczcie istnieje spora liczba rozszerze, ktre automatycznie generuj mapy strony w Joomla!.
ozszerzenie Joomap
Spord wielu rozszerze do generowania mapy strony (poszukaj na extensions.joomla.org) najpopularniejsze i najczciej stosowane jest rozszerzenie Joomap. Cech rozszerzenia jest korzystanie z arkusza stylw odpowiedniego dla aktualnie ustawionego szablonu, dlatego wygld mapy strony odpowiada reszcie witryny, jak pokazano to na rysunku 13.7. lysunek 13.7. Rozszerzenie loomap wywietla nap strony, korzystajc ' arkusza stylw istawionego szablonu
Site Map
Joomap tworzy map strony, ktra zawiera normaln struktur menu, list sekcji i kategorii, a nawet list kategorii Virtuemart (o ile zainstalowano to rozszerzenie). Dodatkow funkcj jest tworzenie mapy strony w formacie XML, ktrego wymaga usuga Google. Istniej take wtyczki dla Joomap, ktre pozwalaj na indeksowanie elementw innych aplikacji internetowych, np. Gallery2.
ioogle Sitemaps
Google udostpnia internetow usug, ktra polega na automatycznym tworzeniu mapy strony i zarzdzaniu ni. Wikszo komponentw (take Joomap) wykorzystuje API Google do poczenia z usug Google Sitemaps. Rejestracja w tym systemie poprawia indeksowanie strony przez robota Google. Wicej informacji na temat usugi znajdziesz na stronie: https://www.google.com/webmasters/tools/sitemaps
354
Oglne techniki
Aktywacja kilku funkcji Joomla! poprawi indeksowanie strony przez roboty internetowe, jednak nie bdzie miaa dramatycznego wpywu na jej pozycj. Ale istnieje grupa technik, ktre mona zastosowa na kadej stronie (nie tylko tych opartych na Joomla!) w celu poprawienia pozycji w wynikach wyszukiwania. Wiele z opisanych sposobw wie si z modyfikacj kodu HTML strony, ktra poprawiaby jej pozycj. Pamitaj jednak, e najwikszy wzrost pozycji zwizany jest ze zdobywaniem odnonikw z innych, popularnych stron. Dlatego powiniene powici najwicej czasu na zdobywanie linkw zewntrznych. Techniki zwizane z pozycjonowaniem stron mog sta si nieaktualne tu po tym, gdy zostan upublicznione. Pamitaj, e Twoim celem jest odwie wyszukiwark od spenienia jej gwnego zadania bezstronnego przedstawiania informacji. Wyszukiwarki internetowe tworzone s w taki sposb, aby jak najlepiej odpowiaday zapytaniu uytkownika i dostarczay najwartociowszych wynikw. Oprcz podstawowych technik, np. ustawiania waciwych tytuw stron, celem SEO jest przedstawienie Twojej witryny jako porzdnej, wartociowej i solidnej. Dlatego programici wyszukiwarek staraj si wyprzedzi " specjalistw stosujcych techniki SEO, aby w wynikach wyszukiwania nie pojawiay si strony, ktre nie s zwizane z danym zapytaniem.
Gwne wyszukiwarki
W czasie, kiedy pisaem t ksik, najwiksz i najpopularniejsz wyszukiwark byo narzdzie firmy Google. Kilka lat wczeniej t pozycj zajmowa produkt Yahoo!. Cofajc si jeszcze o kilka lat, bardzo trudno byoby wyoni dominujcy program. Celem wyszukiwarki jest dostarczenie Ci podanych informacji. Jeli jutro pojawiaby si wyszukiwarka XYZ, ktra dziki unikatowej technologii byaby lepsza od dzisiejszy rozwiza, za kilka lat mogaby opanowa rynek. Obecnie wydaje si, e Google dysponuje efektywn technologi wyszukiwania, ktr trudno powieli, mimo wielu wysikw firm takich k Yahoo!. Natura wyszukiwarek internetowych sprawia, e nowa technologia mogaby atwo zdeklasowa rozwizanie firmy Google. W przeciwiestwie do typowych programw komputerowych, ktrych typow cech s trudnoci przy zmianie aplikacji (gwnie z powodu danych przechowywanych w formacie danego programu), uytkownicy mog zmieni wyszukiwark, wprowadzajc po prostu inny adres. Od zakoczenia prac nad t ksik do dnia, w ktrym Ty j czytasz, sytuacja moga ju si zmieni, poszczeglne produkty mogy uplasowa si na innych miejscach. W czasie, gdy pisaem t ksik, gwnymi wyszukiwarkami (wedug znaczenia) byy: Google, Yahoo!, MSN i Ask Jeeves. Aby uzyska jak najlepsze wyniki technik SEO, warto poszczeglnym wyszukiwarkom powici czas proporcjonalny do ich udziau w rynku.
355
Jeli nie wiesz, od czego zacz wyszukiwanie, sprbuj znale dany temat w encyklopedii, np. Wikipedii (http://pl.wikipedia.org/wiki/Strona_gl0wna). Istnieje spora szansa, e znajdziesz terminy zwizane z dan tematyk.
356
Po wprowadzeniu wstpnej listy w odpowiednie pole narzdzia Google Adwords Tools otrzymasz pokrewn list sw kluczowych (zobacz rysunek 13.8). Domylnie wszystkie sowa kluczowe sortowane s w porzdku alfabetycznym. Moesz zmieni to ustawienie, klikajc nagwek odpowiedniej kolumny. Rysunek 13.8. Za pomoc narzdzia Google Adwords Tools moesz znale list podobnych sw kluczowych dla tych wprowadzonych
wj.im u i w o i z o n e propozycje srow Kluczowych;' '-*) Opisowe sowa lub wyraenia wprowauz pu jeunyrrrg wierszu: Samcdoskonaenie Rozwj osobisty Uyj synonimw Filtrowanie wynikw \ Propozycje stw kluczowych j
Wybierz kolumny do wywietlenia Poka/ukryj kolumny Pizyltlioii.1 liczba Konkurencja wyszukiwa: gindnia Przybliona i. liczba S o w a kluczowe leklamodawcy wyszukiwa S o w a kluczowe powizane z w p r o w a d z o n y m i terminalni - posortowane wedug trafnoci grupa wsparcia Niewystarczajce 2 m rozwj osobisty rozwj duchowy motywacja samodoskonalenie [; ~; ; ] 3500 2 400 40 500 Niewystarczajce 3 600 2 400 40 500
880
Dziesi najpopularniejszych sw kluczowych to: motywacja, pomoc duchowa, grupy wsparcia, motywacje, rozwj osobisty, motywacja pracownikw, produktywno, rozwj duchowy, psychologia motywacji, rozwj duchowy.
Zauwa, e pocztkowa lista sw kluczowych nie do koca odpowiada tym najpopularniejszym dla danej grupy docelowej. Na pierwszym miejscu znajduje si motywacja, ktra na naszej licie jest dopiero na czwartej pozycji. W praktyce oznaczaoby to znaczc utrat pozycji, poniewa inne strony, dla ktrych porzdek sw kluczowych byby waciwy, uzyskayby lepszy rezultat. Znajomo popularnych wariantw gwnych sw kluczowych jest krytyczna, jeli chce si efektywnie stosowa strategi SEO. We pierwszych 30 terminw, ktre znalazy si na licie wyszukiwania, i dodaj je do listy pocztkowej zachowujc wczeniejsze pozycje. Najpopularniejsze sowa kluczowe przycigaj najwicej ludzi, ale oznaczaj take najwiksz konkurencj. Poprzez dobr sw kluczowych, ktre s mniej popularne, jeste w stanie przycign w efekcie wicej odwiedzajcych.
357
Podgldanie konkurencji
Imitacja i kopiowanie rozwiza konkurencji mog by jedn z najlepszych metod promowania wasnej strony. Aby stwierdzi, jak moesz osign najwysz pozycj dla wybranych sw kluczowych, warto przeanalizowa kod HTML najpopularniejszych stron. Wprowad wybrane sowo kluczowe i wybierz pierwsz stron z listy wynikw. Nastpie wybierz w przegldarce opcj Poka rdo strony, a zostanie wywietlone okno zawierajce kod HTML. Jedn z najwaniejszych pozycji na licie sw kluczowych byo wyraenie rozwj duchowy, a pierwsz stron spord wynikw wyszukiwania http://www.rozwojduchowy.net. Po uruchomieniu opcji Poka rdo strony pojawio si okno zawierajce kod rdowy strony zilustrowano to na rysunku 13.9. Domylnie opcja Poka rdo strony w przegldarce Internet Explorer powoduje wywietlenie kodu HTML w Notatniku. Instrukcje, jak zmieni to zachowanie, mona znale w sieci (wymagane s zmiany w rejestrze systemowym). Alternatywn metod jest skorzystanie z przegldarki Mozilla Firefox, ktra ma wbudowan funkcj podgldu rda strony. Wywietlany kodjest odpowiednio kolorowany i formatowany, co uatwia jego czytanie. Stosowanie tego rozwizania sprawia, e analiza kodu HTML jest bezbolesna. Kolejnym krokiem jest okrelenie listy czynnikw, ktre wpywaj na wysok pozycj strony. S to: Dua liczba odnonikw do danej strony Jeeli dua liczba stron zwizanych z danym tematem zawiera odnoniki prowadzce do tej strony, wyszukiwarka zanotuje to jako oznak popularnoci i uytecznoci. Wyszukiwarki oceniaj strony na podstawie powiza z innymi witrynami. Jeli dua liczba tematycznie zwizanych stron zawiera odpowiednie odniesienia, wpywa to pozytywnie na pozycj strony. Za pomoc narzdzia Google Toolbar moesz oszacowa liczb odnonikw zwrotnych do danej strony.
358
Rysunek 13.9. Funkcja Poka rdo strony powoduje wywietlenie kodu HTML danej strony
[ ^
Mozilla Firefox
Plik
O D D
a
<html> <head> 1 <titXe>Droga wiata, Rozwj Duchowy</tit.Le> I <neta h t t p - e q u i v = " C o n t e n t - t y p e " c o n t e n t = "text/html; charset=iso-8859-2"> I <meta h t t p - e q u i v = " C o n t e n t - l a n g u a g e " c o n t e n t = " p l " > 1 <meta name="Des-ription" content="Dziesitki artykuw o szeroko pojtym rozwoju duchowym , ezote i < r a e t a name-"Keywords" c o n t e n t = " r o z w j duchowy, ezoteryka, duchowo, wiadomo, huna, me dytacja i <meta name="Robots" content="index,follow"> I <style type="text/css"> body {background-color: #FEF8D0; margin: Opx;} table {font-family: Verdana; font-size: 13px; color: #805500} hi {margin-top: 7px; font-size: 16px; font-weight: bold; text-align: center; h2 {margin: Opx; font-size: 13px; font-weight: normal;} a {color: #a06b00; text-decoration: none;} a:hover {color: #805500; text-decoration: underline;} P {text-indent: 0.7cm; margin: 3pt Ocm} SbezAkapitu {text-indent: 0.0cm; margin: 3pt Ocm} . tdGo {background: #F3F7B7 ur1(http://www.rozwojduchowy.net/gfx/pasek gl.jpg) n o-repea .tdGo_menu {background: #F3F7B7 url(http://www.rozwojduchowy.net/gfx/pasek menu.jpg) no-rep . tdDo {background-color: #FFFFE2; border-right: lpx solid #DEDEDE; border-left: lpx so .tdDo menu {background-color: #FFFFE2; border-bottom: lpx solid #DEDEDE; border-left lpx s .komentarze {border-bottom: lpx solid flEFEFEF; padding: lpx;} .przycisk {padding: lpx; width: 200px} .stopka {background-color: #FFFFE2; border: lpx solid #DEDEDE; font-size: 12px;} div.ogl-ogol {width:100%; font-size:12px; margin-top:lOpx; margin-bottom:lOpx;} div.ogl-nr {display:table-cell; width:30px; text-align:center;} div.ogl-tresc {display:table-cell; width:370px;} div.ogl-tresc a {font-weight:bold;} div.ogl-info {display:table-cell; font-size:llpx;} <
m Sowa kluczowe w tytule strony Jeli sowa kluczowe pojawiaj si w tytule, strona oceniana jest wyej, ni gdyby pojawiay si wycznie w tekcie. Sowa kluczowe w nagwkach <H1> Gdy sowa kluczowe pojawiaj si w nagwkach pierwszego rzdu (znacznik <H1>), oznacza to, e m a j due znaczenie dla treci strony. Jeli pojawiaj si dodatkowo w tytule strony, jest to jeszcze bardziej premiowane. Sowa kluczowe zoone pismem pogrubionym, pochylonym lub podkrelonym Jeli sowa kluczowe formatowane s w szczeglny sposb, postrzegane s jako wane. Liczba wystpie sw kluczowych Jeli sowa kluczowe pojawiaj si na stronie wielokrotnie, jest to sygna dla wyszukiwarki. Pamitaj jednak, e roboty internetowe doskonalone s pod ktem zamiecania strony sowami kluczowymi w taki sposb, e nie odnosz si do jej treci. Takie dziaanie znaczco pogarsza pozycj strony. Sowa kluczowe na pocztku i na kocu artykuu Jeli sowa kluczowe pojawiaj si zarwno na pocztku, jak i na kocu strony, jej pozycja bdzie wysza.
Zbadaj kod rdowy strony pod ktem wymienionych aspektw. Ile z nich moesz odnale na stronie? Korzystajc z funkcji Szukaj (uruchamianej w wikszoci przypadkw skrtem Ctrl+F), moesz okreli liczb wystpie sowa kluczowego na danej stronie. W ktrych miejscach si pojawiaj? Po przeanalizowaniu kilku najpopularniejszych stron powiniene dostrzec pewien wzorzec, co pomoe Ci zrozumie, dlaczego akurat te strony promowane s przez wyszukiwark. Powtrz ten proces z innymi, wybranymi sowami kluczowymi. Kiedy skoczysz, powiniene mie ju solidne wyobraenie, jakie dziaania naley podj, aby zastosowa najskuteczniejsze strategie na Twojej stronic.
359
ytuly stron
Z punktu widzenia robota internetowego tytu strony pozwala okreli, jakiego typu materiay znajduj si na stronie. Krtki, opisowy tytu jest doskonaym sposobem zwikszenia szansy, e Twoja strona zostanie znaleziona. Zanim pojawiy si systemy CMS, wiele stron nie mao tytuw lub byy one sformuowane w taki sposb, e roboty internetowe nie mogy sklasyfikowa treci. Podobnie jak inne aplikacje CMS, Joomla! wymusza ustawienie tytuu dla kadego wprowadzanego artykuu. Zakadajc, e kady artyku ma przypisany tytu, moesz zastosowa ponisze wskazwki, aby poprawi pozycj strony w wyszukiwarkach: Zredukuj liczb sw pojawiajcych si w tytule Robot internetowy nie jest w stanie okreli, ktre sowa powinny zosta wykorzystane do klasyfikacji strony, a ktre peni funkcj opisow. Dlatego im krtszy tytu artykuy, tym wiksze znaczenie dla robota maj poszczeglne sowa. Wyeliminuj dodatkowe sowa Powiniene usun krtkie, proste sowa, niezwizane z danym tematem (np. i", lub", dla" itd.). Zamiast to i tamto" moesz napisa np. to tamto", czc sowa pauz (). cz wyraenia, aby zapobiec powtrzeniom Dobr praktyk jest unikanie powtrze w tytule. Przykadowo Rozwj duchowy i rozwj osobisty" lepiej byoby zapisa w postaci Rozwj duchowy i osobisty", poniewa wtedy wszystkie sowa zostan zapisane przez robota internetowego.
Najwaniejszym tytuem jest ten pojawiajcy si na stronie gwnej. Tytu strony gwnej zaley od pozycji Home w Main Menu. Otwrz ekran edycji menu i wybierz pozycj Home (pierwszy element listy). Panel Parametry: system zawiera pole tekstowe opisane Tytu strony. Jego domylna warto to Welcome to Frontpage, co nie suy pozycji Twojej strony. Tak ustaw ten parametr, aby odpowiada tematyce strony.
360
Rysunek 13.10. Warto atrybutu alt wywietlana jest po najechaniem kursorem myszy na dany obrazek
2. oflowjMiie i lejestiMja
4'
szukaj
Zobacz str on gl A J A X (ang. Asynchroniczny JavaScript i XML) - technologia tworzenia aplikacji internetowych, w ktrej interakcja uytkownika z serwerem odbywa si bez przeadowywania caego dokumentu, w sposb asynchroniczny. Ma to umoliwia bardziej dynamiczn interakcj z uytkownikiem ni w tradycyjnym modelu, w ktrym kade danie nowych danych wie si z przesaniem caej strony HTML. Spis treci [ukryj] 1 Podstawowe elementy AJAX 2 Wady i ograniczenia | 3 Przykad utworzenia nowego obiektu XMLHTTP : 4 Biblioteki AJAX
'J
" T WiKJPEDlA
Wolna encyklopedia
I Przejd | | Szukaj j
Podstawowe elementy A J A X
Na technologi t skada si par elementw: a "Ml HTTP - nhiekt timnliwiaiary asvnrhrnnirvnp nr7p=:vanip danvrh nr7P7 gjpr H7ipki
W przypadku Joomla! moesz okreli warto atrybutu alt podczas wstawiania grafiki w tre artykuu. Odpowiedni tekst naley wprowadzi w pole Image description, jak przedstawiono to na rysunku 13.11. Jeli dany obrazek to diagram procesu biznesowego, opisz go odpowiednio. Jeli jednak obrazek suy wycznie jako ozdobnik i nie jest bezporednio zwizany z treci strony, moesz wykorzysta atrybut alt i wstawi sowa kluczowe. Jeli bdziesz korzysta z tej techniki z umiarem, poprawisz pozycj strony. Rysunek 13.11. Warto atrybutu alt moesz okreli w polu Image description w oknie Insert image
nsert/edit image Mozitta Firefox
' http://localhost/joomla2/pkjgins/editors/tinymce/jscripts/tiny_rnce/plugins/advirnage/ii General r General Image URL Image description igrupa wsparcia Title Grupa wsparcia Appearance Advanced
o '
PageRank Google
Jeli zainstalowae narzdzie Google Toolbar, w oknie przegldarki pojawi si may pasek opisany j a k o PageRank. Na kadej odwiedzonej stronie wywietlany jest jej PageRank (w skali od 1 do 10), co zilustrowano na rysunku 13.12. Pamitaj, e pasek PageRank zostanie wywietlony tylko wtedy, kiedy zgodzisz si na zapisywanie odwiedzanych stron i wyszukiwanych hase za pomoc narzdzia Google Toolbar.
Rozdzia 13. Pozycjonowanie i marketing w wyszukiwarkach internetowych iysunek 13.12. 5ageRank odzwierciedla mpularno lanej strony v skali od 1 do 10
361
o n e t pl
Onet poleca Nareszcie weekend! , Wiee Donald Tusk i Nicolas politykami roku 2 0 0 8 "Przebieg t e j masakry j e s t w w a s z y c h rkach" Ziobro zapaci 30 t y s . Garlickiemu Sikorski odznaczy Giertycha medalem Siy UE przepdziy somalijskich piratw Okrgy St podzieli Polakw Rodzina muzumanw upokorzona w samolocie Bezdomna Polka urodzia w londyskim metrze > 13 t y s . lat temu kometa "udusia" Ameryk - tvn24.pl: kobieta miaa 6 promili alkoholu Krakw: kobiety zatruy si czadem
Od pocztku sezonu wida, e w letnich przygotowaniach co za szwankowa, o. Nie chc si jednak wypowiada na ten temat - mwi w rozmowie z Onet.pl. Jan Szturc, pierwszy trener Adama Maysza
" m '
Analiza rankingu strony dostarcza wielu podstawowych informacji. Nie jest to jednak na tyle kluczowy czynnik dla optymalizacji strony, jak mogoby si wydawa. Waniejsze jest, aby strona bya odnajdywana przez uytkownikw zainteresowanych dan tematyk, ni eby cieszya si ogln popularnoci. Jednym z narzdzi, ktre uatwiaj nakrelenie waciwej strategii, jest usuga ledzenia odwiedzajcych Google Analytics. Jest to darmowa usuga, ktra wymaga umieszczenia maego fragmentu kodu JavaScript na Twojej stronie. W ten sposb wszystkie wizyty bd rejestrowane na kilka sposobw. Wicej informacji na ten temat moesz znale w podrozdziale Google Analytics".
362
Ajax a SEO
Ajax to niesamowite poczenie technologii internetowych, dziki ktremu interaktywno stron wzrasta do poziomu porwnywalnego z tradycyjnymi aplikacjami (w rozdziale 7 dowiedziesz si wicej). Zastosowanie Ajaksa pozwala uaktualnia treci pojawiajce si na stronie bez koniecznoci przeadowania caego dokumentu. Powoduje to wzrost dynamicznoci i atrakcyjnoci strony. Problemem zwizanym z zastosowaniem Ajaksa jest dosowna niewidoczno dla wyszukiwarek. Technologia Ajax opiera si w gwnej czci na kodzie JavaScript, uruchamianym przez przegldark w reakcji na dane zdarzenie. Kod JavaScript pobiera nastpnie dodatkowe informacje z serwera WWW i wywietla je w oknie przegldarki czsto w postaci chmurki. Roboty internetowe nie uruchamiaj kodu JavaScript. Oznacza to, e wszystkie materiay dostpne wycznie za porednictwem Ajaksa s niedostpne dla wyszukiwarek. Obecnie nie istnieje rozwizanie idealne, ktre pozwalaoby na implementacj Ajaksa bez negatywnego wpywu na pozycj strony. Projektanci, ktrzy zdecyduj si na zastosowanie Ajaksa, maj w takiej sytuacji kilka opcji: Dublowanie materiaw Chocia materiay dla uytkownikw wywietlane s gwnie za porednictwem Ajaksa, dostpne s take w postaci zwykej strony HTML. Moe to wymaga zaprogramowania odpowiedniego komponentu, aby zrealizowa t strategi w Joomla!, jednak z punktu widzenia SEO warto podj ten koszt. Unikanie stosowania Ajaksa i JavaScriptu do nawigacji Gdy robot internetowy indeksuje dan wihyn, wykorzystuje wewntrzne odnoniki, aby odnale wszystkie strony. Poniewa kod JavaScript nie jest uruchamiany przez roboty, praktycznie wszystkie odnoniki wymagajce uruchomienia go lub pobrania treci za pomoc Ajaksa bd niedostpne dla robota. Z tego powodu wymienione technologie nie powinny by stosowane do nawigacji. Materiay pobierane dynamiczne jako streszczenie waciwych in formacji Zamiast tworzy dodatkowe materiay, ktre bd pobierane za porednictwem Ajaksa, moesz przyj, e materiay pobierane dynamicznie to streszczenie lub podsumowanie waciwych materiaw dostpnych w tradycyjny sposb. Za pomoc PHP jest to szczeglnie proste, poniewa wystarczy przetworzy plik HTML, aby dane zwracane byy w odpowiednim formacie. W ten sposb znika konieczno dublowania materiaw.
Poniewa Ajax szybko zyskuje na popularnoci, jako dominujcy sposb tworzenia interaktywnych stron, powinien zosta wkrtce opracowany sposb informowania robotw internetowych, gdzie naley szuka treci pobieranych dynamicznie. Do tego momentu najlepszym sposobem unikania pogorszenia pozycji strony jest zastosowanie jednej z opisanych strategii. Z tego samego powodu, tj. niedostpnoci da robotw internetowych, powiniene z rozwag implementowa rozwizania we Fashu. Technologia ta doskonale wpywa na wraenia odwiedzajcych, ale jednoczenie sprawia, e prezentowane materiay s niedostpne dla robotw internetowych. Dlatego warto udostpnia wszystkie materiay osigalne za pomoc aplikacji stworzonych we Fashu, take w postaci tradycyjnych plikw HTML.
363
ioogle flnalytics
Darmowe narzdzie Google Analytics (www.google.com/analytics), ktre moesz aktywowa na swojej stronie, dostarcza dokadnej analizy osb odwiedzajcych stron. Moliwe jest przedstawianie informacji w rnej postaci, np. danych statystycznych, diagramw, ktre przedstawiono na rysunku 13.13., itd. Zwr uwag, e diagramy to wycznie namiastka dostpnych funkcji. iysunek 13.13. Diagramy na stronie Google Analytics odzwierciedlaj 'iczb osb odwiedzajcych na danej stronie
Najwaniejszym panelem z punktu widzenia SEO jest Traffic Sources, poniewa zawiera informacje na temat stron, a take wyrae w wyszukiwarce, za porednictwem ktrych odwiedzajcy trafili na Twoj witryn. Informacje o hasach wprowadzanych w wyszukiwarce mog mie kluczowe znaczenie przy doborze sw promujcych Twoj stron. Narzdzie Google Analytics mona poczy z programami reklamowymi Adsense i Adwords. System umoliwia take nakrelenie pewnych celw i monitorowanie postpw w deniu do nich. Funkcja ta pozwala Ci take okreli strony, na ktrych reklama przynosi najwicej dochodu. Pamitaj, e w momencie aktywowania narzdzia Analytics na Twojej stronie udostpniasz firmie Google informacje na temat osb odwiedzajcych T w o j stron. Poniewa wiele organizacji uznaje te informacje za dane prywatne, upewnij si, e nie s one zbierane w nieodpowiednich dziaach.
364
Joomla!. Profesjonalne tworzenie stron WN 1W Farmy hiperczy Istniej strony okrelane jako farmy hiperczy (ang. link farm), ktre s w zasadzie listami linkw. Umieszczenie na takiej stronie zaszkodzi pozycji Twojej witryny. Ukrywanie tekstu Jedn z najstarszych metod oszukiwania robotw internetowych byo ustawianie ta tekstu pokrywajcego si z jego kolorem (w ten sposb spam nie myli uytkownika, poniewa by niewidoczny), a nastpnie wypenianie go sowami kluczowymi. Obecnie roboty internetowe wykrywaj t technik i zaniaj pozycj strony, ktra j stosuje. Zbyt dobre, aby byo prawdziwe Wiele firm oszukuje swoich klientw, oferujc im nagy wzrost pozycji strony przy niewielkiej inwestycji pieninej. Niektre z wykorzystywanych schematw rzeczywicie dziaaj przez pewien okres, jednak tu po odkryciu trac na znaczeniu. Nie ma nic za darmo w internetowym wiecie.
Rozdzia 13. Pozycjonowanie i marketing w wyszukiwarkach internetowych Sprzedawaj korzyci, a nie funkcje Niezalenie od towaru lub usugi, ktr promujesz, skup si na korzyciach pyncych dla uytkownika. Synny sprzedawca uj to w sowach sprzedawaj skwierczenie, nie stek" (ang. sell the sizzle, no the steak).
365
Upewnij si, e reklama zawiera kluczowe pojcia Stosuj sowa, ktre wzbudzaj emocje i entuzjazm, np. nowo, wyprzeda, za darmo i inne. Bd zwizy Usu wszystkie sowa, ktre nie podkrelaj celu reklamy. Pamitaj o grupie docelowej Nie staraj si zainteresowa wszystkich swoj reklam, lecz tylko czonkw grupy docelowej. Utwrz landing page dla kadej reklamy Aby bada skuteczno reklamy, musisz mie moliwo dokadnego ledzenia generowanego przez ni ruchu. Korzystajc z opcji nieprzypisanych artykuw (w ten sposb alternatywne wersje tej samej strony nie bd wywietlane w danej sekcji lub kategorii), moesz utworzy unikatowe tzw. landing pages dla kadej reklamy.
oogle Adsense
Jedn z metod zarabiania na prowadzeniu strony Joomla! jest program Google Adsense (wicej informacji na www.google.com/adsense). Polega on na wywietlaniu reklam typu pay per click na Twojej stronie. Po prostu moesz umieci reklamy na stronie i zarabia na klikniciach. Znaczce zyski z reklam pojawiaj si, jeli poczysz techniki SEO z doborem reklam. Algorytm dobierania reklam na podstawie sw kluczowych w Google Adsense przypomina ten stosowany przy okrelaniu pozycji strony w wynikach wyszukiwania. Dlatego upewnij si, czy zoptymalizowae stron przed uruchomieniem programu Adsense.
366
Podsumowanie
System Joomla! uatwia stosowanie technik SEO (Search Engine Optimizatio), poniewa zawiera wszystkie niezbdne funkcje. Wikszo dziaa nie wymaga znajomoci genialnych lub tajnych sposobw, a raczej konsekwentnego stosowania prostych regu. W tym rozdziale opisano sposoby optymalizacji strony Joomla!, a w szczeglnoci: Aktywacj prostych adresw na stronie Joomla!. Stosowanie metadanych do opisu kadego artykuu. Wstawianie mapy strony. Aktywacj nawigacji okruszkowej, ktra uatwia indeksowanie strony przez roboty internetowe. Przeprowadzanie analizy sw kluczowych w celu zwikszenia liczby odwiedzajcych, ktrzy chcieliby trafi na Twoj stron.
m Udoskonalanie tytuw stron pod ktem pozycji strony. Korzystanie z atrybutu alt do opisu multimediw. Odczytywanie PageRank strony jako wyznacznika jakoci. Adaptacj strategii zapobiegajcej pogorszeniu pozycji strony w przypadku implementacji technologii Ajax. Stosowanie technik SEM (Search Engine Marketing) zwikszajcych widoczno strony.
Wraz z powodzeniem technik SEO wzronie take ruch na stronie a nie kada wizyta jest podana. Popularniejsze strony s atrakcyjnymi celami dla hakerw. W rozdziale 14. opisano rne sposoby zabezpieczenia strony Joomla! i zapobiegania atakom.
14
Bezpieczestwo Joomla!
Joomla! jest atwy w instalacji i konfiguracji, dlatego wielu webmasterw niefrasobliwie podchodzi do kwestii wprowadzania odpowiednich zabezpiecze. Co prawda twrcy systemu Joomla! zrobili wszystko, eby zapobiec naruszeniom bezpieczestwa przez hakerw, mimo to wan umiejtnoci kadego administratora stron WWW jest zrozumienie podstawowych zasad bezpieczestwa. Wane jest, by mia stuprocentow pewno, e Twj system Joomla! jest odporny na atak. Poniewa Joomla! wykorzystuje cztery poczone technologie serwerowe (Apache, PHP, MySQL i Joomla!), musisz zapewni bezpieczestwo kadego ogniwa tego acucha. Na przykad le dobrane zabezpieczenia PHP mog otworzy system na ataki, nawet jeli Joomla!, MySQL i Apache s naleycie zabezpieczone. W tym rozdziale omwiono poszczeglne serwery pod ktem zapewnienia maksymalnego bezpieczestwa, a take sposoby, ktre mona zastosowa, aby zmniejszy zagroenia pochodzce z internetowego rodowiska Bardzo dzikiego zachodu"'. Aby zmniejszy problemy z bezpieczestwem, powiniene regularnie uaktualnia oprogramowanie serwera, wczajc w to Joomla!. Nowe problemy z bezpieczestwem pojawiaj si cay czas, a deweloperzy przygotowuj poprawki aplikacji, aby wyeliminowa dostrzeone luki. Regularne aktualizowanie aplikacji zmniejszy podatno systemu na ataki.
rypy atakw
Napisano wiele ksiek na temat rnych aspektw atakw hakerskich, dlatego zamieszczenie ich kompletnej listy przekroczyoby ramy tej publikacji. Istniej pewne pospolite metody ataku (atakowanie hase, SQL Injection, cross-site scripting itd.), ktre s nadzwyczaj rozpowszechnione. Kady webmaster powinien mie chocia pobien wiedz na ten temat.
1
Ang. Wild Wild West, komedia science fiction z 1999 roku. Pierwsze litery jej tytuu nawizuj do innego
368
Joomla!. Profesjonalne tworzenie stron WN 1W W nastpnych podrozdziaach dokonamy przegldu strategii pospolicie wykorzystywanych przez hakerw w celu zdobycia kontroli nad serwerem lub uszkodzenia systemu. W dalszej czci tego rozdziau dowiesz si, jak skonfigurowa serwer WWW, system PHP i instalacj Joomla!, eby zmniejszy prawdopodobiestwo penetracji z uyciem tych lub innych metod. Jeli chcesz zdoby wicej szczegw na ten temat, wiele informacji o bezpieczestwie w intemecie udostpniono za porednictwem United States-Computer Emergency Readiness Team (US-CERT). Na stronie internetowej US-CERT (www.us-cert.gov) znajduje si wiele powszechnie dostpnych publikacji zarwno dla uytkownikw posiadajcych wiedz techniczn, jak i zwykych uytkownikw.
Ataki na hasta
Istniej programy, ktre prbuj naruszy bezpieczestwo strony zautomatyzowanymi atakami typu brute-force" (na si") na system hase. Ataki te s najczciej prowadzone z wykorzystaniem sownikw czsto spotykanych fraz i hase. Zawsze zadziwiajce jest odkrycie, jak wielu uytkownikw wykorzystuje sowo haso" lub 1234" jako swoje haso systemowe. Jedn z metod promowania wyboru bezpiecznych hase jest zachcanie uytkownikw do przestrzegania poniszych wskazwek: Naley tworzy hasa o dugoci przynajmniej siedmiu znakw. Haso powinno zawiera mae i wielkie litery. Haso powinno zawiera cyfry.
Uytkownicy powinni tworzy hasa skadajce si z dwch sw i liczby. Jeli jedno z tych sw nie jest sowem w jzyku angielskim (by moe nawet Joomla"), szansa powodzenia atakw sownikowych lub atakw brute-force jest prawie zerowa. W filmach hollywoodzkich ,, hakerzy " wykorzystuj techniki takie jak metoda brute-force w celu wamania si na konto wybranego uytkownika, prawdziwi hakerzy s duo mniej wybredni. Wikszo udanych atakw brute-force polegaa na wykorzystaniu raczej nazw uytkownikw ni hase. Poniewa sowo ,, haso ' 'jest tak czsto stosowane jako haso, haker czsto prbuje zestawia je z poszczeglnymi nazwami uytkownikw z listy, co ma na celu sprawdzenie, czy ktokolwiek wykorzysta je jako haso do swojego konta. Dlatego zaleca si chronienie listy uytkownikw przed oglnym dostpem.
SQL Injection
Jedn z najczstszych i najefektywniejszych form internetowego ataku jest SQL Injection (dosownie zastrzyk SQL"). Atak tego typu polega na prbie uruchomienia nieautoryzowanego kodu SQL poprzez wykorzystanie niedostatecznego filtrowania danych trafiajcych do zapytania SQL. Szkody spowodowane dziaaniem tak spreparowanego kodu mog by ogromne od ujawnienia poufnych informacji, po uruchomienie destrukcyjnej procedury.
369
Dziki zachowaniu podstawowych rodkw ostronoci moesz ochroni si przez tym typem naruszenia zabezpiecze. Praktyczn zasad ochrony przed wstrzykniciem kodu jest zagwarantowanie, e piszc program, nigdy nie ufasz danym dostarczonym przez proces zewntrzny (nawet jeli ten proces jest formularzem, ktry sam utworzye). Wszystkie dane akceptowane z zewntrz powinny zosta przetworzone i sprawdzone, zanim zostan wykorzystane przez aplikacj.
Podczas uruchomienia zapytania sprawdzanie ' a' = ' a' zwrcioby warto True dla kadego wiersza, przez co efektem wykonania zapytania byoby uzyskanie kompletnej listy uytkownikw! Przeraajce jest, e wstrzyknity moe by kady poprawny kod SQL, jak pokazano poniej:
dummytext'; Drop Table jos_users: Select * From jos_polls Where title ='
Ten kod zniszczyby cakowicie tabel uytkownikw Joomla!. Przesanie danych wejciowych z formularza do prostej procedury przetwarzajcej wyeliminowaoby wszelkie niebezpieczestwo pynce z atakw tego typu.
370
Joomla!. Profesjonalne tworzenie stron WN 1W W przypadku kodu PHP moesz wykorzysta metod generowania znakw unikowych dla danej bazy danych. Dla MySQL moesz posuy si funkcj PHP mysql_real_escape_string() do sformatowania cigu znakowego:
$name = mysql_rea1_escape_string($name);
Joomla! dostarcza abstrakcyjnej metody zwanej getEscaped(), zwracajcej cig znakowy ze znakami unikowymi, ktry mona wykorzysta niezalenie od docelowej bazy danych. Mimo e aktualnie Joomla! zapewnia obsug wycznie MySQL, w przyszoci, kiedy zostan dodane inne rda danych, kod napisany z wykorzystaniem metody dostpnej w Joomla!, zamiast bezporedniego kodu PHP, nadal bdzie dziaa poprawnie. Cig znakowy ze znakami unikowymi mona uzyska za pomoc obiektu JDatabase, jak to pokazano poniej:
$db =& JFactory::getDB0(); $name = $db->getEscaped($name):
Gdyby spreparowany kod z pierwszego przykadu zosta poprawnie przytoczony, w zapytaniu SQL zostaby uyty poniszy nieszkodliwy cig znakw:
dummytext\ 1 or \'a\' = \'a
PHP udostpnia funkcj znan jako magic quotes, ktra automatycznie dodaje lewe ukoniki do wszystkich danych wejciowych odebranych z rde zewntrznych (takich jak przegldarka WWW). W szstej wersji PHP usunito opcj magic quotes, dlatego lepiej jest rcznie zaprogramowa dodawanie znakw unikowych, jak pokazano wyej. W ten sposb zapewnisz bezpieczne dziaanie swojego kodu bez modyfikacji, niezalenie od wersji PHP zainstalowanej na serwerze.
Brak typizacji pl
Inn form ataku poprzez wstrzyknicie jest przekazanie bezporednio do silnika SQL wartoci, ktre nie s typowane (np integer, float itd.). Na przykad warto id, pobrana z cigu zapytania, moe zosta przekazana bezporednio do zapytania SQL za pomoc poniszej instrukcji:
$sql = "Select * From jos_users Where id = " . $ i d . ";";
W tej sytuacji moe zosta wykorzystany ten sam typ wstrzykiwanego kodu, jak przy cigach znakowych bez znakw unikowych:
1; Drop Table jos_users:
Dlatego zawsze, kiedy pobierasz wartoci z cigu zapytania lub z formularza, upewnij si, e dokonae typizacji w PHP. Na przykad eby odczyta $id jako warto typu integer, mgby wykorzysta poniszy kod PHP:
$id = intval(Sid):
371
Typizacja zmiennych automatycznie unieszkodliwi kady wstrzykiwany kod, ktry mgby si pojawi w danym polu. Moe te spowodowa wygenerowanie bdu, jeli wybrane typy dla zmiennych s bez sensu. Jeli wykorzystujesz metody JRequest: :getVar() lub JRequest: :get(), aby pobra dane z formularza lub z cigu zapytania, Twj kod jest ju zabezpieczony, poniewa te funkcje zapewniaj bezpieczny filtr dla wszystkich przychodzcych danych. Wszelkie dane uzyskane z pominiciem tych funkcji musz zosta sformatowane i typizowane zawsze, kiedy to moliwe.
To tylko kilka uwag, ktre powiniene rozway na obecnym, pocztkowym etapie rozwoju technologii Ajax. Ta nowa technologia spowoduje prawdopodobnie kolosaln liczb narusze
372
Joomla!. Profesjonalne tworzenie stron WN 1W zabezpiecze, zanim jej saboci zostan dostrzeone i poprawione. W przypadku implementacji rozwizania w technologii Ajax upewnij si, e zapoznae si z najaktualniejsz literatur na temat bezpieczestwa i rozumiesz najnowsze zagroenia ze strony hakerw.
Skanowanie katalogw
Wiele serwerw sieci WWW udostpnia opcj przegldania katalogw. Odwiedzajcy moe uzyska dostp przez poczenie HTTP z katalogiem i zobaczy list zawartych w nim plikw, jeli katalog ten nie zawiera pliku o nazwie default.htm, default.asp, index.html lub index.php. Umoliwienie przegldania katalogw jest jawnym zaproszeniem hakerw do zdobycia
2
Istnieje moliwo zmiany zachowania wzgldem cudzysoww i apostrofw poprzez drugi parametr htmlentitiesO, PHP: htmlentlties Manual [online] [dostp 28.08.2008] http://php.net/htmlentities przyp. tum.
3
Takie jak cudzysowy, znaki wikszoci itd. Jej dziaaniu podlegaj take znaki diakrytyczne przyp. tum. W zalenoci od typu i konfiguracji serwera mog by to pliki o innych nazwach p r z y p . tum.
373
sporej porcji informacji o Twoim systemie. Jeli haker posiada wiedz na temat udostpnianych aplikacji i o systemie operacyjnym, moe dowiedzie si niemal wszystkiego, od nazw plikw konfiguracyjnych, p o oglne informacje o systemie. W i k s z o s e r w e r w m a t o p c j w y c z o n d o m y l n i e . Jeli j e d n a k T w o j a strona j e s t przechowywana na starszym serwerze, sprawd, czy odpowiednia dyrektywa zostaa wyczona. Bardziej prawdopodobne jest, e ta forma ataku zostanie przeprowadzona rcznie przez hakera, poniewa rozpoznanie saboci systemu w y m a g a wykorzystania penej wiedzy. Jako rodek z a p o b i e g a w c z y J o o m l a ! u m i e s z c z a w k a d y m katalogu i p o d k a t a l o g u strony pusty plik index.html, ktry m a zapobiec m o l i w e m u wtargniciu. Niestety, wikszo rozszerze i szablonw nie podejmuje dziaa prewencyjnych tego typu, dlatego powiniene zrobi to samodzielnie z wszystkimi katalogami dodatkw dla systemu Joomla!.
374
tum.
375
Pozycja menu:
[utwrz]
P o z y c j a m e n u : [ utwrz]
yN
- /
I J
Typ pozycji menu Zaloguj - Wyloguj Wywietla standardowe stiony Logowanie i Wylogowanie Szczegy pozyc ji menu
Nie
* Tak
Logowanie
Nowa pozycja menu z n ^ i r s i na kocu. Kolejno B ^ g Specjalny W nowym ok me z pask lem nawigacyjnym W nowym oknie bez paska nawigacyjnego
N a z w a uytkownika
Hasto
376
Konfiguracja .htaccess
W przypadku serwera A p a c h e prawa dostpu do plikw i katalogw m o g zosta zapisane w pliku zwanym .htaccess. Uprawnienia dostpu, ochrona hasem, blokowanie PHP, a take inne ustawienia zabezpiecze m o g zosta w nim okrelone. Ze wzgldu na potg tkwic w tym pliku A p a c h e zawiera ( d o m y l n i e ) o p c j e chronice g o przed dostpem z zewntrz przez przegldark. Plik .htaccess w y k o r z y s t y w a n y jest w systemie Joomla! gwnie do ustalenia praw dostpu i korzystania z mod_rewrite do tworzenia p r z y j a z n y c h " (,Search Engine Friendly SEF), u a t w i a j c y c h p o z y c j o n o w a n i e , a d r e s w (w rozdziale 13. z n a j d u j e si wicej informacji na ten temat). W r a z z pakietem instalacyjnym Joomla! dostarczany jest gotowy do uycia plik .htaccess pod n a z w htaccess.txt. Dziki temu plikowi wczysz mod_rewrite w sytuacji, gdy T w j system j e s z c z e z niego nie korzysta. A b y go aktywowa, zmie po prostu nazw pliku z htaccess.txt na .htaccess. W systemie Windows, za pomoc Eksploratora Windows, niemoliwa jest zmiana nazwy pliku na samo rozszerzenie (tak dla systemu wyglda plik .htaccess). Ten problem moesz rozwiza poprzez dodanie dyrektywy w pliku httpd.conf, ktra wymusza uycie pliku .htaccess z inn nazw. Moesz take otworzy wiersz polece i wykorzysta komend ren do zmiany nazwy pliku.
377
rrektywa ServerSignature
Im wicej informacji z d o b d z i e haker na temat T w o j e g o systemu, tym p r e c y z y j n i e j s z y c h metod moe uy przeciwko T w o j e j stronie. On i tak wie (wie to take nawet pocztkujcy haker), z jakiego typu serwera korzystasz, wic raczej nie uatwiaj m u sprawy, dostarczajc dodatkowych informacji, takich jak numer wersji, nazwa systemu operacyjnego itd. to nie ley w T w o i m interesie. N i e s t e t y , spora cz tych i n f o r m a c j i j e s t d o s t a r c z a n a p r z e z ServerSignature za k a d y m r a z e m , g d y z o s t a j e w y g e n e r o w a n a strona (np. k o m u n i k a t o bdzie). Dodanie nastpujcej dyrektywy do Twojego pliku httpd.conf wyczy wywietlanie sygnatury:
ServerSignature off
rrektywa ServerTokens
Sporo informacji jest dostarczanych w sygnaturze zwracanej w odpowiedzi na kade danie strony. D y r e k t y w a ServerTokens p o z w a l a Ci ustali, ile informacji bdzie d o s t a r c z a n y c h w odpowiedzi na danie strony. Istnieje sze m o l i w y c h u s t a w i e tej d y r e k t y w y . S to (w porzdku malejcym): Fuli, OS, Mi ni mai, Minor, Major i Prod. Powiniene doda nastpujc dyrektyw, ktra s p o w o d u j e dostarczanie najmniejszej iloci informacji:
ServerTokens Prod
Kod ten p o w o d u j e o d m o w d o s t p u d o w s z y s t k i c h p l i k w .htaccess (a take p l i k w .htpasswd). A b y z a b l o k o w a dostp do p l i k w dziennika, m o e s z s k o p i o w a poprzedni fragment i zamieni wyraenie FilesMatch na ponisze:
<Fi1esMatch - "\.log$">
378
Jeli uytkownik sprbuje za porednictwem przegldarki pobra pliki w katalogu 1 libraries lub w d o w o l n y m p o d k a t a l o g u (istniejcym lub nieistniejcym), zostanie zwrcona strona z bdem 403 Forbidden Page.
Bezpieczestwo PHP
P H P jest p r a w d o p o d o b n i e n a j w a n i e j s z technologi, ktr naley zabezpieczy, poniewa jest najbardziej podatna na atak. Ma take d u liczb opcji konfiguracyjnych, ktre mog stworzy luki w zabezpieczeniach. Jeli atakujcemu uda si uruchomi skrypt z pominiciem naoonych ogranicze, to istnieje wielkie niebezpieczestwo, e intruz przejmie cakowit kontrol nad systemem. P i e r w s z y m k r o k i e m d o z m n i e j s z e n i a p o t e n c j a l n e g o n i e b e z p i e c z e s t w a dla s y s t e m u jest sprawdzenie, czy w adnych plikach nie ma wywoa funkcji phpi nfo(). Funkcja ta znakomicie n a d a j e si do badania systemu i okrelania opcji konfiguracyjnych, zatem moe dostarczy hakerowi dokadnych informacji o systemie PHP. Haker moe wykorzysta j e jako wskazwki, w jaki sposb m o n a dokona wamania. Po sprawdzeniu, czy nie s ujawniane informacje na temat serwera, powiniene ustawi kilka dyrektyw PHP, aby dodatkowo zabezpieczy system. Dziki temu nie bdzie on obiecujcym celem dla odwiedzajcego hakera. Pomimo e system Joomla! moe funkcjonowa poprawnie bez z a s t o s o w a n i a p o n i s z y c h r o d k w ostronoci, z a o s z c z d z i s z sobie wielu zmartwie, jeli dopilnujesz bezpiecznej konfiguracji serwera Joomla!. Z szstej wersji PHP wyeliminowano trzy czsto uywane funkcje (register globals, magie quotes i safe mode). Brak funkcji magic quotes (zobacz podrozdzia ,,SQL Injection " we wczeniejszej czci tego rozdziau) sprawi, e pocztkujcy programici bd musieli bardziej uwaa podczas pisania kodu.
379
Safe mode jest wczony na wikszoci wspdzielonych serwerw PHP. Moesz sprawdzi, czy ten tryb jest wczony poprzez uruchomienie funkcji phpi nfoC) i sprawdzenie Configuration/PHP Core w p o s z u k i w a n i u d y r e k t y w y safejnode. M o e s z z m i e n i u s t a w i e n i e tej dyrektywy w pliku php.ini. Jeli korzystasz z PHP na Microsoft IIS, nie musisz uywa safe mode, poniewa kady serwer wirtualny m o e dziaa na innym koncie uytkownika. Dopki uprawnienia u y t k o w n i k w s poprawnie ustawione, dostp do informacji z innego konta nie jest moliwy. Safe m o d e zostao usunite z PHP z wersji szstej i pniejszych. Wprowadzane ograniczenia daway faszywe poczucie bezpieczestwa. Poczwszy od wstpnej implementacji, miao by to prowizoryczne zabezpieczenie, stosowane dopki programici nie udostpni odpowiednich opcji w serwerach WWW. Wikszo serwerw zawiera ju takie opcje.
IP fl0C_P00l
Dyrektywa doc_root p r z y j m u j e j a k o warto cig z n a k w , ktry okrela g w n y katalog uruchamiania skryptw PHP. W przypadku wczonego safe mode aden skrypt z n a j d u j c y si poza tym katalogiem nie bdzie mg by uruchomiony. Katalog powinien zosta ustawiony w pliku php.ini, podobnie j a k poniej:
doc_root = "C:\Program Files\Apache Software Foundation\Apache2.2"
IP disablejunctions
Z powodu porzucenia safe mode w PHP istnieje spora liczba innych opcji, ktre m o g zosta wykorzystane w celu zabezpieczenia poszczeglnych e l e m e n t w PHP. N a przykad dyrektywa disable_functions moe zosta uyta do wyczenia funkcji, ktre mogyby by naduyte przez hakera. Wstawienie nastpujcej dyrektywy w pliku php.ini wyczy wypisane poniej funkcje bez w p y w u na dziaanie Joomla!:
di sable_functions = fi 1 e.fopen.popen.unl i nk.system,passthru,exec,proc_close, proc_get_status.proc_ni ce.proc_open.proc_termi nate,shell_exec
Na serwerze w d r o e n i o w y m warto rozway dodanie funkcji phpi nfo() do powyszej listy. Dziki temu j e l i istniej jakie pliki, ktre w y w o u j t funkcj haker nie bdzie mg ich wykorzysta do zdobycia informacji dostarczanych przez phpi nfo(). Z a n i m w p r o w a d z i s z j a k i e k o l w i e k z m i a n y w k o n f i g u r a c j i , u p e w n i j si, e r o z u m i e s z ich konsekwencje. W przeciwnym wypadku moesz wyczy f u n k c j w y k o r z y s t y w a n przez jedno z rozszerze, przez co ograniczysz funkcjonalno caej strony.
IP disable _classes
P o d o b n i e j a k di sabl e_functi ons, di sabl e_cl asses p r z y j m u j e j a k o a r g u m e n t list klas do wyczenia, oddzielonych przecinkami. Funkcja ta uniemoliwia wykorzystanie okrelonych klas w kodzie PHP. Kiedy pisaem t ksik, dyrektywa disable_classes bya mao uyteczna.
380
php.ini:
PHP display.errors
U s t a w i e n i e m , ktre p r a w i e na p e w n o chcesz w c z y na serwerze testowym, a wolaby wyczy na serwerze wdroeniowym, jest di spl ay_errors. Kiedy to ustawienie jest wczone, wszystkie bdy i ostrzeenia, ktre wystpi podczas uruchamiania kodu PHP, s przekaz y w a n e d o p r z e g l d a r k i , r a z e m z n a z w pliku i n u m e r e m linii, w ktrej wystpi bd. M o e s z wczy t opcj w pliku php.ini za p o m o c nastpujcej dyrektywy:
display_errors = On
Informacje o bdach s przydatne, kiedy tworzysz kod, poniewa dziki nim moesz szybko usun usterki. Pomocne s take ostrzeenia, ktre czsto trafiaj tylko do dziennika bdw. Bez w z g l d u na to, czy ta o p c j a j e s t w c z o n a , czy nie, bdy i ostrzeenia s zapisywane do pliku error.log w katalogu \logs serwera Apache, o ile tylko opcja log_errors pozostanie wczona (jest to d o m y l n e ustawienie). U p e w n i j si, e u s t a w i e p a r a m e t r display_errors na Off na s e r w e r z e w d r o e n i o w y m . W przeciwnym razie moesz dostarczy hakerowi wielu informacji na temat serwera W W W , np. n a z w y plikw, katalogw, zmiennych i prawa dostpu. M o g one zosta wykorzystane do zdobycia nieautoryzowanego dostpu lub uszkodzenia strony.
PHP expose_php
W s p o m n i a n a w c z e n i e j d y r e k t y w a ServerTokens s e r w e r a A p a c h e p o w o d u j e wysyanie i n f o r m a c j i p o k a d y m daniu strony. D y r e k t y w a expose_php docza do nich informacje na temat serwera. Domylnie ta opcja jest wczona, jednak aby poprawi zabezpieczenia, powiniene wyczy j na serwerze p r o d u k c y j n y m . Aby wyczy dostarczanie informacji o serwerze PHP, ustaw t dyrektyw w pliku php.ini:
expose_php = Off
Bezpieczestwo MySQL
Serwer baz danych M y S Q L moe przechowywa du liczb wanych, prywatnych informacji. Jeli platforma Joomla! jest wykorzystywana do zarzdzania kontaktami lub e-commerce, potencjalny dostp do prywatnych informacji uytkownikw moe by niepodany. Dlatego warto zapozna si z krtkim (lecz znaczcym) przewodnikiem M y S Q L General Security Issues", ktry m o n a znale pod adresem: http://dev. mysl. com/doc/refman/5. O/en/security, html
381
ezpieczestwo Joomla!
System Joomla! zosta z b u d o w a n y tak, aby zapewni bezpieczestwo bez zmian w konfiguracji. Istnieje jednak spora liczba drobnych ustawie, ktrymi mona poprawi kilka j e g o sabych punktw. Cay czas pojawiaj si n o w e zagroenia, hakerzy w y n a j d u j n o w e metody omijania zabezpiecze. Korzystanie z aktualnej wersji Joomla! zmniejsza ryzyko wamania. Najlepszym sposobem uzyskiwania biecych informacji dotyczcych p r o b l e m w bezpieczestwa Joomla! jest zapisanie si do Security Related Announcements". Wwczas bdziesz o t r z y m y w a e - m a i l e z i n f o r m a c j a m i na temat b e z p i e c z e s t w a i w s z y s t k i e alerty, ktre w y m a g a j uwagi. A b y si z a p i s a , p o s z u k a j w i n t e r n e c i e (w p r z y p a d k u z m i a n y a d r e s u ) lub odwied poniszy temat na forum: http://forum.joomla.org/index.php/topicJ2522L0.html
382
Rysunek 14.4. Dziki opcji Czy podczas zapisu z kodu zostan usunite niektre elementy kodu HTML i znaczniki skryptw, ktre mogyby zagrozi bezpieczestwu
N a licie p a r a m e t r w T i n y M C E z n a j d u j e si u s t a w i e n i e , ktre u m o l i w i a d u o wiksz k o n t r o l . O p c j a Zabronione elementy p o z w a l a Ci okreli e l e m e n t y kodu H T M L , ktre zostan usunite z wprowadzonego tekstu. Domylnie w tym polu znajduje si tylko element applet. W celu poprawy zabezpiecze powiniene rozway wpisanie object, applet, iframe na t list. Uytkownicy nie bd mogli wykorzysta adnego elementu, ktry mgby zosta uyty do przeprowadzenia ataku takiego jak X S S . Oczywicie, powstrzyma to take uytk o w n i k w przed d o d a w a n i e m animacji Flash i innych dynamicznych treci.
Jeli parametr _J EX EC nie zosta zdefiniowany (co oznacza, e skrypt nie zosta uruchomiony w systemie Joomla!), p r z e t w a r z a n i e kodu z o s t a j e p r z e r w a n e . Nawet p r y m i t y w n e testowe rozszerzenia p o w i n n y zawiera t lini, na w y p a d e k gdyby zostay odnalezione i wykorzystane do ataku przez hakera.
Rozwijanie i testowanie
Jeli p l a n u j e s z w d r o e n i e b e z p i e c z n e g o systemu Joomla!, musisz by w stanie sprawdzi konfiguracje i rozszerzenia na bezpiecznym systemie. Testy powinny odbywa si w caoci na serwerze testowym. Serwer testowy m o e by niedostatecznie zabezpieczony, zawiera roboczy kod i niesprawdzone rozszerzenia.
383
Serwer testowy jest j e s z c z e waniejszy z punktu widzenia bezpieczestwa, jeli z a j m u j e s z si tworzeniem oprogramowania. Testowanie skryptw i przykadowych rozszerze to tylko dwie czynnoci, jakie musisz w y k o n a podczas tworzenia kodu, ktry m o e stworzy wiele moliwoci dla hakera. Ataki s zazwyczaj wymierzane w najsabszy punkt systemu, a system projektowy bdzie mia ich wiele. Po zakoczeniu tworzenia o p r o g r a m o w a n i a powiniene przenie w peni s k o n f i g u r o w a n y system na serwer wdroeniowy. Nie powiniene jednak przenosi plikw konfiguracyjnych, takich jak php.ini i httpd.conf\ p o n i e w a serwer r o z w o j o w y p o w i n i e n mie zupenie inne ustawienia. Jeli niektre elementy systemu przestan dziaa w nowym, bardziej restrykcyjnym rodowisku (a stanie si to na pewno), znajd rdo problemu, zamiast wycza ustawienie odpowiedzialne za jego wystpowanie. Doprowadzi to do tworzenia lepszego oprogramowania dla Joomla! i solidniejszego kodu.
odsumowanie
Joomla! jest faktycznie bardzo bezpiecznym systemem. Mimo to poczenie wielu technologii sprawia, e system staje si podatny na atak, chyba e webmaster zrozumie istot zagroe i z a s t o s u j e o d p o w i e d n i e rodki p r z e c i w d z i a a n i a . W tym r o z d z i a l e d o k o n a n o p r z e g l d u sposobw postpowania w kwestiach bezpieczestwa Joomla!: Zrozumienie atakw, na ktre moe by naraony serwer W W W . Poprawa konfiguracji zabezpiecze serwera Apache. Doskonalenie konfiguracji w pliku php.ini do niebezpiecznych elementw PHP. w celu ograniczenia dostpu
Przyjcie polityki bezpieczestwa M y S Q L , dziki ktrej zapobiegnie si nieautoryzowanemu dostpowi do informacji. Konfigurowanie parametrw Joomla!, ktre jak najlepiej z a p o b i e g n potencjalnym atakom.
Z a b e z p i e c z e n i e s y s t e m u przed a t a k a m i z z e w n t r z j e s t b a r d z o w a n e , j e d n a k e f e k t y w n a kontrola dostpu uytkownikw wewntrz systemu odgrywa nie mniej istotn rol. Niestety, jest to obszar pewnych brakw w systemie Joomla!. W rozdziale 15. przedstawiono obszary, w ktrych systemowi temu brakuje moliwoci dostpnych w C M S - a c h w y s z e j klasy.
384
15
Czego Joomla! nie potrafi
Miae ju okazj pozna fenomenalny system zarzdzania treci ( C M S ) Joomla!. N a stronie internetowej C M S Matrix ( w w w . c m s m a t r i x . o r g ) , powiconej p o r w n y w a n i u aplikacji typu C M S , Joomla! ma 124 ze 140 w y s z c z e g l n i o n y c h cech. O g r o m n a liczba f u n k c j i sprawia, e Joomla! to silna konkurencja dla systemw kosztujcych setki, a nawet tysice dolarw. I s t n i e j j e d n a k pewne obszary, ktre p o d k r e l a j braki tego systemu, dlatego czasami warto skorzysta z innych aplikacji C M S , ktre o f e r u j bardziej z a a w a n s o w a n e i m p l e m e n t a c j e danych rozwiza. W tym rozdziale opisano pokrtce niedostatki systemu Joomla! dostrzeone w czasie pisania tej ksiki. Wraz z r o z w o j e m oprogramowania wiele spord brakujcych funkcji zostanie dodanych. Pamitaj jednak, e programici innych aplikacji nie pozostaj bezczynni, dlatego wynik p o r w n a n i a z k o n k u r e n c y j n y m i p r o d u k t a m i b d z i e w y g l d a p o d o b n i e t a k e w przyszoci. W p r o w a d z e n i e p i e r w s z e j wersji d a n e g o r o z w i z a n i a w Joomla! o z n a c z a bdzie, e k o n k u r e n c j a ma j u d r u g w e r s j f u n k c j i . Dlatego i n f o r m a c j e z a w a r t e w tym rozdziale, niezalenie od tego, kiedy czytasz t ksik, p o w i n n y o d z w i e r c i e d l a dystans dzielcy system Joomla! od innych produktw. Wielu zwolennikw przytoczyoby argument, e niedostatki Joomla! mona uzupeni dostpnymi rozszerzeniami. Jeli istnieje szeroko stosowane rozszerzenie, ktre bezproblemowo rozbudowuje system o dan funkcj (np. funkcjonalno eCommerce dziki rozszerzeniu Virtuemart), to nie jest ona wymieniana jako ograniczenie systemu Joomla!. Jeeli jednak dostpne rozszerzenia dodaj wycznie prymitywn implementacj danej opcji (np. kontroli wersji), zaznaczana jest sabo Joomla! w tej dziedzinie.
386
Przedstawiony przebieg pracy internetowej gazety wymaga, na kadym etapie, wprowadzania z m i a n w oryginalnej treci. K a d a z nich m o e by d e s t r u k t y w n a (np. usunicie akapitu), konstruktywna (np. zarys dodatkowego, wyjaniajcego zdania) lub korygujca (np. poprawa interpunkcji). W systemach C M S z kontrol wersji kada zmiana p o w o d u j e zapisanie take poprzedniej wersji artykuu. Jeli n i e z b d n y j e s t p o w r t d o d a n e j wersji w celu p r z y w r c e n i a lub porwnania, system umoliwia odczytanie archiwalnej kopii artykuu. Wikszo systemw pozwala porwna dwie wersje artykuu, wywietlane obok siebie z rnicami zaznaczonymi kolorem. Wiele edytorw (np. j E d i t i Microsoft Word) zawiera f u n k c j w y g o d n e g o porwnywania wersji, wywietlanych w d w c h ssiadujcych oknach przedstawiono to na rysunku 15.1. Rysunek 15.1. Porwnanie wersji artykuw wywietlane w postaci dwch ssiadujcych okien moe by bardzo uyteczne l-4 J 2
; Plik gdyqa Widok Wgtaw Format yarzd2ia Iabela Okno X : Pomoc
iaa
Iabela Qkno > ~S / - A
100%
U J J J
; Zn.3L-riii p o d a n e : Zwyky tekst
J j i
> > r u kor "-i .
A / 1
Pula:* 'j
- I
j^I
. i
t'.,
Poka*
Miae ju okazj pozna fenomenalny system stronie internetowej CHS Hatrix (www.cmsmat) porwnywaniu aplikacji typu CHS, Joomla! po; Ogromna liczba funkcji czyni Joomla! siln J setki, a nawet tysice dolarw. Istniej je< braki Joomla!. Czsto warto skorzysta z in) bardziej zaawansowane implementacje danych i
Jii:...
Hiae ju okazj pozna fenomenalny system stronie internetowej CHS Hatrix (www.cmsmati porwnywaniu aplikacji typu CHS, Joomla! po: Ogromna liczba funkcji czyni Joomla! siln ] setki, a nawet tysice dolarw. Istniej je< braki Joomla!. Czsto warto skorzysta z im bardziej zaawansowane implementacje danych i W tym rozdziale opisano pokrtce niedostatk: pisania tej ksiki. Wraz z rozwojem oprogrs funkcji zostanie dodanych. Pamitaj jednak, pozostaj bezczynni, dlatego porwnanie z kc miao identyczny rezultat teraz i w przysze danego rozwizania w Joomla1 oznacza bdzit wersj tej funkcji. Dlatego informacje zawai stanowi skuteczn podstaw oceny systemu J< Wielu zwolennikw podnioso by argument, e dostpnymi rozszerzeniami. Jeli istnieje s: bezproblemowo rozbudowuje system o dan funl dziki rozszerzeniu Virtuemart), nie jest oi systemu Joomla! Jeli jednak dostpne rozszt implementacj danej opcji (np. kontroli wer: w tej dziedzinie. c Kontrola wersji dokumentow
H]i3 I 1= E3 < sekcja
H]a
str. 1
str. 1
387
W systemie Joomla! brakuje kontroli wersji w j a k i e j k o l w i e k postaci. Po w p r o w a d z e n i u i zapisaniu zmian w artykule stara wersja jest nadpisywana i nie ma sposobu, aby j przywrci. Uniemoliwia to implementacj systemu przepywu pracy dla d o k u m e n t w . J e d y n y m dostpnym rozwizaniem jest rozszerzenie Versioning, ktre pozwala przywrci ostatni wersj dokumentu za p o m o c funkcji c o f n i j " , nie jest to j e d n a k skuteczny system kontroli wersji.
388
389
zalogowany jest w systemie, wywietlany jest inny zestaw edytorw W Y S I W Y G , formularzy i innych o g l n y c h e l e m e n t w i n t e r f e j s u . M a e z m i a n y w p r o w a d z a n e w m e n u w o p a r c i u o grup uytkownika nie m o g si rwna z poziomami interfejsu uytkownika. Dodatkowo wiele konkurencyjnych aplikacji typu C M S pozwala uytkownikom dopasowa wygld interfejsu za p o m o c j e d n e j z dostpnych skrek. W Joomla! wszyscy u y t k o w n i c y ogldaj ten sam szablon. Namiastka personalizacji (gwnie zwizana z profilem uytkownika) moliwa jest dziki rozszerzeniu Community Builder. Rozszerzenie to wymaga jednak dalszego dopasowania, ktre umoliwi dostosowywanie wygldu strony do w y m a g a uytkownikw, dostpnego w innych systemach.
390
N i e k t r e s y s t e m y C M S w y b i e r a n e s g w n i e ze w z g l d u na f u n k c j o n a l n o groupware. W tym wypadku oprogramowanie suy do udostpniania dokumentw (np. arkuszy kalkulacyjnych z zarysem budetu lub prezentacji), komunikacji wewntrz systemu (np. za pomoc f o r u m , poczty elektronicznej itd.), a take ledzenia zmian wprowadzanych w materiaach umieszczonych w systemie. Niektre organizacje (szczeglnie te, w ktrych pracownikw dziel due odlegoci) o d n o t o w u j znaczcy wzrost produktywnoci dziki zastosowaniu rozwiza groupware. Poszczeglne funkcje aplikacji groupware dostpne s dla Joomla! w postaci indywidualnych rozszerze, jednak brak integracji tych narzdzi utrudnia stosowanie Joomla! jako narzdzia pracy grupowej. Na dodatek wykorzystanie Joomla! w tej roli nie jest dobrym rozwizaniem, p o n i e w a systemy g r o u p w a r e w y m a g a j b a r d z o z a a w a n s o w a n y c h opcji bezpieczestwa, ktrych brak w Joomla!.
Funkcjonalno portalu
Strony oparte na rozwizaniach C M S to najczciej elektroniczna wersja gazety lub periodyku. Aplikacje tego typu m o n a zastosowa take w roli portalu, gdzie pojedyncza strona suy za p u n k t d o s t p u d o r n o r o d n y c h i n f o r m a c j i ( k u r s w akcji, n a j n o w s z y c h w i a d o m o c i , prognozy pogody itd.), aplikacji internetowych (poczty, map, galerii zdj itd.), wasnej strony internetowej, rozwiza e C o m m e r c e (aukcji, ogosze, katalogw firm itd.). Z a z w y c z a j u y t k o w n i c y k o r z y s t a j c y z d a n e g o portalu s p d z a j na nim wikszo czasu powicanego na przegldanie intemetu. Odwiedzajcy portale takie jak Wp.pl (zobacz rysunek 15.2) m o g ledzi kursy akcji, sprawdza poczt, sucha internetowych audycji radiowych, przeglda anonse towarzyskie itp. Pojedyncze logowanie w systemie wystarcza do skorzystania z dostpnych usug, p o n i e w a informacje o uytkowniku (zarwno dane osobiste, jak i finansowe) z n a j d u j si w e wsplnej bazie. Oto lista najczstszych funkcji zintegrowanych w ramach portalu wraz z sugestiami, jak mona uzupeni Joomla! o brakujce moliwoci:
391
lin- UK-t
Flrmv [ S
^'brazki
Sowniki
Ogoszenia
DoCelu
Mi'-'*
WIRTUALNAPOLSKA
wicej
yi
PoaU Twoja Poczta Twoja Pogoda Prosto DoCelu Csal
Ts.
Bogi Warszawa
-^mJf
DoCelu
i
WPmobi Aukcje wybierz miasto -
-mm*
WPv wicej
as
ja
Reakcje wiata na ofensyw ldow Izraela Rada Bezpieczestwa przeanalizuje sytuacj yi * Gazprom zaapelowa do Ukrainy o powrt d o n Silne trzsienie ziemi w Indonezji spowodowao panik Wincenty Raski nie yje
Funkcja przeszukiwania sieci Najpopularniejsze portale, np. Google i M S N , m a j wasne wyszukiwarki, jednak wikszo witryn tego typu korzysta z rozwiza oferowanych przez inne firmy. Opcja tego typu dostpna jest take dla systemu J o o m l a ! za p o r e d n i c t w e m usugi G o o g l e C u s t o m Search E n g i n e (http://bizsolutions.google.com/services). Z a p o m o c narzdzia firmy G o o g l e moesz wstawi funkcj przeszukiwania wasnej strony i internetu, zintegrowan z w y g l d e m T w o j e j strony. Konta Email W i k s z o portali udostpnia u s u g poczty elektronicznej, p o z w a l a j c e j na p r z e c h o w y w a n i e na stronie poczty i innych plikw. M i m o istnienia wielu rozszerze, typu Prywatne wiadomoci ( P M S Private Message System), a nawet prymitywnej implementacji tej funkcji w domylnej instalacji Joomla! praca w roli serwera poczty wykracza poza moliwoci Joomla!. Mapy Popularn f u n k c j wielu portali jest dostp do elektronicznych m a p i planowania podry. Wasne rozwizanie tego typu na stronie Joomla! m o l i w e jest dziki poczeniu z API M a p Google (www.google.com/apis/maps) lub zastosowaniu jednego z rozszerze integrujcych Mapy Google w systemie Joomla! (w katalogu rozszerze z n a j d z i e s z np. G o o g l e m a p s , G e o Visitors i Google Maps API). Osobista strona internetowa Opcja bardzo popularna na stronach typu M y S p a c e i grono.net, m o l i w o stworzenia w a s n e j strony w r a m a c h portalu. K o m p o n e n t 0 n a z w i e R a v e n s w o o d User H o m e P a g e s p o z w a l a u y t k o w n i k o m w i t r y n y na tworzenie wasnych ministron", ktrymi mona zarzdza w rodowisku Joomla!. Ogoszenia i anonse towarzyskie W katalogu Joomla! znajdziesz wiele rozszerze do zarzdzania ogoszeniami, np. popularny A d s M a n a g e r . Oferty pracy W katalogu Joomla! znajdziesz wiele rozszerze do przegldania 1 dodawania ofert pracy, np. popularny Jobline.
392
Chocia, dziki rozszerzeniom, mona wzbogaci Joomla! o wikszo funkcji portalowych, skuteczne zarzdzanie portalem w y m a g a zintegrowanego i przemylanego panelu administracyjnego. Wygld strony powinien by spjny, a zmiana prezentacji poszczeglnych dziaw nie p o w i n n a nastrcza trudnoci. W J o o m l a ! b r a k u j e integracji midzy poszczeglnymi dziaami, kluczowej dla uruchomienia i prowadzenia portalu.
393
'odsumowanie
Fenomen aplikacji Joomla! nie sprawia, e jest ona idealnym rozwizaniem wszystkich potrzeb. W tym rozdziale przedstawiono kilka brakw systemu w nastpujcych dziedzinach: Brak systemu kontroli wersji i zarzdzania przepywem pracy, ktry umoliwia skuteczn wspprac przy rednich i duych dokumentach. Praktyczny brak opcji importu, eksportu i masowego przetwarzania dokumentw. Ograniczone funkcje uwierzytelniania i niedostateczne zabezpieczenia, ktre mimo moliwoci rozbudowania za p o m o c rozszerze nie d a j wysokiego poziomu bezpieczestwa. Funkcjonalno r w n o w a e n i a obcienia i replikacji dostpna wycznie na poziomie serwera W W W (bez udziau Joomla!), co utrudnia zarzdzanie obcieniem. Brak zintegrowanej replikacji danych (moliwa jest odpowiednia konfiguracja MySQL, niezalenie od aplikacji Joomla!), ktry sprawia, e Joomla! jest nieodpowiednim wyborem dla witryn dziaajcych na wieloserwerowych klastrach. Znaczne ograniczenia pod wzgldem moliwoci interfejsu uytkownika, jego dopasowania do potrzeb uytkownikw. Minimalna integracja funkcji groupware, przez co internetowa wsppraca jest trudna i nieatrakcyjna zarwno dla uytkownikw, jak i administratorw. Niewielka liczba moliwoci portalu takich jak prywatne strony W W W ktre s dostpne w komercyjnych produktach.
Dotychczas miae okazj zapozna si prawie ze wszystkimi funkcjami Joomla!. W rozdziale 16. przedstawiono przegld popularnych stron W W W dziaajcych dziki temu systemowi. Odwiedzenie tych stron moe mie dodatkowy walor edukacyjny, poniewa pozwala zapozna si z rnymi sposobami realizacji i doboru rozszerze.
394
16
Rzut okiem na popularne strony oparte na Joomla!
Przykady skutecznego z a s t o s o w a n i a systemu zarzdzania treci J o o m l a ! m o n a znale w wielu rnych dziedzinach od zarzdzania nieruchomociami, po telewizj dla dzieci. Z e wzgldu na z r n i c o w a n i e spoecznoci J o o m l a ! m o e s z mie kopot z o d n a l e z i e n i e m stron p o d o b n y c h do T w o j e j , ktre p o m o g y b y Ci p o p r z e z p o r w n a n i e udoskonali s w o j witryn. W t y m r o z d z i a l e w y s z c z e g l n i o n o w i e l e u d a n y c h , p o p u l a r n y c h stron o p a r t y c h na aplikacji Joomla!. Zapoznanie si z nimi moe pomc Ci odnale nowe pomysy na zmian wygldu i funkcjonalnoci T w o j e j witryny. Kada strona przedstawiona jest w kontekcie zastosowania technologii Joomla! znajdziesz tu list rozszerze zainstalowanych na stronie, informacje o dostawcy usug internetowych, ktry o b s u g u j e stron, n a z w s z a b l o n u , list f u n k c j i s p o e c z n o c i o w y c h , e - c o m m e r c e , a take wiele innych. Wikszo wymienionych stron dostpna jest w internecie co najmniej od dwch lat. Takie ograniczenie zwiksza szanse, e wyszczeglnione witryny b d nadal dostpne w przyszoci. Przedstawione strony speniaj ponisze kryteria: Znaczca pozycja w danej dziedzinie Strona m u s i z a w i e r a p r z y z w o i t ilo materiaw, ktre s p r z y n a j m n i e j co j a k i czas uaktualniane, dlatego w i t r y n y w i d m a " zostay w y k l u c z o n e . G w n m i a r dla t e g o k r y t e r i u m by PageRank w Google na m i n i m a l n y m poziomie 5. Profesjonalny wygld strony i przejrzysta adaptacja interfejsu Joomla! Biorc pod uwag powszechn dostpno darmowych i komercyjnych szablonw Joomla!, strona nie powinna wyglda nieatrakcyjnie. Zastosowanie jednego lub wicej rozszerze Joomla!, ktre wzbogacaj funkcjonalno strony Wizyta na stronach tego typu pozwala przyjrze si realnemu zastosowaniu wielu rozszerze.
396
Strony akademickie
Istnieje spora liczba stron akademickich, ktre oparto na technologii Joomla!. Powodem takiego stanu rzeczy, oprcz wzorowego speniania wymogw CMS, jest promowanie oprogramowania open source na uniwersytetach. Studenci s j e d n z najaktywniejszych grup programistw, ktrzy p r o g r a m u j c rozszerzenia, w z b o g a c a j spoeczno Joomla!.
MOLECULAR
About Faculty & Research Postdocs
BIOLOGY
I V
Graduate Undergraduate Resources
ri Molecular Biology
search
Associated Programs
Calendar
U p c o m i n g Events
lue, J a n 6 ( 2 : 0 0 ) S C H 107 H u m a y r a Ali, PhD D e f e n s e Investigating Proteins that Stimulate Transcription from the Adenovirus Major Late Promoter
G r a d u a t e Student Perspectives
m" J**(| if Jphfinjf < -makm. .., My c h o i c e t o p u r s u e graduate work after y e a r s of w o r k i n g a s a 1 laboratory technician I w a s a difficult o n e .
A multinucleate cell resulting f r o m fusion of infected endothelial cells. T w o viral proteins have been detected by immunofluorescence (orange and m a g e n t a ) . Jorg Schroer, Shenk lab.
Lotest N e w s
Kristina Sinsimer Receives Kirschstein A w a r d Postdoc B e e s o n Receives Kirschstein A w a r d
C o w l e s A w a r d e d Kirschstein Funding
397
Uniwersytet Princeton
Page Rank Google 6/10 Programy partnerskie Brak com_expose, Poll, google-analytics
Zastosowane
rozszerzenia
Kanay RSS Brak Szablon W a s n y Adresy przyjazne Nawigacja robotom internetowym Nie
okruszkowa
Nie
Gwne sekcje Faculty & Research, Postdocs, Graduate, Undergraduate, Resources, Associated Programs, Calendar Minimalna E-commerce szeroko Nie Nie 800
Funkcje spoecznociowe
is
nsidered the
most
significant Shakespeare
ch
IHIfflTOTfH
F o r m e d i n 1847 w i t h t h e p u r c h a s e of S h a k e s p e a r e ' s the Trust has since acquired four other houses
Birthplace, relating to We
British
Pewter. F r o m t h i s p a g e y o u can:
398
Shakespeare Birthplace Trust educational charity Google 6/10 partnerskie Brak Virtuemart, M a m b o m a p
rozszerzenia Brak
okruszkowa
Tak
Gwne sekcje W i l l i a m S h a k e s p e a r e , S h o p for G i f t s and B o o k s , Activities a n d Events, Library & Archive, Education, Museums, Events & Conferences, Supporting U s Minimalna E-commerce szeroko1024 Tak Nie
Funkcje spoecznociowe
Journal of Intercultural and Interdisciplinary Archaeology Google 5/10 partnerskie Google AdSense Kontakt, RSS, PayPal
rozszerzenia
okruszkowa
Tak
Gwne sekcje JIIA Repositories, JIIA Indici, JIIA Scientific Committee, JIIA Honour Committee, JIIA Versione 01, JIIA Versione 02, JIIA News, JIIA Links
399
Donate to JIIA! JIIA Home JIIA Repositories JIIA Indici > JIIA Scientific Committee ' JIIA Honour Committee ' JIIA Versions 01 JIIA Versione 02 JIIA News * JIIA Links Other M e n u JIIA Newsflashes Er it et Amount; EUR Donate N o w ;
JIIA D o n o r s and Friends ULRYCH University learn English On-line RocketTheme Template Club iMacoanici IOSA.it Open Archaeology Open Knowledge Foundation
JIIA E p r i n t s R e p o s i t o r y r l a t e s t a d d i t i o n s JIIA News Wi it? by A d m i t stoi JIIA Eprints Repository. latest additions; Acta Terrae Septemcastrensis Joui iij l (ISSN 1583-1817). Proceedings of the 8th International Colloquium of Funerary Archaeology. Funerary Practices In Europe, before and after the Roman Conquest (3rd century PC-3rd century AD), VI q ) 2007.
Minimalna E-commerce
szeroko Tak
640
Funkcje spolecznociowe
Nie
G U I L D is a training ba; multimedia organization dedicated to career development of students and industry professionals. Our motto is. Training T o d a y with the Technology of Tomorrow.
400
okruszkowa
Nie
Gwne sekcje Student Profiles, Artist Profiles, Jobs, Interviews, Organizations, C o m m u n i t y N e w s , Classes, T e a c h e r s G r o u p , G a m i n g N e w s , In M y Opinion, Technology N e w s Minimalna E-commerce Funkcje szeroko Nie Nie 800
spoecznociowe
n a
New D o c u m e n t s
* Adult Ed U i ab
VIDE Information
fi. A Ki!-,d;r;q
Education officials and representatives of both the administrators and teachers unions met on Thursday to discuss the development of a readjusted school calendar and m a k e up d a y s which will facilitate the days missed following Hurricane O m a r and the recent p o w e r outage on St. T h o m a s .
Q AEFLA Funding Announcement ? .2007 .200.3 SJTJ District A'. P VJDE Report Cards 2007-2008) ..2007-2008 SIX District. AYP VIDE Report Cards 2007-2003)
L.OF.T.H.E N. A R T I S T
(VIDE Territorial Report Card ' J | 102708 CAREER AND TEC I EDUCATION PUBLIC FORUM IST. >MAS IN D I '
401
Graphie User Interactive Learning and Development Google 6/10 partnerskie Brak RSS, JCalPro, com_acajoom, hsq_sss_ssscom table,
Zastosowane Fireboard
rozszerzenia
Kanay RSS Tak (RSS i A t o m ) Szablon W a s n y Adresy przyjazne Nawigacja robotom internetowym Tak
okruszkowa
Nie
Gwne sekcje Webmail, Offices, Schools, Resources, D o c u m e n t s , Contact Us, Forum Minimalna E-commerce szeroko Nie Tak 800
Funkcje spoecznociowe
SeniorNet
Witryna SeniorNet (zobacz rysunek 16.6) reprezentuje organizacj zrzeszajc wolontariuszy promujcych centra nauczania dla ludzi starszych, skoncentrowane gwnie na przysposabianiu obsugi komputera. URL Uruchomiona Waciciel PageRank Programy www.seniornet.org 1986
402
Rysunek 16.6. SeniorNet centrum nauczania nowych technologii dla ludzi starszych
wisdom
"
Friday, 2nd January 2 0 09 6:40:23am Text Reader Only search .. PPI 4 Getting Started Enrichment Centers 8ks & CmRhi a j Health
Home
Future Technology From One of Our Sponsors... IBM Reveals Five innovations That Will Change Our Lives in the Next Five Years _RS
Zastosowane
rozszerzenia
RSS, Contact
ISP e N o m , Inc. ( w w w . e n o m . c o m ) Kanay RSSTak Szablon Wasny robotom internetowym Nie (RSS i Atom)
okruszkowa
Tak
Gwne sekcje Membership, Learning Centers, E-Learning, Enrichment, Partners, About Us, Help Minimalna E-commerce Funkcje szeroko N ie Nie 1024
spoecznociowe
KidsCHANNEL
K i d s C H A N N E L ( z o b a c z r y s u n e k 16.7) to k a n a d y j s k i portal o f e r u j c y c h gry, artykuy, materiay edukacyjne, a take katalog ogosze dla dzieci i ich rodzicw. U URL http://kidschannel.ca 2005
403
f! resource guit^
registerCre3te fecount
Usemame Password Remember rne tost Pmk-mriS? - i Login j
fvivaneed Search
,, -
.M&
"M
Main M e n u
> .: t-iri.
featured listings
Tips e t c
\ CAMPS
M m
resource guide
iJS Categories Recently Updated An rut(tvtpw iMtr fmwin M. Helw t . essential fats. Unfortunately. choosing healthy foods and interpreting wordy food labels often feels overwhelming uiith hart to interpret health claims and
Yoga 4 Kids
rozszerzenia
m o d u \ f i s h e y e _ m e n u , commtree,
RSS
ISP My Real EBiz Kanay RSS Tak (RSS i Atom) Szablon Wasny Adresy przyjazne Nawigacja robotom internetowym Tak
okruszkowa
Nie
Gwne sekcje Just for Kids, More Just for Kids Minimalna E-commerce szeroko Nie Resource Guide 800
Funkcje spoecznociowe
404
Jo
s TOM!
So
Top 10 Chait
Latest C o n t i i h u t i o n s Melissa reads Being Lotte at the Park Melissa reads Being Lotte at the Beach Melissa reads Being Lotte at Home Chief Story Teller
www.astoryforbedtime.com 2005
Google 5/10 partnerskie Google A d S e n s e Remository, Pony Gallery, Simple Board, Graphitory,
okruszkowa
Nie
Gwne sekcje FAQs!, Discussion Forum, T o p 10 Chart Minimalna E-commerce Funkcje szeroko Nie Tak 800
spoecznociowe
405
,.
.. '
..
"
' ..
k ?-
gmjmagBm
Home P a g e Second W i v e s Club.com - Si^'erhaod far stepmoms^ seconciwivesclub.com W e e k of A u g u s t 21 - 27 Second W i v e s Club is what women in blended families are looking for: Remarriage, divorce, child custody, and step parenting discussed In a solutionoriented, mature, and intelligent way; articles and news written by thoughtprovoking experts and journalists; personal accounts and advice from some of life's most interesting womenl Getting Started: R e a d the short ': log in, See o u r m about what you'll see when y o u to learn more about our community and its'
subscribe m e I :
G e t the latest articles, blogs, advice, and gossip each week from S W C i
Receive H T M L ?
www.secondwivesclub.com 1997
Zastosowane rozszerzenia pcajaxcommentjomcomment, com magazine, Contact, com recommend, com weblinks, Joomap, mod_smo_ajax_shoutbox_css.php Kanay RSS Tak (RSS i A t o m ) Szablon Wasny Adresy przyjazne Nawigacja robotom internetowym Tak
okruszkowa
Nie
Gwne sekcje And Baby M a k e s . . . , A l i m o n y , Book Reviews, Child Support, Christian S t e p f a m i l i e s , C o l l a b o r a t i v e L a w , C o - p a r e n t i n g , C u s t o d y , D i v o r c e , Divorced Dads, eCourses, Ex-Files, Family L a w , Infidelity, M o n e y , Parental Alienation, R e l a t i o n s h i p s , R e m a r r i a g e , Starting O v e r , A g a i n , S t e p f a m i l i e s , Stepparenting, Stress Management, Visitation, Weddings, W i v e s O f Widowers, W o n d e r f u l , Not Wicked Minimalna E-commerce szeroko Tak Tak 800
Funkcje spoecznociowe
406
www.betterheallhhere.com
2005
Zastosowane rozszerzenia Virtuemart, A k o F o r m s , com com registration, Poll, Tabnews, Contact, J o o m a p Kanay RSS Nie Szablon mddigitalether, Adresy przyjazne Nawigacja robotom menu autorstwa JoomlArt.com internetowym Tak
okruszkowa
Tak
Gwne sekcje Ali About Diabetes, M a n a g e Diabetes, Buy Diabetes Supplies, C o m m u n i t y , Food for Thought, Lifestyle Minimalna E-commerce Funkcje szeroko Tak Tak 800
spolecznociowe
407
'rofesjonalne strony
Profesjonalne witryny powicone s przedsiwziciom k o m e r c y j n y m i r o z w o j o w i kariery. Charakterystyczne dla Joomla! j e s t to, e suy za p o d s t a w wielu p r o f e s j o n a l n y c h stron, ktre w y k r a c z a j poza obszar n o w y c h technologii.
H M M i t t i i i | f i m
BMHwiilwIHrW
' :
"" '
P l a n B s h e l v e d , W o r l d C u p is d e f i n i t e l y h a p p e n i n g in S o u t h A f r i c a in 2 0 1 0 lESL.A;, It DECEMB* *03 F I F A P r e s i d e n t Sepp Blatter has c o n f i r m e d t h a t the W o r l d Cup will d e f i n i t e l y be held in S o u t h A f r i c a a f t e r F I F A r e c e i v e d a s s u r a n c e s t h a t all t h e c r i t e r i a w o u l d m e t in t i m e .
South Aflii fieiM|Jii|!5 Hotel, Lie in bed and w a t c h the Whales Luxury accommodation
www.worldcup20l0southajrica.com 2006
World Cup 2010 South Africa Google 5/10 Google AdSense, Shopzilla.co.uk, C y b e r c a p e t o w n . c o m ,
rozszerzenia
408
okruszkowa
Nie
Gwne sekcje News, World Cup Tickets, World Cup 2006, Stadiums (Cape Town, Burban, Johannesburg, Nelspruit, Rustenburg, Pretoria, Polokwane, Port Elizabeth, Bloemfontein, Directory Minimalna E-commerce Funkcje szeroko Nie Nie 1024
spoecznociowe
Best Association membership development, member benefits, event marketing, registration, meeting planning, non-dues revenue, member retention, government association jobs and association books.
event I affairsJ
Most Recent O S ' s Should our association focus on recruiting * members onEtaWng them? Subscribe to the U r n Best Association Tips -MewsWier Association Governance a Board Oevefepmerrt - RecotimiKSec) Books * Association Strategie Planning and Change f^ommerrdisef-Books * Association Legal issues & Ethics Recommended Books Featured Association Executive Questions
Most P o p u l a r 0 8 s What is the test w a y to attract new members i our association? . How often do w e need to introduce new assodatioh membership benefits'? !s our association effectively utilising our membership data ? H membership retention or recruitment more important to an association? Are free {rial memberships an effective association marketing tool?
Resourced Home Mwberghp'beveiotMiler Member Benefits Non-Odes Revenues Event Marketing Ever Registration Meeting Planning Government Affairs " ssociatift Jobs Strategy Print-Strategy Best Association Books About Best Association - Submit Vour Quei$ti<3n
W h o are our best association m e m b e r s h i p p r o s p e c t s ? There are t w o camps when it comes to identifying the best membership prospects foi ar< association: - Those who believe that you should determine who you are not appealing to - and then go after them - Those who believe that you should determine who fits the profile of your current members - and go after more of the same. Good arguments can be developed on both sides Certainly, bringing in fresh blood can add a new, dynamic element to the association. Moreover, it can open new possibilities for the future direction of the association | On the other hand, getting "more of the same" tends to leverage the existing strengths of the association Here is a simple rule of thumb. If you are only scratching the surface of your targeted association membership (e.g. you only have 15% of the possible candidates), you'll likely find better results by going after more of the same. Conversely, if you are closing in on the upper limit of a target audience, it may be time to consider expanding your association membership prospect base The rationale is fairly simple: it's easier to get more of the same Unless you've exhausted most of that audience, you shouldn't spread the association's resources too thinly by chasing too many groups
pSF. ggf
Remember Me
Forgot your
URL www. bestassociation. Uruchomiona Waciciel PageRank Zastosowane Kanay Szablon 2006
com
409
okruszkowa
Tak
Gwne sekcje Resources Home, Membership Development, Member Benefits, N o n - D u e s Revenues, Event Marketing, Event Registration, Meeting Planning, Government Affairs, Association Jobs, Web Strategy, Print Strategy, Best Association Books, About Best Association, Submit Y o u r Question Minimalna szeroko 800
Travel Writing
www.therandymon.com
2003
Zastosowane
rozszerzenia
okruszkowa
Nie
Gwne sekcje H o m e , N e w s , Travel W r i t i n g , T e c h n o l o g y / S o f t w a r e , Econ/Development, Wedding, Travel Writing, Benin, Cayman Islands, Ghana, Guatemala, Indonesia, Italy, Kenya, Morocco, Mozambique, North America, Nicaragua, Zanzibar Minimalna E-commerce Funkcje szeroko Nie Nie 800
spoecznociowe
Turbo Trade
Strona firmy oferujcej usugi finansowe z bardzo niskimi prowizjami (zobacz rysunek 16.14). Dostpne s rnorodne usugi finansowe, np. handel akcjami, opcjami, walutami. Rysunek 16.14. Turbo Trade
T h e international
investor's
Our
Clients
g l o b a l link t o U . S . t r a d i n g .
T h o u s a n d s of li.ippy t i . n l e i A i e y o u one of t h e m ?
O p e n an account
Download Software
WmW&em
Private Label Content
Not E n o u g h Data
Remember m
O p e n an A c c o u n t
j^
NASDAQ
www.turbotrade.com 2005
M M V I T u r b o T r a d e Financial, Ltd. Google 5/10 partnerskie Google A d S e n s e com Jacileforms, com contact
Zastosowane
rozszerzenia
411
okruszkowa
Tak
Gwne sekcje E q u i t i e s / O p t i o n s , F o r e x / C u r r e n c y , G l o b a l Futures, S e r v i c e s , Open an A c c o u n t , W h y T u r b o T r a d e , F A Q s Minimalna E-commerce szeroko Tak Nie 800
Funkcje spoecznociowe
onetto
Strona agencji n i e r u c h o m o c i o p e r u j c e j g w n i e na C y p r z e P n o c n y m ( z o b a c z rysunek 16.15). ysunek 16.15. ionnetto
SONNETTO
H i NORTH CYPRUS
North Cyprus Wrth Cyprus resolution Nartft Cyotus Proper
www.sonnetto.com 2006
Page Rank Google 5/10 Programy partnerskie Google A d S e n s e com hotproperty, Poll, Contact, J o o m a p
Zastosowane
rozszerzenia
412
okruszkowa
Tak
Gwne sekcje N o r t h C y p r u s , Travel g u i d e , B o g a z , K y r e n i a , F a m a g u s t a , Cyprus holidays, Property Title, Expats Living in Cyprus Minimalna E-commerce Funkcje szeroko Nie Nie 800
spoecznociowe
johnavon.com/index.php 2006
John Avon Google 3/10 partnerskie Brak Pony Gallery, EZ Store, Easy Guestbook, Contact
Zastosowane
rozszerzenia
413
okruszkowa
Nie
H o m e , G a l l e r i e s , Art Stor, B i o g r a p h y , G u e s t b o o k , C o n t a c t ,
szeroko Tak
1024
Funkcje spoecznociowe
Tak
lainSPOT.NET
Gwnym tematem strony s samochody i motocykle, mona na niej znale wiele informacji przydatnych podczas diagnostyki i n a p r a w y m a s z y n silnikowych ( z o b a c z rysunek 16.17). Witryna zawiera take zbir wiadomoci ze wiata motoryzacji. ysunek 16.17. 1ainSPOT.NET
Speed is relative.
414
M a i n S p o t . N E T . Automotive Resource and Car Care Google 5/10 partnerskie Google A d S e n s e Joompa, Simple Machines Forum, Newsfeeds,
Zastosowane rozszerzenia Contact, Poll, RSS Kanay Szablon RSS Tak (RSS) Wasny robotom
internetowym
Tak
okruszkowa
Nie
Gwne sekcje Car Technical Data, Automotive Tips, Headlines Minimalna szeroko Nie Tak 1024
E-commerce Funkcje
spoecznociowe
> X I
EHGU9I
ASTRONOMY i
LATEST
News aeli !
29/12/2008 S e c u r i t y C o u n c i l calls o n I s r a e l , P
415
Uruchomiona Waciciel
Zastosowane rozszerzenia JoomIFish, Joomap, Contacts, iJoomla Magazine, Flash, comextcalendar, com artbanners Kanay RSS Tak (RSS) Szablon RocketTheme! robotom internetowym Tak
okruszkowa
Nie
Gwne sekcje UN in Brussels, UN and the E U , UNR1C Activities, U N R I C Magazine, UK & Ireland and the UN, UNRIC Library Newsletter, UN Associations, Multimedia Resources, U N R I C Publication List, United Nations observances (days, weeks, years, decades) Minimalna E-commerce szeroko Nie Nie 1024
Funkcje spoecznociowe
G JB Global
Strona misyjna HCJB (zobacz rysunek 16.19) powicona promowaniu dynamicznych mediw, opieki zdrowotnej i owiaty. W y d a w a n y jest miesiczny newsletter Truth in Motion. URL www.hcjb.org 2001 World Radio Missionary Fellows
Uruchomiona Waciciel
Page Rank Google 5/10 Programy partnerskie Zastosowane Brak comJomcomment, comjinktrack, iJoomla Magazine
rozszerzenia
Kanay RSS Tak (RSS) Szablon Wasny Adresy przyjazne Nawigacja robotom internetowym Tak
okruszkowa
Tak
Gwne sekcje Media, Healthcare, Leadership Development, Getting Involved, Donate Now, Worldwide, Downloads
416
hcjb global )
Hitflie Al.ont I k
S E A R C H O U R SITE
of Jesus
Download News
search..
A
Minimalna E-commerce szeroko Tak Fan keje spoecznociowe
REACHING OUT TO
MEDIA
;
b e y o n d t h e call
Ordinary People doing Extraordinary Things ^
1024
Nie
Asiaing.com
Portal skupia i n f o r m a c j e o d a r m o w y c h ksikach, m a g a z y n a c h , gazetach itp. (zobacz rysunek 16.20). Rysunek 16.20. Asiaing.com Asiaing.com
iZiNES EBOOK NEWSPAPER ZINIO REPORT DOCUMENT VIDEOS READING FREE SUBSCRIPTIONS
More news W o r l d Investment Report 2008 World Investment Report 2008 iWlROS) is the 18tb in a series published by the United Nations Confere . f i e e Eln>ks Download unlimited e B o o k s for Free Download Now! www.FieeEbook3earch.net
Web
Asiaing.coi
417
www.asiaing.com
2 0 0 5
Zastosowane
rozszerzenia
Kanay RSS Tak (RSS) Szablon Ja Teline II Adresy przyjazne Nawigacja robotom internetowym Tak
okruszkowa
Tak
Gwne sekcje Blog, Magazines, eBook, Newspaper, Zino, Report, Document, Videos, Reading, Free subscriptions Minimalna E-commerce szeroko Nie Tak 1024
Funkcje spoecznociowe
he Chaser
The Chaser to satyryczna strona internetowa prezentujca humorystyczne spojrzenie na aktualne wydarzenia (zobacz rysunek 16.21).
My Colombian Death
Matt Thompson s death rip Home Home I News Columns Store bout Contact us Chat
moat
in store
dangerous
Forum
C h a s e r Store
^ Shop Bargain bundles! ( 3 ) Books(9) DVDs (6) Clothing (5)
. Q , Q
L
0 Q
Login Form
Usemame Password 1 i R e m e m b e r me I Login j Lost P a s s w o r d ? No account yet? Register
Chaser event
Ads by G o o g l e
418
Chaser Publishing Google 5/10 com artbanners, comjombok, com Simple M a c h i n e s Forum, RSS, blastchatc, com acajoom, Poll,
Kanay RSS Tak (RSS, Atom i O P M L ) Szablon Versatility III robotom internetowym Tak
okruszkowa
Nie
Gwne sekcje H a n s e n O n L i n e , N e w s J u n k i e , Cubisia, Gregor, Tim Brunero, Webshites, Charles Firth's Postcards, Dominie Knight Minimalna E-commerce szeroko Tak Tak 1024
Funkcje spolecznociowe
C r e a t i v e G u y P u b l i s h i n g is a s m a l l p u has p u t out a n u m b e r of n o t e w o r t h y Amityville House of Pancakes series, a n d e b o o k novellas, Tales of Moreauvii m o r e u n i q u e publications. A t CGP w e b a l i e n a t i n g . W e hope y o u ' l l stick a r o u n d ar
outside
the
books
^mmmmmm
crtive guy
publishin
# a
'
It was about that time again - - Spring Cleaning a y e a r or so overdue, Hope y o u like t h e T f f S I ( the new site, and feel free to leave any comments in the new f o r u m . One of the goals of the ne* site is to streamline the news and book information and cut down on the clutter. That said, w still want to be a central resource for book news and information, and so we have maintained ou newsfeeds f r o m the m o v e r s and shakers in the publishing world checkout the newsfe|ls f r o r NYT, NPR, and Diverse Books. As noted, we are sporting a new f o r u m , so feel free to leave comments for y o u r f*vourit CGP/LP authors, aim questions and feedback t o w a r d t h e m , make t h e m feel loved. Afso, we ar pleased to announce the publication of five new titles this y e a r , and are including information fo preodering. O u r blog will c o v e r news and notes about our authors' news in other realms, lik G a r y Wolf's new book f r o m T O R , Space Vulture, and Adrienne Jones' Gypsies Stole Mv T< f r o m Bedlam Press. Check the bottom of the page here for our own newsfeeds to add to your readier. $ e n e v e r w update the news, publication schedule or post a link to a new review, you'll be the first to know There is also a newsfeed f r o m the f o r u m , Finally, not the addition of various social bookmarkin
419
Creative G u y Publishing Google 4/10 partnerskie A m a z o n , Books-a-million Fireboard, Newsfeeds, RSS, comcaddy, Banners, Poll
Zastosowane
rozszerzenia
Kanay RSS Tak (RSS, Atom i O P M L ) Szablon Stworzony na podstawie szablonu autorstwa SkullTheme Adresy przyjazne Nawigacja robotom internetowym Nie
okruszkowa
Nie
Gwne sekcje Books, LP Books, Authors & Artists Minimalna E-commerce szeroko Tak Tak 1024
Funkcje spolecznociowe
Strony hobbystyczne
N a j t r u d n i e j s z e do z n a l e z i e n i a b y y p o p u l a r n e w i t r y n y h o b b y s t y c z n e o p a r t e na J o o m l a ! . Chocia Joomla! d o s k o n a l e n a d a j e si d o potrzeb stron h o b b y s t y c z n y c h , b a r d z o niewiele witryn tego typu zdobywa szersze grono uytkownikw. Wymienione w przegldzie przykady zdobyy spore uznanie spoecznoci internetowej.
Zastosowane rozszerzenia Digg, RSS, Sobi2, com Jinx, com J'pslideshow, com Jacileforms
420
SAS Software SAS SftTA MiniSAS Robust. Award-Winning Solutions to Turn SAS Cables - 4X - Multilane - Stock SAS Data into Insights- Set Info! Drive Backplanes - Adapters Ads by C.OOgle
S . A . S . ( S u c c e s s A n d S p o r t ) is a C o m m u n i t y I n t e r e s t C o m p a n y w h o aim t o s p o n s o r a n d s u p p o r t s p o r t s p r o j e c t s a c r o s s S u s s e x , E n g l a n d , w i t h an i n d e p e n d e n t a d v i s o r y b o a r d helping to direct its c o m m u n i t y e f f o r t s . S . A . S . will e n c o u r a g e , k i d s o f f s t r e e t c o r n e r s a n d i n t o h e a l t h y a c t i v i t i e s , s u p p o r t i n g a n d h i g h l i g h t i n g m i n o r i t y s p o r t s , t o s p o n s o r t a l e n t e d i n d i v i d u a l s f o r t h e 2 0 0 8 Beijing O l y m p i c s a n d train for the 2012 L o n d o n G a m e s . Imagine, w h e n w e h a v e enabled j u s t o n e local a t h l e t e t o O l y m p i c s t a t u s o r m e d a l h o n o r s , t h e f a n t a s t i c p u b l i c i t y g e n e r a t e d , iom tts and f.m 3
Kanay Szablon
okruszkowa
Tak
Gwne sekcje A b o u t SASSussex, W h a t W e Do, Membership, Contact Us, Sussex Business, Sussex Business Directory, Sussex Sports Directory, Contact Advertising Sales, SASSussex W e b Links, Add Your W e b Link, Store Minimalna E-commerce szeroko Tak 800
Safari Ventures
Witryna strony oferujcej wycieczki w rnie miejsca wiata (zobacz rysunek 16.24), ktra uatwia p l a n o w a n i e w y j a z d u , w y b r m i e j s c a lub z a k u p w y j a z d w k o r p o r a c y j n y c h , biznesowych itp. URL Uruchomiona Waciciel PageRank Programy www.sajariventures.com 2006
421
W B t T iUMU I T o m m s l j '
(tr stirwtions
Pl.m V o i * I t l j i
Testimonial I AbtttttU*
Corttwt
Home Group Travel 200M S c h e d u l e d T o u r s Educational Touts Adventure Tours - CYCLING Culinary Torus Corporate Photo Alliums Request Information East A f r i c a n B o o k s
J'acileforms,
okruszkowa
Nie
Gwne sekcje Select a Journey, Expectations, Plan Your Journey, Group Travel, 2009 Scheduled Tours, Educational Tours, Adventure Tours C Y C L I N G , Culinary Tours, Corporate, Photo Albums, Request Information, East African Books, Southern Africa Books Minimalna E-commerce szeroko Nie Nie 1024
Funkcje spoecznociowe
ky Systems
Sky Systems oferuje odwiedzajcym informacje na temat hobbystycznego lotnictwa pisze m.in. o paralotniarstwie, motolotniarstwie, awionetkach i ultralekkich samolotach (zobacz rysunek 16.25). Witryna zawiera informacje i aktualnoci zwizane z wymienionymi sportami lotniczymi. URL Uruchomiona Waciciel www.skysystems.co.uk 2005
Sky Systems
422
B 9
msmm
W e l c o m e to S k y s y s t e m s
Sydney H.imj Gliding Tandem Flights and Gift Vouchers Professional hang gliding flights. iMiu.hanggicdrn9.oom <
PageRcmk Programy
Google 4/10 partnerskie Google A d S e n s e com directory, Weblinks, Contact, com marketplace
rozszerzenia
okruszkowa
Tak
Gwne sekcje Directory, Kites, Paragliding, Paramotor, Haggliders, Gliders, Microlights, Light Aircraft Minimalna E-commerce szeroko Tak Nie 800
Funkcje spolecznociowe
KISSin' UK
Strona r o c k o w e j g r u p y KISS, t w o r z o n a przez f a n w , na ktrej mona znale informacje na temat tras k o n c e r t o w y c h , artykuy o czonkach zespou, o p o w i a d a n i a f a n w i gadety (zobacz rysunek 16.26). URL Uruchomiona Waciciel www.kissinuk.com/cms 2005
KISSin' UK
423
This site now has a new look! The top few headl will now appear on the from the menu bar on t left to see all news item
tATES'f NEWS & UPDATES * DTK Cardiff show KISS on Belgian TV b New olfical Ace s i t e c a m m i n g s o o n ! Eric S i n g e r I n t e r v i e w t KISS C h r i s t m a s P a r t y in G e r m a n y
From: Gary Banton Thursday, 11 D e c e m b e r 2 0 0 8 Dressed T o Kill are playing special KlSSrnas s h o w s on Fri 19th December at The Standard, Waltharnstow a n d Sat 20th December at The Point, Cardiff.
PageRank Programy
Zastosowane
rozszerzenia
Kanay RSS Tak (RSS) Szablon Wasny Adresy przyjazne Nawigacja robotom internetowym Tak
okruszkowa
Nie
Gwne sekcje News, News Archive, News Feeds, Reviews, Links, Tribute Bands, Television, D o w n l o a d s , Air-Brush & Gear, T r a d e Board, KISStories, Search, KlSSin' UK Forums, Guestbook, Mailing List, Lyrics, Contact Us Minimalna E-commerce szeroko Nie Tak 800
Funkcje spoecznociowe
alialive.com
Kalifornijska strona powicona rodowisku metalowemu i hardcore'owemu, na ktrej umieszczane s aktualnoci, informacje o koncertach, recenzje albumw, wywiady, multimedia itp. (zobacz rysunek 16.27).
424
http://calialive.com 2005
Zastosowane rozszerzenia Contact, C o m m u n i t y Builder, ExtCalendar, Pony Gallery, B S Q Stats, Fireboard, Staff, Banners, com comments Kanay RSS Tak (RSS i Atom)
Szablon Inspirowany szablonem autorstwa Free C S S Templates Adresy przyjazne Nawigacja robotom internetowym Tak
okruszkowa
Nie
Gwne sekcje N e w s , Reviews, Interviews, Photos, Videos, Forums, Staff, About Minimalna E-commerce Funkcje szeroko Nie Tak 1024
spolecznociowe
425
W podrozdziale znalaz si take krtki opis strony OScar, p o n i e w a pomys zastosowania technik t y p o w y c h dla o p r o g r a m o w a n i a open s o u r c e w t w o r z e n i u s a m o c h o d u w y d a si autorowi ksiki szczeglnie interesujcy. W ten sposb Joomla! staje si j e d n ze skadowych tego osobliwego przedsiwzicia.
k Joomla!
About Joomla
Comr
Create a n d s h t r e with J o o m ;find help, extensions, nrt sftate ideas w8h ctoer us*rs
Contribute to Joomla Sae how you can help mate Joomla evei
Thursday. 11 Decembei 2008 N e w Translation and Localization Policy Announces In yet another step to lowering the barriers to contributing lothe Joomla Project,..
C o m m u n i t y Blog? 2008 EContent today published their EContent 100 List Companies that Matter Most in the.. Joomla! 1 Dreaming, thinking fWecf on January 2. Wifco Jansw
URL
www.joomla.org 2005
Zastosowane rozszerzenia com_faq, Banners, RSS, comsubmissions, Simple Machines Forum ISP www. rochenhost. com
Kanay RSS Tak (RSS, A t o m i O P M L ) Szablon Wasny Adresy przyjazne Nawigacja robotom internetowym Tak
okruszkowa
Tak
426
spoecznociowe
Open Workbench
Witryna powicona aplikacji open source o nazwie Open Workbench, ktra jest narzdziem do planowania p r o j e k t w dla systemu W i n d o w s i zarzdzania nimi (zobacz rysunek 16.29). Program mona pobra i uywa za darmo, na stronie znajduj si take informacje dla programistw, kod rdowy i f o r u m dyskusyjne. Rysunek 16.29. Open Workbench
[ H o m e I Login ji Download:
OPEN WORKBENCH
P B i l i l
Project Planning
Password
Project Scheduling
Remember Login Lost Password? For security new users and existing members please Register Here
Resource Management
Open - Workbench: Microsoft Project Killer? Announcing Open Workbench on Wikipedia Access Gartner's Magic Quadrant Report C.iimo's Top Picks Openworkbench Best free Project: Manager IA Clarity Nanned on Butter Group's Short Ust
of O p e n W o r k b e n c h 1 1 6 Open Workbench is an open source desktop application that provides robust project scheduling management functionality, Already the scheduling standard for more than 100,000 project man; Open Workbench is a free and powerful alternative to Microsoft Project. Released in March 2006, Open Workbench 1.1.6 provides significant new enhancements and but '/<titbet h 1.1.6 Releav Workbench 1.1.6 will soon b en Workber
www.openworkbench.org 1998
rozszerzenia
Adresy przyjazne
427
Gwne sekcje What is O W B ? , Forum, Downloads, News, Support and Training, Get Involved Minimalna E-commerce szeroko Nie Tak 1024
Funkcje spoecznociowe
Domlahut
Popularna strona o tematyce J o o m l a ! / M a m b o , na ktrej m o n a znale d a r m o w e szablony i przewodniki uatwiajce tworzenie profesjonalnych stron W W W (zobacz rysunek 16.30). /sunek 16.30. oomlahut
95
5 GB Storage Bandwidth VirtOZZO Control c P a n e l or Piesk Panel
loo C8
"4 Jm.
MAMBOHUl
(OME
""
.TKiMl
LINKS
'U
LATEST FORUMPOSTS
LATEST DOWNLOADS News Articles Lavinya T e m p l a t e v'*.l) (7*438) S lakeside J t . i p m s*itcttei"t:.all_jc .zip 0 tavinya _Autumn Q t.avtoya I empite (18434) (40080) (6668) .1606) V gj J gil Q h a M
philipbrown dark0823
Downloads 1'u tort als Site Reviews Flash Tutorials Templates Demo Joomla Links F-AQ
Template
called .1CSS C h r i s t m a s . Thi ith a 3 c o l u m n collapsible sti Advertise Here it's t h e time t o g i v e y o u r j o o m l a p o w e r e d w e b s i t e a f r e s h a n d glamorous holiday look.
r*
URL Uruchomiona
www.joomlahut.com 2003
Waciciel B u t H T T P , L L C PageRank Programy Google 5/10 partnerskie Google A d S e n s e , Joomplates, B u y H T T P . c o m , vBulletin com remository,
Zastosowane rozszerzenia RSS, Contact, comjntree, com_submissions, com_virtuemart Kanay RSS Tak (RSS, A t o m i O P M L ) Szablon Adresy przyjazne mambohutred robotom internetowym Tak
428
Gwne sekcje News, Articles, Gallery, Downloads, Tutorials, Site Reviews, Flash Tutorials, Templates, Demo, Joomla Links, F A Q , Submit N e w s , Advertise Here Minimalna E-commerce Funkcje szeroko Tak Nie 800
spo/ecznociowe
Projekt OScar
Projekt OScar 1 to p r b a stworzenia s a m o c h o d u z g o d n i e z zasadami open source (zobacz rysunek 16.31). Celem projektu jest stworzenie oraz szerzenie idei prostego i funkcjonalnego samochodu. Przedsiwzicie jest p r b przeniesienia zasad znanych z tworzenia oprogramowania do realnego (fizycznego) wiata. Witryna zawiera f u n k c j e spoecznociowe, a take opcje uatwiajce wspprac. Rysunek 16.31. Projekt OScar
b e l i e v e in horr.es, a u t o m o b i l e s a transient ore appearance."
OScar
Concept
W i l h i t t i . ( 1 6 3 9 - ! 9 4 ! } , G e r m
Documents t. OScar is not just 3 car It is s of mobility and the spreading jure idea in the real (physical) Integrator Modules developers and drivers mho want ity anew and together in 1999 December 2005, tailing in 2006. participate.
www.theoscarproject.org 2005
Nazwa OScar to zczenie akronimu OS open source i sowa car samochd p r z y p . tum.
429
comdocman,
Kanay RSS Tak (RSS i Atom) Szablon Adresvprzyjazne Nawigacja rhuksolarflareii robotom internetowym Nie
okruszkowa
Tak
Gwne sekcje Idea, C o n c e p t , F o r u m s , D o c u m e n t s , L i n k s , C o n t a c t , O S c a r Workbench, Integration, Modules, Tools, Network Minimalna E-commerce szeroko Nie Tak 1024
Funkcje spoecznociowe
'odsumowanie
W y d a j e si, e praktycznie dla kadej dziedziny l u d z k i e g o wysiku m o n a znale stron internetow z b u d o w a n dziki Joomla!. Potga o p r o g r a m o w a n i a dostpna dla k a d e g o jest cakiem i m p o n u j c a . W rozdziale p r z e d s t a w i o n o p r z y k a d y w i t r y n o p a r t y c h na J o o m l a ! z rnych dziedzin: Strony akademickie, ktre pozwalaj na zdaln nauk, komunikacj rodzic-nauczyciel, zawieraj informacje o historii, literaturze i archeologii. Strony s k o n c e n t r o w a n e na zdrowiu i rodzinie, z a w i e r a j c e i n f o r m a c j e o z d r o w i u i opiece zdrowotnej, programy dla dzieci, historie na dobranoc (zarwno w formie pisemnej, jak i dwikowej), a take w s k a z w k i i porady dla przybranych rodzin. Profesjonalne strony r e p r e z e n t u j c e biura p o d r y , f i r m y z b r a n y f i n a n s o w e j , profesjonalnego ilustratora, biura nieruchomoci. Strony mediw internetowych, np. m a g a z y n w motoryzacyjnych, witryn z aktualnociami nt. ochrony rodowiska, publikacji humorystycznych, a take maych wydawnictw. Strony hobbystyczne powicone sportom, safari, lotnictwu, f a n k l u b o m i muzyce. Strony technologiczne o znaczeniu dla rodowiska open source, reprezentujce produkty komercyjne, a take repozytoria dodatkw.
Dzikuj Ci, Czytelniku, za odbycie podry w wiat profesjonalnych stron Joomla!. Miae o k a z j zapozna si z o g r o m n iloci materiau, z ktrego, m a m nadziej, zrobisz d o b r y uytek. Mam nadziej, e doczysz do forum Joomla (http://forumjoomla.org) lub odwiedzisz witryn Joomla Jumpstart (www.joomlajumpstart.com), ktr stworzyem w celu publikowania darniowych przewodnikw i innych informacji zwizanych z Joomla!.
430
Skorowidz
JoomlaComment, 264 this, 71, 72 htaccess, 349, 376 JEXEC, 72, 382 :description>, 143 :filename>, 143 :install>, 143 :jdoc:include>, 70 :jdoc>, 70 :name>, 143 cspan>, 197 :style>, 86 display Ajax(), 189 displayReturnO, 187 DOM, 183, 184 gromadzenie informacji, 198 JavaScript, 183 komponenty, 185 modarticleajax, 193 moduy, 192 odbieranie wynikw, 187 pozycjonowanie stron, 362 roboty internetowe, 198 Serwer-danie, 189 SQL Injection, 198 strona WWW, 187 tworzenie komponentu, 185 tworzenie moduu, 192 wady technologii, 197 XML, 183 XMLHttpRequest, 187 zagroenia bezpieczestwa, 198 zastosowanie, 184 zwracanie danych w formacie XML, 192 danie, 187 AkoBook, 250, 251 AkoComment, 128, 262 alt, 359 Amazon, 316 Amazon Associates, 317 Amazon Products Feed Bridge, 318 Analiza jzyka, 278, 279 Analiza systemu, 278 anonse towarzyskie, 391 Apache, 31, 35 AccessFileName, 43 AddCharset, 43 AddDefaultCharset, 43 AddLanguage, 43 AllowCONNECT, 43
A
Story for Bedtime, 403 \cceptPathInfo, 349 \ccessibility Valet, 281 Account Expiration Control & Subscription Manager, 118 \ctive Server Pages, 23 idaptacja szablonw Mambo lub Joomla! 1.0, 101 adapter, 205 Admin Addons, 105 Admin Interface, 105 idministracja, 298 uwierzytelnianie, 298 Administration, 105 ADOdb, 203 idresy, 348 Ads & Affiliates, 117 AEC, 118 Affiliate Advertising, 117 Affiliate Carts, 117 agregator, 306 Aj ax, 183 chmurka, 184, 196 CSS, 183
432
Apache AllowOverride, 43 blokowanie dostpu do zasobw, 378 bdy na stronie. 45 CacheDefaultExpire, 43 CharsetDefault, 43 CookieExpires, 43 CustomLog, 43 DefaultLanguage, 43 Deny, 43 Directorylndex, 40 DocumentRoot, 43 dyrektywy, 43 dziennik bdw, 42 ErrorDocument, 43 ErrorLog, 42, 43 extensions, 45 gwny katalog serwera W W W , 42 Header, 43 HeaderName, 43 htdocs, 46 httpd.conf, 42 IdentityCheck, 43 KeepAlive, 43 KeepAliveTimeout, 43 konfiguracja, 40 konfiguracja .htaccess, 376 konfiguracja PHP, 47 konfiguracja wirtualnych serwerw, 284 kontrola serwera z wiersza polece, 285 LanguagePriority, 44 liczba komunikatw, 41 Listen, 44 LogLevel, 41 MaxKeepAliveRequests, 44 modules, 45 moduy, 46 odmowa dostpu do plikw z danym rozszerzeniem, 377 plik indeksowy, 40 pliki dziennika, 44 pliki konfiguracyjne, 40 rozszerzenia, 46 Script, 44 ScriptLog, 44 ServerAdmin, 44 ServerName, 44 ServerRoot, 42 ServerSignature, 377 ServerTokens, 377 TimeOut, 44 TraceEnable, 44 TransferLog, 44 UserDir, 44 VirtualDocumentRoot, 44
B
B2B, 319 background, 78 badanie sw kluczowych, 355
Skorowidz
anda Czterech, 201 inner, 90 anncr Management, 117 ase, 230 iza danych, 230 indeksy, 292 BCode, 249 est Association Resources and Tools, 408 etter Health Here, 406 ;zpieczestwo, 367 edytor HTML Joomla!, 381 Joomla!, 381 MySQL, 380 PHP, 378 serwer WWW, 376 SSL, 374 uruchamianie wewntrz systemu, 382 usuwanie plikw instalacyjnych, 381 ;zporedni dostp do MySQL, 301 ae strony, 392 ibliography, 124 IGINT, 295 illing & Invoices, 117 irthdays & Historie Events, 128 lastChat, 254 LOB, 295 oat & Yachting, 118 ooking & Reservations, 128 ookmarks & Recommended, 127 ooks & Libraries, 118 readerumbs, 351 idowanie spoecznoci, 241 idowniczy, 204 usiness to Business, 319 cleanText(), 231 CLI, 280 Client, 230 Clocks, 128 CMS, 2 1 , 2 2 , 2 7 , 201 com content, 237 Comments, 127 Communications, 127 Community Builder, 1 11, 133, 389 awatar uytkownika, 115 cblogin, 116 comprofiler, 112, 116 Contact Info, 114 instalacja, 116 modcomprofilermoderator, 117 mod comprofileronline, 117 Plugin Manager, 115 pobieranie, 116 profil uytkownika, 113 struktura, 112 system logowania, 112 Tab Manager, 115 wtyczki, 115 wtyczki typu user, 115 wysyanie obrazkw, 116 componentheading, 74 components, 217 configuration.php, 31, 58, 283 connection pooling, 203 Contacts, 127 Content & News, 124 Content Management, 105 Content Management System, 21 Content Statistics, 106 controller.php, 211, 213, 233 copy(), 378 Core Enhancements, 105 Corner Banners, 117 count(), 149 Countdown, 128 countModulesQ, 71 cragslist, 134 CREATE TABLE, 150 createPathway(), 234 Creative Guy Publishing, 418 Credits, 106 Cross-Site Scripting, 372 CSS, 22, 73, 183 elementy blokowe, 74 elementy liniowe, 74 grupy szablonw, 96 ukad strony dla telefonw komrkowych, 99 wbudowane style, 74 wstawianie obrazkw, 77 CVS, 160
433
c
ache, 106, 230 alendars, 128 alendars & Events, 128 alialive.com, 423 APTCHA, 167, 249 B, 111 entrum Informacji ONZ dla Europy Zachodniej, 414 :nzurowanie treci, 289 ;rtyfikaty cyfrowe, 374 HAR, 295 hat, 127 lmurka, 184, 192, 196 lassified Ads, 117 eanAddress(), 231 eanBodyO, 231 eanLine(), 231 eanSubject(), 231
434
czat, 129, 253 BlastChat, 254 utChat, 255 czyszczenie systemu, 300 czytnik kanaw, 124 czytnik podcastw, 124
DAL, 203 dane XML, 192 DAO, 230 Data Coversion, 105 Data Reports, 105 Database, 230 Database Abstraction Layer, 203 Database Management, 105 Database Opensource Test Suite for Linux Test Project, 287 DATE, 295 Date & Time, 128 DATETIME, 295 DB Monster, 287 DDoS, 373 DECIMAL, 295 defines.php, 232 definiowanie arkusza stylw dla urzdze przenonych, 100 DEL, 322 Denial of Service, 373 description, 350, 351 deweloper stron WWW, 27 Diagnostyka, 278 Dieseltest Load Testing Software, 286 Directory, 124 Directory & Documentation, 124 Directorylndex, 40 disableclasses, 379 disable functions, 379 dispatch(), 233 display errors, 278 display errors, 380 display Ajax(), 187, 189, 195, 196 displayRetumO, 187, 196 distributed denial of service attack, 373 doc root, 379 DocBlock, 180 DocBook, 131,387 Document, 230 Dodatki, 218 dodawanie artykuy, 133 komentarze, 128
E
E ALL, 49 E COMPILE ERROR, 49 E COMPILE WARNING, 49 E CORE ERROR, 49 E CORE WARNING, 49 E ERROR, 49 E NOTICE, 49 E PARSE, 49 E R E C O V E R A B L E E R R O R , 49 E STRICT, 49 E USER ERROR, 49 E USER NOTICE, 49 E USER WARNING, 49 E WARNING, 49 Easybook, 249, 250 EasyEclipse, 164 eCards, 124 Eclipse, 164 instalacja EasyEclipse, 164 konfiguracja, 164 projekt, 165 workbench, 164 e-commerce, 319 eCommerce, 388 e-Commerce, 117 EDI, 305, 319, 320 DEL, 322 dokumenty, 320 dostawy, 322 ENG, 322 FIN, 321
Skorowidz
exec(), 378 EXPLAIN, 296 expose php, 380 Extensions Search, 106 ezine, 312
435
finanse, 321 GOV, 321 hipoteka, 322 informacje dla studentw, 323 INS, 322 inynieria zarzdzania i umowy, 322 jako i bezpieczestwo, 323 magazyny, 321 MAN, 321 MAT, 321 MIS, 322 MOR, 322 obsuga materiaw, 321 ORD, 321 produkcja, 321 PSS, 323 serwer, 329 serwisowanie produktw, 323 skrty UN/EDIFACT, 323 Skylark, 329 SQQ, 323 standardy, 320 STU, 323 TAX, 321 ubezpieczenia i zdrowie, 322 urzdowe, 321 usugi podatkowe, 321 WAR, 321 X12, 321 zamwienia, 321 litorcontent.css, 108 iucation, 118 [ytor HTML Joomla!, 381 lytor WYSIWYG, 106 lytory, 106 ffeTech HTTP Sniffer, 374 ;zemplarze moduw, 144 ;sport plikw, 387 ectonic magazine, 312 lectronic Data Interchange, 305, 320 ektroniczna wymiana danych, 320 ektroniczny magazyn, 312 mail, 389 mail Cloaking, 219 mbed & Include, 105 NG, 322 NUM, 295 nvironment, 230 rrorLog, 42
5vn, 162
F
fabryka abstrakcyjna, 204 fanny hiperlczy, 364 favicon.ico, 97 Feed, 308 Adres kanau, 309 konfiguracja, 309 liczba wywietlanych pozycji, 310 obrazki, 310 RSS Specifications, 309 feedback, 247 Festivities, 128 File Management, 105 Filesystem, 230 Filter, 230 filtrowanie danych, 230 filtrowanie pl tekstowych, 369 FIN, 321 Fireboard, 258 Firebug, 82 FLOAT, 295 Food & Beverage, 118 Forms, 127 formularze HTML, 369 Forum Bridges, 127 forum dyskusyjne, 257 Fireboard, 258 Simple Machines Forum, 257 Forum extras, 127 Forums, 127 Foul Filter, 289 framework.php, 232 Frontend News, 124 FTP, 109 funkcjonalno, 105
G
galeria zdj, 125 Gang of Four, 201 generowanie dokumentacji, 179 getDBO(), 191 getEscapedO, 370 getHash(), 231 getPageParameters(), 234 getParams(), 236
vent, 230 vents, 128 vents Calendar, 267, 268 Writing, 133
436
getTemplate(), 234 getToken(), 231 getVar(), 168, 191, 199 GIMP, 90 Glossary & Directory, 124 Good Keywords, 355 Google Ads, 117 Google AdSense, 314, 365 Google Adwords Tools, 355 Google Analytics, 363 Google Apps Premier Edition, 209 Google Custom Search Engine, 391 Google Sitemap XML, 110 Google Sitemaps, 353 Google Toolbar, 360 GOV, 321 grafika szablonu, 79 Graphic User Interactive Learning and Development, 399 gromadzenie informacji, 198 group ware, 389 grupy szablonw, 96 gry, 392 gry hazardowe, 137 Gsnapshot, 81 GTK+,81 Guest Book, 127 GUILD, 399
H
hasa, 60, 368 konta wbudowane, 64 HCJB Global, 415 Hello World, 142 Hello World!, 222 hellomvc.php, 21 I Help desk, 118 HTML Module, 315 html.php, 233 htmlentitiesO, 372 HTTP, 31 httpd.conf, 42 HTTPS, 374
I
il8n, 230 IDE, 159 ieonly.css, 81 IIS, 35 Image Slideshow, 124 images, 79 Images, 124
(J
JACLPlus, 388 JAdministrator, 230, 232, 234 jajax.php, 233
Skorowidz
ambook, 251 Application, 232 Archive, 230 Authentication, 231 Authorization, 231 avaScript, 183 Browser, 230 CacheCallback, 230 CacheOutput, 230 CachcPage, 230 CacheView, 230 CalPro, 270 Config, 58 Controller, 210, 213 Controller::display(), 213 Database, 230, 370 DatabaseMySQL, 230 DatabaseMySQLi, 230 Dispatcher, 230 Document, 70, 230 DocumentHTML, 70, 71, 230 ED, 104 Error, 231 Event, 230 Events, 267, 268 ?zyki, 230 File, 230 Folder, 230 FTP, 230 Help, 230 HTMLEmail: :cloak(), 219 InputFilter, 230 Installation, 230, 232 InstallationController, 233 Installer. 231 InstallerComponent, 231 InstallerLanguage, 231 InstallerModule, 231 InstallerPlugin, 231 InstallerTemplate, 231 Language, 230 LDAP, 230 Mail, 231 MailHelper, 231 Model, 210, 230 ModelCategory, 230 ModelComponent, 230 ModelMcnu, 230 ModelModule, 230 ModelPlugins, 230 ModelSection, 230 ModelSession, 230 ModelUser, 230 Object, 230 JObservable, 230, 231 JObserver, 230 John Avon Illustration, 412 Joomap, 110, 111,353 Joomla Casino, 137 Joomla Extension Directory, 104 Joomla Live Chat, 129 Joomla Standalone Server, 63 Joomla!, 21, 22, 29 aplikacja frontowa JSite, 233 cz administracyjna, 232 cz frontowa, 232 instalacja, 31 instalator, 232 JAdministrator, 234 JInstallation, 232 konfiguracja, 58 minimalne wymagania, 32 resetowanie hasa, 60 serwery, 31 Joomla! 1.0,28 Joomla! 1.5,28 Joomlaboard Forum, 133 JoomlaFCK, 107 Joomlahut, 427 Joomlamap, 336 API Map Google, 336 kod komponentu, 338 plik deskryptora, 337 rejestracja w systemie, 337 joomlaXplorer, 109 Joom League, 135 Journal of Intercultural and Interdisciplinary Archaeology, 398 JOutputFilter, 230 JPagination, 231 JPath, 230 J P A T H A D M I N I S T R A T O R , 234 JPATH BASE, 234 JPATH INSTALLATION, 234 JPATH ROOT, 234 JPATH SITE, 234 JPlugin, 219, 224, 228, 230 JPluginHelper, 230 getPluginO, 228 J Profiler, 231 JRegistry, 231 J Registry Format, 231 JRegistryFormatlNI, 231 JRegistryFormatPHP, 231 JRegistryFormatXML, 231 JReponse, 230 J Request, 230 get(), 371 getVarQ, 191, 371
437
438
JSAS, 63 JSession, 231 JSessionStorage, 231 JSite, 230, 232, 233, 234 JSVN, 162 JText, 142, 230 JTree, 230 JURI, 230 JUser, 231 JUserHclper, 231 JUtility, 231 JView, 210
K
kalendarz wydarze, 267 Events Calendar, 268 JCalPro, 270 kalendarze, 389 kanay RSS, 124, 305 agregator, 306 Atom, 306 Feed, 308 format, 306 modu subskrypcji, 308 publikacja, 310 RSS, 306 Syndication, 310 karta pracy, 121 katalog rozszerze, 104 katalogi, 392 kdesvn, 162 Kerberos, 388 keywords, 350 KidsCHANNEL, 402 KISSin' UK, 422 klient FTP, 109 klient-serwer, 208 kod CSS dla komponentw, 93 kod PUP, 280 kodowanie UTF-8, 288 komentarze, 128, 262 IJoomlaComment, 264 AkoCommcnt, 262 komponenty, 93, 159 !JoomlaComment, 264 Ajax, 185 AkoBook, 250 c o m c o n t e n t , 237 Easybook, 249 instalacja, 176 Jambook, 251 Joomlamap, 336 kontroler, 211
Skorowidz
439
U
LAMP, 34 landing pages, 365 Languages, 106 Latest News, 92, 124 LDAP, 218, 298, 299 link farm, 364 Link Valet, 281 Linux, 34 lista sw kluczowych, 355 load testing, 286 loadConfigurationO, 234 loadObjectListO, 149 login(), 233 LogLevel, 41 logoutQ, 233 lokalna instalacja Joomla!, 33 long_query_time, 297 LONGBLOB, 295 LONGTEXT, 295 acuch odpowiedzialnoci, 206 czenie z zasobami zewntrznymi, 305
M
MacOS, 34 Mailing & Distribution Lists, 128 MainSPOT.NET, 413 makra Script-Fu, 90 Mambo, 28 MAMP, 34 MAN, 321 mapa strony, 110, 353 Maps, 124 mapy, 336, 391 Mapy Google, 337 marketing grupowy, 247 marketing w wyszukiwarkach internetowych, 347, 364 Google AdSense, 365 landing page, 365 pay per click, 365 pay per view, 365 tekst reklamowy, 364 MAT, 321 MD5, 60 media, 99, 392,413 MediaWiki, 130 MEDIUMBLOB, 295 MEDIUMINT, 295 MEDIUMTEXT, 295 menader projektw, 120 menader subskrypcji, 118 Menu Systems, 105
metadane, 350 artykuy, 351 dla caej strony, 350 szablony, 78 Microblogging, 124 MicroShop, 119 Microsoft Word, 387 miniatura szablonu, 80 Ministerstwo Edukacji na Wyspach Dziewiczych, 400 MIS, 322 Missus, 133 Mistrzostwa wiata 2010 w Pice Nonej, 407 Mod HTML, 315 mod apf search, 319 mod_articleajax, 192, 193 mod_rewrite, 349 model, 209 model subskrypcji, 26 model zabezpiecze, 387 Model-View-Controller, 209 Model-Widok-Kontroler, 209 moderacja, 128 moderator, 274 moduy, 83, 141 Ajax, 192 archiwum, 143 Breadcrumbs, 351 egzemplarze, 144 Feed, 308 Hello World, 142 konfiguracja, 150 Kontakt z Nami, 152 Latest News, 92 My EBay Store, 123 nazwy, 142 plik deskryptora, 143, 146 pliki, 142 Podcast Suite, 125 Syndication, 310 witeczne yczenia, 145 tworzenie egzemplarzy, 144 tworzenie kodu, 147 tworzenie pliku deskryptora, 146 ustawienia, 145 zmiana, 91 Moduy, 145 modyfikacja wygldu rozszerze, 98 mosAPF_05.b3, 319 mosAPF button, 319 most, 205 Multi-lingual Content, 106 Multimedia Display, 124 Multiple Sites, 105 muzyka, 392
440
MVC, 209 plik deskryptora, 214 plik kontrolera, 213 plik modelu, 211 plik widoku, 212 tworzenie komponentw, 211 My EBay Store, 122 MyPMSII, 133 MySpace.com, 266 MySQL, 22,31 bezpieczestwo, 380 dostrajanie wydajnoci, 289 dysk przechowujcego dane, 289 dziennik powolnych zapyta, 297 EXPLAIN, 296 indeksy kompozytowe, 292 instalacja, 53 konfiguracja, 52 OLTP, 290 optymalizacja indeksw, 292 optymalizacja istniejcego systemu, 297 optymalizacja zapytania, 296 Path, 53 poczenie, 53 problemy ze wstawianiem danych, 54 resetowanie hasa, 57 SELECT, 296 tryb Strict, 54 typy danych, 294 unikatowe wartoci indeksowanego pola, 293 usuwanie nadmiarowych indeksw, 294 wybr typu serwera, 290 zapytania, 56 zarzdzanie, 54 MySQL Administrator, 54 MySQL GUI Tools, 54 MySQL Instance Manager, 286 mysql_real_escape_string(), 370 mysqld, 297 MyTop, 298
0
obiekt XMLHttpRequest, 187 object oriented programming, 70 obrazek zastpczy, 71 obserwator, 206 obsuga plikw, 109 obsuga pl tekstowych, 369 obsuga sesji, 231 obsuga SSL, 35 obsuga strony, 105, 300 bezporedni dostp do MySQL, 301 czyszczenie systemu, 300 wyszukiwanie najnowszych gosw w sondzie, 303 wyszukiwanie nieaktywnych uytkownikw, 302 wyszukiwanie niepublikowanych artykuw, 301 wyszukiwanie niepublikowanych artykuw i menu, 302 wyszukiwanie pustych metadanych, 302 wyszukiwanie pustych sekcji i kategorii, 303 wyszukiwanie starych materiaw, 302 obszary, 221 ochrona przed spamem, 167 odmowa usugi, 373 oferty pracy, 391 ogoszenia, 134, 391 OLTP, 290 onAfterDeleteUserO, 222 onAfterDispatch(), 221 onAfterDisplayO, 219 onAfterDisplayContent(), 220 onAfterDisplayTitleO, 220, 222, 224, 225 onAfterlnitialiseO, 219, 221 onAfterRender(), 221 onAfterRoute(), 221 onAfterStoreUser(), 222 onAuthenticate(), 222 onAuthenticateFailtureO, 222 onBeforeDeleteUser(), 222 onBeforeDisplayO, 219 onBeforeDisplayContentO, 220 onBeforeStoreUserO, 222 onCustomEditorButtonO, 220 onDisplay(), 220 onGetContent(), 220 onGetlnsertMethodO, 220 onGetWebServices(), 221 onlnit(), 220 Online Status & Profile, 118 onLoginUser(), 222 onLogoutUser(), 222 onMouseOver, 187, 197 onPrepareContentQ, 219, 228 onSaveQ,220
N
nawigacja okruszkowa, 351 Network Information System, 388 News Tickers & Scrollers, 124 Newsflash & Random, 124 nieaktywni uytkownicy, 302 niepublikowane artykuy, 301 niepublikowane elementy, 302 niestandardowe dania, 371 NIS, 388 Noah's Classifieds, 134 NTLM, 388
Skorowidz
tiSearchO, 221 nSearchAreas(), 221 iSetContent(), 220 OP, 70 pen Workbench, 426 penLDAP, 300 penWiki, 130, 272 Jtymalizacja indeksw, 292 stymalizacja zapytania, 296 RD, 321 'ganizacje, 1 17 iobista strona internetowa, 391 erLIB, 192 verLIB(), 196 max execution time, 51 max input time, 51 memorylimit, 51 output buffering, 48 registerglobals, 48 RG EMULATION, 48 Safe Mode, 378 safe mode, 48, 51 session.auto_start, 48 session.savejath, 50 tryb bezpieczny, 378 upload_max_filesize, 52 upload tmp dir, 52 u s e r d i r , 52 zgaszanie bdw, 48 zlib.output_compression, 48, 52 zlib.output_handler, 52 phpDocumentor, 179 instalacja, 179 pakiety, 180 wstawianie sekcji DocBlock, 180 phpinfoO, 47, 378 ' phpLoadBalancer, 288 PHPMailer, 231 PhpMyAdmin, 286 placeholder, 71 planowanie wirtualnej spoecznoci, 242 platforma, 34 platforma aukcyjna, 122 platforma Joomla!, 229 Application, 230 Base, 230 Cache, 230 Client, 230 Database, 230 Document, 230 Environment, 230 Event, 230 Filesystem, 230 Filter, 230 il8n, 230 Installer, 231 pakiety, 229 Parameter, 231 Registry, 231 Session, 231 Template, 231 User, 231 Utilities, 231 plik deskryptora moduu, 143 patnoci Paypal, 119 pobieranie aktualnej wersji Joomla!, 37 pobieranie zewntrznych materiaw, 305 Podcast Suite, 125
441
P
ageRank Google, 360 aid Access and Content, 117 akiety sieciowe, 373 ami podrczna, 230 anorama, 124 arameter, 231 arametry, 231 irametry szablonu, 72 arseAttributes(), 231 ASSWORD, 57 atTemplate, 102, 231 ay per click, 365 ay per view, 365 ay pal, 119 DF, 387 DO, 203 EAR DAL, 203 lioto Galleries, 124 hoto Galleries extras, 124 ip, 280 HP, 22, 2 3 , 3 1 , 3 6 , 70 bezpieczestwo, 378 disableclasses, 379 disable_functions, 379 display_errors, 48, 380 doc root, 51, 379 dyrektywy, 48 error reporting, 49 expose_php, 51, 380 extensiondir, 51 fileuploads, 48, 51 include_path, 51 komunikaty o bdach, 49 konfiguracja, 47 log errors, 48 m a g i c q u o t e s g p c , 48, 51 magic_quotes_runtime, 48, 51
442
podcasting, 124 podsuchiwanie pakietw HTTP, 373 pola tekstowe, 369 Polis, 128 poczenie z MySQL, 53 Popular Content, 124 portal, 390 Portfolio & Catalog, 124 poziomy interfejsu uytkownika, 388 pozycjonowanie stron, 347, 348 adresy, 348 Ajax, 362 atrybut alt, 359 Breadcrumbs, 351 fanny hiperczy, 364 Google Analytics, 363 mapa strony, 353 metadane, 350 opis, 351 PageRank Google, 360 podgldanie konkurencji, 357 sowa kluczowe, 351,355 spamowanie, 363 system wymiany odnonikw, 361 tytuy stron, 359 ukrywanie tekstu, 364 ustawienia Joomla!, 348 wyszukiwarki, 354 preg_replace(), 229 prezentacja szablonu, 73 profilowanie, 297 prognoza pogody, 392 programowanie, 277 obiektowe, 70, 201 programy partnerskie, 313 Amazon, 316 Amazon Associates, 317 Amazon Products Feed Bridge, 318 Google AdSense, 314 Mod HTML, 315 Project & Task Management, 118 Project Fork, 120 projekt, 120 Projekt OScar, 428 projektant stron WWW, 25 projektowanie szablonu, 82 prowadzenie spoecznoci, 275 prowadzenie strony, 277 prymitywny index.php, 72 przenoszenie strony na serwer produkcyjny, 282 przepyw pracy, 386 przeszukiwanie katalogi, 235 sie, 391
Q
QSvn, 162 quiz, 138 Quiz & Surveys, 128 Quiz 2.0, 138 Quotes, 124
R
Radio & Shoutcast, 124 RAID, 33 Ranks, 106 RapidS VN, 162 Ratings & Reviews, 124 Real Estate, 118 Registry, 231 reklama AdSense, 314 Relacje podrnicze Randalla Wooda, 409 Related Items, 106 Remote Procedure Call, 219 renderQ, 233, 236 replaceAbbrStr(), 228, 229 replikacja danych, 388 repozytorium SVN, 163 resetowanie hasta Joomla!, 60 MySQL, 57 robot, 351 roboty internetowe, 198, 354 rodzina, 401 rozszerzenia, 103 Account Expiration Control & Subscription Manager, 118 Admin Addons, 105 Admin Interface, 105 Administracja, 105 Administration, 105 Ads & Affiliates, 117 AEC, 118 AkoComment, 128, 262 Amazon Associates, 317 APF Brigde, 318 aukcje, 122 Authentication LDAP, 299
Skorowidz
Auto Articles 3000,311 BlastChat, 254 Calendars & Events, 128 Clients & Groupware, 118 Communications, 127 Community Builder, 111 Compatibility, 104 Content & News, 124 Core Enhancements, 105 czat, 129 Data Coversion, 105 data dodania, 104 Database Management, 105 Date added, 104 deweloper, 104 Directory & Documentation, 124 Dla poszczeglnych rozszerze, 118 e-Commerce, 117 e-mail, 104 Events Calendar, 267 eWriting, 133 Extension Specific, 118 File Management, 105 Fireboard, 258 Foul Filter, 289 FTP, 109 funkcjonalno, 105 galeria zdj, 125 Grafika i multimedia, 124 gry hazardowe, 137 Homepage, 104 ikony, 104 Images & Multimedia, 124 JACLPlus, 388 JCalPro, 270 Jzyki, 106 Joomap, 110, 111,353 Joomla Casino, 137 Joomla Live Chat, 129 JoomlaFCK, 107 JoomLeague, 135 Kalendarze i wydarzenia, 128 karta pracy, 121 katalog rozszerze, 104 Katalogi i dokumentacja, 124 Klienci i oprogramowanie do pracy grupowej, 118 komentarze, 105 kompatybilno, 104 Komunikacja, 127 komunikacja na stronie, 127 ksiga goci, 128 Languages, 106 licencja, 104 liczba odwiedzin, 104 mapa strony, 110 menader projektw, 120 menader subskrypcji, 118 MicroShop, 119 Mod HTML, 315 modyfikacja wygldu, 98 My EBay Store, 122 Narzdzia, 106 Noah's Classifieds, 134 obsuga plikw, 109 obsuga strony, 105, 106 oceny uytkownikw, 105 ogoszenia, 134 OpenWiki, 130 opis, 104 organizacje, 117 Podcast Suite, 125 Project Fork, 120 quiz, 138 Quiz 2.0, 138 Reklamy i programy partnerskie, 117 Rozbudowywanie podstawowej funkcjonalnoci, 105 RSGallery2, 126 Rynki branowe, 118 Search & Indexing, 106 Server, 105 Site Management, 106 Skylark, 329 SocialBookmarkerBot, 267 strona domowa, 104 ledzenie wynikw sportowych, 135 TimeWriter, 121 Tools, 106 tworzenie, 141 User Reviews, 105 Vertical Markets, 118 Views, 104 wersja, 104 wiki, 130 WikiBot, 274 wpis do katalogu, 104 Wyszukiwarki i indeksowanie, 106 Zawarto i newsy, 124 zawarto strony, 123 rwnowaenie obcienia, 287, 388 RSGallery2, 126, 127 RSS, 124, 305, 306 RSS Syndicate, 124 RTF, 387
443
444
S
S.A.S., 419 Safari Ventures, 420 schemat bazy danych, 56 SCPlugin, 162 Scraper, 334 screen scraper, 330 kod komponentu, 333, 334 plik deskryptora, 334 wady stosowania, 331 Script-Fu, 90 Search, 221 Search Engine Marketing, 347, 364 search engine optimization, 311 Search Results, 106 Second Wives Club, 404 Sections & Categories, 105 SEF, 106 SELECT, 296 SEM, 347, 364 sendAdminMail(), 231 sendMail(), 231 SeniorNet, 401 SEO, 2 5 8 , 3 1 1 , 3 4 7 SEO & Metadata, 106 Server, 105 ServerRoot, 42 ServerSignature, 377 ServerTokens, 377 serwer, 31, 208 EDI, 329 FTP, 35 LDAP, 300 MySQL, 31 produkcyjny, 62, 64 testowy, 62, 63 wdroeniowy, 63 serwer WWW, 31,35 Apache, 35 bezpieczestwo, 376 IIS, 35 ochrona katalogw, 35 PHP, 36 Serwer-danie, 189 odpowied na danie, 191 tworzenie komponentu, 189 zwracanie danych w formacie XML, 192 sesje, 231 Session, 231 SET, 295 setQuery(), 197 setTcmplateO, 234 Shopping Cart, 117
Shoutbox, 258 sieci spoecznociowe, 266 SocialBookmarkerBot, 267 silnik PHP, 36 Simple Machines Forum, 205, 250, 257 simplexml, 231 singleton, 204 Site Analytics, 106 Site Management, 106 Site Map, 106 Site Navigation, 105 Site Search, 106 Site Traffic Statistics, 106 skanowanie katalogw, 372 sklep internetowy, 119 skrki, 388 skrty UN/EDIFACT, 323 Sky Systems, 421 Skylark, 329 sowa kluczowe, 351,355 narzdzie do wyszukiwania, 355 podgldanie konkurencji, 357 wynajdywanie najlepszych sw, 357 SMALLINT, 295 SmartSVN, 162 SMB, 388 SMF, 250, 257 SMF Bridge, 258 Snaglt, 81 sniffer, 374 SocialBookmarkerBot, 267 sondy, 260 Sonetto, 411 spam, 167,219 spamowanie, 363 spoeczno, 241 czat, 253 dojrzao, 245 dotrzymywanie terminw, 246 Easybook, 249 feedback, 247 forum dyskusyjne, 257 kalendarz wydarze, 267 komentarze, 262 ksiga goci, 249 lojalno odwiedzajcych, 248 moderator, 274 oferty grupowe, 246 planowanie wirtualnej spoecznoci, 242 powizane tematy lub produkty, 245 powody tworzenia, 247 programowanie, 243 prowadzenie spoecznoci, 275 przedetiniowanie, 245
Skorowidz
przyciganie uytkownikw, 244 reklama, 246 sondy,260 stabilno, 246 stadia, 243 systemy Wiki, 272 technologie, 248 testy, 243 uruchamianie wirtualnej spoecznoci, 244, 274 utrzymywanie uytkownikw szczliwymi, 246 wady, 247 zalety, 247 >rawdzanie poprawnoci strony, 281 QLInjection, 168, 198, 368 filtrowanie pl tekstowych, 369 niestandardowe dania, 371 typizacja pl, 370 3Q, 323 5L, 35, 374, 388 abilno, 246 andardy EDI, 320 are materiay, 302 ateful firewalls, 373 r_replace(), 229 rategia, 207 reaming & Broadcasting, 124 rip tags(), 372 rona serwisu aukcyjnego eBay, 122 rony akademickie, 396 rony dynamiczne, 23 rony hobbystyczne, 419 rony powicone technologii, 424 ruktura CMS Joomla!, 232 TU, 323 ubs, 282 yle, 75 ubclipse, 164 ubcommander, 162 ubversion, 160 uccess and Sport, 419 VN, 28, 160 EasyEclipse, 164 Eclipse, 164 instalacja, 162 konfiguracja Eclipse, 164 repozytorium, 163 tworzenie repozytorium, 163 VN Joomla!, 237 poczenie z repozytorium, 237 SVN Update, 238 uaktualnianie plikw, 238 /nX, 162 yncro SVN Client, 163 yndication, 310
445
System, 221 system kontroli wersji, 160, 237 system logowania, 112 system plikw, 230 system przepywu pracy, 390 system Wiki, 272 system wymiany odnonikw, 361 system zarzdzania projektami, 389 system zarzdzania treci, 21 system zarzdzania wiedz, 390 system zdarze, 230 szablony, 26, 67, 231 Sthis, 71 adaptacja szablonw Mambo lub Joomla! 1.0, 101 arkusz stylw dla urzdze przenonych, 100 banner, 90 banner.fff, 68 css, 69 CSS, 73 favicon.ico, 97 foldery, 67, 68 grafika, 79 grupy szablonw, 96 html, 69 ieonly.css, 81 ikona, 97 images, 69, 79 index.php, 68, 69 instrukcje Joomla!, 70 Internet Explorer 6, 81 javascript, 69 JDocument, 70 JDocumentHTM L, 71 Joomla! 1.0, 101 kod CSS dla komponentw, 93 logika, 69 Mambo, 101 metadane, 78 miniatura, 80 modyfikacja wygldu rozszerze, 98 parametry, 72 patTemplate, 231 plik CSS, 73 plik parametrw, 79 pliki, 67, 68 polecenia PHP, 70 prezentacja, 73 projektowanie, 82 prymitywny index.php, 72 struktura, 67 template.css, 68 templatethumbnail.png, 80 templateDetails.xml, 68, 78, 79, 94 templates, 82
446
szablony trjkolumnowy ukad, 81 tworzenie arkusza stylw, 86 tworzenie bannera, 90 tworzenie dystrybucyjnego pliku templateDetails.xml, 94 tworzenie pliku index.php, 83 tworzenie struktury, 82 ukad strony dla telefonw komrkowych, 99 wbudowane style, 74 wstawianie obrazkw w CSS, 77 wywoanie funkcji Joomla!, 70 zaawansowane techniki tworzenia szablonw, 96 zmiana moduw, 91 zmienne, 79 szyfrowanie SSL, 35
cieki Joomla!, 234 ledzenie niepublikowanych elementw, 302 ledzenie wynikw sportowych, 135 rodowisko programistyczne, 159 witeczne yczenia, 145
T
tabele, 149 Tags & Clouds, 106 TAR, 149 TAX, 321 Taxes & Mortgages, 118 technologia, 424 technologia Ajax, 183 technologie wirtualnych spoecznoci, 248 tekst reklamowy, 364 tekst sformatowany, 387 telefony komrkowe, 99 templadeDetails.xml, 67 Template, 231 template.ess, 67, 68 template_thumbnail.png, 80 templateDetails.xml, 68, 78, 79 tworzenie pliku, 94 templates, 82 testowanie, 382 testy, 277 jednostkowe, 281 obcieniowe, 286 TEXT, 295 Text & Link Ads, 117 The Chaser, 417 The Shakespeare Birthplace Trust, 397
U
ukad moduw, 83 ukad strony dla telefonw komrkowych, 99 ukad trjkolumnowy, 81 umidzynaradawianie, 288 UN/EDIFACT, 323 Unicode, 288 unit testing, 281 unlink(), 378 UPDATE, 62 URL Redirection, 106 uruchamianie kodu PHP, 280 uruchamianie po stronie klienta, 209 uruchamianie strony, 282 konfiguracja wirtualnych serwerw Apache, 284 kopia zapasowa Joomla!, 283 przenoszenie strony na serwer produkcyjny, 282 rwnowaenie obcienia, 287 testy obcieniowe, 286 umidzynaradawianie, 288 uruchamianie wirtualnej spoecznoci, 274 urywanie tekstu, 364 US-CERT, 368
Skorowidz
447
ser, 221,231 ser interaction, 128 SPS, 340, 341 ;tawienia diagnostyczne, 278 stawienia regionalne, 230 suwanie plikw instalacyjnych, 381 ;Chat, 255 TF-8, 288 tilities, 231 wierzytelnianie, 231, 388 LDAP, 298
V
r
AN, 320 'ARCHAR, 295 'ideo Gallery, 124 'ideo Players, 124 ideo-on-demang-casting, 125 iew.html.php, 211 'ignette Web Content Management, 387 'irtual Reality & 3D, 124 isible, 100 'isitors, 106 odcastingu, 125
W
V3C Markup Validation, 281 VAMP, 34 VAR, 321 varstwa abstrakcji bazy danych, 203 vbudowane style, 74 VCAG, 26 Vcb 1.0, 22 Neb 2.0, 22, 127, 241 A'eb Content Accessibility Guidelines, 26 Web Page Valet, 281 tVeblinks, 124 webmaster, 24 WHERE, 197 widok, 209,212 wiki, 130 WikiBot, 274 Wikipedia, 130 Windows, 34 wirtualna spoeczno, 241 wirtualny serwer Apache, 284 workbench, 164 WorkBench, 162 workflow, 386 wspbieno, 207 wstawianie obrazkw w CSS, 77
wstawianie sekcji DocBlock, 180 wtyczki, 217 Authentication, 218 Authentication LDAP., 218 Automatyczne Skrty, 225 Autoryzacja, 218 Content, 218, 219 Editor, 218 Editor button, 218 Edytor, 218 Email Cloaking, 219 Hello World!, 222 JPlugin, 219, 224 kategorie, 218, 219 kod, 224 plik deskryptora, 223 Przyciski edytora, 218 Search, 218 System, 218 tworzenie, 219, 223 tworzenie kodu, 224 User, 219 Uytkownik, 219 Wyszukiwanie, 218 XML-RPC, 219 Zawarto, 218 zdarzenia typu Content, 219 zdarzenia typu Editor, 220 zdarzenia typu Search, 221 zdarzenia typu System, 221 zdarzenia typu User, 221 wydajno MySQL, 289 wydajno serwera, 33 Wydzia Biologii Molekularnej Princeton, 396 wykonywanie zapytania do bazy MySQL, 191 wynajdywanie najlepszych sw kluczowych, 357 wyniki sportowe, 135 wyrwnywanie obcienia, 45 wyszukiwanie artykuy w bazie danych Joomla!, 196 najnowsze gosy w sondzie, 303 nieaktywni uytkownicy, 302 niepublikowane artykuy, 301 niepublikowane artykuy i menu, 302 puste metadane, 302 puste sekcje i kategorie, 303 sowa kluczowe, 355 stare materiay, 302 wyszukiwanie adresw z zastosowaniem XML, 340 implementacja strony testowej, 341 plik deskryptora, 343 testy, 341 USPS, 340 Zipfinder, 344
448
wyszukiwarki, 347, 354 Wytyczne dotyczce Dostpnoci Treci Internetowych, 26 wzorce projektowe, 201 adapter, 205 architekturalne, 207 Banda Czterech, 201 budowniczy, 204 czynnociowe, 206 fabryka abstrakcyjna, 204 hipoteza, 202 klasyfikacja, 202 klient-serwer, 208 konsekwencje, 202 konstrukcyjne, 203 acuch odpowiedzialnoci, 206 Model-Widok-Kontroler, 209 most, 205 MVC, 209 nazwy, 202 obserwator, 206 problem, 202 przykad, 202 rozwizanie, 202 serwer, 208 singleton, 204 strategia, 207 strukturalne, 205 uruchamianie po stronie klienta, 209 wskazwki odnonie implementacji, 202 wspbienoci, 207 zastosowanie, 202
z Xl
zabezpieczenia, 387 CAPTCHA, 167 serwer Apachc, 376 zaokrglone rogi, 86 arkusz stylw, 86 grafika, 88 zapisywanie danych, 149 zapora stanowa, 373 zapytania SQL, 279 zapytanie do bazy MySQL, 191 zarysy funkcji, 282 zarzdzanie czasem, 389 zarzdzanie kontami uytkownikw, 222 zarzdzanie MySQL, 54 zarzdzanie programami partnerskimi, 313 zarzdzanie pul pocze, 203 zarzdzanie uytkownikami, 111 zarzdzanie wieloma serwerami, 285 zarzdzanie wirtualn spoecznoci, 242 zasoby zewntrzne, 305 Auto Articles 3000, 311 kanay RSS, 305 pobieranie, 305 zautomatyzowane testy, 281 zawarto strony, 123 zdalna instalacja Joomla!, 33 zdarzenia, 230 Content, 219 Editor, 220 Search, 221 System, 221 User, 221 zdjcia satelitarne, 336 zdrowie, 401 zgaszanie bdw PHP, 48 ZigVersion, 163 zintegrowane rodowisko programistyczne, 159 ZIP, 144, 149 Zipfinder, 344 zmiana moduw, 91 zmienne szablonu, 79 zrzut ekranu, 80 rda forw dyskusyjnych, 257 te strony, 392
X
X12, 321 xajax.php, 232 XAMPP, 34 XLB HTTP Load Balancer, 288 XML, 183, 192 XML RPC, 219 XMLHttpRequest, 187 XSLT, 183 XSS, 372,381 XStandard Lite, 106 xvidcap, 81
YEAR, 295
> .;>.