PROGRAMMER

TO

PROGRAMMER™

Joomla!
Profesjonalne tworzenie stron WWW ,

Dan Rahmel
'=', wrox
j

/

Helion
PROGRAMMER TO PRCX;

http://helion.pl

Tytuł oryginału: Professional Joomla! Tłumaczenie: 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 zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykopywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji. Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli. Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne i rzetelne. Nie biorąjednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo HELION nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce. Wydawnictwo HELION ul. Kościuszki lc, 44-100 GLIWICE tel. 32 231 22 19, 32 230 98 63 e-mail: helion@helion.pl WWW: http://helion.pl (księgarnia internetowa, katalog książek) Pliki z przykładami omawianymi w książce można znaleźć pod adresem: ftp://ftp.helion.pl/przyklady/jooptw.zip Drogi Czytelniku! Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres http://helion.pl/nser/opinie7jooptw Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję. Printed in Poland.

Chciałbym zadedykować tę książkę ludziom szlachetnie wpierającym projekt Sprawiają oni, że sieć Web jest lepszym miejscem dla nas wszystkich.

Joomla!.

Podziękowania
Na długo przed tym, zanim napisałem pierwsze zdanie tej książki, zespół tworzący Joomla! poświęcił niezliczone godziny na stworzenie aplikacji używanej dziś na całym świecie. Nie trzeba dodawać, że książka ta nie powstałaby, gdyby nie jego niestrudzone wysiłki, dążenie do opracowania aplikacji na najwyższym światowym poziomie, jaką jest Joomla!. Podobnie jak większość ludzi regularnie używających Joomla!, nie jestem w stanie wyrazić wdzięczności zespołowi za jego wspaniałe dzieło. Chciałbym podziękować wszystkim ludziom z wydawnictwa Wrox — szczególnie biorąc pod uwagę ich cierpliwość, kiedy próbowaliśmy stworzyć tę książkę w oparciu o nieustannie zmieniany projekt. Kieruję podziękowania do Kita Kempera, który pomógł mi sprecyzować to, co wtedy było jeszcze niejasnym pomysłem na książkę. Kieruję je także do Jenny Watson, która musiała przebrnąć przez wiele poprawek powodujących opóźnienia. Jestem winien wdzięczność Chrisowi Davenportowi, redaktorowi technicznemu, którego wnikliwe sugestie i mądre zalecenia znacząco poprawiły jakość tej książki. Dziękuję Kevinowi Shaferowi za wytrwałość podczas najcięższych etapów oraz wykonanie fenomenalnej pracy przy składaniu książki w całość. Chciałbym także podziękowań Ami Frank Sullivan, Kirkowi Batemanowi i wszystkim z wydawnictwa Wiley, którzy niestrudzenie pracowali nad stworzeniem tej książki. Muszę także podziękować bliźniaczym gwiazdom mojego życia — mojej żonie Elizabeth i córce Aleksandrze — za nadawanie znaczenia mojemu życiu. Rzadko kiedy narzekając, Elizabeth podołała obciążeniom nocnej pracy, straconych weekendów, za co dziękuję Ci z głębi serca. Spotkanie Ciebie było najlepszą rzeczą w moim życiu. Chciałbym podziękować mojemu rodzeństwu (Davidowi i Darlene) oraz przyjaciołom (Joelowi Harrisowi, Juanowi Leonffu, Gregowi Mickey'emu, Johnowi Taylorowi, Edowi Gildredowi, Donowi Murphy'emu i Weldowi 0'Connorowi) za ich bezwarunkowe wsparcie. Jestem bardzo wdzięczny Sandrze Villagran za to, jak fantastycznie utrzymywała kurdupla szczęśliwym. Przede wszystkim chciałbym podziękować Tobie, Czytelniku. Poprzez zakup tej książki sprawiasz, że członkowie przemysłu wydawniczego mogą dobrze wykonywać swoją pracę. Mam nadzieję, że informacje w niej zawarte pomocą Ci zrealizować Twoje marzenia. Dzięki.

Spis treści
O autorze Wprowadzenie Rozdział 1. Wprowadzenie do Joomla!
Zapoznanie z Joomla! Wpływ elastyczności na popularność Joomla! Dla kogo jest ta książka Webmasterzy Projektanci stron WWW Deweloperzy stron WWW Joomla! w wersji 1.0 a użytkownicy Mambo Podsumowanie

13 15 21
22 23 24 24 25 27 28 29

¡

Rozdział 2. Szczegóły instalacji i konfiguracji
Cztery serwery systemu Joomla! Decyzje podczas instalacji Etapy instalacji Joomla! Konfiguracja Apache Web Server Konfiguracja PHP Konfiguracja MySQL Konfiguracja Joomla! Serwer testowy a serwer produkcyjny Ustawienia sen/vera testowego Ustawienia serwera produkcyjnego Podsumowanie

31
31 32 37 40 47 52 58 62 63 64 65

Rozdział 3. Tworzenie własnych szablonów
Struktura szablonu Pliki i foldery Logika szablonu: plik index.php Prezentacja szablonu: plik CSS Metadane szablonu: plik templateDetails.xml Zmienne szablonu: plik parametrów

67
67 68 69 73 78 79

6

Joomla!. Profesjonalne tworzenie stron WWW
Grafika szablonu: folder images Miniatura szablonu Tworzenie trójkolumnowego układu Tworzenie struktury szablonu Tworzenie pliku index.php Tworzenie dystrybucyjnego pliku templateDetails.xml Zaawansowane techniki tworzenia szablonów Wykorzystanie grupy szablonów a C S S favicon.ico Modyfikacja wyglądu rozszerzeń Tworzenie układu strony dla telefonów komórkowych Adaptowanie szablonów Mambo lub Joomla! 1.0 Podsumowanie 79 80 81 82 83 94 96 96 97 98 99 101 102

Rozdział 4. Dodawanie i modyfikacja dostępnych rozszerzeń
Katalog rozszerzeń Funkcjonalność i obsługa strony Instalacja dodatkowego edytora WYSIWYG Dodawanie własnych stylów do TinyMCE Dodawanie obsługi plików i FTP Dodawanie mapy strony Community Builder Organizacje i e-commerce Menedżer subskrypcji Sklep internetowy MicroShop z płatnościami Paypal Menedżer projektów Project Fork Rozszerzenie kart pracy Dodawanie na stronie platformy aukcyjnej Zawartość strony Podcasting w Joomla! Galeria zdjęć na stronie Joomla! Komunikacja na stronie Dodawanie komentarzy do artykułów Księga gości Czat na stronie Joomla! Uruchamianie systemu wiki w Joomla! eWriting Implementacja ogłoszeń Dodawanie śledzenia wyników sportowych Dodawanie gier hazardowych Obsługa quizow Podsumowanie

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

Rozdział 5. Tworzenie prostych rozszerzeń: moduły
Tworzenie modułu Hello World Tworzenie modułu Świąteczne Życzenia Tworzenie pliku deskryptora Tworzenie kodu modułu Tworzenie tabeli i zapisywanie przykładowych danych Konfiguracja modułu Tworzenie modułu Kontakt z Nami Podsumowanie

141
142 145 146 147 149 150 152 157

Spis treści Rozdział 6. Zaawansowane rozszerzenia: komponenty
Przygotowanie środowiska programistycznego Stosowanie systemu kontroli wersji SVN Instalacja SVN Tworzenie repozytorium SVN Korzystanie z Eclipse Tworzenie komponentu Księgi Gości Ochrona przed spamem Część frontowa komponentu Część administracyjna komponentu Plik deskryptora Tworzenie archiwum Instalacja komponentu Korzystanie z phpDocumentor Instalacja Wstawianie sekcji DocBlock w kodzie źródłowym Podsumowanie

7 159
159 160 162 163 164 166 167 168 171 174 176 176 179 179 180 181

Rozdział 7. Joomla! i Aia*
Struktura technologii Ajax Prosty komponent ajaksowy Tworzenie komponentu Tworzenie strony WWW Tworzenie komponentu Serwer-Żądanie Tworzenie komponentu Tworzenie modułu ajaksowego Wady technologii Ajax Niedostępność dla robotów internetowych Gromadzenie informacji Zagrożenia bezpieczeństwa Podsumowanie

183
183 185 185 187 189 189 192 197 198 198 198 199

Rozdział 8. Wzorce projektowe a Joomla!
Wzorce projektowe Trzy główne kategorie wzorców Wzorce konstrukcyjne Wzorce strukturalne Wzorce czynnościowe Wzorce współbieżności Wzorce architekturalne Wzorzec Model-Widok-Kontroler Wykorzystanie wzorca MVC w tworzeniu komponentów Podsumowanie

201
202 203 203 205 206 207 207 209 211 215

Rozdział 9. Ingerencja w fundamenty Joomla!: wtyczki
Przegląd wtyczek Joomla! Zdarzenia typu Content Zdarzenia typu Editor Zdarzenia typu System i Search Zdarzenia typu User

217
217 219 220 221 221

8

Joomla!. Profesjonalne tworzenie stron WWW
Wtyczka Hello World! Tworzenie pliku deskryptora Tworzenie kodu wtyczki Wtyczka Automatyczne Skróty Kod deskryptora XML Kod wtyczki Budowa platformy Joomla! Struktura CMS Joomla! (JApplication) Ścieżki Joomla! Wskazówki przydatne podczas pracy z kodem Joomla! Wykorzystywanie funkcji przeszukiwania katalogów Badanie com_content SVN Joomla!: najnowsze osiągnięcia Podsumowanie 222 223 224 225 226 227 229 232 234 235 235 237 237 239

Rozdział 10. Budowanie społeczności w Joomla!
Planowanie wirtualnej społeczności Trzy stadia wirtualnej społeczności Znaczenie stabilności i regularności Dlaczego warto stworzyć wirtualną społeczność Technologie wirtualnych społeczności Księga gości Czat Forum dyskusyjne Sondy Komentarze Sieci społecznościowe Kalendarz wydarzeń Systemy Wiki Uruchamianie wirtualnej społeczności Dobór moderatorów Prowadzenie społeczności Podsumowanie

241
242 243 246 247 248 249 253 257 260 262 266 267 272 274 274 275 276

Rozdział 11. Prowadzenie profesjonalnej strony
Programowanie i testy Ustawienia diagnostyczne Interfejs wiersza poleceń PHP Zautomatyzowane testy Uruchamianie strony Przenoszenie strony na serwer produkcyjny Kopia zapasowa Joomla! Konfiguracja wirtualnych serwerów Apache Kontrola serwera Apache z wiersza poleceń Zarządzanie wieloma serwerami Testy obciążeniowe Równoważenie obciążenia Umiędzynaradawianie Automatyczne cenzurowanie treści Dostrajanie wydajności MySQL Ustawianie dysku przechowującego dane Wybór typu serwera

277
277 278 280 281 282 282 283 284 285 285 286 287 288 289 289 289 290

Bezpieczeństwo Joomla! Typy ataków Ataki na hasła SQL Injection 367 367 368 368 . Łączenie z zasobami zewnętrznymi Pobieranie zewnętrznych materiałów Kanały RSS Rozszerzenie Auto Articles 3000 Zarządzanie programami partnerskimi Program partnerski Google AdSense Program partnerski firmy Amazon Komunikacja biznesowa z zastosowaniem EDI Dokumenty EDI Standardy EDI Rozszerzenie Skylark Komunikacja z sieciami zewnętrznymi Komponent typu screen scraper Komponent Joomlamap Wyszukiwanie adresów z zastosowaniem XML Podsumowanie 305 305 305 311 313 314 316 319 320 320 329 330 330 336 340 346 Rozdział 13.Spis treści Źródło problemów Optymalizacja indeksów Optymalizacja istniejącego systemu Administracja Uwierzytelnianie LDAP Obsługa Czyszczenie systemu Bezpośredni dostęp do MySQL Podsumowanie 9 292 292 297 298 298 300 300 301 303 Rozdział 12.. Pozycjonowanie i marketing w wyszukiwarkach internetowych Ustawienia Joomla! Proste adresy Metadane Aktywacja modułu Breadcrumbs Mapa strony Ogólne techniki Główne wyszukiwarki Badanie słów kluczowych Tytuły stron Atrybut alt dla obrazów i innych multimediów PageRank Google System wymiany odnośników Ajax a SEO Google Analytics Czego nie należy robić Marketing w wyszukiwarkach internetowych (SEM) Komponowanie skutecznego tekstu reklamowego Pay per click i pay per view Google Adsense Podsumowanie 347 .348 348 350 351 353 354 354 355 359 359 360 361 362 363 363 364 364 365 365 366 Rozdział 14.

obsługa skórek Standardowa funkcjonalność groupware Funkcjonalność portalu Podsumowanie 385 385 387 387 388 388 389 390 393 Rozdział 16. Rzut okiem na popularne strony oparte na Joomla! Strony akademickie Wydział Biologii Molekularnej Princeton The Shakespeare Birthplace Trust Journal of Intercultural and Interdisciplinary Archaeology Graphic User Interactive Learning and Development (GUILD) Ministerstwo Edukacji na Wyspach Dziewiczych Strony poświęcone zdrowiu i rodzinie SeniorNet KidsCHANNEL A Story for Bedtime Second Wives Club Better Health Here Profesjonalne strony Mistrzostwa Świata 2010 w Republice Południowej Afryki Best Association Resources and Tools Relacje podróżnicze Randalla Wooda Turbo Trade Sonetto John Avon Illustration 395 396 396 397 398 399 400 401 401 402 403 404 406 407 407 408 409 410 411 412 .10 Joomla!. Czego Joomla! nie potrafi Kontrola wersji dokumentów Import. konwersja i eksport plików Ograniczone funkcje zabezpieczeń i autoryzacji Równoważenie obciążania i replikacja danych Poziomy interfejsu użytkownika. Profesjonalne tworzenie stron WWW Niestandardowe żądania — szczególnie przez Ajaksa Cross-Site Scripting (XSS) Skanowanie katalogów Atak Denial of Service (DoS) Podsłuchiwanie pakietów HTTP Bezpieczeństwo serwera WWW Zabezpieczanie serwera Apache Odmowa dostępu do plików z danym rozszerzeniem Bezpieczeństwo PHP PHP Safe Mode PHP doc_root PHP disable_functions PHP disable_classes PHP display_errors PHP expose_php Bezpieczeństwo MySQL Bezpieczeństwo Joomla! Usuwanie plików instalacyjnych Edytor HTML Joomla! Uruchamianie wewnątrz systemu Rozwijanie i testowanie Podsumowanie 371 372 372 373 373 376 376 377 378 378 379 379 379 380 380 380 381 381 381 382 382 383 Rozdział 15.

magazyny itp.com The Chaser Creative Guy Publishing Strony hobbystyczne Success and Sport (S.S.A.) Safari Ventures Sky Systems KISSin' UK Calialive.com Strony poświęcone technologii Strona główna projektu Joomla! Open Workbench Joomlahut Projekt OScar Podsumowanie 11 413 413 414 415 416 417 418 419 419 4 2 0 421 422 423 424 425 426 427 428 429 431 Skorowidz .NET Centrum Informacji ONZ dla Europy Zachodniej HCJB Global Asiaing.) MainSPOT.Spis treści Media (Aktualności.

Profesjonalne tworzenie stron WWW .12 Joomla!.

2004).O autorze Dan Rahmel jest najszerzej znany z pracy z systemami bazodanowymi. Microsoft SQL Server. pisząc między innymi dla DBMS. przeznaczoną na rynek indyjski. Posiada kilkunastoletnie doświadczenie w projektowaniu oraz implementowaniu systemów informatycznych i rozwiązań klient-serwer w oparciu o MySQL. japoński. PHP i Visual Basic. Microsoft Access i Visual FoxPro. 1 Jedna z książek Dana Rahmela poświęconych tworzeniu niezależnych filmów — p r z y p . W roku 2006 wydawnictwo Focal Press przygotowało specjalną edycję Nuts and Bolts Filmmaking: Practical Techniques for the Guérilla Filmmaker1 (Focal Press. francuski i portugalski. tłum. Swoją karierę rozpoczął. . Jest autorem kilkunastu książek przetłumaczonych na wiele języków. American Programmer i Internet Advisor. hiszpański. takich jak chiński.

Profesjonalne tworzenie stron WWW .14 Joomla!.

czy świadczysz usługi jako ekspert Joomla! lub tworzysz rozszerzenia w ramach społeczności open source. Joomla! stał się ważnym narzędziem dla webmasterów. komponenty i wtyczki). Niezależnie od tego. Biorąc pod uwagę. licząc do połowy 2007 roku ponad 2.5 miliona razy. zastosowanie wzorców projektowych i wiele innych. Webmasterzy musieli borykać się z tysiącami linii kodu HTML. w których opisano implementowanie własnych szablonów. programiści mają dużą grupę potencjalnych klientów. że Joomla! został pobrany. Technologia dynamicznego tworzenia stron wymagała dużej liczby dodatkowego programowania i stwarzała wiele nieprzewidzianych zagrożeń bezpieczeństwa. Elastyczność systemu Joomla! pozwoliła tworzyć skomplikowane rozszerzenia. znajdziesz swoje miejsce w świecie Joomla!. które dodatkowo wzbogacały CMS. Starałem się dostarczyć przykładów dla dwóch głównych obszarów profesjonalnych zastosowań tego systemu: projektowania oraz tworzenia oprogramowania i zakładania stron. Przez ostatnie 10 lat statyczne strony zdominowały internetowy krajobraz. Możliwość szerokiego wykorzystania stworzyła wiele okazji dla profesjonalnych programistów Joomla!. Projektowaniu i tworzeniu oprogramowania zostały poświęcone cztery rozdziały. a dostępność rozszerzeń osiągnęła masę krytyczną (przynajmniej 1700 według ostatnich wyliczeń). aby sprzedać je stronie subskrypcyjnej.Wprowadzenie Centrum strony internetowej stanowi potrzeba organizowania i prezentowania treści. Dziesiątki tysięcy programistów zainteresowało się Joomla!. niekomercyjnym systemem CMS na świecie. często frustrującym procesem. tworzenie rozszerzeń wszystkich trzech typów (moduły. napisałem tę książkę z zamiarem przekazania wiedzy na poziomie pełnoetatowego programisty lub członka ekipy programistycznej Joomla!. czyniąc Joomla! najważniejszym. służącym do tworzenia i obsługi stron bez wyczerpującego wysiłku. Zarządzanie treścią stało się możliwe bez konieczności programowania. Wydanie w 2005 roku systemu zarządzania treścią ( C M S — Content Management System) Joomla! rozpoczęło nową epokę niedrogiego tworzenia zaawansowanych stron internetowych. wykorzystanie najnowszej technologii Ąjax w dodatkach do Joomla!. . czy tworzysz szablony XHTML. a zarządzanie stroną było mozolnym. umieszczonymi w ogromnej liczbie plików. Biorąc pod uwagę różnorodność potrzeb zaawansowanych czytelników. adaptację profesjonalnego środowiska programistycznego z systemem kontroli wersji.

hobbystów. polecałbym przeczytanie przynajmniej sześciu pierwszych rozdziałów w kolejności. Podejrzewam. które przedstawiają nowe sposoby programowania. Profesjonalne tworzenie stron WWW Dokładne zapoznanie się ze strukturą platformy Joomla! pozwoli Ci dogłębnie zrozumieć działanie systemu.16 Joomla!. tym chętniej będziesz podzielać mój zachwyt nad tym cudem open source. twórców treści firmowej oraz wspomóc specjalistów. Apache itd. Ze względu na dużą liczbę programowania w PHP oraz potencjał tej książki. Również każda osoba dysponująca dostępem do serwera z obsługą PHP/MySQL będzie w stanie stworzyć stronę Joomla! wykorzystującą wszystkie funkcje przedstawione w tej książce.Lightweight Directory Access Protoco!) — wszystkie te tematy zostały opisane w ramach tej książki. Jeśli pracowałeś z poprzednimi wersjami Joomla!. Szerokie zainteresowanie nabywaniem umiejętności pracy z Joomla! wykracza poza społeczność projektantów i twórców. Profesjonalne tworzenie stron WWW skierowana jest do projektantów i twórców stron WWW.). z którego warto skorzystać. bez ryzyka pogubienia się. Uaktualnienia Joomla! charakteryzuje zachowanie ciągłości — poza reorganizacją menu główne aspekty zarządzania systemem pozostają niezmienne. Dalej można swobodnie. poprzez kluby fitness. Spędziłem wiele godzin. Chociaż można j ą czytać dowolnie. dlatego zwróć szczególną uwagę na przykłady i wskazówki. Programowanie Joomla! znacznie się zmieniło. wymagane są podstawowe umiejętności w tym obszarze. chociaż nie są niezbędne. dzięki czemu podczas tworzenia dodatków dla Joomla! będziesz w stanie lepiej wykorzystać bogactwo możliwości. Dla kogo jest ta książka Joomla!. komunikacja z treściami zewnętrznymi. analizując kod platformy Joomla!. powinieneś mieć przynajmniej podstawowe doświadczenie w instalowaniu systemu. Książka ta powinna zainteresować także bloggerów. Starałem się napisać tę książkę tak. jeśli samodzielnie nie zarządzasz serwerem. Mam nadzieję. jak zmienić i rozszerzyć Joomla!. W rozdziałach poświęconych zakładaniu stron poznasz technologie leżące u podstaw Joomla! (PHP. przechodzić do rozdziałów o interesującej tematyce z pominięciem pozostałych. organizacji e-commerce i non profit. pozycjonowanie (SEO). Kompetencje w zakresie konfiguracji serwera WWW są zalecane. aby zaspokoić potrzeby swoje (lub) swoich klientów. że po zakończeniu lektury będziesz miał wiele pomysłów. nie będziesz miał problemu z żadną z przedstawionych technik i funkcji. że im więcej czasu spędzisz. małych i średnich firm. Odpowiednia konfiguracja tych technologii zapewni najwyższą wydajność systemu. Aby efektywnie pracować z tą książką. co pozwoliło mi docenić ogrom genialnej pracy wykonanej przez ekipę Joomla!. pracując z Joomla!. aby kolejne rozdziały opierać na informacjach zawartych w poprzednich rozdziałach. ustawienia zabezpieczeń i uwierzytelniania LDAP (. . Zarządzanie stroną. ponieważ wiele firm — od pośredników nieruchomości. aż po domy pogrzebowe — tworzy swoje strony w oparciu o Joomla!.

wraz ze wszystkimi funkcjami (nie tylko nowymi). Następnie szablon został rozwinięty do poziomu złożonego. konfiguracji. MySQL i Apache lub IIS). Linux i MacOS) systemem CMS o otwartym kodzie źródłowym. dalej jest rozszerzanie systemu Joomla! przez tworzenie własnych szablonów. Narzędzia programistyczne niezbędne do skorzystania z tej książki i podanych przykładów są. • • . Przedstawiony został także katalog rozszerzeń Joomla! (JED). lak zbudowana jest ta książka Książkę napisano z myślą o użytkowniku średnio zaawansowanym. od budowania internetowych społeczności. Na początku opisany jest proces instalacji. projektantów i twórców stron. „Dodawanie i modyfikacja dostępnych rozszerzeń" — ten rozdział zawiera szczegółowy przegląd wielu dostępnych rozszerzeń. który chciałby pokonać określone etapy.5. pokazano. „Tworzenie własnych szablonów" — przedstawiono. darmowe i powszechnie dostępne (pomijając specyficzne przykłady z wykorzystaniem programów takich jak Adobe Dreamweaver i Microsoft Frontpage). komponentów i wtyczek. takie jak tworzenie grupy szablonów.0. Na koniec opisano techniki zaawansowanego tworzenia szablonów. opcje dla organizacji i e-commerce. dostępnym na wiele platform (Windows. Książka ta zawiera następujące rozdziały: • • Rozdział 1. aż po pozycjonowanie. trójkolumnowego układu z wykorzystaniem CSS. a n o w ą aby ułatwić użytkownikom przejście na nowy system. generowanie ikony ulubionych i adaptacja na potrzeby telefonów komórkowych. które zostały wykorzystane w tej publikacji. modułów. W miarę możliwości zaznaczałem różnice między poprzednią wersją — 1. PHP. jak od podstaw stworzyć własny szablon. przez komunikację z treściami zewnętrznymi. Dodatkowo zaprezentowano szczegółowo różnice w konfiguracji środowiska testowego i produkcyjnego. Przytoczono przykłady z różnych kategorii (funkcjonalność i obsługa strony.x. Dołączono adresy stron internetowych wszystkich programów i rozszerzeń. zawartość i interaktywność strony). jak zainstalować i skonfigurować każdy z nich. Rozdział 2. Ta książka opisuje nową wersję Joomla! — 1. podobnie jak Joomla!. Rozdział 4. „Wprowadzenie do Joomla!" — opisano różne aspekty Joomla! dotyczące webmasterów. Na przykładzie prymitywnego szablonu Hello World omówiono jego strukturę. Następnie przedstawiono zaawansowane aspekty tworzenia stron. Rozdział 3. aby zostać użytkownikiem zaawansowanym. aby uzyskać najwyższą wydajność. a także ich podstawową konfigurację i wykorzystanie. „Szczegóły instalacji i konfiguracji" — zawarto informacje na temat czterech serwerów systemu Joomla! (Joomla!.Wprowadzenie 17 ¡o zawiera ta książka Joomla! jest darniowym.

„Tworzenie prostych rozszerzeń: moduły" — przedstawiono proces tworzenia modułu od samego początku. zaczynając od konfiguracji zintegrowanego środowiska programowania Eclipse. „Wzorce projektowe a Joomla!" — ten rozdział poświęcono wykorzystaniu modeli pojęciowych. aż po zastosowanie phpDocumentator do automatycznego stworzenia dokumentacji projektu. Rozdział 7. znanych jako wzorce projektowe. Oprócz procedur ustawiania środowiska mających pomóc w usuwaniu błędów. a także wyszczególniono wykorzystanie w elementach platformy Joomla!. „Zarządzanie profesjonalną stroną" — wyszczególniono środki. krok po kroku. Następnie. tworzony jest komponent w oparciu o wzorzec MVC. która automatycznie tworzy skróty na podstawie wprowadzonego tekstu. Przedstawiono cały proces procesjonalnego pisania kodu. nakreślono strukturę i zastosowanie rozszerzeń typu moduł. Rozdział 8. których można użyć do dynamicznego pobierania danych. Drugim jest moduł Kontakt z nami. a także dynamicznie rozwija skróty. aby skutecznie stworzyć stronę. Na końcu opisano schemat platformy Joomla!. Następnie opisano dwa projekty o postępującym stopniu złożoności. Następnie wprowadzono różne rozszerzenia. począwszy od programu Hello World. „Tworzenie społeczności Joomla!" — skupiono się na procesie budowania i rozwijania wirtualnych społeczności. Począwszy od planowania i projektowania. Przedstawiono kilka z nich. Po nakreśleniu zasady działania technologii Ajax stworzony zostanie komponent Joomla-Ajax. jako przykład wykorzystania wzorców projektowych w tworzeniu oprogramowania dla Joomla!. „Ingerencja w fundamenty Joomla!: wtyczki" — zaprezentowano system wtyczek i wydarzeń dostępnych w Joomla!. które trzeba podjąć. tworzenia zautomatyzowanych testów i przenoszenia strony z serwera testowego do serwera produkcyjnego można znaleźć tu także informacje o doskonaleniu ustawień MySQL i autoryzacji LDAP. do rozwiązywania częstych problemów programistycznych. Rozdział 10. Profesjonalne tworzenie stron WWW • Rozdział 5. który można wykorzystać na dowolnej stronie. „Joomla! i Ajax" — zademonstrowano tworzenie dwóch komponentów. • • • • • • . Rozdział 11. Rozdział 9. pozostawiając zawartość bazy danych nietkniętą. Rozdział 6. Proces ten zostaje uruchomiony podczas wyświetlania artykułu na stronie. Następnie przedstawiono tworzenie wtyczki. „Zaawansowane rozszerzenia: komponenty" — tematem jest tworzenie komponentu księgi gości opartej na formularzu. Komponent odpowiedzialny jest za komunikację z systemem. który demonstruje dostęp do tabeli systemu Joomla! z poziomu rozszerzenia. przedstawiono metodę określania grupy docelowej. które można łączyć z procedurami zawartymi we wtyczkach. a moduł odpowiada za interaktywny widok. Następnie przedstawiono tandem moduł i komponent jako przykład zastosowania tej technologii.18 Joomla!. które wzbogacają Joomla! o funkcje witryn społecznościowych. która będzie tworzyć wirtualną społeczność danej strony. Dalej w rozdziale podsumowano najlepsze sposoby tworzenia społeczności i zarządzania nią. Wtyczka Hello World! ilustruje podstawowe wykorzystanie zdarzenia — dołączanie powitania do artykułów. przez wykorzystanie systemu SVN do kontroli wersji. który wykorzystuje oddzielną tabelę do przechowywania własnych życzeń świątecznych. jednym z nich jest moduł Świąteczne życzenia.

Przedstawiono ogólne sposoby pozycjonowania strony wraz z wpływem. „Komunikacja z treściami zewnętrznymi" — prześledzono komunikację z zewnętrznymi stronami w celu wymiany informacji. i rozszerzenie. domyślna rozdzielczość docelowa i inne). Wyszczególnione zostały ograniczone możliwości w zakresie kontroli wersji. Opisano także główne typy ataków (a także wskazówki. Rozdział 14 „Bezpieczeństwo Joomla!" — omówiono najważniejsze ustawienia. które zagwarantują wyższy poziom bezpieczeństwa strony Joomla!. zarządzanie programami partnerskimi. Środowisko programistyczne Eclipsejest prawdopodobnie największą aplikacją opisaną w tej książce. a także zademonstrowano komponent. jak im zapobiegać). równoważenia obciążenia. replikacji. „Rzut okiem na popularne strony oparte na Joomla!" — przedstawiono wiele różnorodnych stron opartych na Joomla!. jaki wywiera stosowanie takich technologii jak Flash i JavaScript. PHP. a także pozyskiwania klientów za pośrednictwem wyszukiwarek. dlatego wymagane jest szybkie połączenie z internetem. którą można pobrać z internetu. Pozostałe programy zajmują średnio od 10 do 20 MB. komunikację biznesową z wykorzystaniem elektronicznej wymiany danych (EDI) i inne rodzaje połączeń zewnętrznych. które można wykorzystać do pozycjonowania strony. bezpieczeństwa. MySQL i Joomla!). a także informacje o rozszerzeniach wykorzystywanych na stronie. który wykorzystuje technikę screen scraping. „Pozycjonowanie (SEO) i pozyskiwanie klientów za pośrednictwem wyszukiwarek (SEM)" — zawarto opis technik i procedur. 19 • • • • Czego będziesz potrzebować Pomijając system Joomla! (który można pobrać za darmo z intemetu). Książkę tę napisano z naciskiem na niezależność od wybranego systemu operacyjnego. Pokazano. Zaprezentowano konfigurację parametrów SEO dostępnych w Joomla! oraz podkreślono znaczenie pozostałych funkcji. konwersji plików. aby umożliwić połączenie z usługami zewnętrznymi. Do każdej opisanej strony dołączono podsumowanie zawierające szczegóły na jej temat (takie jak użyty szablon. oraz dodatek. breadcrumbs i mapy strony. które mogą zostać wykorzystane przeciwko systemowi Joomla!.com. aby wykorzystać przykłady przedstawione w tej książce. przedstawione instrukcje znajdą zastosowanie . który łączy się z usługą Google Maps. takich jak metadane. Ponieważ większość komunikacji z systemem Joomla! przebiega za pośrednictwem interfejsu administratora będącego stroną WWW. Rozdział 16. Pakiet zajmuje 230 MB. funkcjonalności zespołowej i obsługi portalu. „Czego Joomla! nie potrafi" — oceniono niedostatki. potrzebujesz dodatkowego oprogramowania. aby pobrać instalator. Dodatkowo znajdują się w nim informacje na temat zabezpieczania poszczególnych serwerów (Apache lub IIS. jakie można dostrzec w porównaniu z profesjonalnymi systemami CMS.Wprowadzenie • Rozdział 12. które wykorzystuje wyszukiwanie kodów ZIP na stronie USPS. Rozdział 15. jak stworzyć własne rozszerzenie Joomla!. Rozdział 13.

pomimo iż platformy uniksowe używają do tego celu prawego ukośnika (/). • Kody źródłowe Podczas pracy z przykładami wykorzystanymi w tej książce możesz samodzielnie wpisać cały kod z klawiatury lub wykorzystać pliki przygotowane przez autora. takie jak ta. a także pomóc w orientacji: Ramki. MacOS-a i Windowsa.20 Joomla!. który pojawił się już w książce. Skróty klawiszowe zapisywane s ą w następujący sposób: Ctrl+A. Odnośnie do stylów wykorzystanych w tekście: • • • • • Ważne nowe pojęcia pojawiają się jako wyróżnione przy pierwszym wykorzystaniu w tekście. Wskazówki. sztuczki i inne informacje niebędące częścią tekstu zostały zapisane w ten sposób. . mogą zostać pobrane z ftp://ftp. Wszystkie kody źródłowe. zawierają ważne informacje bezpośrednio odnoszące się do otaczającego tekstu.pl/przyklady/ jooptw. podpowiedzi. Kod mniej znaczący w danym kontekście lub taki. nie jest zaznaczony. Kod przedstawiony jest na dwa sposoby: Nowe i ważne fragmenty kodu przykładów wyróżniane są szarym tłem. Nazwy plików i katalogów oraz adresy internetowe są wyróżnione. W sytuacji kiedy poszczególne opcje konfiguracyjne różniły się dla różnych systemów operacyjnych.zip. Profesjonalne tworzenie stron WWW niezależnie od wykorzystanej przeglądarki lub systemu operacyjnego. aby pomóc Ci zrozumieć jak najwięcej z przedstawionego tekstu.helion.properti es. które zostały użyte w tej książce. przedstawione zostały instrukcje odnoszące się do Linuksa. które trzeba zapamiętać. Kod pojawiający się wewnątrz tekstu jest oznaczony następująco: persi stence. W przypadku podawania ścieżek dostępu jako separator poszczególnych nazw katalogów wykorzystywany jest lewy ukośnik (\). Konwencie W książce wykorzystano kilka konwencji.

1 Wprowadzenie do Joomla! Jeśli czytasz tę książkę. and nch media Joomla! is u s e d bv organisations of all sizes for Public Web sites. pola wyszukiwania. J4 Joomla! Metoda opanowania Joomla! będzie zależeć od Twoich potrzeb oraz roli.5- Welcome to the Frontpage W e l c o m e to Joomla! 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. dowiesz się podczas lektury. documents. w jaki sposób różni użytkownicy Joomla! (webmasterzy. bez znajomości HTML-a. blogs and e C o m m e i c e applications. projektanci i deweloperzy stron W W W ) mogą wykorzystać tę książkę. to prawdopodobnie wiesz już. System zarządzania treścią ( C M S — Content Management System) Joomla! dostarcza łatwego w użyciu. In future. A spokes person said tlial the need for better RAM w a s due to some fool increasing the front-side bus speed. online communities. że Joomla! staje się jedną z najszerzej wykorzystywanych technologii sieci Web. W tej książce założono. który umożliwia tworzenie stron WWW i zarządzanie nimi. buses will be told to slow down in residential motherboards. What's N e w In 1. zaokrąglonych •ogów. aby budować witryny światowej klasy — j a k tego dokonać. Początkujący użytkownik jest w stanie szybko opanować podstawy Joomla! i tworzyć piękne.1. sondy automatycznego jkładu Ją. profesjonalne strony. które opowiadają ich potrzebom i pragnieniom. media portals. takie jak na rysunku 1.. Powered by Joomla! provides an easy-to-use graphical user interface that simplifies the management and publishing of large volumes of content including HTML. . News The Community Szukaj. Joomla! About Jooml. 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! . aby zdobyć specyficzne umiejętności i poznać technologie.1. lysunek 1. że znasz podstawy tworzenia stron w oparciu o Joomla! i chcesz rozwinąć swoje umiejętności. jaką grasz w procesie tworzenia i prowadzenia stron WWW. W tym rozdziale wyjaśniono.. graficznego interfejsu użytkownika.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 . Domyślna nstalacja loomla! zawiera demonstrację zaawansowanego orojektu strony składającego się r pionowego venu.

Założono dosłownie dziesiątki tysięcy stron WWW na całym świecie. mającej sprawić. będziesz w stanie śledzić przykłady i osiągnąć swój cel. kiedy pisałem tę książkę — do ponad 45 000 zarejestrowanych podmiotów. w tworzeniu kaskadowych arkuszy stylów (CSS). aby sprostać popularności.22 Joomla!. które oferują funkcje pożyteczne dla kogoś z 2. Aby sprostać temu rozrostowi. ale także stworzenia internetowej społeczności. Wydawnictwo Helion ma w ofercie książki. a możliwości interakcji minimalne. a nie przypadkiem. który posłuży nie tylko do sprzedawania towarów. Ta książka pomoże Ci. jak było to możliwe. CSS. Właśnie dlatego staraliśmy się dokładnie opisać każdy krok — nawet jeśli nie jesteś mistrzem np. Joomla! wydano w 2005 roku. Zdajemy sobie sprawę. których wykorzystanie zainicjowało ponowne narodziny WWW w formie nazwanej Web 2. W przeciwieństwie do Web 1. ale niekoniecznie inne technologie (MySQL. która zagroziłaby poprawnemu działaniu zwykłej strony. że chcesz opanować Joomla!. Od tego czasu zaobserwowano wykładniczy wzrost zarówno wśród liczby webmasterów. w 100 procentach darmowy. które zamierzasz wprowadzić w życie.0 jest automatyczna administracja. jak i twórców stron internetowych. wskazówkami i nowym kodem. że Joomla! jest całkowicie. Joomla! obejmuje wszystkie nowe osiągnięcia. Stale powstają nowe dodatki i szablony. na których jest oparty. że powtórne zakupy staną się zasadą. Nauczysz się modyfikować i rozszerzać Joomla!. społeczność twórców powiększyła się — w czasie. Najlepsze z tego wszystkie jest jednak to. .). stworzenie i zarządzanie zaawansowaną stroną osiągalne jest nawet dla małej grupy ludzi (być może nawet dla jednej osoby). Dowiesz się. ciężko nie ulec zachwytowi nad możliwościami płynącymi z wykorzystania go. wirtualne społeczności.0. Twoja instalacja Joomla! obsłuży duże obciążenie bez wysiłku. dynamiczna interakcja. które rozszerzają bogate możliwości zawarte w domyślnej instalacji Joomla!. jeśli chcesz wykorzystać Joomla! do: • • Tworzenia komercyjnych dodatków. a ponieważ jest CMS-em. Otwarcia sklepu internetowego. gdzie większość stron internetowych była zarządzana ręcznie. dzielą się informacjami. Zapoznanie z Joomla! Joomla! jest jedną z kluczowych aplikacji. Profesjonalne tworzenie stron WWW We wszystkich przykładach zamieszczonych w tej książce staraliśmy się przedstawić informacje tak jasno i jednoznacznie. Dzięki tej książce będziesz miał szansę dołączyć do rewolucji. Setki deweloperów są aktywne każdego dnia na forach poświęconych Joomla!. tworzenie i projektowanie zaawansowanej strony Joomla!. jak dostroić go. Biorąc pod uwagę całą aktywność wokół tego systemu. dzięki którym poznasz pozostałe technologie. sercem Web 2.0. prowadzony krok po kroku przez uruchamianie.5-milionowej rzeszy użytkowników Joomla!. Strona oparta na Joomla! może rywalizować z możliwościami i prezencją stron wartych miliony dolarów. komunikacja na stronie i między witrynami. Celem tej jest pomoc w ukończeniu Twoich projektów opartych na Joomla!. PHP itd.

23 • • • W tej książce zawarta jest wiedza potrzebna do podążania każdą z tych różnorodnych ścieżek. . były nie tylko drogie w implementacji. Poprzez organizację wszystkich treści w bazie danych i daleko idące oddzielenie ich od warstwy prezentacji i kodu programu administracja z użyciem CMS-a jest elastyczniejsza niż w przypadku innych metod tworzenia stron internetowych.5 Joomla! wysunął się na prowadzenie pośród dostępnych CMS. jeśli chodzi o czas i zasoby. W nowym. a także wieloma innymi. że zarządzanie stroną nawet średniej wielkości było niesamowicie kosztowne. Tworzenie witryny w oparciu o pojedyncze strony było bardzo ograniczające i sprawiało. Wpływ elastyczności na popularność Joomla! Zanim doszło do rozpowszechnienia aplikacji typu CMS. aby wykorzystać swój szablon do zmiany swoich stron w dzieła sztuki. gdzie wiele babć zna HTML. Informacje zawarte w tej książce dadzą Ci przewagę nad konkurencją. Założenia prywatnej strony WWW z galerią zdjęć (Twoich dzieci.Rozdział 1. Publikacji opinii politycznych na blogu wraz z odwołaniem do dokumentacji dowolnego typu popierającej Twój punkt widzenia — dowiesz się jednocześnie. • Wprowadzenie do Joomla! • Stworzenia szablonu lub otwarcia sklepu z szablonami w modelu subskrypcji. Dołączenia do grona osób zarabiających na tworzeniu stron dla innych ludzi w oparciu o CMS. Zagmatwaną strukturę aplikacji znaną z poprzednich wersji zastąpiono nową platformą.) i forum. która — zamiast być uniwersalną i spełniać wszystkie potrzeby — jest uniwersalną. rozszerzać i dopasowywać. Strony dynamiczne. to przynajmniej satysfakcjonujący. ekscytującym świecie. przez co rozwiązania oparte na nich były niepewne. dzięki której tworzenie dodatków — od szablonów. sieć uginała się pod ciężarem ogromnej ilości treści. dzięki któremu Twoi krewni będą mogli kontaktować się z Tobą. tworzone na zamówienie w oparciu o PHP lub Active Server Pages (ASP). które tematy uważane są przez Twoich użytkowników za ważne. ze specjalnych okazji itd. aby sprostać większości wymagań stawianych przed stroną WWW. którą trzeba było zarządzać. w jaki aplikacje typu CMS wprowadzają porządek w chaosie zarządzania stroną WWW. Twórcy Joomla! położyli szczególny nacisk na stworzenie technologii. Systemy zarządzania treścią takie jak Joomla! znacząco obniżyły koszty zarządzania małymi i dużymi stronami WWW. ograniczenia w opanowywaniu Joomla! stawiane są głównie przez Twoje własne ambicje. dostosowywalną do własnych potrzeb. Wraz z wydaniem wersji 1. Kolejną zaletą Joomla! jest łatwość rozbudowywania CMS-a w podobny sposób. żeby można było go modyfikować. Dzięki Joomla! nawet mozolny proces tworzenia stron staje się jeśli nie przyjemny. To wystarczająco złożony system. aż po wtyczki — stało się łatwe. do którego mogą zapisać się użytkownicy. ale także stwarzały spory potencjał zagrożeń i błędów.

ale także aby zabezpieczyć stronę przed hakerami. Niezależnie od tego. żebyś był świadom ograniczeń każdego programu. nie znaczy to. Rola deweloperów wskazuje na poznanie elastyczności programowania rozszerzeń. Mimo iż instalacja systemu nie stanowi bariery nawet dla początkujących. Ważne jest. Profesjonalne tworzenie stron WWW Mimo że Joomla! można wykorzystać prawie do każdego projektu strony WWW. W wersji 1.24 Joomla!. Jest to jednak zaledwie wierzchołek góry lodowej. zainstalować nowy szablon lub rozszerzenie (wtyczkę. tworząc wizualnie olśniewający interfejs. że jeśli jesteś młotkiem. Dla kogo jest ta książka Jeśli miałeś już styczność z Joomla!. Webmasterzy mogą skupić się na implementowaniu i instalowaniu strony opartej na Joomla! oraz administrowaniu nią. Jest takie stare powiedzenie. czy prowadzisz hobbystyczną stronę. co pozwala opanować do perfekcji sztukę ich tworzenia. zanim zaczniesz duży projekt. Webmasterzy Na webmasterach spoczywa prawdopodobnie największa odpowiedzialność w zakresie doskonalenia strony WWW opartej na Joomla!. czy jesteś administratorem zarządzającym wieloserwerową instalacją Joomla!. Wiele ograniczeń Joomla! (na przykład precyzyjne opcje zabezpieczeń) można pokonać przez połączenie własnego kodu i dostępnych rozszerzeń. ponieważ nie są już przesadnie obciążeni programowaniem. Joomla! jest złożonym systemem. prawdopodobnie całkiem dobrze rozumiesz podstawy jego działania. zarejestrować użytkowników. to zaawansowane funkcje pozostają dla nich po prostu niedostępne. Istnieją zastosowania.5 wprowadzono dużo lepszy model oddzielania warstwy kodu od warstwy prezentacji. Wiesz już. dla których skorzystanie z Joomla! nie byłoby najlepszym wyborem. że musi on być użyty w ten sposób. Nowa struktura ułatwia projektantom stron i grafikom tworzenie szablonów. jeśli chodzi o potęgę Joomla!. Ostateczna odpowiedzialność za poprawne działanie strony spada właśnie na webmastera. to wszystko wygląda jak paznokieć. Projektanci stron WWW mogą kształtować projekty graficzne i warstwę prezencji. „Czego Joomla! nie potrafi". Będziesz mieć szansę zoptymalizowania instalacji Joomla!. jak dodawać artykuły. aby osiągnąć maksymalną wydajność. Poszczególne obszary Twoich zainteresować będą różnić się w zależności od roli. . czy pokonanie tych barier jest mądrym posunięciem lub czy nie lepszym pomysłem byłoby wybranie innej aplikacji. Z tego powodu kluczowe jest zrozumienie technologii leżącej u jego podstaw. jaką grasz w procesie tworzenia stron. dodać sekcje i kategorie. która zawiera już funkcje pasujące do wymagań Twojego projektu. komponent lub moduł). większość informacji zawartych w tej książce będzie dla Ciebie użyteczna. Do Ciebie należy decyzja. Deweloperzy z kolei mogą kształtować logikę systemu niezależnie od wielu aspektów warstwy prezentacji. Z tego powodu książka zawiera rozdział 15.

stroną Joomla! i bazą danych SQL. co można osiągnąć w ramach platformy. Określenie. które poprawią pozycjonowanie Twojej strony i zoptymalizują Joomla! pod kątem robotów internetowych. a także uczynienie z tej konstrukcji sprawnie działającej maszyny. Poznanie technik wykorzystywanych przez profesjonalne witryny oparte na Joomla! do prowadzenia strony i utrzymywania jej popularności. zarządzanie wieloma stronami jednocześnie. Zarządzanie serwerem WWW. Skorzystanie z technik SEO. które nie są bezpośrednio związane z Twoimi zadaniami lub umiejętnościami. Dbanie o bezpieczeństwo strony dzięki poprawnym zabezpieczeniom i obronie przed atakami hakerów. Upewnij się. a sam obszar działalności zdaje się całkiem dochodowy. Często to webmaster nakreśla kierunek rozwoju i funkcjonalność strony. 'rojektanci stron WWW Rola projektantów jest bardziej specyficzna niż webmasterów. Omówione zostaną tematy od optymalnego planowania. Jeśli jesteś webmasterem i administratorem strony WWW. plików strony i opcji konfiguracyjnych. że przynajmniej pobieżnie zapoznałeś się z materiałami. Dostrojenie systemu Joomla! w celu uzyskania maksymalnej wydajności. Będziesz w stanie skorzystać z internetowego trendu utożsamianego przez takie witryny jak MySpace i YouTube. Liczba dostawców komercyjnych szablonów jest ogromna. aby stworzyć wygląd strony — warstwę prezentacji. firmę lub organizację. • • • • • • • • Wiele aspektów administracyjnych jest poruszanych w tej książce w ramach opisów danej technologii (np. Jeśli grasz każdą z wymienionych ról. Z pewnościąjednak do Twoich zadań administracyjnych będzie należeć pośrednia lub bezpośrednia administracja stroną. która spełnia określone potrzeby. • Wprowadzenie do Joomla! 25 Być może projektanci lub deweloperzy Joomla! pracują dla Ciebie. praktycznie wszystkie informacje będą dla Ciebie ważne. Projektant jest w takiej sytuacji wybrany przez osobę.Rozdział 1. autoryzacji LDAP). . skorzystaj z narzędzi i technik opisanych w tej książce. Stworzenie kopii zapasowej danych. Równoważenie i testowanie obciążenia strony Joomla!. w takiej sytuacji książka ta dostarczy Ci doskonałych wskazówek. W przypadku Joomla! projektanci dysponują świetną platformą do publikacji i zarabiania na swoich pracach — rynek szablonów Joomla!. które pozwolą Ci na: • Zbudowanie wirtualnej społeczności z wykorzystaniem technologii Joomla!. po odpowiednie ustawienie poszczególnych serwerów. czy Joomla! spełnia Twoje potrzeby lub czy powinieneś zainwestować w CMS wyższej klasy.

Zaawansowani projektanci będą mieli okazję poprawienia swoich umiejętności dzięki radom opartym na doświadczeniu. niezbędne minimum dla działającego szablonu. napotkasz opisy wszystkich etapów tego procesu. w którym klienci płacą miesięczny lub roczny abonament. Nabędziesz nowych umiejętności i pozyskasz informacje w zakresie projektowania stron. które zagwarantują obsługę treści w wielu językach i internacjonalizację. podłącz i używaj — oznacza zdolność wstawienia nowego elementu w istniejący system bez koniecznej modyfikacji pozostałych elementów — p r z y p . takiej jak obsługa technologii Ajax na stronach Joomla!. Dalsze wskazówki w rozdziałach poświęconych technikom SEO i internacjonalizacji zmienią Cię w specjalistę w Twojej dziedzinie. a także techniki stosowane w zaawansowanych szablonach do omijania ograniczeń. reklamy i galerie zdjęć) do ogólnego projektu strony w celu osiągnięcia jak najlepszego jej wyglądu. Taki model jest bardzo korzystny dla projektantów. Szczegóły dostosowywania CSS mające zapewnić stronie spójny wygląd. . Profesjonalne tworzenie stron WWW Większość komercyjnych stron z szablonami wykorzystuje model subskrypcji. które pozwolą Ci być na bieżąco w Twojej profesji. zaprojektowanie dobrego szablonu wymaga sporej ilości planowania i sprawnego kierowania. aby wzbogacić stronę Joomla! o aktywny.26 Joomla!. Dopasowywanie dostępnych rozszerzeń (takich jak sondy. Jeśli jesteś jednym z nich. Proces tworzenia nowego szablonu od podstaw. Nowi projektanci zdobędą bogate informacje na temat planowania i konstrukcji szablonów. Metody planowania. Nawet jeśli dotychczas nie programowałeś. a także dodatkowej funkcjonalności. że skuteczny szablon to połączenie kodu PHP. Są to: • • Modyfikowanie kodu i arkuszy stylów istniejących szablonów. ponieważ strona musi stale uaktualniać ofertę nowymi szablonami. aby uzyskać nieograniczony dostęp do szablonów dostępnych na stronie. które mogą zostać użyte w dowolnym szablonie. aby utrzymać dotychczasowych klientów. ułatwiające korzystanie ze strony ludziom niepełnosprawnym. W ten sposób regularną pracę znajduje wielu projektantów. Procedura autoryzacji nowych modułów. Wskazówki na temat zgodności z Wytycznymi dotyczącymi Dostępności Treści Internetowych ( W C A G — Web Content Accessibility Guidelines). nowoczesny interfejs. Ze względu na to. Dopóki rozumiesz ogólną zasadę działania przedstawionego kodu. znajdziesz w tej książce wiele użytecznych informacji. będziesz w stanie wkleić go w odpowiednie miejsce. • • • • • • 1 Z ang. Czytając tę książkę. grafiki i CSS. wskazówki dołączone do tej książki pozwolą Ci skonstruować szablon w stylu pług and play1. tłum. Wykorzystanie nowej technologii Ajax do komunikacji klient-serwer.

jak stworzyć bardziej zaawansowane rozszerzenia. Kiedy dotrzesz do ostatniej strony tej książki. Używać skryptów i technologii Ajax do żywej komunikacji ze stroną klienta. że platforma Joomla! jest najelastyczniejsza. • Wprowadzenie do Joomla! 27 Projektanci stron WWW są zatrudniani zazwyczaj na wczesnym etapie tworzenia strony. korzystając z tej platformy. ale także będzie łatwa w zarządzaniu i przyszłym uaktualnianiu.Rozdział 1. która nie tylko spełni potrzeby. w jaki sposób rozszerzenia funkcjonują w systemie. znajdziesz się pod względem umiejętności w górnej części tej piramidy. tym lepiej można w sumie wykorzystać bogactwo tej technologii. Wykorzystywać i modyfikować dostępne rozszerzenia w celu dodania funkcjonalności. Większy stopień wykorzystania Joomla! idzie w parze z bogatszymi perspektywami zatrudnienia. Zagłębiając się w lekturę tej książki. dowiesz się.5 cała struktura Joomla! została napisana od nowa po to. której brak w domyślnej instalacji Joomla!. od najprostszej wtyczki Hello World!. CMS Joomla! jest właściwie aplikacją opartą na szerszej platformie Joomla!. Niezaprzeczalnie jest to bodziec ekonomiczny wzmacniający chęć poprawy własnych umiejętności. Wykorzystywać profesjonalne techniki tworzenia kodu i wzorce projektowe w Twoich projektach Joomla!. Od wprowadzenia wersji 1. Projektanci są w stanie w największym stopniu wykorzystać rozszerzenia pisane w celu rozbudowy systemu. aby umożliwić modyfikacje systemu. w jaki sposób możesz skorzystać z wzorców projektowych Joomla!. Swobodnie posługiwać się kodem platformy Joomla!. świat Joomla! stanie przed Tobą otworem. a im więcej wiedzą o Joomla!. zaprogramować projekt dowolnej wielkości — włączając w to stworzenie całkiem nowego CMS-a (jeśli byłyby powody). eweloperzy stron WWW Ludzie zajmujący się programowaniem stron z pewnością docenią. Szczególnie w dziedzinie tworzenia szablonów wykorzystanie możliwości drzemiących w Joomla! może doprowadzić do stworzenia strony. Nie musisz zaczynać od początku. Dostępnych jest bardzo wiele sposobów współpracy z ponad 45 000 zarejestrowanych deweloperów Joomla!. Po opanowaniu interfejsu rozszerzeń będziesz mógł przejść do modyfikacji samego systemu Joomla! albo dołączyć do grupy deweloperów. Jeśli chodzi o domenę programowania stron WWW. aby udoskonalić własny kod. Oznacza to. ponieważ internetowy rynek pełen jest ofert związanych z Joomla!. Badanie i zmienianie istniejących rozszerzeń Joomla! (dodatków. aż do zaawansowanego tworzenia rozwiązań e-commerce. Professional Joomla! nauczy Cię: • • • • • Tworzyć własne dodatki w oparciu o przykłady. komponentów i modułów) jest prawdopodobnie najlepszym sposobem wzbogacenia swoich umiejętności. bez potrzeby ponownego generowania strony. Dowiesz się także. . by stworzyć coś więcej niż tylko CMS. a także najprostsza pod względem rozwijania i pisania kodu ze wszystkich dostępnych CMS-ów. że możesz. a nawet jak napisać sprytną implementację ajaksowego interfejsu po stronie klienta. Kiedy zrozumiesz.

Prawdziwa zmiana nadeszła wraz z Joomla! 1. a nawet żaden z szablonów przeznaczonych dla Joomla! nie mogły pracować w nowej wersji (pomijając tryb spuścizny). Implementować system kontroli z wykorzystaniem oprogramowania Subversion (SVN) w celu umożliwienia zespołowego tworzenia szablonu. które pomogą użytkownikom przejść z Joomla! 1. a dysponujesz wystarczającą motywacją i czasem. kiedy grupa deweloperów opuściła społeczność Mambo i zabrała ze sobą kod źródłowy będący u podstaw tego CMS-a. ponieważ rzeczy. wtyczek. projektant lub twórca stron internetowych musisz rozumieć konsekwencje płynące ze stworzenia nowego programu na bazie systemu Mambo. że jest open source — masz dostęp do kodu źródłowego. Nawet • rozszerzenia obu systemów były kompatybilne. obiektową platformę PHP. to nie wszystko stracone. Zarządzać profesjonalnym wdrożeniem — od serwera testowego. komponentu lub modułu dla Joomla!. które oferuje nowy system (a straty są znaczące).5. nie zadziałają w nowym systemie. Unowocześniona architektura stworzyła możliwości doskonalenia i rozbudowy obecnych szablonów. Jako webmaster.28 Joomla!. że projekt Joomla! został zapoczątkowany w 2005 roku. Joomla! w wersji 1. dodatku. Jeśli zdecydujesz się na ten krok. komponentów lub modułów. Profesjonalne tworzenie stron WWW • • Adaptować środowisko programistyczne PHP do potrzeb programowania Joomla! z wykorzystaniem możliwości tworzenia dokumentacji i poprawnego pisania kodu.0 a użytkownicy Mambo Czytelnicy. . którzy wcześniej nie mieli styczności ze światem CMS. którego potrzebujesz. W tej książce w odpowiednich rozdziałach dostarczam wskazówek i wytycznych. Teoretycznie możesz zaadaptować taki komponent samodzielnie. Ta książka dostarczy Ci jasnych wskazówek dotyczących umiejętności. Jedną z najwspanialszych rzeczy w środowisku open source jest fakt.0 lub Mambo do najnowszej wersji. Cała architektura została przebudowana w oparciu o nową. które dotychczas działały bezbłędnie. aby sprostać wymaganiom swoich klientów.5.2. Ta sytuacja jest w stanie przyprawić także o ból głowy. ale jest on niekompatybilny z nowym systemem Joomla!. jeśli potrzebne elementy nie zostały jeszcze uaktualnione do pracy w nowym środowisku. Możesz być zmuszony do uruchomienia na serwerze Joomla! trybu spuścizny. Jeśli napotkasz komponent. Zmiany były na tyle znaczące. aż do serwera produkcyjnego. powinni wiedzieć. które pozwolą Ci płynnie przejść ze starego systemu do nowego. Starałem się w miarę możliwości dołączyć wskazówki.3 była minimalna. Różnica między pierwszym wydaniem Joomla! a Mambo w wersji 4. utracisz rozszerzoną funkcjonalność i zwiększoną wydajność. których potrzebujesz przy minimalnej ilości niejasności lub dodatkowej pracy. • Deweloperzy stron WWW znajdą w Joomla! bogate źródło osobistej i zawodowej satysfakcji. Wielu z nich miało już kontakt z Joomla! i zainwestowało sporo wysiłku w opanowanie podstaw. że żadne z rozszerzeń.

• • • • W rozdziale 2. ponieważ Joomla! miał tendencję do znacznego zwalniania przy dużym obciążeniu. którą opanować mogą ludzie mający różne cele. a także informować innych o zaletach korzystania z niego. szablony i inne technologie działające z wcześniejszymi wersjami Joomla! lub nowymi instalacjami Mambo. jest jednocześnie sztuką i nauką. Uruchomienie podstawowej strony jest banalne. Poprawić swoje umiejętności webmasterskie w tworzeniu strony Joomla! i administrowaniu nią. w tym rozdziale mogłeś znaleźć informacje. jak zapewnić zgodność swojej strony z wymaganiami internacjonalizacji i dostępności dla osób niepełnosprawnych. możliwe zmiany są prawie nieograniczone. które są niezbędne do wygenerowania żądanej strony. aż po duże organizacje — po zaskakująco niskiej cenie. Nowa metoda spowodowała ogromny wzrost wydajność na dużych stronach. • Wprowadzenie do Joomla! 29 Uruchomienie strony o wysokim natężeniu ruchu w oparciu o poprzednie wersje Joomla! było problematyczne. dynamicznej interakcji i wirtualnych społecznościach. . dowiesz się z tej książki. Joomla! jako CMS umożliwia skorzystanie z nowych technologii każdemu — od pojedynczych osób. które zapewnią optymalną wydajność. że Twoja instalacja Joomla! będzie działać jak dobrze naoliwiona maszyna. gdy chcesz skorzystać z Joomla!. Niezależnie od powodów. Poznasz strukturę platformy Joomla! w stopniu.0 opiera się na automatycznym zarządzaniu treścią. np. Udoskonalić wygląd i zachowanie strony Joomla!. zarządzać serwerem. którymi kierujesz się. jeśli jesteś jej projektantem. W wersji 1.5 grupa deweloperów Joomla! zajęła się tym problemem i praktycznie go rozwiązała. czy dana strona wymagała wszystkich funkcji. przedstawiono szczegóły instalacji i konfiguracji strony Joomla!. Nauczysz się nie tylko tworzyć i modyfikować szablony Joomla! (dla zabawy. Tworzyć dodatki. webmasterzy. Uaktualnić kod źródłowy. projektanci i deweloperzy stron WWW. jak budować internetową społeczność.Rozdział 1. zabezpieczyć treści i użytkowników oraz zoptymalizować stronę pod kątem pozycjonowania. czy nie. za darmo. Dzięki dokładnemu zapoznaniu się z wyborem ustawień dla różnych serwerów możesz sprawić. Bez względu na to. jeśli jesteś deweloperem stron Joomla!. czy jesteś samodzielnym webmasterem ! z hobbystycznym nastawieniem. w ramach kontraktu lub dla jednej z wielu komercyjnych stron z szablonami). jakim jest Joomla!. czy osobą zarządzającą wieloserwerową instalacją Joomla!. Ponieważ prawie na każdy aspekt działania systemu wpływa kod w plikach CSS lub PHP. które pomogą Ci: • Zrozumieć system CMS. jednak dobranie ustawień. który pozwoli Ci wprowadzać zmiany w samym systemie. Świat Web 2. Kod został poddany refaktoryzacji. dzięki czemu ładowany i uruchamiany jest tylko ten fragment i te moduły. Zsumowanie System Joomla! jest platformą. komponenty i moduły. ale także zrozumiesz. W oryginalnej wersji aplikacja była przetwarzana jako jeden monolityczny blok kodu PHP przy każdym wywołaniu strony — niezależnie od tego.

30 Joomla!. Profesjonalne tworzenie stron WWW .

1) to cztery dynamicznie współpracujące elementy: serwer WWW. tak aby serwer sprawniej odpowiadał na żądania. Wewnątrz systemu Joomla! silnik PHP uruchamia aplikację Joomla!. Jeśli Apache nie jest w stanie uruchomić PHP lub PHP nie może się połączyć z MySQL albo Joomla! nie może zapisywać danych w bazie MySQL. jak i Microsoft Internet Information Server (ISS). która korzysta z wtyczki do PHP. Joomla! może działać poprawnie zarówno w oparciu o Apache Web Server. silnik wykonywania skryptów PHP. ¡ztery serwery systemu Joomla! Konstelacja serwerów środowiska Joomla! (zobacz rysunek 2. jak i Joomla! funkcjonują w roli serwera stron i wymagają oddzielnej konfiguracji.php. W tym rozdziale opisano konfigurację każdego elementu systemu. system zawiedzie. któiy dostarcza funkcjonalności związanej z obsługą HTTP. tylko opcje konfiguracyjne zapisane są w pliku configuration. jest ograniczony wyłącznie do platformy Windows. Termin serwer nie jest traktowany dosłownie. W bazie danych MySQL zapisane są wszystkie dane Joomla!. ponieważ zarówno PHP. który działa na dziesiątkach systemów operacyjnych (Windows. W tym rozdziale opisano także różne techniki poprawy poszczególnych aspektów systemu. Działanie każdego serwera kontrolowane jest listą dyrektyw i opcji konfiguracyjnych. serwer baz danych MySQL i serwer Joomla!. ponieważ ani PHP. Podstawą systemu jest serwer WWW. ani Joomla! nie są uruchamiane jako niezależne serwery.2 Szczegóły instalacji i konfiguracji Joomla! do poprawnego działania wymaga połączenia czterech technologii serwerowych. MacOS i wielu wariantach Uniksa). aby komunikować się z serwerem MySQL. bez której nieumożliwe jest poprawne funkcjonowanie całości. Taka szersza definicja pozwoli Ci lepiej zrozumieć działanie i proces konfiguracji. . Oprócz obsługi protokołu HTTP zadaniem serwera WWW jest także uruchamianie silnika PHP i serwera Joomla!. a ich optymalny dobór zapewni właściwe funkcjonowanie systemu. dostarczając najlepszych wrażeń z użytkowania. ISS w przeciwieństwie do Apache.

32 Joomla!. z których składa się system Joomla! Opcja 1 Opcja 2 Minimalne wymagania dla każdego z serwerów składających się na Joomla!: • • • PHP w wersji co najmniej 4. Cztery serwery. a w końcu wybrać serwer WWW.23. wybrać platformę.13.3. powinieneś poznać wady i zalety każdego rozwiązania.19. Profesjonalne tworzenie stron WWW Rysunek 2. dzięki czemu możesz rozważyć inne opcje. Twoje decyzje dotyczące instalacji i konfiguracji będą miały daleko idący wpływ na sukces Twojej strony opartej na Joomla!. Mimo iż większość z tych wyborów zależy od wymagań docelowego środowiska. a inną na serwerze . określić metodę przeprowadzenia instalacji. Decyzje podczas instalacji Prawdopodobnie masz już jakieś doświadczenia z instalacją Joomla!. Zwróć uwagę na różnice pomiędzy poszczególnymi środowiskami. W momencie planowania przyszłej konfiguracji musisz zdecydować się na instalację lokalną lub zdalną. na której zostanie uruchomiony Joomla!. ponieważ często inną platformę wykorzystuje się na etapie testów. Apache w wersji co najmniej 1.1. MySQL w wersji co najmniej 3. mimo to poniżej opisano pokrótce procedurę instalacji. a nie od osobistych preferencji. aby być świadomym jego ograniczeń.x. XML i Zlib.x z aktywowanymi modułami MySQL.

Często wykorzystują także droższy sprzęt. aby najlepiej spełniał Twoje potrzeby. na którego serwerze możesz zainstalować stronę. komponentów i dodatków. np. • . Dostawcy usług internetowych wkładają wiele wysiłku w zapewnienie optymalnej wydajności serwerów. który radzi sobie z większym obciążeniem. masz dużo więcej pracy do wykonania. Aktywacja Joomla! sprowadza się wtedy do skopiowania plików instalacyjnych na serwer i przeprowadzenia instalacji. dedykowanego serwera zapewni Ci prawdopodobnie lepszą wydajność niż instalacja zdalna. Jeśli masz zamiar zainstalować Joomla! lokalnie. Elastyczność tworzenia kopii zapasowych — W przypadku instalacji lokalnej możesz skorzystać z bogatych opcji tworzenia kopii zapasowych. jest już zainstalowane i gotowe do użycia. który skonfigurowałeś i którym samodzielnie zarządzasz. Potencjalna wydajność serwera — Uruchomienie własnego systemu pozwala przeznaczyć maksimum zasobów dla strony Joomla!.com lub SiteGround. włączając w to PHP i MySQL. od ich ręcznego kopiowania plików. podczas gdy ostatecznie strona działa pod kontrolą serwera WWW uruchomionego w Linuksie.okalnalub zdalna instalacja Pierwszą decyzją podczas instalacji jest określenie. Taka konfiguracja wymaga skutecznego podziału zasobów maszyny między elementami systemu. Być może masz konto u dostawcy usług internetowych. Dostawcy usług internetowych rzadko pozwalają na zmianę kluczowych opcji konfiguracyjnych. Częstym wyborem dla środowiska testowego jest Windows lub MacOS. czy Joomla! zostanie zainstalowany lokalnie.com. GoDaddy. .Rozdział 2. Może to doprowadzić do spowolnienia serwerów i pogorszenia wydajności w czasie szczytowego obciążenia. Dzięki dostrzeżeniu różnic na wczesnym etapie prac łatwiej będzie Ci później przenieść wyniki do innego środowiska. które przekładają się na tworzenie modułów. • Szczegóły instalacji i konfiguracji 33 produkcyjnym. Instalacja lokalna ma kilka zalet: • Dowolność konfiguracji — Możesz dopasować działanie każdego z serwów. jesteś także odpowiedzialny za konfigurację serwera i zarządzanie nim. czy zdalnie. nie tylko aby uzyskać lepszą wydajność. chcą uniknąć potencjalnego zagrożenia dla systemu i pozostałych użytkowników. W przypadku zdalnej instalacji prawdopodobnie będziesz musiał dzielić się połączeniem z bazą danych i internetem ze sporą liczbą innych użytkowników. Dogłębna znajomość systemu — Zdecydowanie lepiej poznasz system. aż po użycie dodatkowego dysku w macierzy RAID. nie jest to regułą. • • • Poniżej przedstawiono kilka wad instalacji lokalnej: • Więcej pracy — Jeśli zdecydujesz się na instalację lokalną. W takim przypadku niezbędne oprogramowanie. Możliwa wydajność systemu — Chociaż w większości przypadków wykorzystanie własnego. Możesz wykorzystać tę wiedzę. Tworzenie kopii zapasowych zdalnej instalacji może być nużące i wymagać samodzielnego skopiowania plików (przez FTP) oraz bazy danych (przez jakiś interfejs administracyjny). ale także lepiej zrozumieć możliwości i ograniczenia systemu.

Profesjonalne tworzenie stron WWW • Zabezpieczenie przed usterkami — Większość dostawców stosuje przynajmniej jeden typ redundancji w systemie. architektura wielomaszynowa. MySQL i PHP). działający system w bardzo krótkim czasie. Główne z nich dotyczą komfortu obsługi danego systemu operacyjnego oraz kosztów licencji (Linux jest darmowy. sprawdź ofertę kolokacji. Zastosowanie takich zabezpieczeń w przypadku własnego. aby zagwarantować nieprzerwane działanie stron klientów. zawartym w pakiecie. uruchomić go i uzyskać kompletny. LAMP lub MAMP. Z tego powodu zarządzanie systemem będzie praktycznie niezależne od wybranej platformy. Jeśli chciałbyś wykorzystać instalację lokalną. natomiast Windows i MacOS wymagają opłat licencyjnych). M . jaką dysponuje Twój lokalny dostawca usług internetowych (ISP). Chociaż Joomla! nie wykorzystuje Perlą. Chociaż wybór platformy może wpłynąć na wydajność. Najpopularniejszy łączony instalator to XAMPP. zapasowe baterie i wiele innych technologii. . Skróty te określają docelową platformę. że możesz pobrać z internetu jeden instalator. ponieważ dostępne są wersje dla trzech różnych systemów operacyjnych. które zostaną zainstalowane (Apache. aby przedstawić ich kompletną listę.34 Joomla!. Deweloperzy open source notorycznie upubliczniają oprogramowanie. pozostałe litery reprezentują serwery. które samodzielnie działa stabilnie. administratorzy często korzystają z takich akronimów. a nie masz wystarczająco szybkiego łącza. nie będzie miał on znaczącego wpływu na wydajność serwera. Większość administracji przebiega za pośrednictwem interfejsu WWW. nowa wersja Apache nie zadziała ze stabilną wersją PHP). w przypadku którego X oznacza zmienną. które działają prawie identycznie na wszystkich platformach. lokalnego serwera jest trudne i kosztowne. Opisując proces instalacji. Mogą to być zapasowe serwery DNS. które gwarantują poprawne działanie strony w przypadku uszkodzenia jednego z elementów. a problem pojawia się przy połączeniu z wcześniejszymi wersjami pozostałych programów (np. które pozwolą Ci za odpowiednią opłatą umieścić u nich swój serwer i podłączyć go do internetu. Instalacja poszczególnych serwerów czy instalacja łączona Możesz zdecydować się na instalację poszczególnych serwerów lub wykorzystać łączony instalator. Dwa PP w nazwie „XAMPP" odpowiadają oprogramowaniom PHP i Perl. jak WAMP. nie powinien mieć znaczącego wpływu na proces instalacji Joomla!. Joomla! wykorzystuje technologie PHP i MySQL. Oznacza to. sygnalizowaną przez pierwszą literę (W= Windows. dlatego wybrana platforma nie wpływa na interakcje z systemem. Wielu dostawców ma bardzo korzystne oferty. Instalator XAMPP przezwycięża jedną z największych bolączek oprogramowania open source: kompatybilność. automatyczne macierze RAID. taki jak XAMPP. XAMPP zapobiega tym problemom dzięki dostarczeniu wersji w pełni ze sobą zgodnych. ponieważ w grę wchodzi zbyt wiele zmiennych. L = Linux.MacOS). Wybór platformy: Windows. Linux lub MacOS Wybór platformy może być trudny.

Rozdział 2. Ponadto instalowanych jest wiele niepotrzebnych aplikacji (takich jak Perl). Główną przyczyną dla której warto wykorzystać Apache w systemie Windows. jest solidnie potwierdzona kompatybilność Joomla! i Apache. Dostrojona wydajność — Microsoft poświęcił dużo czasu i pieniędzy na zoptymalizowanie IIS pod kątem maksymalnej wydajności w Windowsie. Przykładowo w MacOS jest już zainstalowany serwer Apache — trzeba go tylko aktywować. W czasie pisania tej książki użytkownik Apache byłby zmuszony do ręcznej kompilacji serwera w celu zyskania obsługi Secure Sockets Layer (SSL). Wykorzystanie Apache wymaga częściowej integracji zasad zabezpieczeń z systemem Apache. a także może dołączać dodatkową funkcjonalność do wielu różnych rozszerzeń (np. to pomijając pojedyncze problemy. Wbudowany serwer FTP — Domyślna instalacja IIS zawiera serwer File Transfer Protocol (FTP). który chcesz zainstalować. jest niewielka. • • • • . które zostaną zainstalowane w systemie. że decyzja odnośnie do platformy wpływa także na sposób. Większość komputerów ma już IIS zainstalowany — Na platformie Windows większość komponentów niezbędna do uruchomienia IIS jest już zintegrowana z systemem operacyjnym. działa nawet w połączeniu z technologią Active Directory. instalator XAMPP jest fantastycznym narzędziem. rozszerzeń i modułów. z powodu których mógłbyś zdecydować się na IIS: • Natywna obsługa SSL — Szyfrowanie SSL jest dostępne natywnie w IIS na platformie Windows. Podobnie w przypadku ISS. Jeżeli jesteś odrobinę bardziej zaawansowany. które pozwoli Ci zacząć pracę w bardzo krótkim czasie. Zintegrowana ochrona katalogów — IIS został napisany z myślą o natywnej obsłudze bezpieczeństwa katalogów w Windowsie. ponieważ liczba dodatkowych elementów. Apache działa w tym środowisku dobrze. Oznacza to. jednak optymalizowany jest głównie pod względem platformy linuksowej i innych wariantów Uniksa. Jest to trudne z kilku powodów. kiedy instalowałbyś każdy z serwerów oddzielnie. Najważniejszą jest bezpieczeństwo. które napotkasz. który może być użyteczny w zarządzaniu systemem Joomla!. że narzut IIS jest bardzo mały. Pamiętaj o tym. Jest jednak kilka elementów. Wybór serwera WWW: Apache czy Microsoft Internet Information Server (IIS) Jeśli uruchamiasz Joomla! na platformie Windows. Jeśli jesteś początkującym użytkownikiem. • Szczegóły instalacji i konfiguracji 35 Chociaż instalator XAMPP umożliwia łatwą i szybką instalację w środowisku testowym. W najgorszym wypadku domyślnie zainstalowany serwer może powodować konflikt z tym. ma kilka poważnych wad. który jest prawdopodobnie zainstalowany na platformie Windows. opcja pobierania lub wysyłania w komponencie galerii zdjęć). indywidualna instalacja może być dobrym wyborem. W innej sytuacji będzie tylko zbędnym oprogramowaniem. w jaki będziesz przeprowadzać instalację. Skompilowana wersja Apache dla Windowsa domyślnie nie zawiera tej opcji. które mogą spowolnić Twój system. Domyślne instalacje serwerów zawartych w paczce XAMPP są podatne na ataki różnych typów. musisz dokonać wyboru serwera WWW: Apache albo Microsoft Internet Information Server (IIS). Ilość miejsca zajmowana na dysku twardym może być nawet trzy razy większa niż w sytuacji.

Profesjonalne tworzenie stron WWW Jeśli chcesz zainstalować Joomla! w systemie Windows.ini. czy IIS działa poprawnie. aby mieć pewność.2. że rozszerzenie PHP działa z nowymi ustawieniami. że zawarte w nim wpisy wskazują na właściwy katalog. Instalator automatycznie skonfiguruje IIS do współpracy z PHP. znajdź na liście pozycję Internetowe Usługi Informacyjne i upewnij się. Wybierz wersję IIS. Dzięki temu zmienna systemowa Path będzie wskazywać na nowy katalog PHP. Jeśli nie.net Instalacja PHP przebiega podobnie jak dla każdego innego programu.6 Setup W e b Server S e t u p Select the Web Server you wish to setup. Jeśli tak. Na stronie Web Server Setup wybierz wersję IIS. czy IIS działa poprawnie.php. aby dowiedzieć się. jeśli go tam nie ma. sprawdź najpierw. należy to zrobić. Spróbuj skopiować PHP. uruchom w przeglądarce poniższy adres. Najprawdopodobniej znajduje się on w głównym katalogu dysku (przykładowo c:\) lub w podkatalogu programów (np.2. otwierając Panel Sterowania/System i klikając przycisk Zmienne środowiskowe w zakładce Zaawansowane. Jeśli silnik PHP nadal nie działa poprawnie (zobacz następny podrozdział. by wskazywała na katalog z zainstalowanym PHP.3). sprawdź zawartość zmiennej Path. O Apache 1.x Module O Apache 2. upewnij się. Rysunek 2.3. otwierając Panel Sterowania/Dodaj lub usuń programy.0. Jeśli masz trudności z uruchomieniem PHP. na której będzie działać PHP 5 PHP 5.x Module O Apache 2.2.x Module O Apache CGI © I I S ISAPI module O IIS FastCGI Ons CGI ONSAPI Qxitami O Sambar Server O NetServe Web Server Q Other CGI O not setup a web server Mimo iż po zakończeniu instalacji PHP nie zostaje wyświetlony komunikat o potrzebie ponownego uruchomienia komputera. Kliknij przycisk Dodaj/Usuń składniki systemu Windows. Po każdej zmianie powinieneś zatrzymać serwer i uruchomić go ponownie. Zmień wartość zmiennej Path (zobacz rysunek 2. czy jest zaznaczona. jak to sprawdzić). c:\Program Files). zaznacz j ą i przeprowadź instalację. Możesz to zrobić. Aby sprawdzić. co doda usługę uruchamiania skryptów i baz danych. musisz zainstalować PHP i MySQL.ini. czy w folderze Windows znajduje się plik PHP. sprawdź. PHP możesz pobrać z poniższej strony: http://www. jak pokazano na rysunku 2. powinieneś zobaczyć domyślą stronę: http://local host Zanim skorzystasz z Joomla!. .2.36 Joomla!.

Możesz łatwo to zrobić. Zaznacz wybrany język i kliknij przycisk Dalej. . Rozpocznij instalację od pobrania aktualnej wersji Joomla! (z www. . aby przejść do kolejnego kroku. W tym podrozdziale opisano pokrótce poszczególne etapy instalacji..php. Po skopiowaniu plików do głównego katalogu strony WWW uruchom w przeglądarce internetowej plik index. Zapisz plik i wyślij go na zdalny serwer. skontaktuj się z dostawcą usługi. Windows_NT .CMD. Heh\Us. Powinieneś zobaczyć pierwszy ekran procesu instalacji. ?>.4.org) na dysk twardy.joomla. 1 Polski pakiet językowy dla zaplecza i strony głównej można pobrać ze strony — przyp.VBS. J5. C:\Documents and 5ettings\Mr. x86 Edytuj | | Anuluj Etapy instalacji Joomla! Instalacja Joomla! jest względnie prosta dla doświadczonego użytkownika. Edytuj Zmienne systemowe Zmienna NUMBER OS j f ^ PATHEXT ! PROCESSOR_A. że usunąłeś ten plik.EXE.joomla.. co pozwoli Ci zapoznać się z procesem instalacji. tłum. Jeśli PHP nie działa poprawnie.com/test. .COM..bz2). • Szczegóły instalacji i konfiguracji Rysunek 2.pl/ .3..tar. aby umieścić pliki w głównym katalogu serwera WWW. Edytuj wartość zmiennej Path. Zawiera listę wyboru z dostępnymi językami'.zip lub .) zobaczysz stronę z pogrupowanymi parametrami PHP.BAT. VBE. Zanim rozpoczniesz instalację na zdalnym serwerze. Po wywołaniu tego pliku przez przeglądarkę (wpisując adres URL taki jak /¡«p://www. tworząc plik w edytorze tekstu (takim jak Notatnik) o nazwie test.php w którym umieścisz linię <?php phpinfo( ). aby upewnić się. Informacje ze strony phpinfo() można w razie potrzeby bezpiecznie odczytać w interfejsie administracyjnym Joomla!..gz albo .. W przypadku instalacji zdalnej możesz wykorzystać program FTP. Heh Zmienna LANG PATH TEMP TMP Pl Wartość C:\Documents and Settings\Mr... powinieneś sprawdzić. jak przedstawiono na lysunku 2. Po skończeniu próby upewnij się. następnie umieść pliki Joomla! w katalogu serwera WWW.. Heh\Us. że zawiera katalog PHP 37 Żrnlenrte środowiskowe E l Zmienne użytkownika dla Mr.. ponieważ niepowołane użycie może zdradzić hakerowi wiele informacji na temat Twojego serwera WWW.tar. taki jak darmowa FileZilla. . http://www.php.Rozdział 2...przyklad. czy PHP działa poprawnie. jeśli nie miałeś dotychczas żadnych doświadczeń w tej dziedzinie. Rozpakuj archiwum (będzie to plik .

wpisać nazwę użytkownika bazy danych i hasło.3.Italian (Italy) Ija-JP .Hungarian (Magyar) j it-IT .F R .E S .) i I t .F r e n c h (Fr) . W zakładce Dodatkowe ustawienia. Jeśli ustawienie któregoś z parametrów koliduje z wymaganiami Joomla!.. Ustawienie Safe Mode: Wyświetlaj błędy: Wczytywanie plików: Magic Quotes: Register Globals: Buforowanie kodu wynikowego: Automatyczne uruchomienie Zalecane Wyłączone Włączone Włączone Wyłączone Wyłączone Bieżące Wy lar zone Włączone Włączone Wyłączone Wyłączone wyróżnione na czerwono.php Niezapisywalne Tak Tak Tak Tak lak Tak Tak • M l V » W W 'iflniiir-t isiaiai/ja • Wersja 1. Jeśli tego nie zrobisz instalacja Joomla! może .Nederlands (NL-BE) Joomla! jest Wolnym Oprogramowaniem udostępnianym na licencji GNU/GPL. Następny ekran (zobacz rysunek 2. W takiej sytuacji utwórz bazę ręcznie.10 .Finnish ( S u o m i ) : f r . w podrozdziale „Konfiguracja PHP" poszukaj wyjaśnienia opcji.L T .H R . które trzeba poprawić.Japanese(JP) l o .C r o a t i a n (Hr) .S p a n i s h ( E s p a ñ o l internacional) e u .5) umożliwi Ci sprawdzenie przed rozpoczęciem instalacji. 2 : Przegląd ustawień 3 : Licencja 4 : Baza danych 5 : Ustawienia FTP 6 : hoiifiłjui acja 7 : Zakończ Zalecane ustawienia: Joomla! może nadal działać mimo. Zwróć uwagę.38 Joomla!.Esperanto e s . hu-HU .Latvian i n b .MySQL Domyślny język wielobajtowy Nadpisywanie funkcji wielobajtowych wyłączone configuration. Ekran sprawdzania przed instalacją potwierdzi. Wersja PHP >=4."í:'.'í. proszę podejmij działania w celu ich zmiany.5 Sprawdź ponownie Przegląd ustawień O 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.Lao ('. ze ustawienia Twojego serwera nie są do końca niedostosowanym środowisku może KCW !*spoctarv

5ne próbie?:. Pierwsza strona instalacji pozwala na określenie języka 'i J O O T Wersja 1.Greek en-GB .obsługa XML . na dole ekranu znajdziesz opcje umożliwiające utworzenie kopii lub usunięcie istniejących danych w bazie.0 P r o d u c t i o n S t a b l e [ K h e p r i ] Wyłączone Wyłączone Wyłączone Wyłączone Kolejny etap wymaga wyrażenia zgody na warunki Powszechnej Licencji GNU.E S . że niektórzy dostawcy usług internetowych nie pozwalają na tworzenie baz danych przez programy.y. .English (United Kingdom) eo-XK . irlSi313Cj3 Rysunek 2. . Rysunek 2.N O . być niemożliwa.5 Kroki 1 : Jçzyk 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 : Konłtłjiii a c j a 7 : Zakończ Wybierz język Wybierz jeżyk el-GR. Profesjonalne tworzenie stron WWW ? r T » Q ! . Po kliknięciu Dalej zostaniesz przeniesiony do ekranu konfiguracji bazy danych (zobacz rysunek 2.obsługa kompresji zlib . Możesz tutaj ustawić adres serwera MySQL (w przypadku instalacji lokalnych jest to często local host).5.D e v a n a g a r i / H i n d i (India) j h r .5.Norsk bokmSl (Norway) nl-NL . Instalator Joomla! utworzy wewnątrz niej niezbędne tabele.B a s q u e (Euskara estandarra) fa-IR-Persian^jU) fi-FI .Hebrew(IL) hi-IN .L A .6). he-IL. . a jej nazwę wpisz w odpowiednie pole. . czy wszystkie niezbędne elementy systemu działają poprawnie.Lithuanian Iv-LV .4. czy wszystkie niezbędne funkcje działają poprawnie Kroki 1 : Jeżyk .

którą ma używać Joomla!. witryny Potwierd: email i hasło administratora w w JoomlaJumpstart com w Wpisz adres email.7. Typ bazy danych mysql v Nazwa serwera localhost Nazwa użytkownika >. A b y to zrobić. Możesz tutaj ustawić jej nazwę. d a n e z s e r w i s u J o o m l a ! 1. hasło administratora. . Oto jakie są możliwości: > I W. leśii Twój serwer posiada ograniczoną liczbę baz danych użyi toznych w zedrostkow tabel żeby zainstalować kilka serwisów Joomla! przy użyciu jednej bazy danych. . proszę podaj adres serwera. .7) polega na ustawieniu kluczowych parametrów strony.0. Określisz je w ustawieniach dodatkowych. • Szczegóły instalacji i konfiguracji lysunek 2. będzie to gjówny adres witryny i adres głównego administratora zignorować tą seteji. . . administratora Potwierdź hasło administratora zapasowej Z a ł a d u j p r z y k ł a d o w e d a n e . hasło administratora. Na ekranie pojawiają się także przyciski kierujące na główną stronę Joomla! lub do interfejsu administracyjnego (zaplecza). Po kliknięciu Wczytaj przykładowe dane w bazie danych MySQL zostaną zapisane przykładowe dane. < Instalacja zwieńczona jest infonnacją o jej zakończeniu. Ekran konfiguracji bazy danych umożliwia Ci wprowadzenie danych dostępu do konta i nazwę bazy Kroki 1 : Język 2 : P i zeyi«i<l u s t a w i e ń wymaga czterech prostych kroków.x l u b k o p i i WAŻNE: Zaleca się instalowanie przykładowych danych. ponieważ twoje beda przeniesione z poprzedniego ser Twój e a admin@JoomlaJumpstart com mi l "ft. Rysunek 2..rnv<£im> d. na którym Joomla! ma być zainstalowany. Przed zakończeniem instalacji możesz wypełnić bazę danych ptzykładową treścią.. 3 : Licencia -I : B a z a dat t y c h 5 : Ustawienia FTP 6 : K o i if iyt ii a c i a 7 : Zakończ 1 39 Konfiguracja bazy danych Ustawienia potaczenia: P o d s t a w o w e nstat W tym ktoku poświęconym I onhgur äcii bazy danych..»t i f i i i 7 > U r i ( l n w t ' 1 1 Wczytaj ( » ) przykładowe Wczytaj! ) Załaduj skrypt i. a także wczytać przykładowe dane. iacuJhoat iroot Nazwa bazy danych joomla15| Konfiguracja główna (zobacz rysunek 2. Następnie podaj nazwę użytkownika MySQL. wybierz odpowiednią opcję i zatwierdź j ą zanim przejdziesz dalej.6. Na ekranie konfiguracji głównej można ustawić nazwę strony. . hasło oraz nazwę bazy danych..Rozdział 2. Tam możesz również oto eślić sposób w jaki Joomla! potraktuje istniejące tabele o tym samym co wybr any przedrostiu. że komunikacja z serwerem baz danych przebiega bezbłędnie. a także wczytać przykładowe dane Główna konfiguracja Narwa witryny: Nazwa Wpis2 lazw^ Twoje} witryny. W ten sposób możesz się upewnić.

że spowodowany został błędną konfiguracją. w takiej sytuacji tylko inspekcja błędów generowanych przez PHP (które bez ustawienia odpowiedniej dyrektywy pozostają ukryte) może pomóc Ci w zdiagnozowaniu kłopotu. Ustawienia rekomendowane nie zawsze spełniają wszystkie potrzeby. ale także na bezpieczeństwo i wydajność. Pliki konfiguracyjne Jeśli chcesz uzyskać najlepszą wydajność Joomla!. Profesjonalne tworzenie stron WWW Jeśli instalacja nie powiodła się. gdy jest się administratorem Joomla!. Ponad 70 procent wszystkich stron internetowych uruchamianych jest na Apache. to po jego zbadaniu okazuje się zazwyczaj. Nawet jeśli wystąpi jakiś problem. musisz zacząć od dołu: od serwera Apache. który plik będzie traktowany jako plik indeksowy. Oznacza to. aby ułatwić sobie życie. a nie błędem w samym serwerze. Serwer Apache jest jednym z najlepiej sprawdzonych i przetestowanych serwerów świata.html </IfModule> . ale już w dopasowywaniu konfiguracji do własnych potrzeb mogą wystąpić trudności. na którym użytkownicy spędzą większość czasu poświęcanego na przeglądanie internetu? Ustawienie właściwych wartości dla niektórych parametrów. którzy będą odwiedzać Twoją stronę tylko przez kilka minut? Czy może planujesz stworzenie portalu. a na ekranie nie pojawił się żaden komunikat o błędzie. sprawdź. Ponieważ do uruchomienia Joomla! konieczny jest plik index. chociaż wiele ustawień można zmienić od razu. Domyślnie dyrektywa ustawiona jest na Di rectorylndex index. Konfiguracja Apache Web Server Aby uzyskać najlepszą wydajność serwera Joomla!. Trzy najważniejsze dyrektywy Joomla! to: Di rectorylndex.conf) dostępnych jest ponad czterdzieści różnych dyrektyw. Zmiana zgłaszania błędów PHP").php.40 Joomla!. czy włączone jest zgłaszanie błędów w PHP (zobacz podrozdział . lecz także najmniejszych stron internetowych. Podstawowa instalacja Apache jest prosta. musisz dodać do listy odpowiedni wpis. takich jak te odnoszące się do przekroczenia czasu.html. Podczas przeglądania pliku httpd. Dyrektywa Direclorylndex Ta dyrektywa pozwala ustawić. LogLevel i ServerRoot.html. Główny wpływ na konfigurację ma określenie grupy odbiorców. W głównym pliku konfiguracyjnym (httpd. że wywołanie katalogu w przeglądarce bez podania nazwy pliku spowoduje zwrócenie pliku index. wymaga pewnego doświadczenia.. Sporadycznie pojawiają się problemy. Wykorzystuje się go do prowadzenia największych.conf powinieneś natrafić na poniższą dyrektywę: # D ¡rectorylndex: sets the file that Apache will server if a directory is requested <IfModule dir_module> Directorylndex index. które nie są wykrywane przez system Joomla!. Wiele z nich ma wpływ nie tylko na działanie serwera. musisz po kolei sprawdzić wszystkie dyrektywy wykorzystywane przez serwer WWW. Ze względu na ogólnoświatowe rozmieszczenie i testowanie stabilne wydania Apache są bardzo trwałe. Czy spodziewasz się tysięcy użytkowników.

niezależnie od ustawienia LogLevel. Wstaw odwołanie do index. Komunikaty należące do poziomu notice są zapisywane zawsze. warn — Zapisuj wszystkie ostrzeżenia generowane przez system. http://localhost). Poniżej wymieniono osiem dostępnych ustawień (w porządku rosnącym względem liczby komunikatów): • • • • • • • • emerg — Zapisuj tylko krytyczne wpisy.0.Rozdział 2. aby zapobiec awarii części systemu. crit — Przechowuj informacje o błędach.2/htdocs/AVE. Takie działanie pozwala Ci także natychmiast wyłapać małe problemy. które nie zagrażają działaniu systemu.com . gdy w systemie wystąpił błąd i system nie może dalej funkcjonować. info — Dostarczaj dodatkowych informacji wraz z sugestiami optymalizacji. jeśli nie uda się znaleźć pliku PHP. Domyślnym ustawieniem LogLevel jest warn. lyrektywa LogLevel Ustawienie LogLevel wpływa na liczbę komunikatów zapisywanych przez system w dzienniku błędów. Zalecanym ustawieniem dla serwera produkcyjnego jest przynajmniej crit.yahoo. Po ustawieniu na warn wpis do dziennika może wyglądać tak: [Sat Nov 18 08:16:04 2006] [error] [client 127. • Szczegóły instalacji i konfiguracji 41 Poprawne uruchamianie Joomla! wymaga dodania pliku indeksowego PHP do tej listy. plik index. Ustawienie LogLevel na danym poziomie spowoduje zapisywanie komunikatów przewidzianych dla tego poziomu i wszystkich poziomów o wyższym znaczeniu. alert — Zapisuj ostrzeżenia wymagające natychmiastowej reakcji. kiedy jest jeszcze mały.0. error — Przechowuj błędy dotyczące uruchamiania systemu.html zostanie wykorzystany. katalog zostanie przeszukany pod kątem obecności index.1] File does not exist: C:/Program Fnles/Apache Software Foundation/Apache2. Podczas wczesnego poznawania Joomla! lub testów w czasie wdrażania zwiększenie LogLevel może znacząco ułatwić diagnozę i usuwanie problemów.php tuż przed odwołaniem do pliku HTML. notice — Zapisuj informacje o normalnych okolicznościach. które mogą uszkodzić działanie serwera. włączając w to potwierdzenie uruchamiania procesów. referer: http://www.php index. debug — Zapisuj wszystkie komunikaty systemu. gdy ciężko obciążony system może wyolbrzymić małe wady. Jest to domyślne ustawienie. Jak mówi stare powiedzenie — najlepiej zabić potwora.html Następnym razem. zamiast później. jak poniżej: Di rectoryIndex index.php. kiedy użytkownik poda adres URL bez wskazania pliku (np.

Jeśli dziennik nie jest zapisywany we właściwym miejscu lub pliki konfiguracyjne są niedostępne. sprawdź ustawienie tej dyrektywy. których ustawienie wpływa na Joomla!.. Możesz wykorzystać zdalny serwer jako miejsce centralnego przechowywania dzienników wielu serwerów do analizy. które należy ustawić na początku. Aby uzyskać więcej informacji na temat uruchamiania zdalnego serwera wpisów dziennika.wi ki pedi a. dostępną za pośrednictwem ErrorLog.conf zawierają sugestie. które mogą Ci pomóc w ustawianiu systemu pod kątem uzyskania danych funkcji.1 zawiera listę znaczących dyrektyw i ogólny opis każdej z nich. jest możliwość zapisywania wpisów na zdalny serwer. Odpowiednie ustawienie uzależnione jest od Twoich potrzeb względem instalacji. katalogi użytkowników itd. nosi nazwę ErrorLog. Przydatną funkcją. jak języki. która pozwala dostosować format wpisów do dziennika. jak pokazano poniżej: ErrorLog syslog:logwarehouse Spowoduje to przesyłanie wpisów dziennika na serwer o nazwie logwarehouse. SSL.conf W poprzednich podrozdziałach szczegółowo opisano najważniejsze dyrektywy. można znaleźć w podkatalogu /defaults. jeśli uda im się włamać na któryś z serwerów. musisz tylko określić zdalny serwer syslog. Aby skorzystać z funkcji wysyłania wpisów dziennika na zdalny serwer. Dyrektywa. Dostępnych jest jednak wiele innych. . usunięcie dziennika zawierającego ślady ich działań. W przypadku systemu Linux dyrektywa byłaby ustawiona podobnie jak poniżej: ServerRoot "/usr/local/apache" Na platformie Windows wyglądałaby raczej tak: ServerRoot "C:/Program Files/Apache Software Foundation/Apache2.2" Wartość ta będzie dodana na początku do wszystkich ścieżek. Przykładowe pliki .org/wi ki/Syslog Dyrektywa ServerRoot ' Dyrektywa ServerRoot określa główny katalog serwera WWW. która określa położenie i nazwę pliku dziennika błędów. odwiedź artykuł w Wikipedii poświęcony standardowi syslog: http://en.42 Joomla!. Przechowywanie dziennika na zdalnym serwerze uniemożliwia hakerom. Profesjonalne tworzenie stron WWW Istnieje także dyrektywa LogFormat. Wszystkie dyrektywy znajdziesz w pliku konfiguracyjnym. Sugerowane ustawienia dla takich opcji. W podręczniku Apache znajdziesz dokładne informacje na temat jej wykorzystania. wewnątrz /conf który z kolei znajduje się w głównym katalogu serwera WWW. Tabela 2. które nie są w pełni odpowiednie. Inne dyrektywy httpd.

Przechowuje czas wygaśnięcia tracking cookic w sekundach. na których mogą być przyjmowane połączenia przez proxy. dostarczonych w postaci tożsamości RFC 1413 dołączanej przy żądaniu.. Przypisuje język dla plików z danym rozszerzeniem. Włącza lub wyłącza zapisywanie informacji o odwiedzających. AddDefaultCharset On|Off|zestawZnaków AddLanguage AllowCONNECT AllowOverride CacheDefaultExpi re 43 Apache Opis Określa nazwę pliku konfiguracyjnego. jeśli nie zostanie ustawiony czas wygaśnięcia tego pliku. który zostanie zwrócony odwiedzającemu w przypadku wystąpienia błędu. jeśli ustawiono dyrektywę Header. Oznacza domyślny czas przechowywania dokumentu w pamięci podręcznej.2/htdocs. Określa domyślny zestaw znaków. po przekroczeniu którego zostanie przerwane trwałe połączenie lub trwała sesja. Określa porty. Ważne dyrektywy serwera Dyrektywa AccessFileName AddCharset zestawZnaków rozszerzenie [rozszerzenie] . Pozwala ustawić nagłówek odpowiedzi HTTP. Najczęściej dyrektywa ta wskazuje ścieżkę do folderu htdoes. Wskazuje nazwę pliku. w którym zainstalowany jest Joomla!. który zostanie przesłany w postaci znacznika MIME. Określa limit czasu. Określa domyślny język. a także jego format. Wskazuje dokument. Włącza lub wyłącza obsługę trwałych połączeń lub sesji. • Szczegóły instalacji i konfiguracji Tabela 2.htaccess. Dodaje domyślny zestaw znaków do typu MIME text/plain i text/HTML. Przechowuje ścieżkę dostępu do głównego katalogu przeznaczonego dla odwiedzających. Taką stronę można zastąpić określonym. System Joomla! nadpisuje to ustawienie i powoduje zwrócenie własnej strony z komunikatem o błędzie. Na platformie Windows może być ustawiona jako C:/Program Files/Apache Software Foundation/Apache2. CharsetDefault CookieExpires CustomLog DefaultLanguage Deny DocumentRoot ErrorDocument ErrorLog Header HeaderName IdentityCheck KeepAlive KeepAliveTimeout . Określa typy dyrektyw. których użycie jest dozwolone w pliku . którego zawartość zostanie wstawiona przed listą plików w katalogu. które mają zabroniony dostęp do serwera WWW. Pozwala ustawić własny plik dziennika. Przypisuje wybrane rozszerzenia do podanego zestawu znaków. Ta dyrektywa może być ogromnie pożyteczna w przypadku obrony przed atakami hakerów lub ograniczenia połączeń z nieautoryzowanymi lub nieprzyjaznymi odwiedzającymi. w którym zapisywane są komunikaty systemu.1. własnym szablonem. Wskazuje ścieżkę do pliku dziennika. Określa listę adresów.Rozdział 2.

Apache i IIS). Jeśli z Twojego serwera będzie korzystać wielu użytkowników. Zobacz także dyrektywę ServerName. Możesz wykorzystać tę dyrektywę. możesz tutaj ustawić odpowiedni katalog. jaką Apache może poświęcić na przetwarzanie żądania. M i m o iż niektóre rozszerzenia Joomla! potrafią tworzyć statystyki. Administrator Joomla! może zdefiniować to ustawienie. Określa dopuszczalną liczbę żądań dla jednego trwałego połączenia. Podczas wysyłania wiadomości od serwera do klienta dołączany jest adres e-mailowy. który zostanie uruchomiony w odpowiedzi na określone żądanie. możesz użyć tę dyrektywę do zmiany portu. informacje o błędach i komunikaty instalacyjne — p r z y p . Domyślnie ustawiona na on. Jeśli więc chcesz dokładnie monitorować ruch na stronie. w którym użytkownicy mogą umieszczać swoje strony. jeśli chcesz uruchomić Joomla! na wirtualnym serwerze. musisz wykorzystać do tego dzienniki serwera W W W . Określa adres IP wirtualnego serwera. 2 Informacje o próbie. Jeśli korzystasz z kilku serwerów na jednym komputerze (np. Nazwa komputera i port wykorzystywane przez serwer. Listen MaxKeepAli veRequests Script ScriptLog ServerAdmin ServerName TimeOut TraceEnable TransferLog UserDi r Vi rtua 1 DocumentRoot Vri tua1DocumentRootIP Pliki dziennika Pliki dziennika serwera Apache m o g ą być bardzo pomocne w monitorowaniu serwera W W W .1. jeśli język nie został określony przez odwiedzającego. nie jest to zalecane.44 Joomla!. zanim zostanie ono przerwane. tłum. W takim przypadku dyrektywa określa plik dziennika błędów. Włącza lub wyłącza obsługę zapytań TRACĘ. Profesjonalne tworzenie stron WWW Tabela 2. aby umożliwić użytkownikom przesyłanie żądań i raportów. ponieważ obniża wydajność systemu. Istnieją trzy typy takich dzienników: access. Ilość czasu. na którym Apache nasłuchuje połączeń. W przypadku uruchamiania PHP przez CGI należy odpowiednio skonfigurować tę dyrektywę. . do którego trafiają komunikaty CGI. error i install2. Domyślne ustawienie to 100. Domyślne ustawienie to 300 sekund. Użyteczna tylko w przypadku uruchamiania PHP przez CGI. Ważne dyrektywy serwera Apache — ciąg dalszy Dyrektywa LanguagePriority opis Przechowuje kolejność wariantów językowych. Wskazuje położenie pliku dziennika z informacjami o transferach. Domyślnym ustawieniem jest ServerName localhost :80. Pozwala ustawić główny katalog dla serwera wirtualnego. na którym serwer będzie czekać na połączenia. Określa katalog. Wskazuje skrypt CGI (Common Gateway Interface). Umożliwia ustawienie portu i adresu IP.

opublikowanie informacji podawanych przez media) możesz spodziewać się ogromnego ruchu na stronie. że jeśli Twoja strona stanie się popularna. dzięki czemu możesz zapewnić poprawne działanie serwera. kiedy haker próbuje zaatakować system z użyciem oprogramowania. aby zapoznać się z nimi. a hakerów cechują często groźniejsze zamiary. jeśli tylko dokładnie przyjrzeć się plikom dziennika. Przejrzyj ich zawartość w zwykłym edytorze tekstu. które szczególnie obciążają procesor (np. Dzieje się tak w sytuacji. Dostrzeżenie prób ataków i włamań na stronę — Sieć Web przypomina trochę Dziki Zachód. jacy użytkownicy korzystają ze strony — Dzienniki zawierają ogromne ilości informacji. Nie zdołasz zapobiec czemukolwiek.Rozdział 2. W miarę postępu pracy z tą książką będziesz wracać do plików dziennika. W latach siedemdziesiątych rząd Stanów Zjednoczonych borykał się z problemem nastoletnich hakerów. Sprawdzenie. Znajdziesz w nim trzy pliki. np. jakie błędy wystąpiły na stronie — Jeśli któryś z modułów serwera nie działa poprawnie lub pojawia się błąd podczas uruchamiania jednej z funkcji. Te ekstremalne przypadki mogą skłonić Cię do wyłączenia funkcji. które umożliwiają współpracę serwera Apache z innymi programami. a następnie sprawdź zawartość podkatalogu /logs. dopóki obciążenie nie zmaleje. Jeśli jednak zauważysz dziwne zachowanie systemu. co się dzieje. Powinieneś znać pory dnia. które pojawią się na stronie? Czy nie chciałbyś dowiedzieć się. Obecnie jest to problem globalny. Dziennik błędów zawiera informacje przydatne podczas usuwania problemów. w których obciążenie jest największe. możesz podjąć przeciwdziałania różnego typu — włączając w to zablokowanie dostępu z adresu IP. którzy dla zabawy włamywali się do systemów komputerowych. A co jeśli połowa odwiedzających pochodzi z Holandii? Jakie ma to znaczenie przy doborze treści. W czasie małej aktywności warto wykorzystać okazję i zrobić kopię zapasową strony. Określenie. zostanie poddany sporemu obciążeniu. a także te. Jeśli dowiesz się. Uważna analiza plików dziennika może dostarczyć sygnałów. Dzienniki mogą zawierać informacje o próbach dostępu przeprowadzanych według pewnego wzorca. które popularnie nazywa się botem. ponieważ obowiązuje w niej niewiele reguł. który znajduje się wewnątrz głównego katalogu Apache. 45 • • • Po instalacji serwera Apache uruchom go na krótki czas. na którym działa. Czy nie chciałbyś poznać. funkcja wyszukiwania). aby udoskonalać konfigurację i lepiej zarządzać stroną. abyś zmieniał zawartość tych folderów podczas pracy z Joomla!. które mogą okazać się szczególnie użyteczne dla administratora systemu. PHP. W określonych sytuacjach (np. jaki procent odwiedzających korzysta z danej przeglądarki? Często jest to zaskakujące. . kiedy ruch na stronie jest bardzo mały. • Szczegóły instalacji i konfiguracji Analiza plików zawierających te dzienniki ułatwi Ci: • Wyrównywanie obciążenia — Musisz zdać sobie sprawę. serwer. jeśli nie wiesz. powinieneś o tym wiedzieć. Foldery modules i extensions Foldery /modules i /extensions zawierają wszystkie wtyczki. na które można odpowiedzieć. że system stał się obiektem ataku. że system stanie się obiektem ataku. który wykorzystuje haker. za pośrednictwem której strony trafiają do Ciebie użytkownicy z Holandii? To tylko kilka pytań. Nie ma powodu.

W internecie lub na stronie serwera Apache (www. aby określić wersję modułu lub rozszerzenia. można pobrać ze strony: http://moduł es. są aktywne. klikając zakładkę Wersja w oknie Właściwości pliku. możesz wyłączać lub włączać poszczególne wtyczki. Dodatkowe moduły.8. w której haker mógłby umieścić własny kod lub wirusa wewnątrz /htdocs.org Folder htdocs Domyślnie katalog ten zawiera pliki stron internetowych. Profesjonalne tworzenie stron WWW warto sprawdzić.apache. dołącz dokładne informacje o wersjach wtyczek. OK I[ Anuluj ) Nie wszystkie moduły. Umożliwi to precyzyjniejszą ocenę Twojej sytuacji.46 Joomla!. Korzystając z odpowiednich dyrektyw w pliku httpd.org) możesz sprawdzić. omówiono sposoby zabezpieczenia tego katalogu. Sprawdź wersje plików w folderach modules i extensions. należy zapobiec sytuacji. Rysunek 2. Ponieważ pliki wewnątrz tego katalogu mają prawa pozwalające uruchamiać kod PHP. które wykorzystujesz. które znajdują się w tych folderach.conf. jeśli napotkałeś trudności ^taśdvrości: mod_auth_dbm. które nie są domyślnie zainstalowane.apache. powinieneś wykorzystać komendę fi le. . W rozdziale 14.so Ogólne Wersja Wersja pliku: Opis: Prawa autorskie: auth_dbm_module for Apache Copyright Pozostałe informacje o wersji Nazwa elementu: Język Komentarze Nazwa produktu Nazwa wewnętrzna Oryginalna nazwa pliku Wersja pliku Wersja produktu Wartość: ! Apache Software Foundation j .so W przypadku platformy Windows możesz sprawdzić wersję rozszerzenia lub modułu. Jeśli masz zamiar poprosić innych o pomoc w rozwiązaniu Twojego problemu. Musisz zwrócić szczególną uwagę na zabezpieczenie folderu /htdocs. czy są dostępne uaktualnione wersje modułów umieszczonych w tych katalogach. jak przedstawiono to na rysunku 2. W systemie Linux. przykładowo: file mod auth dbm.8. czy inni użytkownicy zgłaszali problemy z zainstalowaną u Ciebie wersją wtyczki.

aby uniknąć problemów. Off no value On no value C:\xampp\php\brQwscap \browscap. Off no value On no value C Axa m p p\ph p\b rows c a p \browscap. który pozwoli mu na dodatkowe szkodliwe działania. jak przedstawiono na rysunku 2.input ai <j_sepai atoi . zawiera wartości zmiennych PHP. która znajduje się na dole strony. Sekcja PHP Variables. rozsyłać wirusy.ini no value textfhtrni Off no value Mastei Value always j ł o p u l a t e j aw j j o s t j l a t a Off Po przewinięciu strony do sekcji Configuration możesz przejrzeć listę dyrektyw oraz ich ustawienia. W ten sposób dowiesz się także. Poprzez skierowanie na nią użytkowników mogą zdobyć poufne dane. czy PHP działa poprawnie. Poniżej w poszczególnych sekcjach przedstawiono konfiguracje dla poszczególnych wtyczek — wiele z nich zawiera także informacje o wersji. Joomla! wymaga do poprawnego działania PHP w wersji 4.ini no value texUhtml Off no value i : — 1 PHP Credits Configuration PHP Core Local Value On On Off Off & &amp. przeprowadzać ataki DoS pochodzące z Twojego serwera lub rozsyłać spam.0 lub nowszej. aby lepiej zrozumieć działanie systemu. Przed rozpoczęciem instalacji (zwłaszcza zdalnej) sprawdź wersję PHP. • Szczegóły instalacji i konfiguracji 47 Konfiguracja PHP Konfiguracja PHP jest znacząco prostsza niż konfiguracja Apache. która zapobiegnie lukom w zabezpieczeniach.9. jednak niesie ze sobą nie mniej potencjalnych zagrożeń bezpieczeństwa. W przypadku udanego ataku haker może zdobyć dostęp do informacji poufnych.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 & &amp. dlatego konieczna jest poprawna konfiguracja. Możesz wykorzystać te informacje.9. Najprostszym sposobem określenia konfiguracji PHP jest wykorzystanie funkcji phpinfoO.Rozdział 2. a także wytropić źródło występowania błędu.3. ?> spowoduje wyświetlenie konfiguracji. Częstą sztuczką wykorzystywaną przez hakerów jest uruchomienie fałszywej podstrony na Twoim serwerze. Silnik PHP bezpośrednio uruchamia kod. Komenda pbp\nfo() wyświetli 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 altów ml inchitle aMjjsepaiatoi . Plik zawierający pojedynczą linię <?php phpi nfo(). usunąć dane lub uruchomić program. . Rysunek 2.

auto_start na Off.php. Aby włączyć display_errors użyj poniższej linii: display_errors = On Ta dyrektywa jest domyślnie wyłączona. a także że ma ustawione uprawnienia zapisu. Zapis powinien być także możliwy w katalogu zapisu sesji (ang. Zlib i XML. Register Gl obal s — U s t a w register_gl obal s na Off w pliku globals. session save path).48 Joomla!. globals. Register Globals Emulation — U s t a w RG_EMULATION na Off () w pliku Zlib compression — U s t a w zlib. dlatego w tym podrozdziale opisano tylko te.php w instalacji Joomla!. że plik configuration. o ile ustawiona jest poniższa dyrektywa: log_errors = On . • • • • • • • • u Di spl ay Errors — Ustaw di spl ay_errors na On (tylko na serwerze testowym). Upewnij się. W przeciwnym wypadku Joomla! nie będzie działać poprawnie. Magic Quotes GPC — U s t a w magic_quotes_gpc n a On. Dyrektywy PHP Nie wszystkie spośród wielu opcji konfiguracyjnych PHP mają bezpośredni wpływ na Joomla!. Oto ich lista wraz z zalecanymi ustawieniami: • Safe mode — U s t a w safe_mode na Off. Podczas uruchamiania systemu Joomla! sprawdzane są wartości kilku dyrektyw.ini. aby możliwe były zmiany ustawień systemu Joomla! z poziomu interfejsu administratora. musisz dołączyć obsługę trzech bibliotek: MySQL. w którym działa strona. Zmiany miejsca zapisu sesji możesz dokonać poprzez modyfikację dyrektyw PHP. File Uploads — U s t a w file_uploads na On. Komunikaty o błędach są jednak zapisywane do pliku dziennika błędów serwera Apache. musisz zmienić ustawienie dyrektywy display_errors w pliku php. w przeciwnym wypadku pojawią się błędy w funkcjonowaniu Joomla!. Profesjonalne tworzenie stron WWW Jeśli ręcznie kompilujesz PHP. Wiele z nich nigdy nie będzie potrzebnych.php znajduje się w katalogu Joomla!.ouput_compression na On. aby zapobiec zdobyciu przez hakera dodatkowych informacji na temat systemu. które mają znaczenie dla użytkownika Joomla!. Output Buffering — U s t a w output_buffering na Off. Magic Quotes Runtime — U s t a w magic_quotes_runtime na Off. Zgłaszanie błędów PHP Aby włączyć wyświetlanie komunikatów o błędach PHP (bardzo pomocne podczas usuwania błędów w szablonie lub nowym rozszerzeniu). Session auto start — U s t a w session.

jak ważne jest zgłaszanie błędów.E_ALL & ~E_USER_NOTICE ): Być może jeszcze nie zdajesz sobie sprawy z tego. a także wiele innych kluczowych informacji. jednak możesz zmienić to ustawienie. które wystąpiły podczas uruchamiania PHP. Dzięki włączonemu wyświetlaniu błędów możesz natychmiast przystąpić do szukania źródła problemu. wykorzystując operatory AND (&) i NOT error_reporting . • Szczegóły instalacji i konfiguracji 49 Jest to ustawienie domyślne. Dużo prościej jest włączyć wyświetlanie informacji o błędach w oknie przeglądarki wraz z właściwą treścią strony. Podczas diagnozowania błędów w kodzie PHP ciągłe otwieranie pliku dziennika błędów. E_C0RE_ERR0R — Wyświetla krytyczne błędy. E_N0TICE — Wyświetla wskazówki. możesz kontrolować obfitość komunikatów o błędach. kiedy natrafisz na problem. aby zapewnić kompatybilność z przyszłymi wersjami PHP. E_USER_ERROR — Wyświetla komunikaty o błędach zdefiniowane przez programistę. . E_ERR0R — Wyświetla krytyczne błędy wykonywania. Funkcja display_errors powinna być wyłączona na wszystkich serwerach produkcyjnych. którego nie pojmiesz. E_STRICT — Informuje o zalecanych zmianach kodu. E_RECOVERABLE__ERROR — Wyświetla prawie krytyczne błędy wykonywania. aby dołączyć także ostrzeżenia E_STRICT. gdzie leży problem. poza błędami E_STRICT. Zrozumiesz to w momencie. E_USER_WARNING — Wyświetla ostrzeżenia wygenerowane przez użytkownika. E_WARNING — Wyświetla ostrzeżenia. E_USER_NOTICE — Wyświetla wskazówki wygenerowane przez użytkownika. które wystąpiły podczas uruchamiania PHP. E_COMPILE_WARNING — Wyświetla ostrzeżenia dotyczące kompilacji kodu. nazwy ścieżek. E_CORE_WARN ING — Wyświetla ostrzeżenia. Do wyboru są poniższe ustawienia: • • • • • • • • • • • • • • E_ALL — Wyświetla wszystkie błędy i ostrzeżenia. E_C0MPILE_ERR0R — Wyświetla błędy dotyczące kompilacji kodu. Przykładowo możesz napotkać pustą stronę podczas próby dostępu do strony Joomla! bez żadnej wskazówki. Podobnie jak w przypadku Apache. aby sprawdzić. jak pokazano poniżej: error_reporting = E_AEL|E_NOTICE Możesz wykluczyć daną kategorię błędów. Informacje o błędach mogą zdradzić konfigurację bazy danych. czy problem został rozwiązany. jest niewygodne i niepraktyczne. Domyślnym ustawieniem zgłaszania błędów jest E ALL.Rozdział 2. które haker może wykorzystać podczas ataku. nazwy i adresy serwerów. Wykorzystaj do tego celu operator OR ( | ) . E PARSE — Wyświetla błędy parsowania kodu PHP.

aby katalog sesji znajdował się wewnątrz katalogu serwera WWW. Profesjonalne tworzenie stron WWW W przypadku instalacji pusta strona występuje najczęściej z powodu problemu ze ścieżką zapisu sesji. Ważne ustawienia PHP W tabeli 2.50 Joomla!. do którego dostęp ma serwer WWW.php on line 234.ini i wyszukaj dyrektywę session. a Joomla! powinien działać poprawnie. Komunikat zawiera informację. no such file or directory). Pierwsza kolumna zawiera nazwy dyrektyw.2\htdocs\libraries\joom1a\environment\session. W przypadku platformy Windows dyrektywa ustawiona jest podobnie jak poniżej: session. Otwórz plikphp. Opisana dyrektywa jest tylko wierzchołkiem góry lodowej w zakresie konfiguracji PHP. a następnie wskazać ten folder w konfiguracji PHP.save_path.dan/php_sessions Następnie uruchom ponownie Apache. które znacząco wpływają na działanie Joomla!.2 przedstawiono skróconą listę dyrektyw PHP. Oznacza to błędną konfigurację serwera PHP. Po stworzeniu nowego katalogu ustaw dyrektywę jak poniżej (całość w jednej linii): session. 0_RDWR) failed: No such file or directory (2) in C:\Program Files\Apache Software Foundation\Apache2. Dzięki włączonemu wyświetlaniu błędów (lub po zbadaniu treści dziennika błędów) zostanie wyświetlony komunikat podobny do poniższego: Warning: session_start() [function.2/htdocs/php_sessions" W przypadku instalacji zdalnej na serwerze z zainstalowanym Linuksem zmień ustawienie dyrektywy z przypominającej poniższą: session.save_path = /var/php_sessions na katalog. że nie można rozpocząć sesji ponieważ „nie ma takiego pliku lub katalogu" (ang. rozwiąże problem na serwerze testowym. Na podstawie tego prostego przykładu możesz zaobserwować. żeby ustawić uprawnienia do wybranego katalogu. którą pełni dana dyrektywa. W środowisku produkcyjnym powinieneś wykorzystać narzędzia udostępnione przez dostawcę usług internetowych. Ustawienie dyrektywy w taki sposób. należy utworzyć folder o nazwie php session wewnątrz głównego katalogu serwera WWW. na przykład: session. W trzeciej kolumnie umieszczono krótki opis funkcji.session_start()]: open(C:\D0CUME-l\danny\LOCALS~l\Temp\php\upload\sess_61p04kg4fu0fho31vagt3je8d74.save_path=" C:\DOCUME~l\danny\LOCALS~l\Temp\php\upload" Aby rozwiązać problem.save_path="C:/Program Files/Apache Software Foundation/Apache2. . co uniemożliwia zapisywanie i odczytywanie katalogu sesji. Prawdopodobnie serwer WWW nie ma dostępu do podanej ścieżki. jak bardzo wyświetlanie komunikatów o błędach może pomóc w rozwiązywaniu problemów.save_path = /bi1lcat/ws/bl833/pow. druga — możliwe ustawienia.

Włącza lub wyłącza obsługę wysyłania plików. Możliwe wartości Ciąg znaków expose_php On lub Off extension dir Ciąg znaków filejjploads On lub Off mclude_path Ciąg znaków magic_quotes_gpc On lub Off Włącza lub wyłącza automatyczne kodowanie apostrofów. cudzysłowów.2. Ustawienie na 0 wyłącza limit. lewych ukośników lub znaków zerowych pochodzących ze źródeł zewnętrznych. jeśli np. Domyślne ustawienie to 30 sekund. magi c_quotes_ '-•runtime On lub Off max_execution_ '-»time Liczba maxjnput_time Liczba memoryjimit safe mode Liczba On lub Off . Ustawia limit pamięci. Wpływa to także na czas oczekiwania na zakończenie wysyłania plików. funkcje chmod() (zmiana praw dostępu do katalogów i plików) i system(). Jeśli safejnode jest włączona na serwerze. wiele z powyższych ograniczeń można ominąć (jednak nie za pośrednictwem PHP) dzięki narzędziom dostarczonym przez administratora. Blokowane jest między innymi uruchamianie plików (oprócz plików PHP). zmień ustawienie tej dyrektywy. Domyślne ustawienie to 60 sekund. możesz zwiększyć tę wartość. w którym znajdują się rozszerzenia i moduły PHP. Domyślnym ustawieniem w większości środowisk produkcyjnych jest Off. że wysyłanie plików może trwać dłużej. Jeśli przewidujesz. cudzysłowów. Jeśli przykładowo korzystasz z rozszerzenia. Ustawia w sekundach maksymalny czas uruchamiania skryptu PHP. Sprawdź ustawienie tej dyrektywy. chociaż na wielu serwerach domyślnie jest Off. które będą przeszukiwane przez funkcje require i include. takich jak dodawanie szablonów. Ustawia w sekundach maksymalny czas odbierania danych przychodzących. • Szczegóły instalacji i konfiguracji abela 2. w którym będą uruchamiane skrypty PHP. które potrzebuje sporo czasu. rozszerzeń i obrazków. Określa listę katalogów. wymaga ustawienia na On. Wiele funkcji systemu Joomla!. Wprowadza ograniczenia dla skryptów na współdzielonym serwerze (stosowane często przez dostawców usług internetowych). Wskazuje katalog. Ważne ustawienia Dyrektywa doc root 51 PHP Opis Określa katalog. wystąpi problem połączenia z MySQL. z którego korzystasz. Ustawieniem zalecanym dla Joomla! jest Off. lewych ukośników lub znaków zerowych. Włącza lub wyłącza automatyczne kodowanie apostrofów. aby pobrać informacje z zewnątrz.Rozdział 2. Wyłącza informacje o PHP dołączane do nagłówka odpowiedzi. Ustawieniem zalecanym dla Joomla! jest On. W celu poprawnego działania Joomla! najlepiej pozostawić tę dyrektywę nieustawioną.

2. które pozwalają wpływać na sposób wykorzystania sesji i zużycia pamięci. warto rozważyć robienie kopii zapasowej przy każdej większej zmianie ustawień. a nie przewidywania przyszłych obciążeń.ini. Off lub liczba Ciąg znaków Zanim zaczniesz zmieniać ustawienia PHP. i z tego powodu nie zajmuje zbyt dużo miejsca na twardym dysku. Właściwy dobór ustawień możliwy jest tylko dzięki obserwacji. Podstawowa nazwa katalogu używanego jako katalog domowy użytkownika dla plików PHP. aby nowe ustawienia zaczęły obowiązywać. Alternatywnym podejściem do robienia kopii zapasowych pliku phpAni jest zamiana aktualnego ustawienia w komentarz poprzez wstawienie znaku średnika (. przy której obciążenie będzie równoważone na kilku serwerach. Domyślnie nieustawiona. Włącza lub wyłącza obsługę kompresji zlib. Pamiętaj. jak faktyczne kształtuje się obciążenie systemu. dlatego ponownie uruchomienie serwera W W W spowoduje wprowadzenie nowych ustawień. Nowe ustawienie wprowadza się poniżej. Ważne ustawienia PHP — ciąg dalszy Dyrektywa upload_max_ "-»•fi lesize upt oad_tmp_di r Możliwe wartości Ciąg znaków Opis Określa maksymalny rozmiar (w megabajtach) wysyłanych plików. Domyślne ustawienie to 2M. abyś zawsze mógł wrócić do ustawień oryginalnych.output_ "-•handler Ciąg znaków On. czytanie i zapisywanie informacji na dysku twardym. Wskazuje inną bibliotekę kompresji. Prawdziwą sztuką jest jednak dostrojenie wydajności pod kątem jak najszybszej odpowiedzi na żądania Joomla!. Poprawna konfiguracja MySQL jest wynikiem obserwacji faktycznego wykorzystania zasobów. co ułatwi Ci dobór odpowiednich ustawień. Profesjonalne tworzenie stron WWW Tabela 2. na przykład publ icjltml. w którym tymczasowo zapisywane są wysyłane pliki. Ciąg znaków user dir zlib. co powoduje wykorzystanie standardowej biblioteki. . zalecane jest dodanie komentarza. Konfiguracja odczytywana jest podczas uruchamiania serwera PHP.output_ "-»compression zlib. Najczęstszym ograniczeniem wydajności MySQL jest wyszukiwanie.52 Joomla!. MySQL zawiera wiele ustawień. Ponieważ plik Ani jest plikiem tekstowym. jeśli Twoja strona stanie się wyjątkowo popularna. Wyłączenie uniemożliwia skorzystanie z tej funkcjonalności w Joomla!.ini. Jeśli dokonujesz zmian w konfiguracji z określonego powodu. że po wprowadzeniu zmian w konfiguracji PHP musisz uruchomić ponownie Apache lub IIS. co odpowiada 2MB.) na początku linii. który opisze powód modyfikacji. zrób kopię zapasową pliku php. Jest to szczególnie przydatne. Podczas konfigurowania następnego serwera możesz odwołać się do istniejącego pliku . Określa katalog. Konfiguracja MySQL Uruchomienie MySQL jest zaskakująco proste. gdy standardowa jest niedostępna. Możliwa jest także taka konfiguracja.

can't connect). Naciśnij Ctrl+C. kiedy zostanie wyświetlony ekran konfiguracji bazy danych. Ciąg znaków przypisany zmiennej Path jest z reguły dość długi. zmienna Path musi wskazywać na katalog PHP. które łączą się z MySQL. Zmiany nie zostaną jednak wprowadzone do momentu ponownego uruchomienia systemu operacyjnego. że po instalacji PHP uruchomiłeś ponownie system operacyjny. że serwer MySQL jest wyłączony. Aktualna wartość zmiennej Path widoczna jest na liście Zmiennych systemowych. Istnieją dwa sposoby rozwiązania tego problemu. systemowego notatnika). w przeciwieństwie do sporadycznych problemów z pozostałymi serwerami. przejdź do Panelu Sterowania. możesz natrafić na kolejny problem. co pozwoli Ci łatwiej określić aktualne ustawienie lub wprowadzić zmiany. aby skopiować wartość zmiennej do schowka. a jego zawartość będzie zaznaczona. Aby skorzystać z rozszerzeń PHP. otwórz System i kliknij zakładkę Zaawansowane.Rozdział 2. W większości przypadków problem zostanie rozwiązany. Możesz wyłączyć nowy rodzaj kodowania w całym systemie MySQL lub włączyć stare kodowanie haseł dla poszczególnych użytkowników bazy danych. Następnie wklej ją do edytora (np. jeśli chcesz zmienić lub sprawdzić jej wartość. ponieważ zmienna Path odczytywana jest wyłącznie podczas startu systemu. a następnie wprowadź ścieżkę. Podczas instalacji odpowiednie zmiany wprowadzane są automatycznie. Uruchom komputer ponownie i sprawdź. 'olączenie z MySQL 5 Po ukończeniu pierwszego etapu instalacji Joomla!. oprawne ustawienie zmiennei Path w Windowsie Jeśli po uruchomieniu Joomla! na platformie Windows otrzymasz komunikat. Jeśli oprócz Joomla! korzystasz z innych aplikacji. zalecane jest drugie rozwiązanie. że wartość zmiennej zawiera odniesienie do katalogu PHP. wybierz ją z listy i naciśnij przycisk Edytuj. Dlatego. Zmienna zostanie wyświetlona w polu tekstowym. . Kliknij przycisk Zmienne środowiskowe na dole zakładki. nazwy użytkownika i hasła może pojawić się komunikat „nie można się połączyć" (ang. Aby sprawdzić. dodaj na końcu listy średnik (.). upewnij się. Upewnij się. Powodem jest prawdopodobnie korzystanie z wprowadzonego w MySQL 5 nowego kodowania haseł. a odpowiednia ścieżka wstawiana jest na listę wartości zmiennej Path. Jeśli go brakuje. czy zmienna Path została właściwie ustawiona. • Szczegóły instalacji i konfiguracji 53 istalacja MySQL Instalacja MySQL jest jednocześnie najprostsza i najbardziej skomplikowana ze wszystkich serwerów wykorzystywanych przez Joomla!. Po wpisaniu poprawnego adresu serwera MySQL. czy problem nadal występuje. Serwer MySQL nigdy nie nastręczał trudności w nowym systemie. Problemem może być natomiast komunikacja MySQL z pozostałymi serwerami — szczególnie z PHP.

oznacz pole wyboru. uruchom z wiersza poleceń narzędzie zarządzania MySQL. czego wynikiem jest anulowanie całej operacji. Zarządzanie MySQL System Joomla! automatycznie tworzy bazę danych serwera MySQL i zarządza nią. 3 Skąd można pobrać program MySQL Administrator.. zastępując admi ni stratorJooml a właściwą nazwą użytkownika. Tryb Strict i problemy ze wstawianiem danych Poprawne połączenie z bazą danych może oznaczać koniec Twoich kłopotów z MySQL — lub nie. Podczas próby zainstalowania przykładowych danych Joomla! może pojawić się na ekranie lub w pliku dziennika błędów Apache. Aby zmiany zaczęły obowiązywać. Otwórz panel Startup Variables w aplikacji MySQL Administrator. Wybierz zakładkę Advanced i sprawdź ustawienie opcji SQL Mode. . błąd o treści przypominającej: SQL=BLOB/TEXT column 'comments' can't have a default value: . jeśli wystąpi błąd przy zapisywaniu choćby jednego rekordu. a następnie kliknij przycisk Apply Changes na dole ekranu. ale jest on darmowy i dostępny jako część pakietu MySQL GUI Tools na stronie: http://dev. że zapytanie dotyczyło 0 wierszy (ang. Jednak aby dokładnie zrozumieć działanie MySQL. Uruchom ponownie instalację Joomla!. Najłatwiej jest to zrobić.. uruchom ponownie serwer MySQL — odpowiednią opcję znajdziesz.. dopóki nie zobaczysz opcji Use old passwords. które będziesz wykorzystywać: SET PASSWORD FOR 'administratorJoomla' = 0LD_PASSW0RD('mojehaslo'): W odpowiedzi uzyskasz komunikat. klikając przycisk Service Control. Zaznacz pole wyboru po lewej stronie. wykorzystując aplikację MySQL Administrator. dowiesz się w jednym z kolejnych podrozdziałów — przyp. powinieneś samodzielnie zbadać strukturę bazy danych Joomla!. Opcja SQL Mode odczytywana jest podczas startu serwera — zmiany nie zostaną wprowadzone. tłum. jeśli wyświetlanie błędów na stronie zostało wyłączone. Przyczyną tego błędu jest prawdopodobnie serwer MySQL działający w trybie strict. otwórz aplikację MySQL Administrator3 i kliknij przycisk Setup Variables. Domyślna instalacja serwera MySQL nie zawiera tego programu. a mojehasl o hasłem.54 Joomla!.mysql.10. a problem z połączeniem z bazą danych nie powinien już występować. 0 rows affected). Mimo to zmiana kodowania hasła powinna zostać poprawnie wprowadzona. Po pojawieniu się znaku zachęty mysql> wprowadź poniższą linię. po prawej stronie pojawia się któraś z wyżej wymienionych opcji. dopóki nie uruchomisz ponownie MySQL lub systemu operacyjnego. jak to przedstawiono na rysunku 2.com. Profesjonalne tworzenie stron WWW Aby włączyć kodowanie haseł zgodne z MySQL 4. Wybierz zakładkę Security i przewiń na dół. Oznacza to włączenie opcji STRICT_TRANS_TABLES lub STRICT_ALL_TABLES. Aby zmienić sposób autoryzacji w całym systemie MySQL. Jeśli w polu tekstowym.

. jby wyłączyć ryb strict General Parameters Log files Replication Myl SAM Parameters InnoDB Parameters Advanced Networking Security Performance Advanced 55 Advanced Configure the startup variables.51 b-community-nt via TCP/IP localhost 127. Syntax: sql-mode=option[. która jest ostatnią pozycją na liście w panelu po lewej stronie.Connection: root®localhost:3306 File Edit View Tools Window Help Service Control Startup Variables ^•iaUj User Administration Server Connections Server status: M y S Q L S e r v e r is running. PIPES_AS_CONCAT^NSI_QUOTES. If not set.N0_AU 1 j Q Use pool for temporary files k v Using this option will cause most temporary files created to use a small set of names. jak np. 0 SQL Mode: STRICT _TRANS_T AB LE S . rather than a unique name for each new When reading rows in sorted order after a sort. Po zaznaczeniu bazy Joomla! (w tym przypadku joomlalS) na liście w panelu po prawej stronie zostanie wyświetlona lista tabel.12.1. A J • d Enable symbolic link support N/A • • 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. Rysunek 2.option[. jak zilustrowano to na rysunku 2.11. jak to przedstawiono na rysunku 2. Odznacz pole vyboru SQL VI ode. W lewej części okna programu umieszczono listę dostępnych funkcji. you may want to increase this value.0. the rows are read through this buffer to avoid a disk seeks.1 • I Hea"h • M Server Logs j j f Replication Status Backup i localhost 3306 W Catalogs Restore Client Information Version: Network Name: IP: Operating System: Hardware: MySQL Client Version 5. Program MySQL Administrator umożliwia łatwe zarządzanie bazą MySQL za pośrednictwe m graficznego interfejsu użytkownika # MySQL Administrator . • Szczegóły instalacji i konfiguracji lysunek 2. .]] where option can be one of: REAL AS FLOAT.11.. Service Control (pozwala uruchomić. M y Connected to MySQL Server Instance Username: Hostname: Port: Server Information MySQL Version: Network Name: MySQL 5. then it's set to the value of record_buffer.0.0. Kliknięcie przycisku Catalogs spowoduje wyświetlenie listy dostępnych baz danych. If you do many sequential scans.Rozdział 2. Note that changes will have no effect until you restart the server. a także schematu wybranej bazy.11 Jako administrator większość czasu poświęcisz prawdopodobnie opcji Catalogs.10. 0 Read rnd buffer size 512 v j Po uruchomieniu aplikacji wyświetlane są ogólne informacje na temat stanu serwera. zatrzymać i restartować serwer MySQL) lub Startup Variables (konfiguracja parametrów MySQL).option.

Bezpośrednie zapytania do bazy danych mogą utworzyć raport o stanie danych w tabelach Joomla!. Logs J ß Replication Status Backup . które zostało wykonane: SELECT * FROM "joomla". dla których nie ustawiono metadanych. Schemat bazy danych zawierający 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.. jos_groups jos_menu j 4 mysql i 11. a następnie kliknij prawym przyciskiem pozycję jos_content. Zaznacz bazę danych Joomla! w programie MySQL Administrator. Aby sprawdzić.. i z tego powodu są kiepsko indeksowane przez roboty internetowe. Zostanie wyświetlone okno z zawartością wybranej tabeli.3 kB 7GB OB 1.9 kB 580 B 64..~jos_content' Jest to zapytanie. Przykładowo Joomla! nie pozwala stworzyć listy artykułów. .. które spowoduje pobranie wszystkich rekordów należących do tabeli jos_content. aby w prosty sposób ograniczyć pobierane rekordy.12. dla których nie ustawiono metadanych._ 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. Profesjonalne tworzenie stron WWW Administrator . jos_core_acl_groups.7 kB 3. HTML.3 kB J | Edit Table j Create Table | | Maintenance j j Refresh Widziałeś już możliwości dwóch opcji konfiguracyjnych w panelu Startup Variables. że w górnej części okna znajduje się zapytanie.4 kB 45 B OB 32 B 464 B OB 24 B 20 B OB OB 60 B Index len. dla których pole metadesc jest puste: SELECT * FROM 'joomla". Poniższe zapytanie zwróci tylko te rekordy. jos_core_log_items jos_core_log_search.56 Joomla!.. Możesz skorzystać z klauzuli WHERE... które m o g ą rozwiązać problemy z uruchamianiem Joomla!.. jak zilustrowano to na rysunku 2. CSV i Excel). a w oknie pojawią się tylko te rekordy. Do wyboru jest kilka formatów (np.~jos_content~ WHERE metadesc = "" Kliknięcie przycisku Execute spowoduje wykonanie zapytania. Większe możliwości daje jednak bezpośrednia manipulacja danych w bazie MySQL. dla których pole metadesc jest puste.Connection: root®łocalhost:3306 File Edit View Tools Window Help I Schema Tables Schema Indices Views Stored procedures Rysunek 2. W menu File znajduje się opcja eksportu do pliku. 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. których pozycji dotyczy taki problem. Zauważ.13. XML. Wybierz opcję Edit Table Data z menu kontekstowego. Raport utworzony w ten sposób możesz wykorzystać jako listę wpisów do poprawienia. jos_core_acl_aro_map ¡os_core_acl_aro_se.. wystarczy wykonać zapytanie względem tabeli jos_content i wyświetlić wszystkie artykuły..

. uruchom następujące polecenie: mysq1_safe -init-file = -/resetpwd. |os_groups ¡os_menu 3 23 „ f Details >> I I Create Table j [ Edit Table j j Maintenance J Refresh j lesetowanie hasła użytkownika MySQL Żaden użytkownik poza administratorem nie powinien mieć dostępu do tabeli użytkowników. Ale można je zresetować. aby zresetować hasło.txt po zresetowaniu hasła. W przypadku Linuksa. 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. Przedstawiona poniżej metoda działa także dla kont administratora i roota. kiedy zapomnisz hasła dostępu do MySQL.9 kB 580 B Index len.13.3 kB 2 kB 1 kB 4 kB 4 kB 1 kB 4 kB 3 kB 1 kB 1 kB 2 kB 4 kB '' Maintenance Create Table 1 11 0 1 """"" : : Drop Table Refresh 3 ¡' lû'.3 kB 76 B OB 17 kB 3.txt & W systemie Windows komenda powinna brzmieć: C:\mysql\bi n\mysqld-nt . Wybierz opcję '.C0re_aCLnfcupî 1 0 0 ios_core_log_items jos_co(e_log_search. może zdarzyć Ci się kłopotliwa sytuacja. Dostęp do tej tabeli oznacza w zasadzie kontrolę nad całym systemem. wprowadź do niego poniższą linię i zapisz plik pod nazwą resetpwd.txt Usuń plik resetpwd. Jeśli jesteś administratorem Joomla! i od dłuższego czasu nie korzystałeś bezpośrednio z MySQL.Rozdział 2. • Szczegóły instalacji i konfiguracji lysunek 2.. do których masz uprawniony dostęp..PASSW0RD('hasło'). Nierozważne jest pozostawienie na dysku rzeczy potencjalnie niebezpiecznej. Utwórz plik tekstowy. . w której przechowywane są informacje na temat użytkowników i ich uprawnień. W systemie MySQL nie jest możliwe odzyskanie zapomnianego hasła. która potem w jakiś sposób może zostać wykorzystana przez hakera. txt w głównym katalogu: SET PASSWORD FOR ' r o o t l o c a l host' .i ni t-file=C:\resetpwd.dit Table Data r menu kontekstowego Schema Tables Schema Indices Views Stored proceduies 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 Data length 1. dlatego korzystaj z niej tylko na serwerach.

Site Settings (ustawienia strony) to pierwsza grupa parametrów. W przeciwnym razie instalator Joomla! automatycznie zostanie uruchomiony. Przykładowo jeśli zarządzasz wieloma stronami Joomla! i potrzebujesz wprowadzić daną zmianę w kilku plikach. jak to przedstawiono poniższej: var îdbtype = 'mysql': var $host .php może mieć jednak swoje zalety. Możliwe jednak. Jego obecność świadczy o tym.php. var $sitename = 'Joomla!1: var Seditor = 'tinymce' : var îlistjimit = '20' : var îlegacy = '0'. // Name of Joomla site Zwróć uwagę. U Ciebie wartości powinny odpowiadać wprowadzonym ustawieniom.<br /> Please check back again soon.php Twórcy Joomla! zalecają wprowadzanie wszystkich zmian w konfiguracji z poziomu interfejsu administratora.'localhost': var $user = '': // MySQL usemame var îpassword = 1': var $db = 1': var idbprefix = 'jos_'. że główny katalog nie zawiera pliku configuration.php. Ręczne modyfikacje z użyciem interfejsu graficznego byłyby w takim przypadku męczące. configuration. Wszystkie ustawienia przechowywane są wewnątrz klasy PHP o nazwie JConfig. które potrafią znacząco wpłynąć na sprawne działanie systemu. var $offlinejnessage « 'This site is down for maintence. Jeśli instalacja Joomla! sprawia Ci kłopot. rozwiązaniem może okazać się napisanie makra. Profesjonalne tworzenie stron WWW Konfiguracja Joomla! Prawdopodobnie potrafisz już skonfigurować Joomla! według potrzeb. Jeśli otworzysz plik konfiguracyjny w edytorze tekstu. że Joomla! został już zainstalowany i skonfigurowany.58 Joomla!. że przedstawiony plik pochodzi z domyślnej instalacji. Sekcja Database (ustawienia bazy danych) wygląda podobnie.1 . przypominająca poniższą listę: /* Site Settings */ var Soffline = '0' . że przeoczyłeś mniej oczywiste funkcje. Bezpośrednia manipulacja pliku configuration. że na początku znajduje się definicja klasy: class JConfig { Plik został podzielony na różne części. skopiuj po prostu pliki i upewnij się. . zauważysz. Główna konfiguracja systemu Joomla! znajduje się w pliku configuration.

$lang_administrator = 'en-GB'. var Sftp_port = 'O'. S e k c j a Locale Settings ( u s t a w i e n i a j ę z y k a ) : var var var var var var $lang_site = 'en-GB'. var $ftp_host = 'O'.org': var $xmlrpc_server = 'O'. 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! . Soffset user = '0'. var $ftp_root = '': var $ftp_enable = ''. var $gzip = 'O': var ilifetime = '900': // Session timeout var $error_reporting = '-l': var Shelpurl = 'http://help. 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'.Rozdział 2. Scaching_page = '0'. var Sftp_user = ''.joomla. Soffset = '0'. SMetaTitle = 'l'. . Joomla'. var $log_path = '/var/logs'. • Szczegóły instalacji i konfiguracji S e k c j a Server Settings ( u s t a w i e n i a s e r w e r a ) : // Change this to something more secure var Ssecret = 'FBVtigI151ApEU4H'. var $tmp_path = '/tmp'. var $ftp_pass = " . = = = 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'.the dynamie portal engine': SMetaKeys = 'joomla. SMetaAuthor = 'l'. $lang = 'english'. Slanguage = 'en-GB'. 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' . Scaching_tmpl = 'O'.

że minimalna zmiana danych wejściowych (np. Resetowanie hasła użytkownika Joomla! Hasła są często zapominane przez użytkowników. co uniemożliwia jego odzyskanie. aby odzyskać dane wejściowe. będziesz mógł wrócić do poprzednich.php. które mogą zostać wykorzystane w Joomla! w przyszłości. Profesjonalne tworzenie stron WWW Sekcja Statistics Settings (ustawienia statystyk): var $enable_stats . .backup". a ponieważ serwer WWW nie rozpozna typu pliku. na pewno znasz frustrujące uczucie bycia odciętym od własnego systemu.'0'. Założeniem algorytmów tego typu jest.'O' : var $enab1e_log_items = 'O': var $enable_log_searches = 'O'. Istnieją jednak bezpieczniejsze algorytmy (takie jak SHA-1). Nie muszę chyba dodawać. ale za pośrednictwem interfejsu administratora można je zresetować. Message-Digest 5 (MD5) jest algorytmem z dziedziny kryptografii. jego zawartość zostanie wyświetlona na ekranie hakera — ujawniając przy okazji kluczowe informacje. zastępując plik konfiguracyjny kopią bezpieczeństwa. Zosta! opisany jako standard internetowy w RFC 1321. kiedy w wyniku awarii dysku utraciłem losowo utworzone hasło zapisane w pliku. Jeśli jednak zdarzyło Ci się kiedyś zapomnieć hasła administratora. Sekcja Search-Engine-Opt~imization (SEO) Settings (ustawienia opcji poprawiających pozycjonowanie): var $sef .60 Joomla!. Podczas pisania tej książki sam znalazłem się w podobnej sytuacji. Nie zapisuj kopii bezpieczeństwa w tym samym folderze. Skrót zapisywany jest w postaci 128-bitowego ciągu (32 liczby heksadecymalne). haker może wpisać adres URL odwołujący się do tego pliku. Możesz jednak zresetować hasło poprzez bezpośrednią modyfikację tabeli zawierającej dane użytkowników Joomla!. któty na podstawie pobranego ciągu znaków generuje skrót określonej długości. dodanie jednej litery) znacząco zmienia cały skrót. Jeśli nowe ustawienia okażą się błędne. że nie pamiętałem tego hasła. Każde hasło w systemie Joomla! zapisywane jest jako skrót stworzony za pomocą algorytmu MD5. Wykorzystanie skrótu jest z reguły bezpieczne. ponieważ potrzeba ogromnej ilości obliczeń. Sekcja Feed Settings (ustawienia RSS): var $feed_limit = 10: var $feed_summary = 0: } ?> Zawsze twórz kopię zapasową pliku konfiguracyjnego przed wprowadzaniem jakichkolwiek zmian. Jeśli nazwiesz kopię przykładowo „configuration. w którym przechowywany jest eonfiguration.

1 kB 2.6 kB 60 B 320 B 275 B OB 400 B 1. tłum.15.. Zwróć uwagę.. jak zilustrowano to na rysunku 2. jeśli korzystasz z systemu Windows. wymaga posiadania uprawnień administratora lub roota. • Szczegóły instalacji i konfiguracji 61 Uruchom aplikację M y S Q L Administrator lub inną aplikację online. W programie MySQL Administrator wybierz tabelę jos users w bazie Joomla!. czyli także do tabeli jos users. poproś administratora systemu.. Po kliknięciu prawym przyciskiem pojawi się menu kontekstowe zawierające opcję Edit Table Data. dopóki nie pojawi się kolumna oznaczona password. Przewiń zawartość okna w prawo.14. ysunek 2. którego wartość chcesz zmienić. dlatego wyszukałem wiersz. Wybierz pole. Wprowadź teraz skrót MD5 nowego hasła. że dostęp do poprawnie zabezpieczonej bazy danych.5 kB OB 40 B Index len. dla którego pole username („nazwa użytkownika") odpowiadało wartości admin.: 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.Rozdział 2. 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. Poniższy skrót odpowiada słowu „hasło" 4 : 207023ccb44feb4d7dadca005ce29a64 Po wprowadzeniu tego długiego tekstu kliknij zakładkę Apply Changes na dole okna. Pisanemu bez polskich znaków! — p r z y p . W moim przypadku musiałem zresetować hasło administratora. |os_weblinks ^ ilHMWII 1 792 B l'B^Hi Edit Table m m m m h m m > Maintenance Create Table Drop Table W rezultacie powinno pojawić się okno edytora tabeli z wyświetloną aktualną listą użytkowników Joomla!. w której umieszczone są skróty haseł. 'o kliknięciu irawym przyciskiem os_users wybierz • menu opcję •dit Table Data Schema Tables Schema Indices Views Stored procedures . 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 — |os_templates_menu MylSAM 11 1 WI' TMBBF*1*1* . phpMyAdmin.14. aby zresetował Twoje hasło (jeśli zdarzyło Ci się je zapomnieć) lub nadal niezbędne uprawnienia. . jak przedstawiono to na rysunku 2. Jeśli nie masz wymaganych uprawnień. np. a następnie. W obu przypadkach procedura jest podobna. naciśnij klawisz F2.

Podczas wstępnego tworzenia strony i dalszej pracy nad jej rozwojem powinieneś korzystać z serwera testowego. 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. Należy jednak pamiętać. Na takim serwerze powinno być także włączone wyświetlanie wszystkich komunikatów systemowych.15. Możesz teraz dostrzec. Jeśli nie masz dostępu do programu MySQL Administrator lub wolisz korzystać z tekstowego interfejsu MySQL. jak proste byłoby dła hakera włamanie do systemu Joomla!. by w miejsce admin wstawić odpowiednią nazwę użytkownika. aby nie utrudniać dostępu i testowania. Serwer testowy jest zazwyczaj słabo zabezpieczony. Replication Statements SQL Syntax for Prepared Statements > 1 row fetched in 0. Dlatego kluczowe jest zabezpieczenie instalacji MySQL.. wprowadzając słowo „hasło" jako hasło. Wprowadź znany skrót MD5 i zapisz zmiany w tabeli SELEiT Odśwież O Wynik 1 jooinlallS Schemata password use • • • • • • • • • • • . co pozwala na szybkie rozwiązywanie problemów. Zwróć uwagę. Profesjonalne tworzenie stron WWW r a ^ a t a i W l H P W i K W ! ^ Plik Edycja Widok Zapytanie Skrypt ' Narzędzia FROH Okno Pomoc . Ten kod zamieni aktualne hasło na „hasło". na którym możesz instalować dowolne rozszerzenia i wprowadzać znaczące zmiany. Wykorzystaj wskazówki i sugestie zawarte w rozdziale 14.. Database Administration Statements .62 Joomla!. użyj poniższej komendy: UPDATE josjjsers SET password^207023ccb44feb4d7dadca005ce29a64' WHERE name='admin'. . j t \ j Rysunek 2.com Składnia Data Definition Statements Data Manipulation Statements MySQL Utility Statements MySQL Transactional and Locking .0132 Si t # Edycja P Znajdź Możesz teraz zalogować się na konto. że różne środowiska powinny mieć różne ustawienia. dla którego zmieniałeś hasło. Serwer testowy a serwer produkcyjny W tym rozdziale przedstawiono ogólną konfigurację systemu. Niezwłocznie zmień hasło na bezpieczniejsze.

Przykładowo głosowanie w sondzie powinno zakończyć się zapisaniem oddanego głosu w odpowiedniej tabeli.com) lub inna maszyna. w którym włączono wyświetlanie komunikatów systemu. Joomla Standalone Server (JSAS) to połączenie serwera Apache. które ograniczają wydajność i mogą stanowić zagrożenie w przypadku wykorzystania przez hakerów. JSAS możesz pobrać zjsas. • Szczegóły instalacji i konfiguracji 63 Po ukończeniu prac nad stroną powinieneś ją przenieść na serwer produkcyjny (zwany także serwerem wdrożeniowym). umieszczania własnych komunikatów (za pomocą instrukcji PHP echo) w kluczowych miejscach w kodzie. Włączenie tych opcji negatywnie wpływa na wydajność systemu.com.joomlasolutions. popraw. spróbuj ponownie. Dlatego ich stosowanie nie jest zalecane w środowisku produkcyjnym. Wszystkie komunikaty systemu w środowisku produkcyjnym powinny być przechowywane w ukryciu. przez SiteGround.Rozdział 2. Zanim strona zostanie upubliczniona. Typowy komunikat o błędzie w kodzie komponentu wygląda tak: Notice: Use ot undefined constant kasjda . Analiza pliku dziennika może okazać się niesamowicie przydatna w rozwiązywaniu nie tylko dużych problemów. która została odpowiednio zabezpieczona.php on line 32 Serwery WWW (zarówno Apache. dokładnych komunikatów o błędach. Istawienia serwera testowego Joomla! nie posiada trybu usuwania błędów z prawdziwego zdarzenia. odśwież stronę. w której wystąpił. ponieważ ich ujawnianie ułatwi hakerowi włamanie. PHP. Może być to zdalny serwer WWW (oferowany np. a także badania treści dziennika błędów. monitorowanie wydajności i prób dostępu.2\htdocs\components\com_content\content. ponieważ powoduje zużycie dodatkowych zasobów. które nie wymaga praktycznie żadnej konfiguracji. Komunikaty PHP są w tym wypadku szczególnie pomocne. jeśli taki wystąpi. ponieważ nie istnieje tabela o danej . ale także podają nazwę pliku i numer linii. lecz także mniejszych. Podobnie jak większość aplikacji PHP. które blokują działanie strony. praca nad Joomla! sprowadza się do zasady: wprowadź zmianę. jak i Microsoft Internet Information Server) przechowują dokładne informacje na temat występujących problemów w dzienniku błędów. Dodatkowo możliwe jest jednoczesne uruchamianie kilku stron na jednej maszynie i zarządzanie nimi z poziomu pojedynczego interfejsu. możesz wykorzystać dedykowane rozwiązanie do testowania stron opartych na Joomla!. Następnie strona przenoszona jest na serwer — jego konfiguracja blokuje pokazywanie informacji diagnostycznych. które często pozostają niezauważone. Jeśli pracujesz na platformie Windows. Dodatkowe informacje dostarczane przez system ułatwiają zlokalizowanie i usunięcie przyczyny problemu.assumed 'kasjda' in C:\Program Files\Apache Software Foundation\Apache2. dlatego rozwiązywanie problemów sprowadza się do analizy komunikatu systemu. MySQL i Joomla!. Komunikaty o błędach (pod warunkiem że odzwierciedlają źródło problemu) są prawdopodobnie najbardziej użytecznym narzędziem podczas usuwania błędów w aplikacji Joomla!. Jeśli wystąpi błąd. jest poddawana testom w środowisku. W środowisku testowym ważne jest wyświetlanie jak największej ilości informacji. ponieważ nie tylko informują o problemie.

64 Joomla!. czy wbudowane konta nie mają ustawionych domyślnych haseł. Upewnij się. że zmieniłeś domyślne hasło. Dodatkowo konfiguracja pod kątem diagnozowania i rozwiązywania problemów spowalnia cały system. które są pomocne w usuwaniu błędów. zanim zdecydujesz się upublicznić stronę. na serwerze produkcyjnym mogą pomóc hakerowi włamać się do systemu. haker w pierwszym odruchu nie zdobędzie połowy danych niezbędnych do zalogowania się na konto administratora. kto ją kupi. Dzięki zmianie tej nazwy. . port działania MySQL). Głównym zmartwieniem jest w tym przypadku bezpieczeństwo i wydajność. Domyślna instalacja MySQL jest dobrze zabezpieczona. które wykorzystuje się do tego celu. Domyślnie w przypadku wielu instalacji hasło tego konta jest puste. Poniższe serwery mają wbudowane konta: • MySQL — Konto root przeznaczone jest dla superadministratora systemu. włączając w to nazwy folderów. U Joomla! — Domyślne konto superadministratora Joomla! nosi nazwę admin. Zmień wszystkie hasła pochodzące z tej książki. Dzięki analizie dziennika możesz poprawić także małe błędy. na jadmin. Dlatego zawsze sprawdzaj. tabel itd. może jednocześnie zdradzić informacje przydatne podczas ataku na system Joomla!. Wiele ustawień. że instrukcja SQL Insert zakończyła się niepowodzeniem. Wszystkie przykładowe hasła wykorzystane w tej książce powinny zostać zmienione. np. Profesjonalne tworzenie stron WWW nazwie. Nazwy kont i hasła umieszczone w tej książce mogą zostać dodane przez hakera do słownika. baz danych. Warto także rozważyć utworzenie innego konta dla superadministratora i ograniczenie praw konta root. czy wyświetlanie komunikatów o błędach zostało ograniczone w środowisku produkcyjnym. Założenia środowiska produkcyjnego. Dziennik błędów zawiera jednak informację. Dlatego powinieneś regularnie zmieniać hasła wszystkich wbudowanych kont. Domyślne hasła wbudowanych kont Często pierwszą czynnością wykonywaną przez hakera podczas ataku jest sprawdzenie. Komunikaty o błędach dostarczają wskazówek na temat wewnętrznej struktury strony WWW. który zostanie wykorzystany do zautomatyzowanego ataku na hasła. Ograniczenie liczby komunikatów diagnostycznych prowadzi do znaczącego wzrostu wydajności. różnią się diametralnie od tych dla serwera testowego. Ustawienia serwera produkcyjnego Po zakończeniu konfiguracji i testów systemu Joomla! zechcesz pewnie upublicznić swoją stronę w internecie. Podczas gdy informacje diagnostyczne mają kluczowe znaczenie w środowisku testowym. żaden komunikat nie zostanie wyświetlony. Powinieneś zmienić jak najwięcej domyślnych ustawień dostępu (np. co uniemożliwi hakerowi zgadnięcie (na podstawie najczęstszych wartości) części informacji niezbędnych do penetracji systemu. Materiały zawarte w tej książce są dostępne dla każdego.

Odpowiednie zmiany mogą zapobiec przekroczeniom limitu czasu. co daje szerokie możliwości.ini. • Szczegóły instalacji i konfiguracji 65 odsumowanie Instalacja i konfiguracja Joomla! wydaje się prosta. które stworzysz w przyszłości. a także udoskonalić zabezpieczenia. Obszerny proces instalacji MySQL. W tym rozdziale opisano sposoby instalacji i konfiguracji Joomla!. dowiesz się. drobiazgowa konfiguracja strony Joomla! nie sprowadza się wyłącznie do ustawienia serwera pod kątem wydajności. W rozdziale 3. dopóki nie natrafi się na problemy. a także dyrektywy.conf. a w szczególności: • • Opcje konfiguracyjne serwera Apache w pliku httpd. co ułatwia dokładne sprawdzenie i usunięcie błędów strony Joomla! bez konieczności publikacji w internecie oraz pozwala uniknąć związanych z tym zagrożeń. Sposoby na poprawę wydajności serwera przez zmianę ustawień zgłaszania i zapisywania komunikatów systemowych. jak samodzielnie wykonać atrakcyjny szablon. dzięki którym można usprawnić działanie Joomla!. od tworzenia raportów. włączając w to bezpośrednią manipulację bazą danych. Wizerunek profesjonalnego i solidnego portalu wymaga także właściwego wyglądu. Migrację ze środowiska testowego do środowiska produkcyjnego.Rozdział 2. Zastosowanie serwera testowego. . Dzięki zwiększeniu liczby komunikatów możesz łatwiej zdiagnozować źródła obecnych i potencjalnych problemów. po resetowanie haseł. Udoskonalanie konfiguracji PHP przez zmianę ustawień w pliku PHP. który może służyć za wzorzec dla kolejnych. • • • • Właściwa.

Profesjonalne tworzenie stron WWW .66 Joomla!.

podczas której klient może pobierać dowolne szablony będące w ofercie. wybierając po prostu inny szablon.3 Tworzenie własnych szablonów Możliwość wykorzystania szablonów jest jednym z kluczowych powodów. a zastosowanie arkuszy stylów pozwoli Ci kształtować spójny wizerunek lub markę strony internetowej. aby wprowadzić złożony układ strony. Taki model gwarantuje zapotrzebowanie na nowe szablony. a później wykorzystać arkusze stylów. można wykorzystywać go zamiennie z innymi.xml). chociaż zastosowanie się do przyjętych norm pozwala jednakowo postępować z każdym szablonem. W tym rozdziale dowiesz się. ponieważ struktura szablonu nie różni się znacząco w poszczególnych przypadkach. która wykorzystywana jest na całej witrynie. Z tego powodu musisz wiedzieć. Wiele stron wykorzystuje model miesięcznej subskrypcji. Zanim zaczniesz tworzyć szablony.png). które służą utrzymaniu zainteresowania abonentów. Istnieje też grupa nieobowiązkowych plików (parameters. template. dzięki czemu nadasz swoim stronom profesjonalny wygląd.css i templadeDetails.ini i template thumbnail. a także jakie pliki (index. a także kilka typowych pozycji modułów. jak od podstaw stworzyć szablon. Stronę. której wygląd zasługuje na określenie „mierny". aby można było z niego poprawnie i bezproblemowo skorzystać. jakie foldery powinien zawierać szablon (często jest są do dwa foldery \css i 1 imageś). Dopóki zawiera on miejsce na wyświetlenie komponentu. warto przyjrzeć się ich strukturze. Kwitnący rynek szablonów jest jednym z kluczowych segmentów działalności związanej z Joomla!. które ułatwiają zarządzanie . Dokładne zrozumienie tego zagadnienia ułatwi Ci projektowanie własnych i edycję istniejących. Większość darmowych szablonów opiera się na jednej podstronie. Dzięki temu można zmienić wygląd i zewnętrzną funkcjonalność strony Joomla!. Struktura szablonu Szablony Joomla! mogą składać się z dowolnej liczby plików i folderów. Poznasz sposoby tworzenia grup szablonów. dla których Joomla! jest tak popularny na świecie.php. można w ciągu pięciu minut zmienić w imponującą witrynę dzięki profesjonalnym szablonom.

który znajduje się wewnątrz głównego katalogu strony Joomla!. Niestety. miejsce na wyświetlenie komponentu i modułów. Przykładowo szablon rhukjnilkyway musi znajdować się w folderze \rhuk milky way. banner. Choć jest możliwe.fff. wielokolumnowe tabele. W przypadku komercyjnych szablonów ich konstrukcja umożliwia wykorzystanie w ich miejsce logo. od układu kolumn. obrazki i inne aspekty warstwy prezentacji danego szablonu. to nawet najprostsze z nich składają się przynajmniej z czterech plików (index. co sprawia. W tym pliku często znajduje się także odwołanie do skryptów JavaScript. która nadaje charakter szablonowi. 1 Zwany popularnie czcionkami komputerowymi — przyp. Właściwym miejscem dla definicji układu i wyglądu są arkusze stylów. w których umieszcza się pliki i banner.php. obrazki i formatowanie tekstu.). template.ess • • • Szablony zawierają zazwyczaj dwa foldery. z których składa się szablon. by tylko jeden plik stanowił cały szablon (index. tłum. kolory. pomocniczej grafice (służącej do tworzenia zaokrąglonych rogów. Zapisano w nim listę wszystkich plików. które może zmieniać za pomocą interfejsu administratora. arkusz stylów umieszczony w tym pliku pozwala zdefiniować praktycznie każdy aspekt. które wykorzystywane są podczas instalacji. większość szablonów zawiera graficzną formę nagłówka — banner.68 Joomla!. . pozycjonowanie. template.ess — Określa krój pisma1. template. np.php — Zawiera logikę szablonu. elementów oddzielających itd. Nazwa folderu musi dokładnie zgadzać się z nazwą szablonu. Folder 1 templates zawiera po jednym podkatalogu dla każdego zainstalowanego w systemie szablonu. Ponieważ wszystkie główne przeglądarki obsługują technologię CSS. po formatowanie list. także pod względem wielkości liter. a także parametry.ess. Banner zapisywany jest zazwyczaj w formacie JPG lub PNG (co odpowiada rozszerzeniom jpg i png w miejsce f f f podanego wyżej). informacje o autorze i publikacji. zaczniemy od ogólnej organizacji szablonu Joomla!.xml i banner jpg). templateDetails. np. Większość opiera się jednak na liczniejszej grupie plików.fff— Chociaż nie jest absolutnie wymagana. znaku handlowego lub nazwy strony. dodatkowych arkuszach stylów i obrazkach. wzbogacających funkcjonalność strony.xml — Przechowuje metadane na temat szablonu. Profesjonalne tworzenie stron WWW szablonem. Ponieważ Twoje dotychczasowe doświadczenia mogą ograniczać się wyłącznie do perspektywy użytkownika szablonów.php). że strona wygląda jakby była projektowana na zamówienie. wiele szablonów umieszcza w tym pliku też informacje o układzie. templateDetails. Pliki i foldery Wszystkie szablony instalowanie na stronie Joomla! są zapisywane w katalogu \templates. Każdemu głównemu plikowi przypisano oddzielną funkcję: • index. a także zarządzania w interfejsie administracyjnym Joomla!.

Dosłownie: „Witaj.php Plik index. \javascript — Zawiera kod JavaScript wykorzystywany w szablonie. .zip. aby wykorzystać szablon na stronie.ff.php.php jest głównym i jedynym wymaganym elementem szablonu Joomla!. aby wymagane treści pobrane z bazy danych umieścić na stronie. które poznasz w przyszłości.Rozdział 3. W przeciwieństwie do modułów i komponentów. To tutaj najprawdopodobniej zamieszczony zostanie plik banner. świecie!". ale spowoduje wyświetlenie powitania „Hello World!" 2 na stronie Joomla!. Stanowi on kombinację kodu HTML i PHP. które dodano na stronę za pośrednictwem opcji Instaluj Rozszerzenia. które w połączeniu z arkuszami stylów tworzą warstwę prezentacji. System Joomla! korzysta z biblioteki Zlib.zip lub . Wypakowane pliki i foldery umieszczane są w katalogu o nazwie odpowiadającej nazwie szablonu. Zazwyczaj umieszczony jest tutaj co najmniej plik template. . Dzięki zachowaniu opisanej wyżej struktury szablony można łatwo wykorzystać w systemie Joomla!. które dopełniają układ strony. Szablony zawierają często dwa dodatkowe foldery: • 1 html— Przechowuje pliki. które zmieniają wygląd dodatków systemu Joomla!. aby rozpakowywać archiwa . które są wykorzystywane w szablonie. • Szablony dostępne są zazwyczaj w postaci archiwum . tłum. W przypadku większości szablonów umieszczono tutaj także małe pliki graficzne. W kodzie PHP umieszcza się odwołania do platformy Joomla!. Najważniejszym z tych plików jest index. które trzeba instalować w interfejsie administratora (dzięki czemu niezbędne ustawienia zostaną zapisane w bazie danych). wyświetlenie tej frazy stanowi w literaturze często pierwszy przykład wykorzystania danego narzędzia czy języka programowania—przyp.ess. który przechowuje całą główną logikę szablonu. \images — Przechowuje wszystkie pliki graficzne użyte w szablonie. które zawiera pliki w odpowiednich podkatalogach.php przypomina poniższy: <html> <head> <jdoc:include type="head" /> </head> <body> <hl>Hello World!</hl> </body> </html> Powyższy kod HTML nie jest raczej zgodny z wytycznymi standardu World Wide Web Consortium (W3C). Najprostszy plik index. Kod HTML zawiera głównie elementy. Więcej informacji na ten temat znajdziesz w podrozdziale „Modyfikacja wyglądu dodatków". zawierają co najmniej te podstawowe foldery i pliki. wystarczy skopiować go do folderu 1 templates. • Tworzenie własnych szablonów • U \css — Zawiera jeden lub więcej plików CSS.ogika szablonu: plik index. 69 Prawie wszystkie szablony Joomla!.tar.

Poprzez odwoływanie się do obiektów Joomla!. . PHP jest zaawansowanym językiem programowania. użyjesz poniższej instrukcji: <jdoc:include type="modules" name="top" style="xhtml" /> Oprócz dyrektyw jdoc możesz wykorzystać także ogólne polecenia PHP. możesz umieścić w szablonie wynik działania modułów i komponentów. a także zdobyć informacje na temat środowiska. Wywołanie funkcji Joomla! (w postaci znacznika <jdoc>) powoduje wstawienie informacji nagłówkowych. Jeśli nie znasz PHP. ponieważ stanowią one o potędze szablonu. powinieneś pojąć większość przykładów przedstawionych w tej książce. abyś mógł zaobserwować. Możesz także wykorzystać wywołanie include do wyświetlania komunikatów systemowych. Mimo to polecam lekturę Beginning PHP5 Apache and MySQL Web Development (Wiley. Została uruchomiona za pomocą poniższej instrukcji: <jdoc:include type="head" /> Powyższy kod spowoduje uruchomienie metody. jeśli są one dostępne. w którym uruchamiany jest kod. Instrukcje Joomla! Joomla! działa w oparciu o bezpośrednie wywoływanie kodu PHP. Prawdę mówiąc. Widziałeś już wykorzystanie metody include w szablonie Hello World!. a aplikacja sama w sobie jest platformą składającą się z klas PHP. które elementy stanowią wymagane minimum. Wykorzystanie obiektu JDocument W podstawowym szablonie przedstawionym wcześniej umieszczono wywołanie metody include obiektu jdoc.70 Joomla!. object oriented programming). która zwróci informacje nagłówkowe dla danej strony Joomla!. Warto jednak zapoznać się z dyrektywami Joomla!. że ten podstawowy szablon nie wyświetli żadnej treści. że szablon przestanie działać. który ma bogate możliwości — od struktur sterujących po programowanie obiektowe (OOP — ang. W dalszej części tego rozdziału dowiesz się. ale rozumiesz ogólne zasady programowania. usunięcie dyrektywy Joomla! nie sprawi. niezbędne do poprawnego działania szablonu. Większość wywołań odnosi się do klasy JDocument (dostępnej za pośrednictwem obiektu jdoc). jak stworzyć bardziej skomplikowany szablon. Przykładowo aby dołączyć wydruk modułu top (co powoduje zazwyczaj wyświetlenie bannera strony). takich jak JDocument i JDocumentHTML. Powyższy szablon został maksymalnie ograniczony. Profesjonalne tworzenie stron WWW Zwróć uwagę. wyświetlający kilka modułów i komponent. Indianapolis 2005). Poniższy kod spowoduje wyświetlenie komunikatów systemowych: <jdoc:include type="message" /> Najczęściej include wykorzystuje się do wstawienia kodu HTML modułu Joomla!. dzięki której zdobędziesz solidną wiedzę na temat PHP.

Przykładowo aby wyświetlić wybrany język. ponieważ nauczenie się go wymagało dodatkowego czasu. w przeciwnym razie — zostanie wstawiony obrazek zastępczy (ang. Klasa JDocumentHTML zawiera kilka przydatnych pól. od prawej do lewej (przyjmuje wartość Itr3). którego kompilacja pozwala osiągnąć jeszcze wyższą wydajność — pod warunkiem że nie korzysta się z dyrektyw Joomla!. od prawej do lewej (przyjmuje wartość rtl) itd. korzystanie odwołania Sthis Jedną z najczęściej wykorzystywanych przez Ciebie dyrektyw PHP będzie instrukcja $this. • Tworzenie własnych szablonów 71 W starszych wersjach Joomla! wykorzystywano w szablonach interpreter komend o nazwie patTempl ate jako uzupełnienie dyrektyw Joomla!. Stare rozwiązanie wymagało od programistów. Zastąpiono go kodem PHP. jak pokazano to poniżej: $this->countModules('userl'). Aby pobrać liczbę wystąpień pojedynczego modułu. Możesz wykorzystać tę funkcję do zliczenia sumy wystąpień kilku modułów: $this->countModules('userl + user2'): Możliwe jest także skorzystanie z operacji logicznych.Rozdział 3. Instrukcja ta umożliwia odwołanie do obiektu. ?> Poniżej znajduje się lista pozostałych pól klasy JDocumentHTML. których wartość można pobrać za pomocą odwołania Sthis: • • • • • • di recti on — Informuje o kierunku czytania. Klasa JDocumentHTML zawiera także kilka użytecznych metod. Za pośrednictwem operatora $thi s można wywołać na przykład metodę countModules(). poznania także funkcji sterujących interpretera (takich jak pętle). left-to-right — przyp. Poniższy kod sprawdza. tłum. $this->countModules('userl or user2'). należy wywołać metodę. link — Wskazuje adres URL dokumentu. zostaną one wyświetlone. W przypadku szablonu Joomla! $this zawiera referencję do obiektu JDocumentHTML. placeholder). templ ate — Określa ścieżkę dostępu do katalogu szablonu. . titl e — Przechowuje tytuł dokumentu. angielski (przyjmuje wtedy wartość en). a wykorzystanie ograniczało wydajność serwera. 1 anguage — Określa język dokumentu. czy obszar top zawiera jakieś moduły. należy wykorzystać wartość pola language: <?php echo $this->language. w zakresie którego uruchamiany jest kod. np. takich jak: $this->countModules('userl and user2'). dzięki której określisz liczbę modułów na danej stronie. Jeśli tak. W nowej wersji porzucono patTemplate. które można wykorzystać podczas tworzenia szablonu. descri pti on — Zawiera opis dokumentu (z metadanych HTML). ' ang. oprócz nauki PHP.

Dlatego odwołanie Sthis w kodzie komponentu odnosi się do zupełnie innego obiektu niż w przypadku szablonu. które można następnie ustawić w interfejsie administratora (więcej szczegółów znajdziesz w podrozdziale „Zmienne szablonu: plik parametrów"). Zmiana wartości tych parametrów może wpływać na wygląd i funkcjonalność szablonu. Aby zapobiec bezpośredniemu uruchomieniu (szczególnie przez hakerów) kodu Joomla! • z pominięciem systemu. a następnie określa.gif1 /> <?php endif. że operator Sthis odwołuje się do obiektu. Profesjonalne tworzenie stron WWW <?php if($this->countModules('top')) : ?> <jdoc:include type="modułes" name="top" /> <?php else : ?> <img src='placeholder. Domyślny szablon pozwala określić.php Prymitywny przykład wszystkich tematów poruszonych do tej pory wyglądałby podobnie do poniższego: <?php definedC ?> JEXEC') or dieCBrak dostępu'). czy Komponent ma być wyświetlany na stronie.w3. <?xml version="1. powinieneś wstawić poniższą linię przed wprowadzeniem właściwego kodu PHP. ?> P a r a m e t r y szablonu System Joomla! umożliwia dodanie parametrów szablonu. czy komponent zostanie wyświetlony: <?php if($this->params->get('showComponent')) <jdoc:include type="component" /> <?php endif. ?>" > <head> <jdoc:include type="head" /> </head> . definedC'_JEXEC') or dieCBrak dostępu'). za pomocą parametru showComponent. ?> : ?> Pamiętaj. w zakresie którego uruchamiany jest dany kod. Powyższy kod sprawdza. w przeciwnym wypadku wyświetli komunikat o braku dostępu i zakończy uruchamianie kodu. czy stała _JEXEC została zdefiniowana. P r y m i t y w n y index.org/1999/xhtml" xml:lang="<?php echo $this->language. ?>" lang="<?php echo $this->language. który odczytuje wartość parametru.0" encoding="utf-8"?> <html xmlns="http://www. które nie zawierały powyższej dyrektywy.72 Joomla!. Wewnątrz szablonu znajduje się kod. Powyższa instrukcja jest bardzo ważna z punktu widzenia bezpieczeństwa Joomla!. ?>" dir="<?php echo $this->direction. Zanotowano przypadki włamań na strony Joomla! z wykorzystaniem stron zawierających kod PHP (takich jak pliki szablonów).

Teraz. Ważną rolę w oddzielaniu warstwy prezentacji i logiki programu odgrywa CSS. Dzięki wprowadzeniu jasnego podziału zmianę wyglądu i zewnętrznej funkcjonalności strony można przeprowadzić. Następnie wartości pól language i dir wprowadzane są do atrybutów znacznika <html >. Do stworzenia skutecznego szablonu niezbędna jest możliwość dokładnego określenia pozycji elementów. o ile j ą określono. aby określić kolory. Szablony mogą wykorzystywać jeden lub więcej plików CSS. wybierając inny szablon. Wraz z wprowadzeniem wersji Joomla! 1. zostaje wyświetlony moduł dla pozycji top. i jeśli został ustawiony na True. które zostaną wykorzystane do wyświetlania strony. Celem programistów Joomla! było (maksymalnie możliwe) oddzielenie warstwy prezentacji od logiki programu. Za pomocą CSS można wpływać na wygląd modułów. ale pozwoli Ci lepiej zrozumieć strukturę szablonu niż minimalny szablon Hello World! przedstawiony wcześniej. ezentacja szablonu: plik CSS Drugim najważniejszym elementem po index. opływanie i odstępy. po wyświetleniu powitania „Hello World!". aby odnośniki były koloru czerwonego zamiast zielonego. W nagłówku umieszczone zostaje odwołanie do informacji jdoc head. dołączenie wydruku komponentu. bez wpływu na kod odpowiadający np. podczas gdy w starej wersji wszystkie style musiały znajdować się w pojedynczym pliku. Dzięki regułom i metodom dostępnym w arkuszach stylów jesteś w stanie dopasować wygląd tekstu do swoich wymagań.5 umożliwiono wykorzystywanie kilku plików CSS. W pliku HTML niezbędne jest tylko odwołanie do pliku CSS. . określać względną pozycję. ale chciałbyś. Ostatnim elementem powyższego kodu jest sprawdzenie wartości parametru showComponent. Treść dokumentu HTML rozpoczyna się wydrukiem komunikatów systemowych (które zazwyczaj nie występują). Jeśli nie.Rozdział 3. wykonywanie zostaje przerwane.php jest plik CSS. Jeśli dany szablon spełnia Twoje potrzeby.gif. W przeciwnym wypadku wyświetla się plik placeholder. wystarczy tylko zmodyfikować CSS. aby zastosować określone w nim style. za koszyk z zakupami lub zapisanie w bazie danych głosu w sondzie. Pozwala na zdefiniowanie formatowania dowolnego elementu — od stylu font po kolor obramowania tabeli. • Tworzenie własnych szablonów <body> <jdoc:include type="message" /> <hl>Hello World!</hl> <?php if($this->countModules('top')) : ?> <jdoc:include type="modules" name="top" /> <?php else : ?> <img src='placeholder. ?> <?php if($this->params->get('showComponent')) : ?> <jdoc:include type="component" /> <?php endif. fonty i ich atrybuty. czy uruchamiany jest wewnątrz platformy Joomla!. które znajdują się na stronie. Chociaż kod w powyższej postaci nie zadziała samodzielnie (do poprawnego funkcjonowanie wymagane jest przynajmniej stworzenie parametru showComponent).gif' /> <?php endif. ?> </body> </html> 73 Powyższy kod rozpoczyna się sprawdzeniem.

Wbudowane style Stworzenie poprawnego arkusza stylów. Odwołanie do pliku arkusza stylów wymaga wstawienia poniższych dwóch linii w nagłówek pliku index. które są w głównej mierze plikami XHTML. zostanie wykorzystana ostatnia definicja.1) określa się przez odwołanie do stylu componentheadi ng. ponieważ są one stale rozwijane. Regularnie sprawdzaj. z użyciem znaczników <P>. Niezależnie od systemu operacyjnego jednym z nich powinna być przeglądarka Mozilla Firefox. Przykładem takich elementów są znaczniki <B>. Określają one wygląd takich podstawowych elementów HTML. Nawet jeśli nie korzystasz z systemu Windows. <I> lub <SPAN>4. Profesjonalne tworzenie stron WWW Podczas tworzenia arkusza stylów musisz wziąć pod uwagę. jak zostanie on zinterpretowany przez różne przeglądarki. tłum. które działają w wielu systemach operacyjnych. Style dla elementów takich jak komponenty zawierają w swojej nazwie stosowną informację. która zastąpi wszystkie poprzednie. <link rel="stylesheet" href="templates/_system/css/general . wymaga odpowiednich nazw stylów. jak wygląda Twój szablon w różnych przeglądarkach. powinieneś umieścić poniższą definicję stylu w pliku CSS: 4 W przypadku szablonów Joomla!. jak znacznik <body>. Przykładowo wygląd tytułu komponentu (zobacz rysunek 3. <DIV> lub <TABLE>. Prawdę mówiąc. Jest to obecnie najpopularniejszy program spośród tych.ess" type="text/css" /> <link rei»"stylesheet" href="templates/<?php echo $this->template. sprawdź tworzoną stronę w programie Internet Explorer (najlepiej w wersji 6 i 7) na komputerze z Windowsem. . znaczniki należy pisać małymi literami —przyp. ?>/css/template. nawet na pojedynczej stronie można wykorzystać kilka plików CSS. np. Druga linia odwołuje się do głównego pliku CSS dla danego szablonu (tradycyjnie ten plik nosi nazwę template. Elementy blokowe określają konkretny obszar. <TR>. Element}' liniowe traktowane są jak zwykły tekst i nie wpływają na układ szablonu. Jeśli definicja stylu pokrywa się z inną.ess).css" type="text/css" /> Pierwsza linia powoduje dołączenie podstawowych stylów systemu Joomla!. Prawdopodobnie większość odwiedzających będzie korzystać właśnie z tej przeglądarki. Szablon może zawierać jeden lub kilka plików CSS. Jeśli chciałbyś wyświetlić tytuł szablonu z dolnym obramowaniem w kolorze białym o szerokości jednego piksela i z tekstem w kolorze czerwonym.php'. który można następnie wykorzystać w Joomla!. Podczas projektowania ' szablonu zwróć uwagę na odpowiedni dobór elementów. Elementy blokowe i liniowe W pliku CSS można określać styl dla dwóch typów elementów: blokowych i liniowych. Na maszynie testowej powinieneś mieć zainstalowane przynajmniej dwa programy tego typu. określoną wcześniej w (tym samym lub innym) pliku CSS.74 Joomla!.

Niektóre style nie są wyświetlanie na stronie. nie pojawia się on na stronie. Z tego powodu pozostają niewidoczne.1. administracja i rozszerzenia. ponieważ nie zostały zdefiniowane. w których są wykorzystywane. Poniższa definicja spowoduje wyświetlanie zielonego separatora o szerokości dwóch pikseli między kolejnymi artykułami: .componentheading { 00101': red.Rozdział 3. border-bottom: lpx solid white. Zwróć uwagę na miejsca. Wiele z nich wykorzystywanych jest w szablonie dołączonym w domyślnej instalacji Joomla!. • Tworzenie własnych szablonów rsunek 3. Na rysunku 3.article_separator { margin: 10px 0: border: 2px solid #00FF00. Do kategorii treść należą poniższe style: • • • • • article_separator author content_emai1 content_rating contet vote . 'ygląd tytułu omponentu kreślą się 'zez odwołanie o stylu jmponent •heading id= " lo g°_' 75 class="contentpaneopen" ^ J o o m l a ! class="pill" L ' Stiert litourf.»: Fe. System Joomla! zawiera ogromną liczbę stylów.«uier Hews I I « ' Community class="breadcrumbs J?puli" pclass="search" 1 . Ponieważ wiele szablonów nie zawiera jego definicji.1 przedstawiono domyślny szablon wraz z zaznaczonymi poszczególnymi stylami. Wbudowane style można podzielić na trzy główne kategorie: treść. Dobrym przykładem jest styl article_separator.

76 Joomla!. Profesjonalne tworzenie stron WWW • • • • • • • • • • contentdescription contentpagetitle contentpane contenttoc created-date intro title modifydate smali smalldark 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 stylów: • • • • • • • • • • • • 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 poniższych: • • • • • • • • • bannerfooter bannergroup bannerheader banneritem blog blog_more blogsection button buttonheading .

jak zostanie wyświetlony na stronie tekst. której opis przechowywany jest w pliku arkusza stylów. Minimum w przypadku szablonu to zazwyczaj definicja stylu body. któremu nie przypisano innego stylu. dzięki czemu można oddzielić warstwę prezentacji. które są zbyt szczegółowe. sans-serif. Dzięki temu wszystkie odwołania skupiane są w jednym miejscu. } Wykorzystanie stylu body pozwala na określenie fontu bez konieczności ingerencji w plik index. • Tworzenie własnych szablonów • • • • • • • • • • • • • • • • lastetnews loclink message metadata module newsfeed pollstableborder read searchintro sections sectiontable_footer sectiontableentry sectiontablefooter sectiontableheader sublevel wrapper 77 Nie musisz definiować wszystkich wyżej wymienionych stylów.php. poprawić trzeba wyłącznie jedno wystąpienie w pliku CSS. który określa.5 Verdana.Rozdział 3.body { font: 0. Definicja stylu body będzie znajdować się na samym początku pliku CSS i będzie przypominać: . Dobrym pomysłem jest także odwołanie do obrazków wyłącznie w ramach arkusza. choć także problematyczne.7em/l. co nie pozwala na wykorzystanie ich dla dowolnych artykułów. Arial. ponieważ wygląd strony został zmieniony. . itawianie obrazków w CSS Wstawianie obrazków w CSS może okazać się użyteczne. Jednocześnie odwołania do kluczowych obrazków warto umieścić w pliku CSS. Jeśli przykładowo chcesz wstawić w miejsce starego nowy obrazek. przez co pojawi się on na wszystkich stronach w miejscu starego. Powinieneś unikać tworzenia arkuszy. Helvetica.

w interfejsie Joomla! pojawi się unknown zamiasi stosownej wartości.0" encoding="utf-8"?> <instal 1 version="1. Puste linie służę do oddzielania czterech części pliku. które można określić z poziomu interfejsu administratora. Na listingu 3. trzeba skonstruować ścieżkę. która odwoła się do katalogu images.xml</fi1ename> <fi 1 ename>images/LSlogo./images/bottomleft. znajdującego się poziom wyżej: background: url (. prawa autorskie itd. Jeśli nie zostaną określone. listy plików i parametrów <?xml version="l. Poza samą nazwą inne pola nie są wymagane.jpg</fi1ename> <fi 1 ename>css/template. Listing3.5" type="template"> <name>Szablon dwukolumnowy</name> <description> Dwie kolumny z użyciem CSS w świecie Joomla! </description> <files> <fi1ename>i ndex.. Standardowy plik ze szczegółami składa się zazwyczaj z trzech sekcji: informacji o autorstwie.78 Joomla!.xml Każdy szablon potrzebuje pliku z metadanymi. W przypadku szablonu katalog images znajduje się na tym samym poziomie co katalog css Dlatego.). autora.php</fi1ename> <fi1ename>templateDetai1s.gif) Metadane szablonu: plik lemplateDetails. który zawiera podstawowe informacje o autorstwie (nazwę szablonu.1. Adres obrazka musi zostać określony tak. aby przeglądarka była w stanie znaleźć właściwy obrazek. Profesjonalne tworzenie stron WWW Ważniejszym zagadnieniem jest jednak problem techniczny: względny adres URL. aby z poziomu arkusza stylów odwołać się do obrazka. listę plików i ewentualne parametry. .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.1 przedstawiono przykładowy plik ze szczegółami szablonu.

który znajduje się w głównym katalogu danego szablonu. liczba kolumn w układzie szablonu. Wartość parametrów można odczytać w szablonie. W przypadku szablonu domyślnego zawiera on tylko jedną linię: showComponent=l Wartości parametrów zapisywane są w formacie INI. Parametry szablonu wykorzystywane są najczęściej do tego. który opisano w kolejnym podrozdziale. z których składa się szablon. które umieszczono w szablonie szablon. aby umożliwić ustawianie opcji wpływających na prezentację. Parametry to zmienne wpływające na działanie szablonu. . •afika szablonu: folder images Wszystkie obrazki i grafiki wykorzystywane przez szablon powinny zostać umieszczone wewnątrz katalogu images. takich jak schemat kolorów. Poza tym wykorzystywana jest wyłącznie podczas usuwania szablonu. że są to tylko informacje dla użytkownika — nie wpływają na przypisanie pozycji w interfejsie administratora. Domyślny szablon Joomla! zawiera parametr showComponent. ponieważ ingerencja w wygląd nie wymaga ręcznej edycji plików. Dzięki parametrom szablony stają się bardziej przyjazne użytkownikom. którą zademonstrowano wcześniej w tym rozdziale. jak to przedstawiono na rysunku 3.xml można wstawić parametry szablonu. własne znaki wypunktowania i strzałki wskazujące. Wartości parametrów przechowywane są w plikuparams. ponieważ przedstawia listę plików. np. których zmiana wpływa na funkcjonowanie szablonu.Rozdział 3. lienne szablonu: plik parametrów W pliku templateDetails. dzięki czemu plikiem można manipulować za pomocą zwykłego edytora tekstowego. któiy pozwala administratorowi na wyłączenie wydruku komponentu (w ten sposób nie zostaną wyświetlone żadne artykuły). Trzecia sekcja to lista możliwych pozycji modułów. Dzięki parametrom możesz nadać szablonowi większą elastyczność. Liczba plików graficznych może się znacząco różnić w przypadku różnych szablonów. Czwarta sekcja opisuje parametry wykorzystywane przez szablon. kolor tła.ini. Najczęściej umieszcza się w nim główny banner strony. Najczęściej parametry wykorzystywane są do określenia opcji wpływających na prezentacje. Lista wykorzystywana jest przez instalator do wypakowania plików z archiwum i umieszczenia ich w odpowiednich folderach. obrazki zaokrąglonych rogów. wykorzystując instrukcję analogiczną do $this->params->get( 'showComponent').2. szerokość kolumn itd. Najlepszym rozwiązaniem jest jednak zmiana wartości za pomocą opcji Szablony w interfejsie administratora. graficzne przerywniki. Wartości zapisywane są w pliku parametrów. Zwróć uwagę. • Tworzenie własnych szablonów 79 Druga część pliku jest dużo ważniejsza. których wartość można ustawić z poziomu interfejsu administratora.

należy wykonać zrzut ekranu. Sposób wykonania zrzutu ekranu będzie się różnić w zależności od systemu operacyjnego. że musi to być główny katalog. Rysunek 3.org). czyli w skrócie: GIMP (www. a nie podkatalog taki jak images. u Edytuj CSS Zapisz y Zastosuj o Zamknij o Pomoc. paski przewijania i inne niepotrzebne elementy. w części Szablony po najechaniu kursorem myszy na nazwę szablonu zostanie wyświetlona w małym okienku jego przykładowa miniatura.3. Profesjonalne tworzenie stron WWW www.»l>lon RHUK Milhyw.3.>Wybierz z listy Szerokość szablonu Maksymalna szerokość V Miniatura szablonu W interfejsie administracyjnym. jak zilustrowano to na rysunku 3.png powinna wynosić około 200x150 pikseli Miniatura powinna zostać zapisana pod nazwą template thumbnail. Możesz ustawić parametry szablonu.i\ Preferencje Parametr-Plik ltemplatesVhuk_milkyway\pararris. W przypadku większości szablonów miniatura przedstawia tylko główny fragment strony.gimp.png w głównym katalogu danego szablonu. Aby stworzyć miniaturę.80 Joomla!. wybierając go z listy w części Szablony [ Zmień ] K Podgląd u Edytuj HTML. .ini jest . Niebieski !( Brak .-iprvy\v. a następnie przyciąć go i zmniejszyć do rozmiaru około 200x150 pikseli. aplikacji Adobe Photoshop lub darmowego GNU Image Manipulation Program. < 5z. Wielkość pliku template_thumbn ail. . które nie są częścią szablonu. na którym widać Twój szablon.JoomlaJ HMl ¿ Pomoc "M Podgląd 0 'S 1 ^ Wyloguj Rysunek 3. Aby przyciąć niepotrzebne paski narzędzi. o ile jest ona dostępna. Zwróć uwagę.-<tnv1 VV.w i. możesz użyć programu graficznego.łiif k o l o r y s t y c z n y Niebieski v v Wariant t . np.2.

Najbardziej znaczącym przykładem jest Internet Explorer 6. to zdajesz sobie sprawę. jednakże program w wersji 6 będzie jeszcze długo wykorzystywany przez użytkowników. W systemie MacOS zawarto także narzędzie o nazwie Grab.Rozdział 3. co oznacza. Po tej operacji możesz wkleić zawartość schowka do wybranego programu graficznego. Po wykonaniu zrzutu ekranu należy skorzystać z programu graficznego.techsmith. co spowoduje umieszczenie zrzutu ekranu w schowku. Kursor przybierze kształt krzyża. zamiast całego ekranu. Od teraz miniatura szablonu będzie automatycznie wyświetlana w interfejsie administratora Joomla! po najechaniu kursorem myszy na nazwę szablonu w części Szablony.net/project/ xvidcap/). Tylko dla Internet Explorera" —przyp. a następnie naciśnięcia klawisza Print Screen spowoduje skopiowanie zrzutu aktywnego okna. Dla Linuksa napisano wiele programów służących do tworzenia zrzutów. że możesz zaznaczyć fragment ekranu. możesz rozważyć wykorzystanie komercyjnego programu do wykonywania zrzutów ekranów. należy nacisnąć kombinację Apple+Shift+4. W przypadku Macintosha zrzut ekranu zostanie zapisany na dysku twardym komputera po jednoczesnym naciśnięciu klawiszy Shift+Apple+3. Snaglt (www. aby zmniejszyć obraz do odpowiednich rozmiarów i zapisać go w formacie PNG. którego zrzut zostanie wykonany. w tym automatyczne przycinanie i zmianę rozmiaru. Jeśli tworzysz sporo szablonów. worzenie trójkolumnowego układu Szablony rzadko konstruuje się od podstaw. Jeśli masz już jakieś doświadczenia z tą technologią. Wciśnięcie i przytrzymanie klawisza Alt. np. Program można znaleźć w menu Applications/Utility.net/ projet/gsnapshot).css5. Jeśli korzystasz z interfejsu XWindows. Gotową miniaturę zapisz w głównym katalogu swojego szablonu pod nazwą templatejhumbnail. który możesz wykorzystać jako podstawę wszystkich Twoich kolejnych prac. tłum. Z tego powodu twórcy Joomla! dołączają do swoich szablonów specjalny plik o nazwie ieonly.asp). które zawiera szereg opcji związanych z wykonywaniem zrzutów.com/snagit. możesz wykorzystać program xvidcap (http://sourceforge. Aby zapisać tylko wybrany fragment ekranu. . • Tworzenie własnych szablonów 81 W systemie Windows możesz wykorzystać klawisz Print Screen (często oznaczony na klawiaturze jako PrtSc).png. Wraz z wydaniem Internet Explorera 7 większość problemów została rozwiązana. Użytkownicy GTK+ mogą użyć programu Gsnapshot (http://sourceforge. Do określenia układu elementów i ich wyglądu wykorzystasz CSS. Zawiera on bogate funkcje. że arkusze stylów są w różny sposób interpretowane przez różne przeglądarki. który zawiera błędną implementację wielu podstawowych funkcji standardu CSS lub wcale jej nie ma. W tym podrozdziale opisano tworzenie trójkolumnowego wzorcowego szablonu. Większość projektantów wykorzystuje wzorzec do tworzenia nowych szablonów.

jeśli znajdzie się w katalogu miscellaneous. które umożliwia diagnozowanie. Jednak będąc projektantem. życzyłbyś sobie raczej. musi być on „do wszystkiego".mozilla. Jedną z pożytecznych funkcji Joomla! jest możliwość wykorzystania kilku arkuszy stylów w jednym szablonie. dzięki temu. prawdopodobnie niezbędny jest dodatkowy kod konieczny do zapewnenia kompatybilności z różnymi przeglądarkami. aby zapewnić jak najszerszą kompatybilność z najpopularniejszymi przeglądarkami. Jeśli jednak Twój szablon jest niepoprawnie wyświetlany w przeglądarce. a nie o moduł lub inny element Joomla!. Do momentu ukończenia szablonu znajdzie się w nich wiele plików. Zamiast wykorzystywać kilka szablonów. 6 Z ang. który w zależności od potrzeb danej podstrony zmieni swój wygląd dzięki specjalnemu plikowi CSS. Jeśli szablon składa się wyłącznie z jednej strony i pojedynczego arkusza stylów. To darmowe narzędzie pozwoli Ci przeglądać i zmieniać obiektowy model dokumentu (DOM). które pozwoli Ci „na żywo" badać. a następnie przeszukanie internetu pod kątem obejścia dla tego problemu (najczęściej błędnej implementacji CSS). można wykorzystać jeden. Jeśli tworzysz nowe szablony lub poprawiasz wygląd już istniejących.82 Joomla!. . W przypadku programu Firefox istnieje narzędzie o nazwie Firebug (https://addons. szablon trój kolumnowy — p r z y p . Dla Internet Explorera możesz znaleźć na stronie Microsoftu (www. a także monitorowanie kodu CSS i JavaScript interpretowanego przez przeglądarkę. Jeśli projektujesz szablon na serwerze testowym (zalecane) w środowisku Windows. thun. sugerowałbym znalezienie fragmentu arkusza stylów. który powoduje problem.microsoft. W ten sposób uda Ci się najprawdopodobniej rozwiązać problem i dodatkowo poprawić kompatybilność wzorcowego szablonu. a także wiele więcej. rozważ nazwanie go tmplThreeCor. ścieżka dostępu do Twojego szablonu będzie przypominać poniższą: C:\Program Files\Apache Software Foundation\Apache 2. zalecane jest skorzystanie z rozszerzenia przeglądarki. W tej książce starałem się umieścić wystarczająco dużo kodu CSS i opisu specjalnych przypadków. Profesjonalne tworzenie stron WWW Dlatego jeśli jakiś fragment CSS nie działa poprawnie. Ja zawsze nadaję nazwom szablonów przedrostek tmpl. w którym zostanie umieszczony. edycję. arkusze stylów. a nawet modyfikować arkusze stylów.com) Internet Explorer Developer Toolbar. a także logo strony. Ponieważ masz zamiar stworzyć szablon trójkolumnowy.org/en-US/firefox/addon/1843). grafiki pomocnicze. sprawdzać poprawność kodu CSS. a następnie umieść w katalogu templates systemu Joomla!. Tworzenie struktury szablonu Pierwszym krokiem podczas projektowania nowego szablonu jest utworzenie folderu. ustawiać styl poszczególnych elementów. że chodzi o szablon. utwórz od razu foldery css i images w katalogu szablonu.2\htdocs\templates\tmplThreeCol Aby nie zajmować się później przygotowaniami. żeby różne podstrony wyświetlane były w odrobinę inny sposób. będę wiedział.

wiesz.php Wstępna wersja pliku index. aby móc przeprowadzać testy w czasie tworzenia szablonu. Pierwszym krokiem jest stworzenie prototypowego pliku index.php będzie bardzo prymitywna — ma to umożliwić szybkie uruchomienie szablonu. Bardziej zaawansowany może zawierać sondę na temat mody i umożliwiać wybór konkretnej odpowiedzi. widocznych lub ukrytych. . • Tworzenie własnych szablonów 83 Potrzebujesz także podstawowy plik templateDetails. Logo znajduje się na górze.4. by zdobyć informacje na temat szablonu.0" encoding="utf-8"?> <1nstal1 version»"1.5" type="template"> <name>Trzy Kolumny</name> <description> Wzorzec szablonu o układzie trój kolumnowym </description> <files> <fi 1ename>i ndex. Podstawowy wyświetla zawartość artykułu. co ułatwia określenie elementów. Wprowadź poniższy kod i zapisz go w pliku templateDetails.xml. Poprzez wyświetlanie lub ukrywanie poszczególnych modułów szablon strony można dopasować do funkcji poszczególnych podstron.php</fi 1 ename> <f i 1ename>templateDetai1s. „Tak.php. w katalogu Twojego szablonu: <?xml version="1. prognozę pogody lub praktycznie dowolny inny element. a także umożliwić jego wybór za pomocą opcji Szablony.xml</fi1ename> </files> <posntTons> <position>userl</position> <position>right</pos i ti on> </positions> </1nstal1> Po utworzeniu podstawowej struktury szablonu możesz przejść do etapu — konstruowania logiki szablonu. w tym sezonie spódniczki są krótsze niż w poprzednim". spis treści w ramce na dole. Będzie się składać z trzech kolumn. Aby zrozumieć. wyobraź sobie zwykłą gazetę. że strona składa się z pewnej liczby paneli nazywanych modułami. a resztę miejsca podzielono na kilka różnych paneli.php. Szablon strony może zawierać określoną liczbę modułów. Jeśli masz już jakieś doświadczenie w pracy z Joomla!. na czym polega układ modułów. która jest przedstawiona na rysunku 3. Joomla! wykorzystuje ten plik. np. Moduły Joomla! odzwierciedlają tę funkcję. w zależności od ustawień strony.xml. reklamy. Każda kolumna ma obramowanie. Mogą one zawierać komentarze. z czego każda będzie odpowiadać za inną część interfejsu. Kolejnym uproszczeniem jest brak oddzielnego pliku arkusza stylów — zamiast tego kod CSS zostanie umieszczony w nagłówku pliku index. które zawiera.Rozdział 3. Strona składa się z różnych modułów umieszczonych w panelach. artykuł. Przykładem dynamicznego modułu jest wyświetlanie aktualnego notowania giełdy. W domyślnej instalacji Joomla! szablon wzorcowy spowoduje wyświetlenie strony głównej przypominającej tę. Każdy z tych modułów może zawierać menu. sondę lub inny dowolny element. ogłoszenia. wonzenie pliku index.

5. Profesjonalne tworzenie stron WWW Rysunek 3. 08. 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. Rysunek 3.4. Powered fcjy Joomla! Zmiemony ( czwartek. Joomla! is used by organisations of all sizes for Public Web sites. Jeśli w interfejsie administracyjnym po wybraniu szablonu wzorcowego klikniesz przycisk Podgląd. W e are Volunteers WllO'S ' >Mil11' ••• Sticktothi i [DDL] "Wpisał Administrator ś r 0 < j Ł 07 ¡ p l e t .Joomla) is a free open source framework and content publislimg system designed for quickly treating highly interactive multi-language Web sites. documents.5. lipiec 2004 09:54 of volunte er develop ers. Środkowa kolumna zawiera treść artykułu. Intranets. 12. Joomla! is used by organisations of all sizes for Public W e b sites. Intranets Photo and Media Sites : . online communities. 07. and rich media. . and rich media. together with a The Joomla! Core Team consists To ensure this code release. and Extranets and is supported by a community of thousands of users. Strona główna wyświetlona z wykorzystaniem trójkolumnowego wzorcowego szablonu Maili Menn • Home Welcome to the Frontpage Welcome to Joomla! Wpisał Administrator czwartek. Kliknięcie przycisku Podgląd spowoduje wyświetlenie szablonu wraz z oznaczeniem modułów k r iiuiWei«»" Welcome to the Frontpage Welcome to Joomla! Wpisał Administrator czwartek. listopad 2007 12:06 ) Wiçcej. Ailvei-lisemellf | Wilco Jansen resorted to W podstawowym układzie trójkolumnowym w lewej kolumnie wyświetlony zostanie moduł userl. który zawiera menu z najnowszymi wiadomościami. 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. media poitals. blogs and eCommerce applications ••• I Joomla! provides an easy-to-use graphical user interface that simplifies the management and publishing of large volumes of content including HTML. loiJldl v is used for? ) Community Sites • Public Brand Sites ) eCommerce O Blogs . Intranets. Johan. We are Volunteers Wpisał Administrator 0 S S Stick t0 Code! 0 E3 S Wpisał Administrator środa. Zmiemony ( czwartek. designers.84 Joomla!. 08. październik 2006 10:00 LJoomla! is a free open source framework and content Vublishmg system designed foi quickly creating lugldy interactive multi-language Web sites. na ekranie pojawi się szablon wraz z zaznaczeniem poszczególnych modułów. jak przedstawiono to na rysunku 3. 07 lipiec 2004 09:54 The Joomla 1 Core Team ^ cocie release. who's had a środa. co w domyślnej instalacji Joomla! odpowiada sondzie. 0 0 4 12:00 To msure Naszą witrynę przegląda teraz 2 gości Wpisał Administrator Key Concepts środa. documents. administrators and managers who. listopad 2007 12:06 ) Powe«i W ^^ J o o m l a ! version i > Wigcej . 12. blogs and eCommerce applications. and Extranets and is supported by a community of thousands of users. październik 2006 10:00 . onlnie communities lilpdia poitals. a w prawej wyświetlany jest moduł przypisany do r i g h t .

who is online. Istnieje możliwość załączenia dodatkowych modułów w postaci rozszerzeń. • Tworzenie własnych szablonów 85 Domyślna instalacja Joomla! zawiera moduły login. } #colRight { float: left: width:15S: margin:10px: padding:15px. border:8px black dashed: } </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>&nbsp:</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>&nbsp.Rozdział 3. Aby stworzyć szablon Trzy Kolumny. polling. wprowadź poniższy kod.php w katalogu szablonu: <html> <head> <jdoc:include type="head" /> <style> #colLeft { float:left: width:15X: border:lpx solid black: padding:5px: } #colCenter { float: left: width: 605!. Każdy z nich zostanie dokładniej opisany w kolejnych rozdziałach. padding:5px: border:lpx solid black. a następnie zapisz go pod nazwą index. syndication i search.</p></di v> </div> <jdoc:include type="modules" name="debug" /> </body> </html> .

! Szablony WffllVlH Z. Drugi to arkusz. Przykładowo profesjonalne szablony mają bardziej wyrafinowany układ niż trzy proste kolumny. kolumny Zaokreślone Ponieważ podstawowa część szablonu działa już poprawnie. Profesjonalne tworzenie stron WWW Szablon powinien być teraz gotowy do testów.ess" type="text/css" /> <link rel="stylesheet" href="templates/<?php echo $this->template: ?>/css/template. Ttzy Kolumn-..ess w folderze ess szablonu Trzy Kolumny zaokrąglone: /* Arkusz stylów dla szablonu Trzy Kolumny zaokrąglone */ /* Definicja kolumn tworzących układ.I(||CC. który odczytuje wartość pola template obiektu wskazywanego przez zmienną Sthis. Kliknij przycisk opcji po lewej stronie tego szablonu. a następnie zapisz go pod nazwą template. a następnie kliknij przycisk Domyślnie. przyszła pora na udoskonalenie wyglądu. Ustaw szablon Trzy Kolumny jako szablon domyślny Witryna Menu Artykuły Komponenty Rozszerzenia llaizędzia Pomoc g * Podgląd 1 o B'. padding: 5px:} #colCenter { float. a także cały kod znajdujący się między dwiema poniższymi liniami: <link rel="stylesheet" href="templates/_system/css/general . Pierwszym krokiem jest umieszczenie go w oddzielnym pliku. Wprowadź poniższy kod w edytorze tekstu. Zamień znaczniki <style> i </style>. Rysunek 3. } #colRight { float: left: width: 1535: padding: 5px: } . jak przedstawiono to na rysunku 3. Pierwszy odpowiada domyślnym stylom sytemu Joomla!. a na liście powinieneś znaleźć szablon Trzy Kolumny.6.css type="text/css" /> Dodanie tych dyrektyw spowoduje załadowanie arkuszy stylów z zewnętrznych plików. Zwróć uwagę na kod PHP. Otwórz opcję Szablony. padding: 5px. W kolumnie Domyślnie powinna pojawić się gwiazdka obok wybranego szablonu. który zostanie za chwilę utworzony.86 Joomla!. left: width: 60$. width: 151.' Ter.6.'. Jednym z elementów profesjonalnego układu będzie dodanie zaokrąglonych rogów. Wartość zostanie wstawiona w ścieżkę dostępu przez co przeglądarka będzie w stanie znaleźć odpowiedni plik CSS. Tworzenie arkusza stylów dla zaokrąglonych rogów Większość zabiegów w celu dodania zaokrąglonych rogów sprowadza się do pracy nad arkuszem stylów. bez widocznego obramowania */ #colLeft { float: left.

Rozdział 3. • Tworzenie własnych szablonów
/* Domyślny krój pisma */ .body { font: 0.7em/l.5 Verdana, Arial. Helvetica, sans-serif:

87

}

/* Pierwszy znacznik div odpowiedzialny za lewy górny zaokrąglony róg */ di v.modułe_menu. div.module { margin-top: 10px: background: #999999 url(../images/topleft.gif) top left no-repeat: width: 9 M :

}
/* Wyświetl prawy górny zaokrąglony róg */ di v.modułe_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:

}
/* Wyświetl dolny lewy zaokrąglony róg */ 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:

}
/* Wyświetl dolny prawy zaokrąglony róg */ div.modułe_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 tytuły modułów pisane białym kolorem div.modułe_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 zaokrąglenia, poniższa definicja zapobiega temu */ div.modułejnenu div div div ul { padding-top:5px; padding-bottom:5px:

}

88

Joomla!. Profesjonalne tworzenie stron WWW
/* Opcje w sondzie wyświetlane na jasnoszarym tle */ .pol 1 td { background: #cccccc; font-size: 80X; margin-left:5px; padding-left:5px; marg1n-right:5px; margin-top:Opx;

}
.latestnews, .menu, .keyconcepts, .othermenu { background: #cccccc top right repeat-y: margin-left:5px: padding-left:Opx: margin-right:5px: margin-top:Opx:

}
div.modułetable li, .menu li. .keyconcepts li, .othermenu In { background: #cccccc top right repeat-y; margin-left: 1.5em: padding:5px; font-size: 80«:

}

* Powyższy zestaw stylów jest bardziej skomplikowany niż trzy style dołączone wcześniej w pliku index.php. Komentarze wyjaśniają wykorzystanie poszczególnych stylów. Zwróć uwagę, że większość z nich zastępuje podstawowe style Joomla!. Na wygląd modułów i komponentów wpływa kilka stylów, m.in. moduł etable i contentheading. Poprzez zastąpienie tych stylów możesz dokładnie kontrolować wygląd treści na stronie.

Tworzenie grafiki zaokrąglonych rogów
Arkusz stylów zawiera definicje, które odwołują się do czterech plików graficznych: topleft.gif, topright.gif, bottomleft.gif i bottomright.gif. Te pliki odpowiadają zaokrąglonym rogom. Musisz wykonać je samodzielnie lub ktoś musi je zrobić dla Ciebie. Poniżej opisano pokrótce, jak można je stworzyć w programie Adobe Photoshop. Niezbędne kroki będą prawie identyczne dla innych programów graficznych, takich jak np. GIMP. Rozpocznij od utworzenia obrazu o rozmiarze 100 x 100 pikseli w trybie RGB. Zamiast tradycyjnie białego tła wybierz tło przezroczyste, jak zilustrowano to na rysunku 3.7. Zaokrąglone rogi będą przezroczyste, dzięki czemu kolor kolumn będzie można ustawić w arkuszu stylów (dzięki czemu nie będzie konieczne tworzenie oddzielnych plików dla każdego koloru). W miejsce obrazu powinna zostać wyświetlona szachownica, co oznacza, że jest on pusty. Po wybraniu opcji Fili... z menu Edit pojawi się okno dialogowe. Wybierz biały (ang. White) jako kolor wypełnienia, jak zilustrowano to na rysunku 3.8, i kliknij przycisk OK. Obraz powinien zostać wypełniony białym kolorem.

Rozdział 3. • Tworzenie własnych szablonów
sunek 3.7.
ybierz zezroczyste tło a tworzonego irazu

89

Wysokość: p 00 Bozdiiefczość: ¡72 I r y b koloru: j RGB j piks/cal _*J j 8 bitów na kanał Rozmiar obrazka: 29.3K

¿awartośćtła: (Przezroczyste s • Zaawansowane

sunek 3.8.
'ybierz biały jako iior wypełnienia

Kolejnym krokiem jest narysowanie zaokrąglonego prostokąta. Wybierz najpierw narzędzie rectangle, następnie konieczne będzie dopasowanie kilku opcji na pasku narzędzi. Po pierwsze, jak przedstawiono to na rysunku 3.9, wybierz wypełnianie pikseli, później zaznacz zaokrąglony prostokąt. Odznacz opcję Anti-aliased po prawej stronie, dzięki czemu krawędzie będą ostre. Rysowany prostokąt ma być w kolorze czarnym, dlatego kliknij przycisk Default Foreground and Background Color. Na koniec ustaw przybliżenie na 400 procent i narysuj prostokąt, który wypełni dostępną przestrzeń.

'

'

..

:

:

"" "

IZZM

SUnek 3.9. Ustaw wszystkie niezbędne opcje, a następnie narysuj zaokrąglony prostokąt, /pełni dostępną przestrzeń

który

90

Joomla!. Profesjonalne tworzenie stron WWW
Wybierz narzędzie Magie Wand i odznacz opcję Anti-aliased, jak pokazano to na rysunku 3.10. Kliknij prostokąt, który narysowałeś wcześniej, i naciśnij klawisz Delete. Płótno powinno teraz przedstawiać szachownicę (co odpowiada przezroczystości) wraz z czterema zaokrąglonymi rogami. Zwróć uwagę, że w przypadku tego szablonu będziesz wykorzystywać białe tło. Jeśli chciałbyś wybrać inny kolor tła, musisz stworzyć nowe zaokrąglone rogi, a w miejsce białego wybrać odpowiedni kolor.
jjQlJSl

Pük

Edycja

Qbrazek

Carstwa

Zaznsęz

Fftr

Widok

Okno

POEIX)£

•RFI > >'* • L3
V.
!..

r«w—. F«w> V •¡•¡••i

mm
J L

1 S 4 o. y
»

,

>.

«

4.-J

T

J.S

Bpi!

;

vi;

^ -r/-*.^{'il'H:'

i;;;-;-

j

iÊKmSÊÊ'

::

:

: i' : !

'

V

V

' i^ f t :

1

:

WÈÊm
Rysunek 3.10. Wyłącz opcję Anti-aliased dla narzędzia Magic Wand

Wybierz narzędzie do prostokątnego zaznaczania i zaznacz lewy górny róg. Z menu Image wybierz opcję Crop, co spowoduje takie przycięcie obrazu, aby zawierał tylko zaznaczony wcześniej róg, jak przedstawiono na rysunku 3.11. Zapisz obraz pod nazwą topleft.gif w podkatalogu images szablonu. Aby utworzyć pozostałe trzy rogi, musisz tylko obrócić 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. Następnie 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, który będzie zawierać logo i nazwę strony. Opis tego procesu wykracza poza ramy tej książki. Jedną z szybkich metod jest wykorzystanie prostego, tekstowego logo za pomocą makr Script-Fu, dołączonych do programu GIMP. W menu Xtns/Script-Fu/Logos znajdziesz listę kilkudziesięciu różnych skryptów, które umożliwiają

Rozdział 3. • Tworzenie własnych szablonów
unek 3.11.
ytnij obraz, > obejmował :o lewy ny róg

91

wprowadzenie tekstu, określenie podstawowych kolorów, dzięki czemu uzyskasz proste, ale profesjonalnie wyglądające logo. Dla aktualnie tworzonego szablonu powinieneś wykonać banner o szerokości przynajmniej 800 pikseli (żeby wypełniał górną część strony) i wysokości około 150 pikseli. Po jego ukończeniu zapisz rezultat pod nazwą banner.png w folderze images szablonu.

iana modułów
Pomimo że moduł sondy jest domyślnie włączony, większość stron internetowych nie zawiera sondy na stronie głównej. Dlatego w tym podrozdziale wstawisz w miejsce sondy moduł Lastest News, którego obecność będzie preferowana w przypadku większość stron W W W . Strona Joomla! składa się z modułów, dla których zarezerwowano miejsce w szablonie. W Joomla! 1.5 wprowadzono możliwość łatwego określenia pozycji modułów dzięki opcji Podgląd. W części Szablony kliknij nazwę szablonu, a następnie kliknij przycisk Podgląd, aby wyświetlić wybrany szablon wraz z opisanymi pozycjami modułów. Dobrym zwyczajem podczas tworzenia szablonów jest wykorzystywanie domyślnych nazw pozycji, dzięki czemu użytkownicy mogą łatwo dopasować wyświetlanie modułów. Dlatego, zanim zdefiniujesz własne pozycje w tworzonym szablonie, zbadaj układ któregoś z domyślnych szablonów. Dzięki opcji Podgląd poznasz najczęściej używane nazwy pozycji, które powinieneś umieścić w tworzonym szablonie. W interfejsie administratora wybierz opcję Szablony. Przewiń listę do pozycji Pol 1 s, następnie kliknij ikonę po prawej stronie, jak pokazano na rysunku 3.12. W jej miejsce pojawi się czerwony X, co oznacza że moduł został wyłączony.

92

Joomla!. Profesjonalne tworzenie stron WWW

Rysunek 3.12.
Kliknij ikonę Wyłącz moduł, aby wyłączyć sondę

W miejsce sondy możesz włączyć wyświetlanie modułu Lastest News. Znajdź go na liście, a następnie kliknij jego nazwę, aby przejść do ekranu zmiany. Upewnij się, że moduł jest włączony i przypisany do strony głównej, a następnie 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 wyświetlanie Latest News w prawej kolumnie

Joomtcii" www.JoomlaJumpstarf.com

Modlił: [ m e ] Ziń

iełiy modułu io*e tutykułów 5 Ostatnio dodan Dowolny

: Wyświetla l s ę łączy do artykułów o; it modyfikowanych.

Prryi ostek Masy moduhi • Piiuimetiy: rozsietzone

Wszystkie ' Pozycje wybi Exumpfe Pages

Na danej pozycji można umieścić dowolny moduł, poprzez wybranie jednej z pozycji na liście. Poniżej znajduje się grupa parametrów, które możesz zmienić, aby dopasować działanie modułu do swoich potrzeb. Jeśli otworzysz teraz stronę główną, moduł Lastest News powinien pojawić się w prawym górnym rogu jak na rysunku 3.14.

Rozdział 3. • Tworzenie własnych szablonów
sunek 3.14.
ybrany moduł stanie oświetlony miejscu sondy
Joomla!

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

f Layouts 1 The Joomla! I Community Welcome to . Joomla! I Newsflash

media portals, blogs and ¿Commerce applications

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

We are Volunteers Wpisał Administrator

0

0

0

Stick to the Code ! Wpisal Administrator

0

0

S

Advertís 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

The Joomla! Core Team consists To ensure this code release,

OSMHome \

lasny kod CSS dla komponentów
Wspaniałą funkcją dostępną w Joomla! jest możliwość wykorzystania, w zależności od sytuacji, różnego kodu CSS dla komponentów (środkowa kolumna), np. po wybraniu danego elementu menu lub artykułu. Oznacza to, że pliki CSS mogą odpowiadać schematom kolorów, które ustalisz dla poszczególnych części systemu. Przykładowo na stronie zarządzania nieruchomościami część odpowiadająca za refinansowanie może być wyświetlana w kolorystyce ciemnoniebieskiej, a część sprzedaży w kolorystyce jasnozielonej. Możliwe jest stworzenie wariacji stylu i przypisanie jej do danego menu. Przejdź do folderu szablonu Trzy Kolumny i otwórz plik template.css. Wprowadź poniższy kod i zapisz zmiany:
,componentheading_blue. .contentpage_blue { color: blue;

}
Aby przypisać zmieniony styl do danego menu, otwórz Projektanta Menu w interfejsie administracyjnym. Kliknij ikonę Zarządzaj pozycjami menu po prawej stronie menu, do którego 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 górnej części strony. Teraz kliknij ikonę Utwórz, aby dodać nową pozycję menu. Na ekranie pojawi się hierarchiczna lista dostępnych typów. Kliknij pozycję Artykuły, żeby wyświetlić listę dostępnych sekcji. Dodawana pozycja ma prowadzić do listy artykułów w danej sekcji, dlatego wybierz pozycję Lista — Kategorie artykułów w sekcji, jak przedstawiono na rysunku 3.16. Zostaniesz przeniesiony do ekranu dodawania nowej pozycji menu, gdzie możesz ustawić jej parametry.

94

Joomla!. Profesjonalne tworzenie stron WWW
Joomla! wwwJoomiaJumpstart.com
Ąrtytutly Komponenty P.ozszei

Rysunek 3.15.
Kliknij ikonę Zarządzaj pozycjami menu po prawej stronie menu, któremu chcesz przypisać zmieniony styl

U l Projektant menu

O Q 0

Resources Example Pages Key Concepts

S

W

»• j s wolnym oprogramowaniem dostępnym ne et

Rysunek 3.16.
Kliknij Lista — Kategorie artykułów, aby wybrać pozycję menu tego typu

Joomlci! www.JoomlaJumpstart.com

t l i Pozycjja menu: [utwórz
W y t » i « i tyj» pozycji I ¡«y Łącze wewnęta , Artykuły iii Archiwum

Wprowadź nazwę pozycji, a w ramce Parametry: podstawowe wybierz sekcję, z której będą wyświetlane artykuły. Rozwiń ramkę Parametry: systemu, która znajduje się poniżej. W polu oznaczonym jako Przyrostek klasy CSS wprowadź błue, co zilustrowano na rysunku 3.17, i kliknij przycisk Zapisz. Jeśli wejdziesz teraz na stronę główną i wybierzesz stworzoną przed chwilą pozycję menu, elementy komponentu zostaną wyświetlone w kolorze niebieskim.

Tworzenie dystrybucyjnego pliku templateDetails.xml
Twój szablon jest już prawie gotowy! Zanim udostępnisz go szerszemu gronu, warto poprawić plik templateDetails.xml i wprowadzić dodatkowe informacje o autorstwie oraz licencji. Po ukończeniu plik ze szczegółami powinien przypominać poniższy:

Rozdział 3. • Tworzenie własnych szablonów
sunek 3.17.
odaj przyrostek )lue, aby ementy wiązane tą pozycją były /świetlane Bdług stylów ym przyrostkiem
0 T. 1 O Wyloguj

95

enu: [ utwórz )

v/

©

O

rtykutow w sekcji • wybranej s k ] oraz opisy k t g r i eci aeoi

i Zm""!"yp J :
:

Parametry
Pałfliiietiy koinjHiiien!

P-.l.i'z';!«-,» ###BOT_TEXT###gt;i.

Wyłączone 'c.' Ignoruj o Włączone

<?xml version="1.0" encoding="utf-8"?> <install version="1.5" type="template"> <name>Trzy kolumny zaokrąglone</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 układzie trójkolumnowym </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>

Jeśli spakujesz zawartość folderu do archiwum zip pod nazwą, która dokładnie odpowiada nazwie folderu z szablonem, będziesz mógł udostępnić szablon innym. Możesz tego dokonać na stronie Joomla Hut (www.joomlahut.com), która umożliwia dodawanie darmowych szablonów.

96

Joomla!. Profesjonalne tworzenie stron WWW

Zaawansowane techniki tworzenia szablonów
Kluczowy element składowy systemu szablonów Joomla! to CSS. Możliwe jest nie tylko wykorzystywanie kilku plików CSS dla jednego szablonu, lecz także utworzenie arkusza stylów definiującego style nawet dla poszczególnych artykułów. Dla projektanta pracującego z Joomla! dużo większe znaczenie mąjąjednak same funkcje CSS. Inspekcja plików CSS prowadzi do konkluzji, że większość ich autorów wykorzystuje tylko najbardziej podstawowe funkcje. Technologia CSS składa się z ogromnej liczby atrybutów, dzięki którym jesteś w stanie doprowadzić wygląd strony WWW do perfekcji. Dobrą wiadomością jest fakt, że większość atrybutów określonych w specyfikacji CSS jest obsługiwana przez popularne przeglądarki. W tym podrozdziale zapoznasz się z technikami, które sprawią, że Twoja strona będzie wyróżniać się na tle innych. Dowiesz się, jak umiejscowić tekst, aby nakładał się na obrazek. Następnie poznasz inne zalecane praktyki, takie jak umieszczanie odwołań do obrazków w plikach CSS, a także przypisanie odpowiedniego pliku CSS danemu artykułowi lub wybranej platformie (może być to np. telefon komórkowy lub PDA).

Wykorzystanie grupy szablonów a CSS
Projekt szablonu dla systemu Joomla! może zakładać wykorzystanie jednego szablonu dla wszystkich podstron lub przypisanie oddzielnych szablonów do poszczególnych kategorii i sekcji, dzięki czemu wygląd będzie odzwierciedlać funkcję danej części witryny. W dalszej części tego rozdziału termin szablon będzie odnosić się do pojedynczego szablonu, a zestaw szablonów przypisanych do poszczególnych kategorii i sekcji będzie nazywany grupą szablonów. Zaprojektowanie jednego lub drugiego wymaga zupełnie innego podejścia, począwszy od fazy organizacji i planowania. W przeciwieństwie do pojedynczego szablonu, który musi odpowiadać wszystkim potrzebom strony, elementy grapy szablonów mają spełniać określone zadania, przykładowo strona główna ma przedstawiać ogólny wizerunek (dzięki doborowi kolorów, organizacji i wyborze fontów), podczas gdy podrzędne szablony nadają stronie tożsamości. Grupa szablonów gra podobną rolę jak marka. Przykładowo wszystkie pochodne marki Coca-Cola (Cherry Coke, Coca-Cola Zero itd.) zawierają wspólne elementy, więc nawet przypadkowy obserwator może zauważyć związek. Po stworzeniu kilku szablonów możesz przypisać je do poszczególnych części strony za pomocą opcji Szablony, jak pokazano na rysunku 3.18. W poniższym przykładzie jasnozielony szablon został przypisany do wszystkich elementów sekcji Kluczowe pomysły.

Rozdział 3. • Tworzenie własnych szablonów
unek 3.18.
pomocą opcji iblony można ypisać szablon określonych iści strony

97

^ f ^ i W ^ t W i i i W î i f f f î
C i Szablon; [zmicn]

m

®t

Ha;-.

Szablon RHUK Milkyway

Piefet encje Parametr-Plik ïemplates\rhuk_milkywaylparams in

Opis; MilkyWay jest szablonem przygotowanym specjalnie

yi''! jest wolnym oprogramowaniem dostępnym na i -il) -

/icon.ico
Szablon Joomla! może zawierać plik favicon.ico1, umieszczony w jego głównym katalogu. Jest to mała ikona (o rozmiarze 16x16 pikseli), która po umieszczeniu odpowiedniego odwołania w pliku index.php zostanie wyświetlona na pasku adresu przeglądarki internetowej* (zobacz rysunek 3.19), a także po lewej stronie na liście zakładek. Jeśli plik favicon.ico będzie umieszczony w głównym katalogu serwera WWW, zostanie automatycznie odczytany przez większość przeglądarek. Aby umieścić odwołanie do tego pliku w szablonie, wprowadź kod podobny do poniższego 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" />

Powyżej umieszczono dwa typy odwołania, ponieważ poszczególne przeglądarki odczytują plik favicon.ico dla różnych wartości atrybutu rei. Nowsze przeglądarki umożliwiają dołączenie ikon zapisanych jako pliki GIF lub PNG, a nawet wstawienie animowanej grafiki w tych formatach. Nie musisz wprowadzać poniższego kodu, jeśli umieściłeś w szablonie dyrektywę dołączenia standardowych nagłówków <jdoc:include type="head" />, ponieważ Joomla! automatycznie wstawi odwołanie do ikony ulubionych.
<link rel="shorcut icon" href="templates/<?php echo $this->remplate; ?>/favicon.ico" type="image/vnd.mic rosoft.i eon" />

\ ang. favorites icon — ikona ulubionych —przyp. thim.
'rzeglądarka Internet Explorer w wersji wcześniejszej niż 7 wyświetla tę ikonę dopiero po dodaniu trony do ulubionych, Favicon — Wikipedia, the free encyclopedia [online][dostęp 28.10.2008]

tip: //en. wikipedia. org/wiki/Favicon

98

Joomla!. Profesjonalne tworzenie stron WWW
g a g
Ctrl+D s

Rysunek 3.19.
Plik favicon.ico wyświetlony na pasku adresu i liście zakładek
MAIM M E N U

S Narzędzia Dodaj zakładkę... Subskrybuj tę stronę

Pomoc

&

'X Ą *<•'•
d i HNr

- *

Zarządzaj zakładkami ' Pasek 2akładek Ostatnio dodane .¿Ostatnio używane etykiety Dodatki zwijane z zakładkami

Ctrl+Shift+B

Sfc

-ŁUbS:'

Î 2: Installing C o m p o n e n t s

*

Why do I need

@ Joomla Jumpstart -- Home of Beginning Joomla • • " ^ B f c

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

'

H

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

P r o b i n g t h e Joomla! S o u r c e C o d e for Information

O&

Aby zapisać obrazek w formacie ICO, możesz wykorzystać darmową wtyczkę do programu Photoshop, którą znajdziesz na stronie: http: //www. telegraphics. com. au/sw/Mcoformat

Możesz także skorzystać z aplikacji internetowej do rysowania plików .ico pod adresem: http://www.favicon. cc

Kolejną opcją jest program GIMP, za pomocą którego, bez dodatkowych wtyczek, można zapisywać w formacie .ico. Aby stworzyć ikonę ulubionych w programie GIMP, utwórz obrazek o rozmiarach 16x16 pikseli, a następnie zapisz go w formacie Microsoft Windows leon (.ico).

Modyfikacja wyglądu rozszerzeń

Chociaż wykracza to poza ramy tego rozdziału, warto wspomnieć, że rozszerzenia (komponenty, moduły itd.) mają własne szablony, które określają ich wygląd i funkcjonalność. Zazwyczaj szablony te zapisane są w podkatalogu \tmpl, który znajduje się w głównym katalogu danego rozszerzenia. System Joomla! zaprojektowano z myślą o możliwości zmiany szablonu wykorzystywanego przez rozszerzenia, aby dopasować jego wygląd i funkcjonalność do reszty strony. Możesz dołączyć do szablonu podkatalog \html, w nim znajdą się podfoldery dla poszczególnych modułów i komponentów, których wygląd chcesz zamienić (na przykład \com_contact, \com_weblinks, \mod_poll i \mod_search). Przykłady modyfikacji wyglądu rozszerzeń można znaleźć w podkatalogu \html szablonu beez w domyślnej instalacji Joomla!.

Zazwyczaj jednak wystarczy stworzyć odpowiedni arkusz stylów, który zastępuje definicje danego komponentu. Istnieje prosty sposób, aby upewnić się, że Twój szablon zawiera definicję dla wszystkich głównych stylów. Sprawdź w przeglądarce, jak wyświetlane są wszystkie moduły, komponenty i inne elementy interfejsu dla wybranego szablonu.

Rozdział 3. • Tworzenie własnych szablonów

99

Wykorzystaj opcję Pokaż źródło strony, aby zobaczyć kod HTML dla danej strony. Przeglądając kod źródłowy pod kątem atrybutów id i class, natrafisz na wszystkie definicje elementów CSS wykorzystywanych na stronie. Teraz, kiedy zapoznałeś się z ich nazwami, możesz zmienić ich wygląd za pomocą arkusza stylów dołączonego do szablonu.

iorzenie układu strony dla telefonów komórkowych
Coraz więcej osób przegląda strony WWW za pośrednictwem telefonów komórkowych. Widząc ogromną popularność urządzeń PDA, takich jak np. iPhone, można spokojnie założyć, że mobilny dostęp do internetu będzie coraz powszechniejszy. Dzięki przygotowaniu strony pod kątem wygodnego przeglądania na takich urządzeniach możesz powiększyć grono osób odwiedzających stronę, a w przypadku witryny komercyjnej — zwiększyć zyski. Stworzenie w systemie Joomla! szablonu dla telefonów komórkowych, dopasowanego do ekranu o małych rozmiarach, jest wyjątkowo proste, ponieważ na wygląd strony w głównej mierze wpływa arkusz stylów. W czasie, kiedy pisałem tę książkę, poniższe programy były najpopularniejszymi mobilnymi przeglądarkami: • • • • • • Pocket Internet Explorer — Główna przeglądarka wszystkich PDA z systemem Windows (nazywana często także Pocket PC). Opera — Prawdopodobnie najpopularniejsza mobilna przeglądarka instalowana przez użytkowników. NetFront — Popularna przeglądarka, szczególnie na nieużywanych już urządzeniach Sony Clie. Na jej podstawie powstała przeglądarka Blazer. Blazer — Popularna przeglądarka dostępna w modelach Tungsten i Treo PDA. Minimo — Darmowa przeglądarka o otwartym kodzie źródłowym, oparta na silniku programu Mozilla Firefox. Safari — Domyślna przeglądarka urządzenia iPhone.

Poza tym istnieje spora liczba przeglądarek przygotowanych specjalnie na daną platformę (np. OpenWave czy Series 60), a biorąc pod uwagę dynamiczny rozwój tego rynku, lista mobilnych przeglądarek będzie rosnąć. Dobra wiadomość jest taka, że Twoja strona nie musi być zaprojektowana z myślą o każdej z tych przeglądarek. Dołączenie pliku CSS wygląda zazwyczaj podobnie do:
<link rel="stylesheet" type="text/css" href="Mycss.css" />

Dla tego znacznika istnieje dodatkowy atrybut o nazwie media, który jest poprawnie odczytywany przez większość mobilnych przeglądarek. Atrybut media pozwala określić platformę, dla której należy odczytać podany plik CSS. Trzy najczęściej stosowane wartości to: screen, print i handheld9. Z tego powodu Twój szablon może odwoływać się jednocześnie, bez kolizji do więcej niż jednego pliku CSS.
ikran, drukarka i urządzenie przenośne — p r z y p . tłum.

100

Joomla!. Profesjonalne tworzenie stron WWW
Aby dołączyć pliki CSS dla każdej platformy, możesz wstawić w szablon poniższy kod:
<link rei»"stylesheet" type="text/css" media="screen" href="screen.css" /> <link rel="stylesheet" type="text/css" media="print" href="print.css" /> <link rel="stylesheet" type="text/css" media="handheld" href="mobile.css" />

Znacznik z atrybutem media ustawionym na screen może odnosić się do zwykłego pliku CSS. Wartość atrybutu print może oznaczać odwołanie do arkusza, który wyłącza wyświetlanie bannerów, kolumn i elementów nawigacyjnych nieprzydatnych na papierze. Często jest to kopia głównego pliku CSS z atrybutem visible (widoczny) ustawionym na false dla elementów, które powinny zostać pominięte na wydruku. W czasie, kiedy pisałem tę książką, przeglądarka Pocket Internet Explorer wykorzystywała arkusze stylów oznaczone zarówno jako screen, jak i media do wyświetlania stron na urządzeniach mobilnych, co było powodem frustracji wielu projektantów. Zwykła wersja Internet Explorer 6 (najpopularniejsza przeglądarka internetowa) w przeciwieństwie do wersji mobilnej nie wyświetla stylów oznaczonych jako handheld. Sposobem na osiągnięcie kompatybilności z Internet Explorerem jest umieszczenie odwołania do pliku CSS odpowiadającego screen przez odwołaniem do tego, który odpowiada handheld. Dzięki temu na normalnych komputerach plik oznaczony jako handhe Id zostanie zignorowany, a przeglądarka Pocket IE odczyta najpierw style zawarte w pliku odpowiadającym screen, a następnie odczyta zawartość pliku odpowiadającego handheld, unieważniając wcześniejsze definicje.

Typ handheld wykorzystywany jest przez urządzenia przenośne, które obsługują CSS. W czasie pisania tej książki większość sprawdzanych urządzeń pozytywnie przeszła testy i odczytała plik CSS oznaczony atrybutem handheld. Sprawdzone zostały następujące przeglądarki: Blazer (w urządzeniu Treo), Opera (w Nokii) i Pocket Internet Explorer (w iPAQ-u). Niestety, pewna liczba testowanych przypadków nie obsługiwała poprawnie tego atrybutu (głównie Netfront 3.1). Jednak patrząc w przyszłość, można z pewnością stwierdzić, że wszystkie nowe przeglądarki będą poprawnie obsługiwać ten atrybut.

Definiowanie arkusza stylów dla urządzeń przenośnych

Jeśli masz zamiar dołączyć alternatywny arkusz stylów dla urządzeń przenośnych, poniżej znajdziesz kilka wskazówek. Pamiętaj, że nie można po prostu wykorzystać zwyczajnego pliku CSS, ponieważ został stworzony z myślą o osiągnięciu innych celów, innej prezentacji graficznej. Poniżej znajduje się lista rzeczy, o których należy pamiętać podczas projektowania arkusza stylów dla urządzeń przenośnych: • Ustaw marginesy na 0 — Dla znaczników zawierających tekst ustaw atrybut margin: 0 0 0 0: przez co margines zostanie ustawiony na 0, a tekst będzie zajmować całą dostępną przestrzeń. Ustaw szerokość obramowania na 0 — Dla znaczników di v i table ustaw atrybut border-width: 0 0 0 0: aby usunąć ramkę wokół komórek. Ustaw wysokość linii na lem — Zamiast określić inną wysokość linii (co i tak nie będzie dobrze wyglądać na urządzeniu przenośnym), wykorzystaj kod 1 i ne-height: lem: aby ustawić standardową wysokość linii.

• •

Rozdział 3. • Tworzenie własnych szablonów

101

Korzystając z tych wskazówek, możesz wprowadzić modyfikacje domyślnego szablonu Joomla!. Utwórz pod nazwą mobile.css nowy arkusz stylów w folderze css i wprowadź poniższy 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 odwołanie do pliku CSS z atrybutem media ustawionym na handheld, a plik mobile.css zostanie automatycznie wykorzystany na urządzeniach przenośnych. Wykorzystanie tego arkusza wprowadzi jednakowy wygląd i wielkość tekstu na całej stronie, a nagłówki i inne specjalne style Joomla! zostaną pogrubione.

laptowanie szablonów Mambo lub Joomla! 1.0
Szablony Mamo działają bez problemów w Joomla! 1.0. Z powodu ich popularności od pięciu lat powstawały tysiące szablonów. W Joomla! 1.5 istnieje możliwość wykorzystywania szablonów napisanych z myślą o starych systemach, jednak musi zostać włączony Tryb spuścizny. Niestety, włączenie tego trybu powoduje utratę wszystkich nowych funkcji i wzrostu wydajności wersji 1.5. Na szczęście adaptacja szablonu w większości przypadków nie jest trudna. Praktycznie wszystkie wywołania systemowe w starej wersji Joomla!/Mambo mają swoje odpowiedniki w nowej wersji Joomla!. Najbardziej oczywistym przykładem jest funkcja modCountModules, która została zastąpiona przez $this->countModules. Elementy <jdoc include ... / > z a s t ą p i ł y w i ę k s z o ś ć funkcji mosLoadModul es. Ponadto wykorzystanie zmiennych globalnych nadal jest możliwe, choć niezalecane, ponieważ prawdopodobnie zostaną usunięte w przyszłych wersjach Joomla!. Najlepiej jest unikać wykorzystania zmiennych globalnych.

102

Joomla!. Profesjonalne tworzenie stron WWW
W systemie Mambo i starszych wersjach Joomla!, jeśli na danej stronie niezbędny był edytor, trzeba było go włączać ręcznie, podczas gdy w nowej wersji włącza się automatycznie, jeśli wystąpi taka potrzeba. Jedyną nieobecną technologią w nowej wersji Joomla! jest patTemplate. Wtyczka patTemplate umożliwiała proste rozwiązywanie złożonych problemów, jakie w przeszłości napotykali projektanci szablonów. Głównie ze względu na wydajność, patTemp late została usunięta w nowej wersji platformy Joomla!. Dlatego jeśli szablon stworzono w oparciu o intensywne wykorzystanie patTemplate, jego adaptacja do nowego systemu będzie trudniejsza niż w większości przypadków.

Podsumowanie
Po przeczytaniu tego rozdziału powinieneś wiedzieć już, jak od podstaw stworzyć szablon. Na projektowanie szablonów składa się wiele aspektów, m.in. stworzenie właściwego arkusza stylów. W rozdziale zawarto informacje, dzięki którym będziesz w stanie: • • • • • Stworzyć od podstaw szablon, który dzięki CSS wykorzystuje układ wielokolumnowy. Dodać elementy graficzne, które sprawią, że szablon będzie wyglądał profesjonalnie. Udoskonalić kompatybilność z różnymi przeglądarkami, dzięki czemu błędy obsługi CSS nie wpłyną negatywnie na wygląd strony. Stworzyć stronę zgodną ze standardami dostępności, aby umożliwić każdemu jej przeglądanie. Wykorzystać arkusze stylów w celu dostosowania wyglądu strony do danej platformy, takiej jak PDA lub telefon komórkowy.

Tworzenie własnego szablonu to tylko wierzchołek góry lodowej w zakresie modyfikacji strony Joomla!. W rozdziale 4. przedstawiono rozszerzenia, które znacznie wzbogacą funkcjonalność Twojej strony.

dodatki wpływają na działanie najbardziej podstawowych funkcji systemu. Komponenty i moduły są prostszymi rozszerzeniami. Dla Joomla! dostępnych jest wiele rozszerzeń i czasem trudno wybrać któreś z nich. Czasem wybranie właściwego rozszerzenia sprowadza się do sprawdzenia wszystkich dostępnych z danej kategorii. komponentów i dodatków) może ogromnie zwiększyć funkcjonalność systemu Joomla!. sondy. inne zawierają więcej funkcji. W tym rozdziale przedstawiono najbardziej zaawansowane i najpopularniejsze rozszerzenia. który można znaleźć na stronie głównej Joomla!. które służą do dodania określonej funkcjonalności (np. Podczas gdy szablony wpływają na prezentację Joomla!. Między tymi dwiema skrajnościami znajdują się moduły i komponenty. . Wykorzystanie rozszerzeń trzech typów (modułów. Niektóre mają zapewnioną bardzo dobrą obsługę klienta. Zanim przejdziemy do sprawdzenia poszczególnych rozszerzeń. zawartość strony. które można przypisać do następujących obszarów: • • • • funkcjonalność strony. warto odwiedzić ich katalog. fora lub menu).4 Dodawanie i modyfikacja dostępnych rozszerzeń Gama rozszerzeń Joomla! zaczyna się szablonami (najprostsza forma) i kończy się na dodatkach (najbardziej zaawansowana). organizacje i e-commerce. Przykładowo istnieje sześć różnych dodatków służących do tworzenia galerii zdjęć — każdy ma swoje wady i zalety. komunikacja na stronie. Przegląd rozszerzeń z powyższych kategorii uzmysłowi Ci potencjał tkwiący w Joomla!.

Profesjonalne tworzenie stron WWW Katalog rozszerzeń Na stronie głównej Joomla! (www. zieloną literą C w przypadku komponentów i purpurową literą P w przypadku dodatków. aby przejść na stronę. Homepage) — Strona domowa rozszerzenia. Typ rozszerzenia — Większość wpisów to połączenie kilku rozszerzeń w jedną całość. 1.0. co pozwala użytkownikom dzielić się ich doświadczeniami związanymi z danymi rozszerzeniami. Typowy wpis do katalogu zawiera poniższe informacje: • • Opis — Opis danego rozszerzenia.ONative. gdzie najprawdopodobniej znajdziesz inne rozszerzenia tego samego autora. Strona domowa (ang. Wersja (Version) — Wyświetla oznaczenie najnowszej wersji i informacje. Deweloper i e-mail — Te dwa pola zawierają nazwę i adres e-mailowy twórcy danego rozszerzenia. Zazwyczaj jest to krótkie podsumowanie historii wersji programu. Joomla Extension Directory — JED) zawiera prawie 4000 pozycji (w momencie pisania tej książki) zarejestrowanych w systemie.5 Legacy — przyp. Joomla 1. kiedy została upubliczniona. które zawiera. 1. Licencja (License) — Licencja. Każde rozszerzenie przypisano do jednej z 23 kategorii. Poszczególne elementy oznaczane są ikonami: czerwoną literą Mw przypadku modułów.org Katalog rozszerzeń Joomla! (ang. Obecnie możliwe jest określenie kompatybilności z wersją Joomla! 1.0 Native. Każda pozycja zawiera opis i informacje związane z wykorzystaniem rozszerzenia. możesz wykorzystać ten odnośnik. tłum. pod jaką udostępniono rozszerzenie. aby przeczytać cały opis danego rozszerzenia.joomla.5 Native i l. a także lista zmian wprowadzonych w najnowszej wersji. Ikony wyświetlane przy danym wpisie wskazują na typy rozszerzeń.5 i obiema wersjami 1 . Kompatybilność (Compatibility) — Wersja Joomla!.joomla. Jeśli dane rozszerzenie Ci się podoba i uważasz. Katalog znajduje się pod adresem: http://extensions. . Najpopularniejsze licencje to GNU GPL.org) dostępny jest katalog rozszerzeń działających z Joomla! wraz z systemem oceniania i komentowania. z którą działa rozszerzenie. Na stronie głównej katalogu umieszczono także pięć najnowszych rozszerzeń i pięć najwyżej ocenianych. którzy kliknęli wpis w katalogu. że jest użyteczne. Liczba odwiedzin (Views) — Przedstawia liczbę odwiedzających. komercyjne i inne darmowe lub wolne licencje.104 Joomla!. • • • • • • • Oznaczone odpowiednio 1. Data dodania (Date added) — Data włączenia rozszerzenia do katalogu.

Rozdział 4. Powyższy podział uprości wyszukiwanie rozszerzeń. komentarze i opisy różnych problemów związanych z rozszerzeniem. najczęściej konieczne jest instalowanie dodatków. Funkcjonalność dla kilku stron (Multiple Sites). Zarządzanie bazą danych (Database Management). które spełniają to samo zadanie — tylko lepiej. Katalog rozszerzeń zawiera wyszukiwarkę. 105 Na stronie wyszczególniono 23 kategorie rozszerzeń. Menu (Menu Systems). Nawigacja (Site Navigation). które dodają określone funkcje do Joomla!. Zmiana formatów danych (Data Coversion). • . Podczas wyszukiwania powinieneś ograniczać się do pojedynczych słów. poza komplementami. inkcjonalność i obsługa strony Rozszerzenia funkcjonalność i obsługi strony rozbudowują kluczowe funkcje. Tworzenie raportów (Data Reports). Rozbudowywanie podstawowej funkcjonalności (Core Enhancements) — Wzbogacenie podstawowej funkcjonalności systemu Joomla!. Zawiera nadesłane przez użytkowników doświadczenia. Sekcje i kategorie (Sections & Categories). Zawiera podkategorie: Zarządzanie treścią (Content Management). a każda z nich zawiera podkategorie. Rozszerzenia dla tego obszaru pogrupowano w JED w następujące kategorie: • Administracja (ang. Wyszukiwanie przy wpisaniu wielu słów zwraca zazwyczaj zbyt wiele wpisów niezwiązanych z interesującymi możliwościami. które będą zawierać wymaganą funkcję. Dla ułatwienia w kolejnych podrozdziałach kategorie podzielono na cztery główne aspekty: • • • • funkcjonalność i obsługa strony. które można znaleźć w interfejsie administratora. Wstawianie i dołączanie (Embed & Include). Interfejs administracyjny (Admin Interface). organizacje i e-commerce. ustalenie dokładniejszej hierarchii artykułów niż tylko kategorie i sekcje czy dodanie opcji wyszukiwania. Serwer (Server). także informacje odnośnie do funkcjonalności i instalacji lub rekomendacje innych rozszerzeń. Często znajdują się tutaj. Ponieważ ten typ zmian dotyczy kluczowej funkcjonalności systemu. Rozszerzenia tego typu umożliwiają np. zawartość strony. Instalatory (Installers). Zawiera podkategorie: Rozszerzenia dla administratorów (Admin Addons). • Dodawanie i modyfikacja dostępnych rozszerzeń • Komentarze i oceny użytkowników (User Reviews) — Prawdopodobnie najużyteczniejszy element wpisu. ponieważ masz wtedy największą szansę znaleźć wpisy. Zarządzanie plikami (File Management). komunikacja na stronie. chociaż często jest ona mało pomocna w znajdowaniu rozszerzeń z określonymi cechami. Administration) — Rozszerzenia dla zaplecza.

profile ustawień użytkowników. Firefox. styl (pogrubiony. co widzisz. Opera i Safari). Ponieważ Joomla! jest systemem opartym na HTML. Domyślnym edytorem jest TinyMCE. Statystyki treści (Content Statistics). wszystkie artykuły będą wprowadzane jak zwykły tekst. wybierać fonty.106 Joomla!. Powiązane wpisy (Related Items). XStandard Lite jest edytorerr dostępnym w postaci skompilowanej. Wprowadzony tekst pojawi się w tej samej formie na stronie. programy instalacyjne dla różnych platform. Statystyki strony (Site Analytics). Treści w wielu językach (Multi-Ungual Content) i Tłumaczenia Joomla! (Translations for Joomla!). Informacje autorskie (Crédits). co oznacza. Pomijając przewagę funkcjonalności XStandard. Edytor TinyMCE został napisany w JavaScripcie. Przyjazne adresy (SEF). Ranking (Ranks). Instalacja dodatkowego edytora WYSIWYG System Joomla! zawiera dwa edytory: TinyMCE i XStandard Lite. a także instalację dodatkowych języków (w tym polskiego). Zawiera podkategorie: Pamięć podręczna (Cache). Profesjonalne tworzenie stron WWW • Wyszukiwarki i indeksowanie (Search & Indexing) — Zawiera podkategorie: Wyszukiwanie domen (Domain Search). np. • • • W poniższym podrozdziale opisano instalację alternatywnego edytora w systemie Joomla!. tematów i wtyczek (włączając w to Adobe Flash Player). tłum. które można pobrać i zainstalować. że obecnie można go stosować tylke w systemie Windows. środowiska programistyczne PHP i inne. . Wyszukiwanie rozszerzeń (Extensions Search). Obsługa strony (Site Management) — Rozszerzenia związane z obsługą strony i zarządzaniem nią. np. a jego poprawne działanie potwierdzone na wielu różnych przeglądarkach (Internet Explorer. jest tym. Oba wymienione edytoiy nie są jedynymi. zwykły tekst oznacza w praktyce kod HTML. które dołączono do Joomla!. za pomocą którego można wprowadzać formatowany tekst. Wyniki wyszukiwania (Search Results). Przekierowywanie (URL Redirection) i Odwiedzający ( Visitors). uruchamianie skompilowanego kodu oznacza ogromną przewagę pod względem wydajności nad TinyMCE. Statystyki mchu na stronie (Site Traffic Statistics). Narzędzia (Tools) — Lista zewnętrznych rozszerzeń. XStandard Lite także zawiera funkcje WYSIWYG 2 . Szeroki wybór edytorów oznacza różnorodność dodatkowej funkcjonalności. Zawiera podkategorie: Automatyczne tłumaczenie (Automatic translations). What You See Is What You Get — To. Języki (Languages) — Rozszerzenia dla instalacji Joomla! zorientowanych na inne języki niż angielski. Pozycjonowanie i metadane (SEO & Metadata). co otrzymasz —przyp. Jeśli nie określono domyślnego edytora.0. 2 Ang. że XStandard Lite w przeciwieństwie do TinyMCE tworzy w pełni poprawny kod XHTML i HTML. Mapa strony (Site Map). Różnica między dwoma edytorami polega na tym. Wyszukiwanie na stronie (Site Search) i Chmury znaczników (Tags & Clouds). Pozwala na tworzenie kodu XHTML 1. Istnieje kilkanaście innych edytorów w katalogu JED.). pochylony itd. rozmiar i inne. rozszerzenie dla programu Dreamweaver do obsługi stron Joomla!.

stworzonym przez Frederico Caldeira Knabbena. sunek 4. Joomla! is shifting gear and provides developer power while _ JoomlaFCK składa się z pojedynczego dodatku. i. zarządzanie dokumentami. and the rapid integration with third-party applications. Intranets. Rozszerzenie JoomlaFCK. dwa szablony. Jest to jeden z pierwszych edytorów dostępnych za pośrednictwem przeglądarki WWW. and Extranets and is supported by a community of thousands of users. Jedną z najbardziej użytecznych (i unikatowych) funkcji JoomlaFCK jest możliwość wykorzystania szablonów dla wprowadzanych artykułów — w podobny sposób jak Microsoft Word zawiera szablony dla résumé. :ięki 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: . obsługa wtyczek.[b] / J * . przedstawione na rysunku 4.gif"> <Description>One main image with a title and text that surround the image.iniony 1 Opublikowan 92 Wyczyi< 29 razy czwartek. Joomla! allows the customisation of every aspect of a Web site including presentation. prezentacji itd.</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> .i ą w O ' » - M '" B O ^ G ? Parametry: artykuł Autor Inny «Mit os ! « . documents. do ou et u LA • ffl » © ® :. Poniżej kod pierwszego z nich: Domyślnie dostępne są <Template title="Image and Title" image="templatel. które zawiera mniej funkcji niż TinyMCE lub XStandard. iytor JoomlaFCK a niewielki kod. oparto na skrypcie FCKeditor.>»'. ale jest dużo mniejsze i szybsze niż standardowe edytory. blogs and eCommerce applications Rozpoczrtij p M t p u i K? k Z k ń z pubłikacj« ao c Parametry: rozszerz » Mst. 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.idaiie Joomla! provides an easy-to-use graphical user interface that simplifies the management and publishing of large volumes of content including HTML.1.Rozdział 4. Szablony powinny zostać zapisane w katalogu. który miał pełną funkcjonalność WYSIWYG bez konieczności instalacji dodatkowego oprogramowania. 1 i czwartek. administration. .. Joomla! is used by organisations of all sizes for Public Web sites.1. media portals. Joomla! has a rich heritage and has been crowned CMS king many times over. <!'><. and rich media. edytowanie arkuszy stylów i wiele innych. Joomla! Logo With a fully documented library of developer resources. Przykładowo możesz zainstalować rozszerzenie JoomlaFCK. który znajduje się najprawdopodobniej (w odniesieniu do głównego katalogu Joomla!) w: \p lugins \editors Xfckeditor Szablony zapisywane są w formacie XML w pliku fcktemplates.xml. • Dodawanie i modyfikacja dostępnych rozszerzeń 107 formatowanie kodu źródłowego. N o w with more power under the hood.'BP» w g a . 08 3 ŻS t dkmn ® . onlme I communities. layout.it iis Odsłony Popi awiony Ut *oi zony Po|»i. który można zainstalować w zapleczu administracyjnym.1 St.*<>!»! •>• ' 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.

online communities. Rysunek 4.— — ~ --StylesPoplamiony 92 Wy*. w: \plugim\editors\tmymce\jscripts\tiny_mce\themes\advanced\css\editor_content. 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.2. D. Dodanie jednego lub kilku stylów TinyMCE umożliwia lepsze dopasowanie treści i strony 51HS— Sekcja welcome^o^oomla News " S t r o n a startowa Kategoria Odsłony Popiaiviony utwoi zony U . a n d t h e rapid i n t e g r a t i o n with t h i r d . x' 1 -»• J yellowhighlighler 2 ""fTiii! P.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 . oddzielając go od reszty tekstu. Projektowanie szablonów dla wprowadzanych treści może być szczególnie przydatne.108 Joomla!. by podświetlić treść: . 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 . a d m i n i s t r a t i o n . jak zilustrowano na rysunku 4. Ja dodałem kilka stylów. media portals.iriifrtly: . których potrzebujesz na stronie. Domyślnie plik znajduje się. szablon przepisu znacząco przyspieszyłby wprowadzanie wpisów.i ut rtoi R u .nametiy: 1 0 Metad.css Skopiuj plik editor content. 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. Dla uproszczenia skopiowałem ten plik do głównego katalogu serwera W W W i nazwałem go mytinymce. jeśli Twoja strona ma kilku redaktorów.ll. Przykładowo strona poświęcona programowaniu będzie zawierać artykuły z elementami kodu źródłowego. 29 razy Czwartek Czwartek — _j ' x.p a r t y applications. Dodawanie własnych stylów do TinyMCE Istnieje możliwość dodania własnych stylów do listy w edytorze TinyMCE. jednocześnie oferując więcej funkcji niż za pomocą prostego formularza. Generalnie najprościej jest skopiować ten plik do katalogu \css dla wybranego szablonu. d o c u m e n t s . Wprowadź do tego pliku style. względem głównego katalogu Joomla!. l a y o u t . Przykładowo jeśli prowadzisz stronę telewizyjnego programu o gotowaniu i chciałbyś.ine TinyMCE pozwala wykorzystać własny plik CSS zamiast domyślnego. Można wtedy stworzyć styl. dzięki czemu style można będzie lepiej dopasować do wyglądu strony.css.' P. Zakończ publik.2. jak proste jest w tym przypadku zastosowanie szablonów. żeby przepisy były dodawane na stronę przez pracowników programu. Powered fey J o o m l a ! p r o v i d e s an e a s y .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. który powodowałby automatyczne wyświetlanie kodu źródłowego fontem Courier z szarym tłem. blogs and eCommerce applications. I n t r a n e t s . Dobrym pomysłem jest skopiowanie domyślnego pliku CSS i dodanie do niego swoich nowych stylów. Profesjonalne tworzenie stron WWW Zauważ.css do innego katalogu.purplehlghlighter { background: purple: color: #000000: } .t o . W ten sposób możesz nadać artykułom jednakową formę.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 .ït.bluehighlighter { background: blue: color: #000000: } . and rich m e d i a . dzięki czemu redaktorzy mogą korzystać ze stylów odpowiadających funkcjom strony.

m. Obecnie joomlaXplorer jest wydany prawie w 20 językach.przyklad. Vtfączone (t' W y ł ą c z o n e '<tJ W y ł ą c z o n e A<fr e s y v*ewrtętt z n e Kierunek t e k s t u Automatyczny wybór języka Kod języka Względne v Od lewej do prawej € > Nie O en Tak Zabronione elementy Klasy CSS szablonu Własny arkusz stylów O Nie ® Tak / / / / http :fllocalhost^ooml Na zdalnym serwerze adres może przypominać poniższy: http://www. 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. aby wprowadzić zmiany. Niestety. francuskim.css Kliknij przycisk Zapisz. idawanie obsługi plików i FTP Czasem konieczny jest bezpośredni dostęp do strony Joomla! za pomocą przeglądarki. W joomlaXplorer wyświetlana jest kompletna lista katalogów i plików w danym folderze serwera WWW. duńskim. a nawet pasek stanu informujący o wolnym miejscu. w kawiarence internetowej lub bibliotece). W polu Własny arkusz stylów wprowadź adres URL. który prowadzi do utworzonego wcześniej pliku.3. aby przejść do ustawień dodatku.yellowhighlighter { background: yellow. hiszpańskim i rosyjskim 3 .0. po otwarciu artykułu w edytorze TinyMCE.4) można klikając opcję w menu Komponenty. pliku CSS. nie jest dostępny po polsku — p r z y p . gdy korzystasz z urządzenia przenośnego lub publicznego dostępu do sieci (np.com/mytinymce. sunek 4. otwórz opcję Dodatki w interfejsie administratora Joomla!. color: #000000.3.in. 109 } Aby dołączyć stworzony arkusz stylów. Nie O Włączone ' .Rozdział 4. . Kliknij Editor— TinyMCE 2. • Dodawanie i modyfikacja dostępnych rozszerzeń . Po zainstalowaniu dostępu do joomlaXplorer (zobacz rysunek 4. dodane style będą dostępne w menu. kiedy niedostępny jest klient FTP. angielskim. tłum. jak przedstawiono to na rysunku 4. . Dzięki rozszerzeniu joomlaXplorer możesz dodać funkcjonalność zarządzania plikami do Joomla!. w interfejsie administratora. szczególnie wówczas. Od teraz. niemieckim. ¡cjdy „Anuluj" Wer sja skompresowana O Tak ' .

Na szczęście dla użytkowników Joomla! istnieje wiele rozszerzeń. a następnie dodać jako ostatni wpis do Main Menu. co pozwala na lepszą integrację z systemem Google. B 2 GF Picture I 20? 82 0'i:4i Ü8D/3 20/82 0 3 080/1 2 f 20/82 0 : t 080/1 23 20/22 00 071/1 4C : • a ah jrti. JoomlaXplorer umożliwia użytkownikom zmienianie praw dostępu do plików i katalogów za pomocą narzędzia przypominającego chmod. Rysunek 4. Czas instalacji i konfiguracji jest krótki. ponieważ ręczne stworzenie jej jest trudne. Joomap jest prostym komponentem. które m a j ą możliwość automatycznego tworzenia mapy strony. a zmiany wprowadzane są automatycznie i zawsze odpowiadają aktualnemu stanowi strony WWW. kategorii i sekcji.110 Joomla!.«en • iggioomla • Size File v Type Directory Directory Directory Modified 2 Qü/ 1 0 : 0 8S2 2 i 3 20A82 0 : Ü83/1 2 3 20/02 2 0 081/9 3 Perms 77 7 drwxrwxrwx 77 7 drwxrwxrwx 77 7 77 7 drwxrwxrwx 77 7 drwxrwxrwx 77 7 drwxrwxrwx 77 7 drwxrwxrwx 77 7 77 7 77 7 0 ff 6t> o.org/gf/project/joomlaxplorer/frs/ Dodawanie mapy strony Dodanie mapy strony jest często jedną z najlepszych metod uproszczenia nawigacji na niej. usuwania. które przedstawiono na rysunku 4. Mapy strony brakuje często na mniejszych witrynach. z menu. Najpopularniejszym narzędziem do tworzenia mapy strony jest rozszerzenie Joomap. Joomap potrafi także stworzyć mapę strony w formacie Google Sitemap XML.in. edytowania. a zarządzanie męczące. Komponent może zostać wykorzystany tylko przez użytkownika z uprawnieniami superadministratora. który można zainstalować dzięki opcji Rozszerzenia. Komponent joomlaXplorer można pobrać z poniższej strony: http://joomlacode. a także symulować połączenie FTP z poziomu przeglądarki internetowej 4 Joomla! J^piorer • H. zmieniania nazw. kopiowania. Pozwala na wysyłanie i pobieranie plików za pomocą dostarczonego interfejsu lub symulacji FTP.4. Profesjonalne tworzenie stron WWW Dii ectoiy:. Za pomocą rozszerzenia joomlaXplorer można zarządzać plikami.« ed • « =«» 9 »« ' • Igi sonatapi! • • pl Directory Directory Directory 27 K . tworzenia i rozpakowywania archiwów plików oraz katalogów.5. Mapa strony składa się m.gif pce Rozszerzenie można wykorzystać do wyszukiwania.ime .pl Directory Directory 20/Ö2 0 : Ü8D/1 2 3 20/82 0 : :> 080/1 2 ^m i • ^äiphpMy •d n • fS-eö. .. • 0C«« • ggicrt.

dodatkowe pola w profilach użytkowników.in. możliwość zdefiniowania wiadomości e-mailowych wysyłanych do nowych użytkowników. • . których działanie wpływa na pozycję strony w wyszukiwarkach internetowych. Funkcje CB to m. takimi jak systemy wiadomości prywatnych (PMS — Personal Mail System). zawarto więcej informacji na temat map strony (i Joomap). immunity Builder Community Builder (CB) jest rozszerzeniem o otwartym kodzie źródłowym. takich jak potwierdzenie Warunków korzystania z serwisu. informowanie administratora o nowych użytkownikach. wysyłanie wiadomości e-mailowych z żądaniem aktywacji konta. Jest to jedno z najpopularniejszych rozszerzeń w świecie Joomla!. ira 'zwierciedla Zanizację strony Joomap Mam Menu Heme Section • Category 2 111 • Another Arlid • Testcategory SectlonBlog • Another Article i rti îtarticli Cate> Secondary Menu #3 W rozdziale 13. które znacząco zwiększa możliwości Joomla! w zakresie zarządzania użytkownikami. integracja z innymi komponentami.Rozdział 4. listy użytkowników.5. które mogą zawierać dowolne informacje z profilu użytkownika.: • • • • • • • zarządzane hasła i grupy. własne zakładki. ścieżki połączeń między użytkownikami. Znajdziesz tam także opisy innych rozszerzeń. ustawianie przez użytkowników własnego awatara. galerie i wiele innych. • Dodawanie i modyfikacja dostępnych rozszerzeń sunek 4. zszerzenie omap umożliwia orzenie namicznej 3py strony. zarządzanie przebiegiem procesów. w formacie tekstowym lub HTML.

pojawi się ono na liście. Na tym kończą się podobieństwa. co zilustrowano na rysunku 4. Podstawą CB jest system logowania — odpowiada za złożony proces rejestracji oraz logowania — który może zostać rozszerzony przez administratora. podobnie jak Joomla!. Group Jive. własną strukturę wtyczek 4 .joomlapolis. plug-ins) nazywane są w Joomla! dodatkami — p r z y p . Za pomocą CB można dołączyć pola z dodatkowymi informacjami do profilu użytkownika. przedstawiony na rysunku 4. tłum. dzięki temu możliwa jest wymiana informacji z innymi dodatkami Joomla!. Oznacza to częściowe oddzielenie funkcji związanych z zarządzaniem użytkownikami od reszty interfejsu Joomla!. Główny komponent nadal nosi oryginalną nazwę Community Buildera {comprofiler). które są domyślnie dostępne. Większość funkcji zawarta jest w jednym z trzech kluczowych modułów dołączonych do CB.112 Joomla!. CB Gallery. System logowania CB można zintegrować (między innymi) z poniższymi rozszerzeniami Joomla!: • • • • • • • • • Simpleboard lub JoomlaBoard. . co przypomina rozszerzalny system zarządzania kontaktami. PHPBB bulletin board system. Mamboblog. Podstawowy ekran ustawień użytkownika.6. uddelM (prywatne wiadomości). co zwykły system rejestracji Joomla!. W przypadku CB istnieje możliwość określenia dodatkowych parametrów dla wybranych grup lub wszystkich użytkowników. com/ Jedną z wad CB (ale to jednocześnie zaleta) jest całkowicie odmienny system rejestracji i logowania niż standardowy w Joomla!. Yanc tab newsletter. 4 Wtyczki (ang. zOOm Gallery.7. Platforma logowania dostępna jest także za pomocą interfejsu rozszerzeń Joomla!. składa się prawie z tych samych opcji. Profesjonalne tworzenie stron WWW Rozszerzenie Community Builder można znaleźć pod adresem: www. Strona główna komponentu w interfejsie administratora zawiera listę wtyczek. Gdy zainstalujesz nowe rozszerzenie CB. Struktura Community Buildera Rozszerzenie CB posiada. myPMS.

L o n d y n Witryna " ^ ^ : % Group: .it and CB team. .1 4.Zaplecze . J a n Kowalski Jan .0 License htt p: I f w w w foood .com Community Builder includes following components: Application Icons Tabs Calendar overLib Snoopy Bes (Menus Vet sion N/A 1.net/agreement .02 1. 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.17 1. Be. 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 : Język witryny: Str efa c z a s o w a : . • Dodawanie i modyfikacja dostępnych r o z s z e r z e ń 113 ¡unek 4. mny ekran erfejsu mmunity ildera •edstawla listę ństalowanych /czek k. data.6.Wybierz język •V Kowalski kowalski@onet.2.0.7.Główny administrator Block U s e r : Approve User: Confirm User: No Yes ' Yes V v V ^¡j % ^ Dodatkowe pola m o g ą przyjąć jeden z 11 typów: • • przycisk wyboru. % fi % fi 9 % fi mm II V (UTC 00:00) Uniwersalny: Dublin.Redaktor .Administrator .net . COMMUNITY V2 Your version i s : Latest version: 1.Wydawca .pl ko walski@onet .2 Copyright 2004 . Lizbona.Autor .com Credits: Nick A.Operator .'Web fx .pi .Rozdział 4.0.Team@joomlapolis.ioomiapoiis.3 1.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. Documentation and Public Relations If y o u like the services provided by this free component. .htm http: /.com Donate in USD to CB.2 1.Team@joomlapolis. please consider making a small donation to support the team behind it: Donate in EUR to CB. Deiivate work m u s t piominently duly acknowledge original work and include visible online link www.2006 MamboJoe JoomlaJoe.eae .

8. przyciski wyboru dla kilku opcji. przycisk opcji. Profesjonalne tworzenie stron WWW • • • • • • • • • adres e-mailowy. Dla każdego z pól CB można wybrać dowolny z powyższych typów. ogranicznik pól. że podczas tworzenia nowego pola wybrana była opcja umieszczenia go właśnie w tej zakładce. możesz wykorzystać rozwijalną listę. N N N Use the table below to add new values. Być może zauważyłeś także. zatytułowanej Contact Info. Dodawanie nowego pola. które pozwala użytkownikowi określić 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 Description/"!" field-tip: text or HTML: Required?: Show on Profile?: User Read Only?: Show at Registration?: Published: Size: N > T.8. lista rozwijalna. adres W W W . że pojawiło się nowe pole. co przedstawiono na rysunku 4.7 wszystkie informacje o użytkowniku pojawiły się w jednej zakładce.5 Joomla 1. Rysunek 4. Możliwość dostosowania profilów użytkownika (włączając w to nawet „wymagane" polaj daje efekt w postaci zbierania najważniejszych informacji o odwiedzających. Przykładowo jeśli chcesz dać użytkownikom możliwość określania preferowanego typu CMS w swoich profilach.0 Vigenette Po zapisaniu pola musisz je opublikować. zobaczysz. Być może zauważyłeś. Pola możesz dodawać za pośrednictwem opcji Field Management. Następnie. że na rysunku 4. wielowierszowe pole tekstowe. dostępnej w menu Community' Buildera. przedstawionego na rysunku 4. obszar edycyjny. Add a Value Name Joomla 1.7.114 Joomla!. jeśli przejdziesz do ekranu ustawień profilu użytkownika. System . pole tekstowe.

rsunek 4. pcja Tab lanager rzechowuje stę zakładek.9). jest możliwość ustawienia określonego awatara (obrazka). . Wszystkie zakładki w profilu użytkownika wyświetlane są w Tab Manager (przedstawiono to na rysunku 4. PMP MyPMS i Pro. YaNC Newsletters. Większość z nich łączy system autoryzacji CB z innymi rozszerzeniami. że domyślna instalacja zawiera wtyczki łączące z Simpleboard Forum. możesz zmienić nazwę zakładki. Na rysunku 4.10 zilustrowano ekran Plugin Manager. Mamblog Blog. że użytkownicy odwiedzający stronę angażują się w jej funkcjonowanie. Obrazek ten wyświetlany jest w profilu użytkownika. których funkcje związane są z profilem użytkownika. Wtyczka typu user odpowiada za kluczowe funkcje systemu lub za połączenie z innymi rozszerzeniami Joomla!. Zauważ. Korzystając z tej opcji.Rozdział 4. zawierających nie tylko informacje o użytkownikach. ich graficznej wizytówki. to jednak mały obrazek pozwala w większym stopniu zakomunikować własną osobowość. blog użytkownika. ale także połączonych z innymi rozszerzeniami. co oznacza. np. watar użytkownika Jedną z kluczowych opcji. Chociaż wybrana nazwa użytkownika może go wystarczająco reprezentować. Więcej wtyczek tego typu można znaleźć na stronie internetowej CB. Część z nich jest oznaczona w kolumnie Type jako templates. • Dodawanie i modyfikacja dostępnych rozszerzeń 115 CB umożliwia stworzenie dodatkowych zakładek. zostanie wyświetlony panel zawierający dodatkowe parametry. że wpływają na wygląd CB. jej pozycję i typ wyświetlania. tóre można odać do profilu żytkownika tyczki CB Community Builder zawiera obsługę własnych wtyczek. który przedstawia listę wtyczek zainstalowanych domyślnie.9. Jeśli jest to zakładka szczególnego typu (na przykład zakładka menu). które sprawiają.

którzy nie mają nic przeciwko publikowaniu ich obrazków. dopóki nie zostaną zaakceptowane... W zestawie tym znajdują się następujące elementy: • comprofi Ter — To archiwum zawiera właściwy komponent CB. cblogin • — Moduł logowania. Pobieranie i instalacja Po pobraniu Community Buildera zauważ. lecz zestaw plików. aby awatary były wyświetlane. zaloguj się na stronę. . Fanfilmy inspirowane różnymi produkcjami tworzone są od lat.. a następnie wybierz pozycję My CB Profile w User Menu. V V V * . a także nie są przedstawiane w sposób negatywny. Następnie możesz wybrać opcję Update Your Image w Edit menu. Opcja moderacji może być bardzo przydatna w przypadku strony o tematyce rodzinnej lub ochrony przed naruszaniem praw autorskich do obrazków. . Prawa autorskie i wykorzystanie obrazków w internecie to temat pełen kontrowersji. 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 temptótes tompiates templaíes témplate. o ile nie są wykorzystane do działalności zarobkowej. Profesjonalne tworzenie stron WWW Plncjin Managei [sits] a Rysunek 4. żeby dodać własny obrazek.id Pack. Upload File & Install Wysyłanie obrazków może być dodatkowo moderowane. który należy dodać do głównej strony Joomla!. a tylko kilka studiów zabrania tworzenia takich dzieł. na której masz zainstalowany CB.. Aby umożliwić użytkownikom dodawanie obrazków. który należy zainstalować w Joomla!. Kliknij ją.. powinieneś skontaktować się z prawnikiem. Przejdź do profilu użytkownika.uje File Package File: j Ftzeglądaj.116 Joomla!. Ekran Plugin Manager przedstawia listę wtyczek zainstalowanych w systemie CB Install Ptuyin Filter: . gdzie zobaczysz pustą ikonę. Jest wielu autorów i posiadaczy praw autorskich.Select Type - V C dei M -1 V V 1 2 3 4 g. że nie jest to pojedynczy plik.10. Nie zostanie on jednak wyświetlony do momentu zatwierdzenia przez administratora. 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 installed Published Peoi d e i V V v/ • CB Core • • CB Menu CB Connections • 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 Public Public Public Public Pokaż: 20 Uplo. Jeśli martwi Cię status prawny. Bez wątpienia kopiowanie treści chronionych prawem autorskim jest naruszeniem praw właściciela — fakt ten nie podlega dyskusji. które należy zainstalować.

Na stronie narzędzi CB możesz wybrać opcję instalacji przykładowych danych. Systemy płatności (Payment systems). systemów elektronicznej płatności i innych. Amazon.Rozdział 4. koordynują oraz ułatwiają komunikację wewnątrz i na zewnątrz organizacji. Ogłoszenia (Classified Ads). Płatny dostęp (Paid Access and Content). skopiowania nych użytkowników Joomla! do systemu CB. a także sprawdzić poprawność danych w bazie CB rganizacje i e-commerce Rozszerzenia związane z organizacjami i e-commerce często służą do połączenia systemu Joomla! z zasobami zewnętrznymi (na przykład zewnętrznymi sieciami). i moduł cblogin — pozwala użytkownikom zalogować się do systemu CB. którzy właśnie odwiedzają stronę. Darowizny (Donations). skopiować dane użytkowników z obecnego systemu rejestracji. s o that the u s e r . 117 Wymagane są tylko dwa elementy: komponent comprofiler — odpowiada za zarządzanie systemem z poziomu interfejsu administracyjnego. • Dodawanie i modyfikacja dostępnych rozszerzeń • • mod_comprof i 1 ermoderator — Przypisuje poszczególnym moderatorom możliwość zatwierdzania procesu rejestracji. Zarządzanie bannerami (Banner Management). dzięki którym można skorzystać z programów partnerskich. Bannery narożnikowe (Corner Banners). • .11. 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. mod_comprofi 1 eronl i ne — Wyświetla listę użytkowników CB. Ads & Affiliates) — Zawiera podkategorie: Programy partnerskie ( A f f i l i a t e Advertising). E-Commerce — Zawiera podkategorie: Handlowe programy partnerskie (Affiliate Carts).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.11. Comprofiler to także oryginalna nazwa Community Buildera.» G e n e r a l .s Configuration . Aukcje (Auction). Rozszerzenia dla tego obszaru pogrupowano w JED w następujące kategorie: • Reklamy i programy partnerskie (ang. •Unek 4. dołączone narzędzia pozwalają zainstalować przykładowe dane. 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 . do której odwołania znajdziesz w wielu miejscach zaplecza. Tools Manager This will load sample data Into the Joomla Community Builder component. Reklamy Google (Google Ads). Jak zilustrowano na rysunku 4. Sklepy internetowe (Shopping Cart). Rozszerzenia tego typu wykorzystywane są głównie przez organizacje. Odnośniki i reklamy tekstowe ( Text & Link Ads). a także sprawdzić poprawność danych w bazie CB. Bilingi i faktury (Billing & Invoices). Przy pierwszym uruchomieniu CB powinieneś wybrać opcję Tools z menu. 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.

Jedzenie i napoje (Food & Beverage). nie istnieje funkcja ograniczania dostępu do treści do poszczególnych użytkowników w ograniczonym czasie. Książki i biblioteki (Books & Librarles). Wiki. Pages-and-Items. Seyret. viaKLIX i inne. JContent Subscription. Rozszerzenie AEC można połączyć z innymi (np. Zarządzanie projektem i zadaniami (Project & Task Management).php/AECl.118 Joomla!. Dodatkowo na stronie rozszerzenia znajduje się forum 5 . Podatki i zastawy hipoteczne (Taxes & Mortgages). Profesjonalne tworzenie stron WWW • Dla poszczególnych rozszerzeń (Extensión Specijic) — Zawiera podkategorie dla rozszerzeń i wtyczek: AdsManager. Fireboard Forum. RSGallery2. 2Checkout. dlatego upewnij się. płatne i dożywotnie oraz darmowe próbki. tłum. Social Bookmarking. jDownloads. CRM. powyższy komponent dodaje na stronie Joomla! funkcjonalność płatnego dostępu do treści. ECJC. na przykład darmowe okresy próbne. SOBI2. BannersManager. Niektóre z możliwości oferowanych przez rozszerzenia z tych kategorii potrafią zmienić prostą stronę Joomla! w profesjonalną i (lub) komercyjną witrynę. JoomLeague. jak: Paypal. Freeway. Nieruchomości (Real Estate). Authorize. JoomSEF. Opcja subskrypcji jest przykładowo jedną z popularniejszych funkcji. org/index. html 5 Dostępne po uiszczeniu opłaty —przyp. Status internetowy (Online Status & Profile). a także połączenie z różnymi usługami płatności. Phoca. Za pomocą interfejsu administratora można w prosty sposób skonfigurować opcje płatności za treści. . nBill. Umożliwia określenie różnorodnych planów płatności. Hot Property. na którym można uzyskać pomoc.Net. VirtueMart. Allopass. Możliwe jest także ustawienie subskrypcji dla różnych kont użytkowników Joomla!. Odwiedź stronę AEC pod adresem: https://globalnerd. JCE. Community Builder. SEF Service Map. AlphaContent. Łodzie i jachty (Boat & Yachting). PUArcade. • • Menedżer subskrypcji Jedną z wbudowanych funkcji Joomla! jest możliwość ograniczenia treści dla poszczególnej grupy lub po prostu uczynienia artykułów niewidocznymi dla niezarejestrowanych użytkowników. Twórcy AEC ciągle dodają nowe systemy płatności. Takie możliwości ma rozszerzenie Open Source Account Expiration Control & Subscription Manager (AEC). Edukacja (Education). Niestety. Joom!Fish. DOCMan. Pomoc użytkownikom (Help desk). że dysponujesz najnowszą wersją. Klienci i oprogramowanie do pracy grupowej (Clients & Groupware) — Zawiera podkategorie: Autorzy (Authors). Jak przedstawiono na rysunku 4. CB). Rynki branżowe (Vertical Markets) — Zawiera podkategorie: Samochody i inne pojazdy (Auto & Vehicles). Jomres. co pozwala na korzystanie z takich systemów płatności. dcsFlashGames.12.

a także składania zamówień.13). an architect. His paintings and ceramic pieces decorate numerous places throughout the world. . so just tell us if you have a problem with one of the W are CUIIently woihimj o t incotpoiatmy: e u WorłdPay O u also have the choice to offer non-automatic payments to your plans This way. ^ y&KBUXBs $242. His paintings arid ceramic pieces decorate numerous places throughout the world. a sculptor. a n d a ceramist. przedstawiono na rysunku 4. and a ceramist.12. rsunek 4. imponent AEC nożliwia introlowany istęp treść oparciu model ibskrypcyjny What G a t e w a y s ate s u p p o r t e d ? 119 A C ciiiientlysupports: E Paypal fj)1 Fajimi Authori/. a sculptor.13. there might be a bug left here or there. a painter. : Ś242.e. a painter.12 A d d to Cart Capelo is an artist.12 Quantity: 1 A d d to Cart Interfejs administratora.Net fy* Subscription | the AEC hns also I ecently •irlrleil stippoittoi tliese: Supported Gatt Other Features Working with ot viaKLIX „ ii «. 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 t Display* «Start 10 v < Prev t 2 • Ceramic Sink.:" : gggj^l'heckout M. • Dodawanie i modyfikacja dostępnych rozszerzeń sunek 4. you can even handle customers who cant pay with one of the p VISA1 klep internetowy MicroShop z płatnościami Paypal MicroShop jest wygodnym i prostym sklepem internetowym (zobacz rysunek 4. który umożliwia ustawienie opcji systemu płatności. który umożliwia dodawanie przedmiotów i składanie zamówień.0!Tt «v | Allopass m While these integrations have been tested to be working. and a ceramist.14. ozszerzenie [icroShop vożliwia a stronie odawanie zedmiotów o koszyka Browse Capelo C a p e l o " is an artist. an architect. co upraszcza zamówienie. a sculptor. ari architect. Jest w pełni zintegrowany z systemem płatności Paypal. Capelo is an artist. a painter.Rozdział 4.

Każde z nich ma nazwę. a dokładniej — do kontroli nad wieloma zadaniami i ludźmi. Interfejs administracyjny umożliwia całkowitą kontrolę nad prawami dostępu i aktualnymi projektami. Nowy projekt tworzy się.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. klikając przycisk New Project po wybraniu zakładki Projects. aktualny postęp (np. który jest odpowiedzialny za to zadanie. Funkcja obsługi dokumentów i plików powiązanych z projektem sprawia. Ponieważ działa w ramach systemu Joomla!. w procentach) i użytkownika. że to rozszerzenie staje się miniaturową aplikacją do pracy grupowej.15. Dla systemu Joomla! istnieje rozszerzenie o nazwie Project Fork. datę rozpoczęcia. które umożliwia zarządzanie projektami z poziomu przeglądarki.14. Rozszerzenie zostało pomyślane w ten sposób. Jak zilustrowano na rysunku 4. Po utworzeniu projektu można przypisać do niego zadania. Programy takie jak Microsoft Project lub Copper doskonale nadają się do zarządzania dużymi projektami. dostęp do Project Fork możliwy jest w każdym miejscu. ponieważ w przeciwieństwie do innych zadań związanych z zarządzaniem stroną administrator projektu nie musi mieć uprawnień administratora strony. stan (np. Profesjonalne tworzenie stron WWW [ Simple Layout | Extended Layout ] Rysunek 4. ale ich sztywność ogranicza praktyczne wykorzystanie przy małych i średnich projektach.2 (Check for latest version) C o n t r o l Panel Statistics SfedlAdministration j1 U Store Summary §|i Your Store: : Control Panel mwm w Product List Category Tree Orders )% Edit Store •!<'. anulowany. Różnorodne opcje tworzenia raportów pomocne są w analizie obecnej i wcześniejszej wydajności. 2> Coupon Menedżer projektów Project Fork Koordynacja ludzi pracujących nad danym projektem może być trudna i frustrująca. kiedy ulegnie ono zmianie. w którym można przeglądać strony internetowe. List Payment Methods fp.). . kompletny. opóźniony itd. rozszerzenie Project Fork jest narzędziem do zarządzania projektami.120 Joomla!. Większość funkcji zarządzania projektami w Project Fork (włączając w to konfigurację użytkowników) dostępna jest z poziomu strony Joomla!.Reports 1 2> Shipping . jeśli nie zostaną użyte właściwe narzędzia. datę ukończenia. opis w postaci formatowanego tekstu. Zaplecze rozszerzenia MicroShop umożliwia ustawienie systemów płatności takich jak Paypal VirtueMart 1.1. Dodatkowo użytkownik przypisany do zadania może być automatycznie powiadamiany.

Strona główna rozszerzenia Project Fork przedstawia listę projektów. • Dodawanie i modyfikacja dostępnych rozszerzeń 121 project ^i-rtrol Panel Projects iOid y o u k n o w ? Voters clicking or» a project.your éurrerrt workspace.15..Rozdział 4.00 0 00 0 00 neWriter lożliwia godne towanie .B i l l a b l e H o u r s .14 * 1 5 * 16 17 1 8 :rfîSS $ «K* 10 *=» 11 m Hon hie October Weil 1 «S35 2008 Tim Fi i 3 « Sat 4 Reports główna zszerzenia » 0. Zostanie wyświetlona lista odnośników do następujących funkcji: • • Timesheet Report by Company (Przegląd kart pracy według firm)'. Timesheet Report by Project (Przegląd kart pracy według projektów)'. Można tworzyć powtarzalne zadania.16. . Select your proj Tasks File M a n a g e i Calendar Board Profile Us » A nevy project h a s b e e n created! / Projects Hew Copy Title Zapozmii ? si ? z J o o m l a ! Archive Delete Project fountlei Administrator Total t a s k s .00 0. Interfejs tego rozszerzenia. 0 Pokaż: wszystko V lle*v Copy A i chive Delete Search.00 0 00 + 0. ] j linek 4. a także wyświetlać karty pracy.00 0.zystkich /nności iązanych irojektem j klientami 7 2 3 24 - 25 : 30 31 * Podobnie jak w przypadku Project Fork.00 0 00 + 0. Aby uzyskać dostęp do tych funkcji. ft will be set as. 0 Cieatedon 10/30/2008.00 iOJO 0. który pozwala rejestrować czas pracy.00 + 0. kliknij odnośnik Reports (lekko niefortunna nazwa) w prawym górnym rogu. większość funkcji rozszerzenia TimeWriter dostępna jest za pośrednictwem strony głównej.00 0. możesz wykorzystać rozszerzenie TimeWriter.27 m 28 2 9 20 • 21 « 22 13 •.16.00 0.00 0. zilustrowano na rysunku 4. do których dany <tkownik ma dostęp zszerzenie kart pracy Aby zarządzać czasem w projekcie (a szczególnie zliczać płatny czas). Total m e m b e r s 1 Total ł j i o u p s . sunek 4. rona Timesheet Calendar « Suit 39 5 40 12 41 19 42 26 43 Total Billable H o u r s : Total N o n . »It . Dostępne są dwa sposoby prowadzenia rejestru: czas przeznaczony na klientów lub czas przeznaczony na projekty.00 + 000 0. .

Jest to opłacalne tylko w sytuacji. przedstawione na rysunku 4. sprawdź zawartość kategorii Auction w JED. Następnie możesz kliknąć odnośnik Manage Projects. w którym będą mogli kupować produkty i usługi. Jeśli mimo wszystko chciałbyś dodać takie funkcje. Kliknij odnośnik Manage Companies. Report Total Mileage (Przegląd całego przebiegu)-. Wielu ludzi żyje ze sprzedaży produktów za pośrednictwem tego serwisu. Kolejnym krokiem jest kliknięcie ikony Assign na liście projektów. W praktyce oznacza to. które dosłownie dodają funkcję prowadzenia aukcji na stronie Joomla!. aktualną cenę i datę zakończenia aukcji. zastosowanie własnej implementacji serwisu aukcyjnego jest kiepskim wyborem dla większości webmasterów. Profesjonalne tworzenie stron WWW • • • • • • • Report Total Hours by Project (Przegląd całkowitej liczby godzin dla poszczególnych projektów). . aby przypisać użytkowników Joomla! do danego projektu. aby stworzyć nowy projekt. Istnieje kilka rozszerzeń aukcyjnych. a oglądających kierować na aukcje w serwisie eBay. aby dodać nową firmę. przebiegu)'. Mileage Log Form (Formularz notowania Manage Companies (Zarządzaj Manage Projects (Zarządzaj firmami)'. przy czym zapewnia ochronę przed fałszywymi przebiciami. Rozszerzanie My EBay Store. Funkcje tworzenia raportów umożliwiają ogólne zarządzanie. umożliwia zaprezentowanie oferty Twojego sklepu w serwisie eBay na stronie Joomla!. Rozszerzenie wyświetla informacje o produkcie. Bez problemu przedstawia informacje o więcej niż 150 aukcjach. Ponieważ eBay pozwala dotrzeć dosłownie do milionów potencjalnych klientów. Set User Preferences (Ustawienia użytkownika). podnosząc cenę do akceptowalnego poziomu. które umieszczą informacje o aukcjach na Twojej stronie Joomla!. kiedy wielu kupujących przebija swoje oferty. że możesz założyć wirtualny sklep na stronie Joomla!. Informacje na temat poszczególnych aukcji są dynamicznie aktualizowane i zawierają najświeższe informacje. dołączone zdjęcia. Jeśli chciałbyś zostać jednym z nich. a także tworzenie raportów tygodniowych dla określonych parametrów. Większość udanych przedsięwzięć biznesowych opiera się na powracających klientach. Joomla! może pomóc! Dostępna jest spora liczba rozszerzeń. musisz najpierw utworzyć firmę — dopiero wtedy możesz zacząć notować liczbę godzin. Nie inaczej jest w przypadku przedsięwzięć uruchomionych w serwisie aukcyjnym eBay. Z poziomu zaplecza możesz zaimportować dane Mambotastic Timesheets. projektami). Show Vehicles (Pokaż listę pojazdów)'. Zanim utworzysz projekt.17. Dzięki wstawieniu na stronie sklepu aukcyjnego stworzysz dla regularnych odwiedzających miejsce.122 Joomla!. Dodawanie na stronie platformy aukcyjnej Strona serwisu aukcyjnego eBay jest jedną z najpopularniejszych witryn internetowych.

Rozszerzenia przedstawione w tym podrozdziale pozwolą Ci wzbogacić typ treści zarządzanych za pomocą Joomla! o podcasty.Rozdział 4. zszerzenie ' EBay Store świetla tualne órmacje temat branych aukcji 123 M Ebay Store y 1 SEARCH J o Reload M V »L YR 52 b H¡ . Istnieją nawet rozszerzenia potrafiące zmienić stronę Joomla! w rozszerzalny system wiki. .99 3 minii U 1 F I Û P RAIE a • R OT T G L D E fUNZIONitíl il U CLO E F R DO AD E D ER 62.A E 1M : P i Pd UB Ms : -I o S ui e M2 M4 P& P ER 45.18 pozwala ustawić dobór wyświetlanych przedmiotów.» Tak ' ' Nie Tak ® Nie B>. Ekran parametrów przedstawiony na rysunku 4. mapy i inne.17. • Dodawanie i modyfikacja dostępnych rozszerzeń ¡unek 4.ry Store Module Size Headet Image Ebay L o g o Enable Search Box Search Box position Wide Skyscraper (160 x 600) Electronics (GRAY) 12: Gray ® Tak O V Y V O Nie Góra ( t ) Dolne Sort By S o i l Dir Tar get L ink Hull Result Handling. P«il«»metry tmnlufu Ebay Site Seller ID K e y w o r d Search ferrari Search title and description United States v O Tak Cr) Nie Search í . S h o w Gallery t n u g e EndTime v Descending (?) Ascending O ® Tak O Nie V Show Most Watched Items on Ebay. 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 . U ' Ocehiai 8 speccr« • Ryban pornobrile: a E te. Jego położenie. a także pozostałe ustawienia możesz zmienić.55 18 m U i n ' J M 1 J Moduł My EBay Storę może zostać umieszczony w dowolnym panelu na stronie Joomla!.:1. 0 Tak O Nie awartość strony Sercem każdej strony opartej na CMS jest jej zawartość. wybierając moduł na liście opcji Moduły. kartki elektroniczne. avsater NW ER 24.00 32 min.

Prognozy na rok 2010 przewidują poszerzenie grupy odbiorców do 45 milionów. Najpopularniejszą stroną zawierającą podcasty jest iTunes — witryna firmy Apple. Najnowsze badania Bridge Ratings pokazują. Podcasting. Słowniki (Glossary & Directory). Program będzie na bieżąco automatycznie pobierać najnowsze wiadomości na Twój komputer do późniejszego przeczytania. Katalogi i dokumentacja (Directory & Documentation) — Rozszerzenia.8 miliona ludzi w 2005. Za pomocą aplikacji zwanej czytnikiem kanałów można subskrybować (zapisać się do) dany kanał. Blog. Panoramy (Panorama). Zawiera podkategorie: Grafiki dla artykułów (Article Images). Newsy na stronie głównej (Frontend News). Katalog (Directory). Pokaz slajdów dla artykułów {Article Slideshow). Grafika i multimedia (Images & Multimedia) — Rozszerzenia. które dodają obsługę treści multimedialnych. Być może zauważyłeś ikonę odpowiadającą za RSS na ulubionej stronie z newsami. Popularne treści (Popular Content). które umożliwiają import lub tworzenie treści wykraczających poza standardowe artykuły Joomla!. Następnie możesz odsłuchać ich zawartość na komputerze (częściej będzie to odtwarzacz MP3 lub iPod). Mapy (Maps). Odtwarzacze audio i galerie (Audio Players & Galleries). Pokaz slajdów (Image Slideshow). Mikroblogi (Microblogging). które umożliwiają tworzenie dokumentacji na stronie. Galeria filmów (Video Gallery). Rzeczywistość wirtualna i 3D (Virtual Reality & 3D). RSS to umowne oznaczenie dla grupy formatów opartych na języku XML. Zawiera podkategorie: Lista artykułów (Article Listing). Dodatki do galerii (Photo Galleries— extras). Odtwarzacze wideo (Video Players). którzy pobierają podcasty. co upodabnia czytniki podcastów do czytników kanałów. Streaming i nadawanie (Streaming & Broadcasting). Zawiera podkategorie: Bibliografia (Bibliography). że liczba ludzi. Profesjonalne tworzenie stron WWW Rozszerzenia dla tego obszaru pogrupowano w JEB w następujące kategorie: • Zawartość i newsy (ang. Radio internetowe (Radio & Shoutcast). Losowe newsy i artykuły (Newsflash & Random). Grafiki (Images). . Paski z wiadomościami (News Tickers & Scrollers). Cytaty (Quotes). wzrosła z 820 000 w 2004 roku do 4. Pobieranie plików (Downloads). Najnowsze pliki audio pobierane są przez czytnik podcastów (najczęściej w formacie MP3 lub AAC) na dysk komputera lub urządzenie przenośne. Kartki elektroniczne (eCards). które zawierają informacje o subskrypcj i. Portfolio i katalogi (Portfolio & Catalog). Odnośniki (Weblinks). Podcasting to wersja audio kanałów RSS. Najnowsze wiadomości (Latest News). Content & News) — Rozszerzenia. Według „Business Week" przez ostatnie sześć miesięcy roku 2004 i pierwsze sześć miesięcy 2005 liczba podcastów wzrosła o 2500 procent. Oceny i przeglądy (Ratings & Reviews). Podcasty wykorzystują praktycznie identyczne pliki RSS. Kanały RSS (RSS Syndicate). FAQ. Galerie zdjęć (Photo Galleries). • U Podcasting w Joomla! Podcasting to nowe znaczące medium. Wyświetlanie multimediów (Multimedia Display).124 Joomla!.

Joomla! has some wonderfully talented people taking Open Source concepts to the forefront of industry standards. It is worth mentioning that this does not have a negative effect on migrated Kanał tworzony jest na podstawie ustawień określanych w interfejsie administracyjnym.. Potrzeba dzielenia się cyfrowymi zdjęciami i wydarzeniami ze swojego życia między rozdzielonymi o setki czy tysiące kilometrów członkami rodzin sprawia. Rozszerzenie automatycznie wyszukuje nowe pliki w określonym folderze i tworzy kanał na podstawie jego zawartości. na ekranie konfiguracji komponentu. designers. ileria zdjęć na stronie Joomla! Galerie zdjęć (pryede wszystkim zawierające zdjęcia z rodzinnych albumów) zaczynają dominować w sieci. A new Plugm takes care of the rest.. że galerie zdjęć stają się bardzo atrakcyjnym narzędziem.. Johan. This has been an This is now implemented by Inserting a Re._Version_l. » ? m J.. czyli vodcastingu (yideo-on-demangcasting). • Dodawanie i modyfikacja dostępnych rozszerzeń 125 Joomla! umożliwia dołączenie podcastów na stronie. które dodaje funkcje obsługi podcastów. Only one edit window! How do ! . Niestety. "? What is the FTP layer for ? 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.id mo« e..20. A ' create "Read more.. W ten sposób użytkownicy będą mogli pobrać go automatycznie. ( Wyloguj J Podcast The Joornla! Core Team consists of volunteer developers.Rozdział 4. sunek 4.i W#b Link » Logout oduł Podcast lite zawiera Inośnik nożliwiający >danie ibskrypcji 'dcastów We are Volunteers & & ^ M- Stick to the Code! # si _ Login Form Witaj Administrater. to niedociągnięcie powinno zostać wkrótce poprawione. 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.19. można pobrać pod adresem: http://wwwjIleblanc. Biorąc pod uwagę znaczący wzrost vodcastingu. • Your Details • Submit an At tide • Submit . modułu i dodatku.5 is a major leap forward and represents the most exciting Joomla! release in the history of the project.l_Stable/ Powyższy pakiet składa się z komponentu. co przedstawiono na rysunku 4. . arid here we are with our latest 1. Rozszerzenie umożliwia także integrację z serwisem iTunes. zilustrowany na rysunku 4. Rozszerzenie Podcast Suitę. To ensure this code release. mixed it with Cola. Joomla! 1. 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. Moduł z pakietu Podcast Suitę. took the bait. administrators and managers who.19. Wilco Jansen resorted to sending rum to joint lead-developer Johan Janssens.5 release It looks like pirate talk will figure quite a lot in future Joomla1 development! Więcej. które połączone dają pełną funkcjonalność podcastów w Joomla!. wyświetla odnośnik do dynamicznie tworzonego kanału RSS.com/joomla/Articles/Podcast_Suite. Wiele krążących w sieci dowcipów dotyczy liczby przesyłanych zdjęć małych dzieci — z powodu skali zjawiska dojdzie do przeciążenia łączy. tak żeby dodanie nowego pliku audio powodowało jego automatyczne pojawienie się na odpowiednim kanale RSS. to rozszerzenie nie ma funkcji obsługi wideo. who's had a penchant for rum ever since the first "Pirate's of the Caribbean" movie screened.

or Q u i c k T i m e Player W i d t h Player Hekjht Enclosure Link Titles ® Links O Flash Player O HTML Code : Quicktime Player Listen Now! E»K-losi. ImageMagick lub Netpbm) dostępna jest na Twoim serwerze PHP. Joomla! może być odpowiednim rozwiązaniem. Funkcję galerii zdjęć może spełniać kilka różnych rozszerzeń. Posiada także kompletną obsługę Joomfish. Według ostatnich wyliczeń wyszukiwanie Google prowadziło do 50 różnych rozszerzeń dodających galerie na stronach Joomla!. Jest to jedna z najpopularniejszy aplikacji do tworzenia galerii. a także działa nawet na popularnych (dużych) stronach internetowych. Dodatkową funkcję stanowi zarządzanie animacjami Flash!. wielu typów multimediów (nie tylko zdjęć). Zanim zainstalujesz to rozszerzenie. zintegrowany z systemem rejestracji użytkowników Joomla!. Rozszerzenie RSGallery2 jest najwyżej ocenianym wśród aplikacji przeznaczonych dla Joomla! i cechuje się bogactwem funkcji. R a s h playei. może zostać połączona ze stroną Joomla! za pomocą specjalnej wtyczki Gallery 2 Bridge. występuje w kilkudziesięciu językach. przez co może działać w wybranym języku. Nie i v Tak Rysunek 4. Umożliwia profesjonalne zarządzanie galeriami i obrazkami. zarówno komercyjnych. sprawdź system Gallery2.21) napisano z myślą o Joomla!. jak i darmowych. zawiera wiele profesjonalnych funkcji. czy tylko umieścić ujęcia pierwszych kroków Twojej córeczki. p r z e c h o w y w a n i a 3600 MIME t y p e audio/mpeg » Items 5 Tytuł My Podcast H y regular podcast Opis Niezależnie od tego. Profesjonalne tworzenie stron WN 1W K o n t kjtii i i c j a Pamięć p o d r ę c z n a . Konfiguracja pakietu przebiega za pomocą komponentu dołączonego do Podcast Suitę Path f o i u p l o a d e d m e d i a components/com_podcast/media Link titles. Automatycznie tworzy kanały RSS. zawiera obsługę komentarzy. c o d e . System kontroli dostępu. Jeśli masz zamiar zarządzać dużą łiezbą zdjęć cyfrowych.» i . Rozszerzenie RSGallery2 (zobacz rysunek 4. że przynajmniej jedna z popularnych bibliotek graficznych (GD2. czy chcesz przedstawić profesjonalne portfolio. upewnij się. Chociaż jest to oddzielna aplikacja PHP. Tworzone pliki HTML i CSS są zgodne ze standardami.126 Joomla!.20.ii e C o d e € z.. .

Strona zawiera także kompletną dokumentację API. Rozszerzenia dla tego obszaru pogrupowano w JED w następujące kategorie: • Komunikacja (ang. które poszerzają Joomla! o funkcje budowania wirtualnych społeczności. Integracja z forami (Forum Bridges).Rozdział 4. czytać i wysyłać wiadomości na forum poświęconym rozszerzeniu lub uczyć się na podstawie zamieszczonych przewodników. zarządzanie galeriami. kalendarz imprez lub nawet wspólnie redagowane przepisy. Fora (Forums). Księgi gości (Guest Book).21. . które pretendują do tytułu Web 2.iHf. po zarządzanie bazą danych zdjęć. E-mail. Formularze (Forms). Komentarze (Comments). Dostępne są przewodniki opisujące wszystkie aspekty — od instalacji. 127 Home O. po tworzenie modułów. Kontakty (Contacts). i y Ocmo Maci« • flower_5_bg_040404 ifesjonalny erfejs \Gallery2 raszcza 'ządzanie ęciami 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.net/). Dodatkowo opcja wprowadzania zmian w CSS umożliwia dopasowanie galerii do wyglądu aktualnego szablonu. pobrać najnowszą wersję rozszerzenia.0. • Dodawanie i modyfikacja dostępnych rozszerzeń ¡unek 4. z których składa się platforma RSGallery2. które pozwalają dodać różne funkcje komunikacji między użytkownikami. zmianę opcji wyświetlania. Komunikacja jest kluczowym elementem stron. opis wszystkich klas. przedstawiono w rozdziale 10. przez dodawanie zdjęć (pojedynczo lub w pakietach). Communications) — Zawiera podkategorie: Zakładki i polecane (Bookmarks & Recommended). czat. przez własne szablony dla galerii. Warto odwiedzić stronę domową RSGallery2 (http://rsgallery2. Możesz tam znaleźć przykładową implementację galerii. Dodatki do forów (Forum extras). omunikacja na stronie Istnieją rozszerzenia Joomla!. Czat (Chat). Kilka rozszerzeń. np. z którego można zarządzać każdym aspektem rozszerzenia: od konfiguracji systemu.

powiadomienia. Rezerwacja (Booking & Reservations). Jedną z najlepszych funkcji dynamicznego systemi takiego jak Joomla! jest fakt. A gdyby Twoje . • Kalendarze i wydarzenia (Calendars & Events) — Zawiera podkategorie: Urodziny i wydarzenia historyczne (Birthdays & Historie Events). co dzieje się na stronie niż w przypadku braku komentarzy. chińskim czy norweskim. Umożliwiały odwiedzającym zamieszczanie komentarzy (najlepiej komplementów) lub sugestii związanych z zawartością strony. Zgoda na komentarze wymaga od administratora większej uwagi odnośnie do tego. zdradzają informacje osobiste. Shoutbox. Dodatek Akocomment umożliwia użytkownikom Joomla! dodawanie komentarzy pod każdym artykułem. Fora internetowe są często puste. Musisz zdawać sobie sprawę. Księgi gości zaliczane są do pierwszy funkcji komunikacyjnych. Prawie każdy lubi od czasu do czasu dorzucić swoje trzy grosze. Funkcja dodawania komentarzy do istniejącej treści może być solidną motywacją dla użytkowników. Quizy i badania (Quiz & Surveys). ponieważ brakuje na nich prowokatorów piszących nowe wiadomości. dodawanie. które skłaniają innych do odpowiedzi. Ludzie często nadsyłają treści zabronione. np. Profesjonalne tworzenie stron WN 1W Listy mailingowe (Mailing & Distribution Lists). Interfejs administracyjny umożliwia dokładną konfigurację rozszerzenia. Posiadanie sekcji komentarzy wymusza konieczność moderacji. Data i czas (Date & Time). włączając w to zakładki. zgłaszanie. Najczęściej stosowana wersja rozszerzenia to Akocomment Tweaked Special Edition. Newsletter. Sondy (Polls). Wyszukiwarka Google wykorzystuje okolicznościowe bannery. że zmienia się automatycznie. SMS & PMS. które sięgają początku samych stron internetowych. Kalendarze (Calendars). Zegarki (Clocks). Księga gości Jedną z funkcji najczęściej pojawiających się na hobbystycznych stronach WWW jest księga gości. Dzięki temu wygląda na ciąglt aktualizowaną — nawet jeśli nie była odświeżana od jakiegoś czasu.128 Joomla!. o ile nie chcesz. Komunikacja z użytkownikami (User interaction). ulubione i szablony. atakują innych. że poświęcenie dodatkowego czasu jest niezbędne. Dodawanie komentarzy do artykułów Jedną z najpopularniejszy metod budowania wirtualnych społeczności jest umożliwienie użytkownikom nadsyłania własnych komentarzy związanych z danym artykułem lub wpisem na blogu. Odliczanie (Countdown). aby zmieniać wygląd strony głównej. Wydarzenia (Events). Poprawnie obsługuje komentarze w różnych językach. Rozszerzenie Akocomment (omówione dokładniej w rozdziale 10) jest jednym z najczęstszych rozszerzeń dodających komentarze w systemie Joomla!. a także (co jest najgorsze) krytykę pod adresem autora strony. Uroczystości (Festivities). angielskim. Księga gości jest nadal bardzo popularna. materiały obraźliwe i obsceniczne. żeby Twoja strona przerodziła się w Dziki Zachód rządzony mentalnością „wszystko wolno". dodają reklamy.

Wykorzystuje technologię Ajax do dynamicznego uaktualniania okna rozmowy. Joomla Live Chat.Rozdział 4. jest on uruchamiany tylko na specjalne okazje.22. np. znajdziesz więcej informacji na ten temat.22. Moderacja wymagałaby co prawda dodatkowej pracy. ale za to mielibyśmy stronę WWW. czat pozbawiony monitoringu i ograniczeń jest prostą receptą na katastrofę dla webmastera. który pobiera losowy cytat z księgi gości. Większość stron WWW ogranicza dostęp do czatu. • Dodawanie i modyfikacja dostępnych rozszerzeń 129 witryna wyświetlała losowy wpis z księgi gości na stronie głównej? Oczywiście musiałbyś wprowadzić moderację księgi gości. który pozwala na komunikację jeden-do-jednego z odwiedzającymi Twoją stronę. obecność gościa. Biorąc pod uwagę ilość drapieżników i ludzi z niejasnymi intencjami w sieci. która za każdym razem wita odwiedzającego zachętą. co może być najrozsądniejszym wyborem. pozwala na alerty dźwiękowe i żądania sesji. W rozdziale 10. Zanim napiszesz moduł. sunek 4. Rozszerzenie to doskonale nadaje się do pomocy technicznej związanej ze stroną. przedstawiony na rysunku 4. :at na stronie Joomla! Czat może być doskonałym dodatkiem na stronie WWW. aby zapobiec pojawianiu się reklam. jest czatem administrator-użytkownik. musisz zainstalować dodatek odpowiedzialny za zbieranie opinii użytkowników. spamu i treści obscenicznych na stronie. Live Chat L st Chat R o o m s Message terfejs Joomla ve Chat :zypomina oglądem asyczny czat Panel Refresh Chat Name Message Reset Chat Finish Chat — 1 Send . ale może także okazać się trudny w promocji i jeszcze trudniejszy w zarządzaniu. wyrażoną słowami poprzednich użytkowników.

projekt open source MediaWiki wykorzystywany przez Wikipedię). narzędzie do tworzenia mapy myśli FreeMind) pozwala pasjonatom programu dodawać użyteczne informacje. takich jak FreeBSD. OpenWiki można pobrać na poniższej stronie: http://www. OpenWiki zajmuje mniej zasobów i działa dużo szybciej. Ma on ułatwić tworzenie dokumentacji dla systemów open source. Użytkownicy samej tylko angielskiej wersji stworzyli dotychczas ponad 2. aby tworzyć dokumentację dla swojej pracy. których wykorzystanie nie jest oczywiste. rozszerzać i usuwać artykuły. zaprojektowana z myślą o szybkości i prostocie. Gnomę i Linux. KDE. Profesjonalne tworzenie stron W1NW Uruchamianie systemu wiki w Joomla! Ward Cunningham wynalazł w latach osiemdziesiątych nową metodę współpracy zwaną wiki. także możliwe jest ustawienie praw odczytu (Read). Jest to aplikacja PHP zawierająca funkcje wiki. zmieniać. Najbardziej znanym przykładem tego systemu jest internetowa encyklopedia o nazwie Wikipedia (www. Temat wzorca MVC został szerzej opisany w rozdziale 8. Strona wiki stworzona dla danej aplikacji (np. a nie o ich prezentacji. . tworzenia (Create) i usuwania (Delete) dla każdej grupy użytkowników. edycji (Edit). Odnośniki kierujące do innych części strony zapisane są w postaci podwójnych nawiasów kwadratowych ( / / ] ] ). a także opisywać te części. co odpowiada stronie internetowej.joomla. na której odwiedzający mogą dodawać. Jest to język znaczników podobny do HTML.5 miliona artykułów. Format został zaprojektowany z myślą przechowywania danych.org). dlatego jest zgodny z wzorcem Model-WidokKontroler (MVC). Chociaż inne aplikacje wiki posiadają większy zasób opcji (np. GTK+.23) w standardowej notacji wiki. Rozszerzenie OpenWiki wykorzystuje format DocBook. Po kliknięciu przycisku Edit This Page na górze ekranu zostanie wyświetlone okno edytora zawierające treść artykułu (zobacz rysunek 4.sk/rozsirenia/startdown/294/ Po zainstalowaniu OpenWiki zostanie wyświetlony ekran początkowy. a odnośniki zewnętrzne umieszcza się w pojedynczych nawiasach kwadratowych ( [ J )• Przyciski znajdujące się nad oknem edytora pozwalają wstawiać kod dla obrazków lub nagłówków. ponieważ wielu programistów aplikacji open source nie ma czasu. Poszczególne strony wiki przechowywane są w postaci plików tekstowych w katalogu \pages komponentu: \com_openwiki\data\pages Ze względu na format plików edycja stron możliwa jest za pomocą każdego zwykłego edytora tekstu. Uprawnienia edycji połączone są z kontrolą dostępu Joomla!.wikipedia.130 Joomla!. W ciągu ostatniego dziesięciolecia fenomen wiki zanotował ogromny wzrost. wskazówki. Joomla! umożliwia stworzenie systemu wiki dzięki komponentowi o nazwie OpenWiki. OpenWikijest adaptacją projektu DokuWiki (stworzonego przez Adreasa Göhra) na potrzeby Joomla!. Społeczność open source szczególnie skorzystała na istnieniu stron wiki.

Please edit the page only if you c a n i m p r o v e it.</para< <title>Rozdział <para>Jeśli <para>Sposób </chapter> <chapter czytasz na opanowanie id="rozdzial_2"> 2.. simple to use [[wp>Wiki]]. Dodatkowo zmiany są podświetlane. It is targeted at developer teams. ..Joomla! is the ideal tool for Hoirolnninn amal I t-n lariw rlmismi^ cnwmtinitTr i. ákich jak pliki HTML w przypadku Joomla! —przyp. że artykuły stworzone w OpenWiki mogą zostać przetworzone na dowolny typ treści statycznych 6 .icVi ^ i t c ^ i nti-n j S a v e j j Preview j j Cancel j Począwszy od wersji 4. Oznacza to.. If you want to test some things..24 przedstawiono przykładowy ekran porównania wersji. learn to make your first steps on the Projects of JoomProsolutiQn. tłum.</para> <title>Rozdział <para>Joomla! </chapter> </book> opiera Dzięki przechowywaniu informacji w takim formacie dane mogą być modyfikowane przez oprogramowanie niezwiązane z systemem wiki. co ułatwia ich lokalizację.coro DokuWiki for Joomla! [[wiki:DokuWiki]] is a standards compliant. sposób przechowywania danych oparty jest na formacie X M L . wyświetlanej w prawej kolumnie. S e e for Wiki s y n t a x .. Przykładowy 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 id="rozdzial_1"> 1. mainly aimed at creating documentation of any kind. dzięki czemu możliwe jest odtworzenie poprzednich wersji. 3 ekranie iycji wyświetla = tekst 'korzystujący andardowe rmatowanie ki [J[ Trace: » ]] » Of LEff^J j Show p a g e J j Qldrevisions | [ Recent changes j j Edit the page and hit Save. Na rysunku 4. All data is stored in plain text files — no database is required. Szczegóły się na 4 instalacji</title> różnych technologiach serwerowych. Wprowadzenie<title> tę książkę. Wstawiony tekst oznaczony jest znakiem plusa (+) po lewej stronie nowej wersji.Rozdział 4. 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.23. Przy wprowadzaniu zmian na stronie zostają zapisane także różnice..</para> Joomla!. 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. • Dodawanie i modyfikacja dostępnych rozszerzeń 131 sunek 4. workgroups and small companies.

simple to use [[wp>Wiki]]. Ail data is stored in structured texts.132 Joomla!. Dla wielu użytkowników mylący może być brak przycisku New Page (Nowa strona). . Dlatego. co zilustrowano na rysunku 4. workgroups and small companies. H 6 9 8 7 4 8 2 3 ./:'/ in.'•'<f iv/'ii. może wyglądać tak: [[joomlajumpstart]] Po kliknięciu odnośnika zostanie wyświetlony ekran tworzenia nowej strony. All data is stored in plain text files — no database is plain text files — no database is required. y o u m a y c r e a t e It b y u s i n g t h e c r e a t e t h i s page b u t t o n Create this page Old revisions | Powered by | Index Back to top OpenWiki with Slimbox by Kilka ograniczeń OpenWiki: • Wszystkie pliki kodowane sąjako UTF-8 — Dokumenty dostępne są tylko w formie zakodowanej w UTF-8. simple to use [[wp>Wiki]]. workgroups and small It has a simple but powerful companies. t x t (13312207 views) • Last m o d i f i e d : 2008/10/30 01:32 j Show page j [ Old r e v i s i o n s j | Index [ [ Back to top j OpenWiki ma jednak kilka cech.25. It is targeted at teams. które należy wstawić w treść istniejącego artykułu. które mogą sprawiać problemy operatorom adaptującym to rozszerzenie. aby dodać nową.25. s t a r t . It is targeted at developer of any kind.iit Line 2: H i current ===== DokuTtfiki for Joomla! ===== + T h i s i s great 1 [[wiki:Doku¥iki]] is a standards [ [wiki:DokuWiki] ] is a standards compliant. niektóre artykuły napisane w innych językach niż angielski (np. Ponieważ wszystkie strony muszą być ze sobą połączone. niezależnie od zestawu znaków ustawionego w Joomla!. I f p e r m i s s i o n s allow. Rysunek 4. inne pliki DocBook) mogą sprawiać problemy w systemie. musisz najpierw stworzyć odnośnik na istniejącej stronie."•• Line 2: ===== Dokutfliki for Joomla! ===== -v. required. 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. Jviit '.24. Profesjonalne tworzenie stron WN 1W Rysunek 4. s. mainly aimed at creating documentation mainly aimed at creating documentation of any kind. Kliknięcie odnośnika prowadzącego do nieistniejącej strony spowoduje wyświetlenie ekranu tworzenia nowej strony [[joomlajumpstart]] __ | Create this page | | Old revisions j [ Recent changes j Trace: » < OPEN WIKI | Search J This topic does not exist yet Y o u ' v e f o l l o w e d a link t o a t o p i c t h a t d o e s n ' t e x i s t y e t . W rozszerzeniu OpenWiki jest funkcja porównywania wersji pliku [[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. developer team3. Przykładowo nowe odwołanie. compliant.

a artykuły wiki dla wyszukiwarki Joomla!. Rozszerzenie stworzono z myślą o stronach poświęconych fan fiction (na których umieszczane są autorskie romanse lub historie związane ze Star Trekiem). W interfejsie administracyjnym można zarządzać dodanymi opowiadaniami.Rozdział 4. . dołączać nowe i tworzyć rozdziały. do których mogą być przydzielane. integracji z rozszerzeniem Community Builder. Istnieje także możliwość dodawania obrazów do galerii użytkownika. Kategorie rozszerzenia eWriting przypominają kategorie Joomla!.". rsunek 4.html) — istnieje jednak możliwość określenia dodatkowych typów plików w interfejsie administracyjnym. W interfejsie przewidziano możliwość dodawania obrazków i automatycznego przydzielania do kategorii. 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. Opowiadania zapisywane są w postaci rozdziałów i mogą być wprowadzane z klawiatury lub wysyłane w postaci plików tekstowych (. takimi jak Missus lub MyPMSII. z tego powodu wymagają oddzielnej wyszukiwarki. Dlatego artykuły Joomla! są niewidoczne dla wyszukiwarki wiki. który wyświetla statystyki. • Nriting Przedstawione na rysunku 4. najpierw musisz określić kilka kategorii.htm albo .2.¡iwii:. cała konfiguracja musi przebiegać z poziomu strony głównej. • Dodawanie i modyfikacja dostępnych rozszerzeń 133 • Brak części administracyjnej — Z tego powodu systemem wiki nie można zarządzać jak zwyczajnym rozszerzeniem Joomla!. Oddzielna wyszukiwarka — Artykuły OpenWiki nie są dostępne dla reszty systemu Joomla!.1 Zanim umożliwisz dodawanie opowiadań.26 rozszerzenie eWriting umożliwia dodawanie artykułów przez odwiedzających stronę.26. Categories a której tytkownicy mogą Mtnłtl O o c t i w Stfine* odawać własne oowiadania toth Doctor Storic.^ {3) (7 2) (3> Powered by eWriting 1. Joomlaboard Forum lub systemami prywatnych wiadomości (PMS). można im przypisać obrazek i nadać opis. Po utworzeniu kategorii opowiadania można dodawać w interfejsie administracyjnym mb z poziomu strony głównej. .zszerzenia Iniide The Taidis Stones Nriting.ixt) lub plików HTML (. Na stronie głównej można też wstawić moduł.

której grupa odbiorców składa się ze specjalistów. Oferty usług. Biura ogłoszeń nabrały nowego znaczenia w dobie internetu dzięki takim stronom jak cragslist1. określanie dodatkowych pól dla wybranych kategorii. . Rysunek 4. umożliwia tworzenie hierarchicznych kategorii bez ograniczenia liczby zagnieżdżeń. Rozszerzenie Noah's Classifieds. Wielu ludzi myśli o eBayu jako głównym miejscu sprzedaży używanych przedmiotów. Oczywiście ogłoszenia nie muszą być ograniczone wyłącznie do sprzedaży produktów. Wiadomości wysyłane między użytkownikami mogą zawierać załączniki. Implementacja ogłoszeń Wprowadzenie na stronie możliwości umieszczania ogłoszeń może być dobrodziejstwem dla Twoich użytkowników.134 Joomla!. informacje o wydarzeniach. określonej grupy. Strona główna rozszerzenia Classifieds 1 Największa na świecie strona internetowa poświęcona publikacji ogłoszeń — p r z y p .photo. co może zwiększyć dochody z wymiany. ale istnieją też strony. Profesjonalne tworzenie stron WN 1W Twórcy e Writing są jednocześnie autorami rozszerzenia Missus. przedstawione na rysunku 4. anonse towarzyskie itp. — wszystko to można umieścić jako ogłoszenie. . a także powiadomienia e-mailem.27. Rozszerzenie Missus możesz pobrać ze strony internetowej e Writing. dołączanie zdjęć do ogłoszeń. tłum.27.net. które robią świetny interes. takie jak www. W przypadku rynków niszowych osoby odwiedzające stronę należą do konkretnej. trafiając w niszę rynkową. które dodaje możliwość wysyłania prywatnych wiadomości na stronie Joomla!.

baseballu. że nie ponosisz odpowiedzialności za żadne transakcje zawarte za jej pośrednictwem. pojawi się opcja Create New Categon> (Utwór: nową kategorią). • Dodawanie i modyfikacja dostępnych rozszerzeń 135 Jeśli klikniesz odnośnik Home w menu Noah Classifieds. . np. zablokować daną kategorię (żeby nie można było dodawać do niej nowych ogłoszeń) lub przypisać dodatkowe pola dla danej kategorii. herbów itp. zęść iministracyjna ikietu 'assifieds Expirât 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. Wtedy. System punktów jest elastyczny. Następnie możesz ustawić parametry kategorii.29. np. możesz umieścić na stronie śledzenie wyników sportowych z różnych dyscyplin. idawanie śledzenia wyników sportowych Dzięki rozszerzeniu JoomLeague. pokazanego na rysunku 4. które zilustrowano na rysunku 4. zostanie wyświetlona opcja Submit Ad (Dodaj ogłoszenie).28. aby umożliwić zwykłym użytkownikom dodawanie ogłoszeń. co pozwala na prowadzenie tabeli wyników prawie dla każdej dyscypliny. Możliwe jest śledzenie statystyk wybranych drużyn lub całej ligi. . że zastrzegasz sobie prawo do usunięcia dowolnego ogłoszenia z dowolnego powodu.28. piłki nożnej. jeśli w Twoim mniemaniu godzi ono w dobro strony..Rozdział 4. . po wybraniu danej kategorii. Dodatkowo umieść oświadczenie. logotypów. Za pomocą interfejsu administracyjnego. zdjęć. można w pełni kontrolować rozszerzenie. 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 i Upewnij się. Istnieje też funkcja dodawania obrazków danej drużyny. Doskonałym przykładem są „Terms of Use" („Warunki użycia") na stronie www. sunek 4.craigslist. czy w sekcji ogłoszeń umieściłeś informację. futbolu amerykańskiego itd.org. np.

Rozszerzenie JoomLeague pozwala śledzić wyniki z większości dyscyplin sportowych S K l E I l i Quail-WM 2010 E r g e b n i s s e 4. Oprócz głównego komponentu odpowiedzialnego za śledzenie wyników pakiet zawiera także kilka modułów: • • • Events Statistic Module (Statystyki wydarzeń) — Wyświetla listę eventtype dla wybranego projektu. Ranking Module projektu. Random Player Module (Losowy gracz) — Wyświetla losowego gracza dla wybranego projektu i wybranej drużyny. 1 0 . co w praktyce opowiada danym ligom. które umożliwia szybki dostęp do zapisanych informacji. Team Players Module (Gracze z drużyny) — Wyświetla listę graczy Twojej ulubionej drużyny według pozycji graczy. Spieltag ( 1 5 . Oktober 2008 Ä Malta Portugal Platz Ungarn H l Albanien Mannschaft Dänemark 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. 15. Results Tab Module (Zakładki wyników) — Przedstawia ostatnie wyniki pogrupowane za pomocą JavaScriptu w trzy pojedyncze zakładki. Następnie określane są drużyny i gracze.136 Joomla!. Next Match Module (Następny mecz) — Wyświetla następny mecz dla wybranej lub ulubionej drużyny. Gruppe 3 Gruppe 4 Gruppe 5 Gruppe 6 Gruppe 7 Gruppe 8 Gruppe 9 0: 0 1 0 1 1 1 ' Śledzenie wyników podzielone jest na projekty.29. (Ranking) Przedstawia aktualne zestawienie dla wybranego Results Module (Wyniki) — Przedstawia ostatnie wyniki dla wybranego projektu.2008) Spieltag auswählen: 04 • Home * Fussball-Forum Gruppe 1 Mittwoch. .11. Profesjonalne tworzenie stron WN 1W Rysunek 4. Navigation Menu Module (Nawigacja) — Dostarcza dodatkowego menu nawigacyjnego. 2 0 0 8 19.

musisz najpierw dodać komponent bazowy o nazwie com_casinobase. a Joomla isino blackjack a piękny terfejs ytkownika Aby zainstalować grę. pozycji graczy. mogła wzbogacić się o dodatkowe pozycje. że odwiedzający będą ciągle wracać na Twoją stronę. de idawanie gier hazardowych Jedną z propozycji poprawy atrakcyjności strony Joomla! są gry dla odwiedzający. która dostarcza najwięcej emocji. jednoręki bandyta. Stronę domową możesz odwiedzić pod adresem: www.30). Odwiedź stronę domową rozszerzenia. video poker. Śledzić można według projektów. co przekłada się na atrakcyjniejszy wygląd i żywszą rozgrywkę. który zawiera główną bibliotekę. klubów. można dodać na stronie jedną z następujących gier: bakarat. kiedy będziesz czytać tę książkę. Joomla Casino to platforma stale poszerzana o nowe gry. ruletka i blackjack (zobacz rysunek 4. . aby pobrać najnowszą wersję wraz kilkoma przykładowymi konfiguracjami. sunek 4. graczy. dlatego do czasu. Łatwo popaść w uzależnienie. Część strony jest w języku niemieckim. • Dodawanie i modyfikacja dostępnych rozszerzeń W części administracyjnej można skonfigurować miejsca docelowe dla poszczególnych pozycji menu. drużyn. Grą. Gry dostępne są także w wersji Flash. dlatego może się okazać. jest prawdopodobnie ruletka. wydarzeń i sędziów wydarzeń.Rozdział 4.joomleague. Następnie możesz zainstalować jedną lub więcej gier. dlatego znajomość tego języka ułatwi Ci pełne wykorzystanie możliwości rozszerzenia. 137 Z poziomu interfejsu administratora można w pełni skonfigurować system śledzenia wyników. Korzystając z pakietu rozszerzeń Joomla Casino.30.

zawierających odpowiedzi tak lub nie albo prawda lub fałsz. jak i samodzielnej. włoskim. łącznej liczbie quizow i punktacji dostępne są po wpisaniu adresu podobnego do: www. który umieścił na stronie internetowej prosty test z gramatyki. w zależności od ustawień w interfejsie administracyjnym. Część użytkownika rozszerzenia Quiz 2.0 przedstawia aktualnie wybrany quiz m Antwort 1 0 Antwutl 2 tJ Antwort 3 4. po próbne podejście do SAT-u s .com/index. że jesteś nauczycielem angielskiego.138 Joomla!.31.31. Podsumowanie Rozszerzenia to jeden z kluczowych powodów szerokiego wykorzystania Joomla!. a w szczególności: s SAT — ustandaryzowany test dla uczniów szkół średnich w USA. Wyobraź sobie.php? option=com_quiz&task=stats Rozszerzenie umożliwia wyświetlanie quizow w różnych językach: angielskim. Edycja quizow umożliwia stworzenie nowego lub modyfikację istniejącego. które wzbogacają Joomla!. Inny przykład — prowadzisz stronę internetową promującą zalety Peru.0. Dodatki typu quiz wykazują spory potencjał na polu edukacji — zarówno formalnej. możesz tworzyć quizy różnego rodzaju: od najprostszych.0 składa się z dwóch opcji: edycji quizow i edycji kategorii quizow. Po ukończeniu quizu zostanie wyświetlony jego wynik wraz z informacją o powodzeniu lub niepowodzeniu. . 3. po test wyboru (także wielokrotnego). duńskim. a na niej umieszczasz prosty quiz dotyczący położenia głównych prowincji. Rysunek 4. norweskim i szwedzkim. Frage 1 Question 3 of 4 Frage 3 i 2. Statystyki zawierające informacje o liczbie udanych lub nieudanych prób. S3 Antwort A Submit answer Interfejs administracyjny Quiz 2. Wśród prawie 4000 można znaleźć niemalże dowolną funkcję wzbogacającą system. W tym rozdziale przedstawiono różnorodne rozszerzenia. przedstawionemu na rysunku 4. tłum. Dzięki komponentowi Quiz 2.przyklad. Profesjonalne tworzenie stron WN 1W Obsługa quizow Quiz może przybrać wiele form — od prostej zagadki. francuskim. odpowiada polskiej maturze — p r z y p . aby uczniowie mogli poćwiczyć przed głównym sprawdzianem.

począwszy od najprostszego typu — modułu. automatyczne tworzenie mapy strony i wiele innych. Poszerzanie zawartości strony Joomla! o dodatkowe media. opisano w rozdziale 5. Wzbogacanie funkcjonalności związanych z prowadzeniem organizacji i e-commerce przez implementację sklepu internetowego. Dodawanie śledzenia wyników sportowych i gier. zarządzania projektami. Pierwszy krok w tworzeniu rozszerzeń. Jeśli jednak szukasz czegoś specjalnego. które spełnią większość Twoich potrzeb.Rozdział 4. śledzenia kart pracy. • Dodawanie i modyfikacja dostępnych rozszerzeń • Udoskonalanie kluczowych funkcji strony WWW i rozbudowywanie interfejsu administracyjnego o bogatsze opcje wyszukiwania. płatnych subskrypcji. zarządzanie plikami. . Ulepszanie komunikacji na stronie przez wprowadzenie systemu komentarzy. podcasty i galerie zdjęć. specjalistyczne edytory WYSIWYG. np. dotychczas niedostępnego. czata. możesz napisać własne rozszerzenie. co zwiększa atrakcyjność. 139 • • • • Spośród setek dostępnych rozszerzeń masz sporą szansę znaleźć takie. prezentacji aukcji. księgi gości lub funkcjonalności wiki.

Profesjonalne tworzenie stron WN 1W .140 Joomla!.

Jeśli dany dzień odpowiada jednemu spośród świąt zapisanych w bazie. bannery. Taką rolę grają właśnie moduły. Drugi moduł wykorzystuje specjalną tabelę w bazie danych do przechowywania życzeń świątecznych. Trzeci moduł pobiera i wyświetla informacje o kontaktach. Często oznacza to zaprogramowanie rozszerzenia. wiele stron wymaga stworzenia specjalnego kodu. jak i instalacja są bardzo proste. • Podczas tworzenia powyższych modułów dowiesz się. zarówno programowanie. W tym rozdziale opisano proces tworzenia trzech modułów: • • Pierwszy wyświetla proste powitanie „Hello World!". Poznasz także zasadę działania modułów w ramach platformy Joomla!. pola wyszukiwania i sondy. a ten wykonuje zapytanie do bazy danych. które spełnia większość potrzeb. w jaki sposób wykorzystywać interfejs administratora Joomla!. Ich zadaniem jest głównie wyświetlanie informacji przy minimalnej interakcji z użytkownikiem. Ponieważ programowanie modułów jest proste i nie wymaga dużych nakładów czasowych. związane z nim życzenia zostaną wyświetlone na stronie. które wyświetla informacje w określony sposób. W systemie Joomla! moduły wykorzystywane są przede wszystkim do wyświetlania podstawowych elementów strony głównej. posiadającego określoną funkcjonalność. stanowi solidną podstawę dalszego tworzenia modułów dowolnego typu. wiele spośród specyficznych problemów daje się rozwiązać właśnie podczas tworzenia rozszerzenia tego typu. Ponieważ funkcją modułów jest niemal wyłącznie wyświetlanie informacji. którego wartość przekazywana jest do komponentu search. Często wyświetlają też informacje związane z konkretnym komponentem. . najprostsza forma rozszerzeń.5 Tworzenie prostych rozszerzeń: moduły Chociaż z szerokiej palety dostępnych rozszerzeń Joomla! można często dobrać takie. aby konfigurować moduły. Przykładowo moduł search wyświetla pole. takich jak menu. które zostały wprowadzone do systemu za pośrednictwem komponentu Kontakty.

Utwórz folder o nazwie modhelloworld w głównym katalogu dysku twardego. a następnie zainstalować je w systemie. Załóżmy. Jeśli tekst przekazany do metody _ dostępny jest w wersji. Dlatego. w zależności od zainstalowanych pakietów językowych. a dopiero jej wynik zostaje wyświetlony. zostanie zwrócona przetłumaczona wersja. co stanowi jasny komunikat odnośnie do zawartości folderu. Zwróć uwagę. Ostatni etap sprowadza się do utworzenia archiwum modułu. . których nie planowałeś. że metoda została wywołana z parametrem o wartości „Hello". Klasa JText odpowiada za wyświetlanie tekstu w różnych językach. że komenda echo nie została użyta do wyświetlenia zwykłego tekstu. Takie działanie zabezpiecza przed hakerami. Z tego powodu programowanie warto rozpocząć od prostego rozszerzenia wyświetlającego powitanie „Hello World!". Częstą praktyką jest wykorzystywanie w nazwie przedrostka mod_. która odpowiada językowi ustawionemu na stronie. W takiej sytuacji zwrócony tekst brzmiałby „Hola". Powitanie jest najpierw przekazywane do metody _ (znak podkreślenia) klasy JText. że hiszpański pakiet językowy zawiera tłumaczenie tego słowa.php 5203 2007-03-27 0l:42:10Z Danr $ @package Joomla @copyright (C) 2007 Dan Rahmel.php i za pomocą edytora tekstu * * * * * */ @version $Id: mod hellojoomla. Pierwsza powinna być umieszczana we wszystkich tworzonych rozszerzeniach. a nie z zewnątrz. zostanie ono wyświetlone właśnie w wybranym języku. a na stronie zostało ustawione wyświetlanie komunikatów w języku hiszpańskim. Wszystkie prawa zastrzeżone. W folderze modhelloworld wprowadź poniższy kod: <?php stwórz plik modhelloworld. W drugiej linii umieszczono komendę echo. Załóżmy także. @license GNU/GPL Prosty moduł wyświetlający powitanie Hello World / / Zablokuj bezpośrednie uruchamianie definedi '_JEXEC' ) or dieC 'Brak dostępu' ): 'Hello World!' ): echo JText::_( Powyższy moduł składa się z dwóch linii wykonywalnego kodu. ponieważ stanowi gwarancję. co umożliwia instalację w interfejsie administracyjnym. Nazwa folderu powinna zawsze odpowiadać nazwie modułu. która spowoduje wyświetlenie powitania. Na początek musisz utworzyć folder. w którym będą przechowywane pliki modułu. jeśli aktualnie ustawiony pakiet językowy zawiera tłumaczenie powitania „Hello World!". którzy mogliby nadużyć rozszerzenia do celów.142 Joomla!. że rozszerzenie uruchamiane jest przez system Joomla!. Profesjonalne tworzenie stron WN 1W Tworzenie moduhi Hello World Konstruując nawet najprymitywniejszy moduł. będziesz miał szansę zrozumieć podstawy systemu modułów. Moduł ten można wykorzystać jako podstawę późniejszych prac.

Utwórz nowy plik pod nazwą modhelloworld. informacje na temat rejestracji. co niezbędne jest do działania modułu Hello World.php</f11ename> </files> </i nstalł> Plik deskryptora zawiera informacje „co" i „dokąd". że moduł przeznaczono do instalacji w Joomla! w wersji 1. pozycja i kolejność modułu.0"> <name>Hello World</name> <author>Dan Rahmel</author> <creationDate>Marzec 2007</creationDate> <copyright>(C) 2007 Dan Rahmel. który program lub narzędzie najlepiej wykorzystać do tego celu.org</authorUrl> <versi on>l. W odróżnieniu od szablonów modułów nie można po prostu skopiować do odpowiedniego folderu. Element <name> określa nazwę modułu.5. Element <filename> zawiera listę modułów plików przypisanych do modułu wskazywanego przez atrybut module. Dobrym pomysłem jest wykorzystywanie klasy JText podczas wyświetlania komunikatów.0</versi on> <description>Moduł Hello World</description> <files> <fi 1ename modułe="mod_hel 1 oworld">mod_hel1oworld.0" encoding="utf-8"?> <install type="module" version="1. że nie jest brana pod uwagę wielkość liter ani nie jest dostosowywana interpunkcja. trzeba je najpierw zarejestrować w systemie Joomla!. Atrybut type znacznika <i nstal 1> wskazuje.org</authorEmai1> <authorürl>www. To już wszystko. a następnie w edytorze tekstu wprowadź poniższy kod: <?xml version="1. ponieważ jeśli Twój moduł stanie się popularny. a także czy moduł jest aktywny. W systemie Windows XP opcja tworzenia archiwum ZIP dostępna jest jako Wyślij do/Folder Skompresowany z menu kontekstowego — p r z y p . W przypadku Windowsa i MacOS-a wystarczy kliknąć prawym przyciskiem na danym folderze i wybrać opcję utworzenia archiwum 1 .</copyright> <1icense>GNU/GPL</l icense> <authorEmai1>admi n@joomlajumpstart. Sposób tworzenia archiwum będzie różnić się w zależności od systemu operacyjnego. w którym znajdują się informacje dla systemu Joomla! dotyczące instalacji modułu. że instalowane rozszerzenie jest modułem. który pojawi się na ekranie po zakończeniu instalacji. twórcy pakietów językowych będą w stanie przetłumaczyć go bez konieczności wprowadzania zmian w Twoim rozszerzeniu.xml. . tłum.0. Element <description> przechowuje opis.5 i nowszych. ustawienia parametrów.joomlajumpstart. które następnie zainstalujesz za pomocą opcji Rozszerzenia/Instaluj. Jeśli korzystasz z Linuksa. sprawdź w dokumentacji. metoda zwróci po prostu przekazany tekst. niezbędne przy instalacji rozszerzenia Joomla!. Zwróć uwagę. Atrybut version informuje. W tym celu musisz stworzyć archiwum ZIP zawierające folder z plikami modułu. Podczas rejestracji nowego modułu informacje o nim zapisywane są w tabeli josjnodu les w bazie danych. Kolejnym krokiem jest utworzenie pliku deskryptora w formacie XML. • Tworzenie prostych rozszerzeń: moduły 143 Jeśli nie uda się znaleźć odpowiedniego tłumaczenia. Przechowywane są: nazwa modułu. Wszystkie prawa zastrzeżone.Rozdział 5.

Wybierz archiwum ZIP zawierające moduł. Podczas tworzenia nowego modułu zmiany należy wprowadzać w plikach źródłowych w tym katalogu. a następnie uruchom opcję Rozszerzania/ Instalator. kliknij przycisk Wczytaj plik & Instaluj. Rysunek 5. a następnie wybierając moduł konkretnego typu. W folderze /modules strony Joomla! znajdziesz katalog zawierający zainstalowany moduł. ustawianego za pośrednictwem parametrów. to w pewnym sensie szablon. na podstawie którego można dodawać jeden lub więcej egzemplarzy. Otwórz zaplecze Joomla! w oknie przeglądarki. nowy egzemplarz jest typu mod hel loworld. Zmiana tych informacji wymaga bezpośredniej manipulacji w bazie danych MySQL lub ponownej instalacji modułu. klikając przycisk Nowy. W systemie Windows ścieżka dostępu do nowego modułu przypomina poniższą: C:\Program Files\Apache mod hełłoworłd Software Foimdation\Apache2.1. a na liście powinien pojawić się moduł zainstalowany przed chwilą. W prawej kolumnie pojawiają się informacje na temat typu modułu. Rozszerzenie stworzone przed chwiląjest właściwie typem modułu. Profesjonalne tworzenie stron WN 1W Zmiany w pliku XML przeprowadzone po instalacji nie wpłyną na informacje o module wyświetlane w interfejsie administratora (wyjątek stanowi definicja parametrów pobierana z pliku XML). Możesz tworzyć dodatkowe egzemplarze tego modułu i innych. Po ukończeniu procesu instalacji kliknij opcję Rozszerzenia/Moduły. Moduł Hello World pojawił się na liście modułów Na liście Moduły pojawiają się egzemplarze modułów dostępnych w systemie.2\htdocs\modules\ . Przykładowo moduł modjnainmenu (Menu) wyświetla listę pozycji danego menu. Zastosowanie kilku egzemplarzy jednego modułu może mieć sens szczególnie wtedy. jak to przedstawiono na rysunku 5.144 Joomla!. kiedy zmiana parametrów przekłada się na zmianę wyglądu lub funkcji.1. aby dodać nowy moduł w systemie.

Moduł Helto World jest kompletnym przykładem tworzenia i instalacji modułów. Domyślnie moduł pojawi się na pozycji left. Ta informacja ułatwi zlokalizowanie rozszerzenia na stronie głównej. moduł pojawi • na pozycji left mdJiellowoi I o d Hello World ii<imeuy moilttłu Dla tego modułu nie określa się f ł i ?yi>is<niiie m e n u Wszystkie \ Brak Zaznaczone •ill B'fflj Otwórz stronę główną Joomla! w przeglądarce. aby upewnić się. Kliknij nazwę modułu na ekranie Moduły. • Tworzenie prostych rozszerzeń: moduły 145 Domyślnie nowe moduły są wyłączone. czy moduł wyświetlany jest w odpowiednim miejscu (zobacz rysunek 5.Rozdział 5. W przeciwnym wypadku zostanie wyświetlony aktualny dzień i data.3). Panel zawierający Main Menu powinien wyświetlać także powitanie Hello World! (zobacz rysunek 5. . czy ustawienia są poprawne. aby otworzyć okno ustawień modułu. które odpowiada aktualnej dacie. Następnie powinieneś sprawdzić ustawienia modułu. czy pojawia się w odpowiednim miejscu. Kliknij czerwony X w kolumnie Włączony. ewnij się. ponieważ nie zawiera użytecznych funkcji. że moduł zostanie wyświetlony jako ostatni element w lewym panelu. Zadaniem tego modułu jest sprawdzenie.2). W tym przypadku takie było nasze założenie. automatycznie zostaną wyświetlone odpowiednie życzenia. jednak należy sprawdzić. Sprawdź. Powinieneś go teraz wyłączyć. worzenie modułu Świąteczne Życzenia Niewiele spośród prawdziwych modułów jest tak prostych. czy w bazie danych zapisano jakieś święto. Często wymagany jest dostęp do bazy danych w celu pobrania informacji do wyświetlenia.2. aby włączyć moduł. Możesz go wykorzystać jako podstawę dla bardziej zaawansowanych modułów. Jeśli tak. ¡unek 5. aby nie zaśmiecał strony. Ustawienie parametru Kolejność wskazuje. jak przykładowe rozszerzenie Hello World!. Jednym z prostych (ale jednocześnie użytecznych) modułów jest rozszerzenie Świąteczne Życzenia.

0. zaczniemy od stworzenia folderu w głównym katalogu dysku twardego. Nazwij folder /modjiolidaygreetings. Tworzenie pliku deskryptora Wprowadź w edytorze tekstu poniższy kod. Tak samo będzie też nazywać się folder wewnątrz katalogu /modules. took the bait. This has been an issue on Linux and other Unix based platforms in respect of file permissions.org</authorEmai1> <authorUrl>www.. Only one edit window! How do create "Read more. .5.org/copyleft/gpl."? t What is the FTP layer .xml w folderze /modjiolidaygreetings: <?xml version="1. and here we are with our latest 1.php</fi 1 ename> </files> holiday .gnu.</copyright> <1icense>http://www..5 is a p forward and represents the ¡t exciting Joomla! release in the ' history of the project. A new Plugin takes care ofthe rest. 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 następnie zapisz go pod nazwą mod greetings.. This is now implemented by inserting a Read more. who's had a penchant for rum ever since the first "Pirate's of the Caribbean" movie screened.. This makes the site admin's life a lot easier and increases security of the site. It looks like pirate talk will figure quite a lot in future Joomla' development! Hello World Hello World! Więcej. Joomla! 1. Powitanie Hello World! powinno pojawić się pod innymi modułami w lewym panelu Hasło Pamiętaj mnie 1 i Zaloguj i administrators and managers who. mixed it with Cola.....3.0"> <name>Moduł Świąteczne Życzenia</name> <author>Dan Rahmel</author> <creationDate>Marzec 2007</creationDate> <copyright>(C) 2007 Dan Rahmel.</description> <files> <fi1ename modułe="mod_holidaygreeti ngs">mod_hoI idaygreetings. Profesjonalne tworzenie stron WN 1W Rysunek 5. 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. Jodimla! has some wonderfully taleaKra peopie taking Open Source corrupts to the forefront of industrydfandards.0" encoding="utf-8"?> <1nstal1 type="module" version="1. Johan. It is worth mentioning that this does not have a negative effect on migrated data from older sites. . wpisy można dodawać za pośrednictwem interfejsu MySQL.joomlajumpstart. po zainstalowaniu modułu w systemie Joomla!. joint lead-developer Johan Janssens.5 release..org</authorUrl> <versi on>l. Wszystkie prawa zastrzeżone. 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 działo się to przy tworzeniu modułu Hello World.. Życzenia przechowywane są w tabeli jos_holidays.0</versi on> <description>Moduł Świąteczne Życzenia wyświetla życzenia w zależności od aktualnej daty.html GNU/GPL</license> <authorEmail>admin@joomlajumpstart.146 Joomla!. 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.

Daw $ ((¡¡package Joomla @copyright (C) 2007 Dan Rahmel.php w folderze /mod holiday.in." > <option value="0">Nie</option> <opt i on value="l">Tak</option> </param> </params> </install> Porównując powyższy kod z utworzonym wcześniej. Powyższym parametrom przypisano dwa typy: text i radio. System Joomla! ma wbudowane funkcje niezbędne do wyświetlania i zmiany ustawień tych parametrów. dostępnych w większości przykładów. • Tworzenie prostych rozszerzeń: moduły <params> <param name="greeting" type="text" default="Wesołego label="Dopisek" description= 147 świętowania!" "Tekst. editors.Rozdział 5. filelist. radio. @license GNU/GPL Modul wyświetlający życzenia świąteczne w odpowiednie dni. Obecność modułów pozwala administratorowi zmienić wygląd modułu lub jego funkcje bez konieczności modyfikacji kodu źródłowego.menuitem. zauważysz pewnie. Te parametry (greeting i boldgreeting) stanowią przykład własnych ustawień modułów. czy życzenia powinny być wyświetlane pismem pogrubionym. że w pliku pojawiły się definicje dwóch parametrów w sekcji <params>. spacer. / / Zablokuj bezpośrednie uruchamianie defined( '_JEXEC' ) or die( 'Brak dostępu' ): ?> <div><small> <?php echo JText::_( '<p>Dzi si aj jest ' ).: category. Parametry zdefiniowane w pliku deskryptora mogą przyjmować jeden z 21 dostępnych typów. 'r. Wartość radio odpowiada wyborowi jednej spośród listy możliwości. languages. który pojawi się pod życzeniami świątecznymi. Parametr typu text przyjmuje jako wartość ciąg znaków o maksymalnej długości 255. helpsites.php 5203 2007-03-27 01:42:107. </small></dnv> . imagelist." /> <param name="boldgreeting" type="radio" default="0" label="Pogrubienie" description= "Określa. menu.greetings: <? php * * * * * */ @version $Id: mod holidaygreetings. echot dateC'l. Wartość parametrów ustawia się za pomocą opcji Moduły. po kliknięciu modułu ich wartości są automatycznie zapisywane w bazie danych Joomla!. vorzenie kodu modułu W edytorze tekstu wprowadź poniższy kod. list. W tym przypadku jest to wybór między nie (wartość 0) a tak (wartość 1). password. Lista typów zawiera m. section. j F Y") . text i textarea. </p>' ). Po instalacji w systemie Joomla! wartość tych parametrów można zmieniać za pomocą opcji Moduły. folderlist. a następnie zapisz go w pliku o nazwie mod_ holidaygreetings. Wszystkie prawa zastrzeżone.

zanim zostaną umieszczone w zapytaniu. 0). } ?> </div> Powyższy kod jest bardziej skomplikowany niż składający się z jednej linii moduł Hello World. 0). tłum. '</p>' ). które można ustawić w interfejsie administratora. " and " . że wartości pobrane z funkcji date() przesyłane są najpierw do funkcji intval (). icurMonth = date("m"): $db =& JFactory::getDB0(): $query = "SELECT *" . Następnie tworzona jest zmienna. "holidayDay = " .Manuał [online] http://piphp. $holiday->greeting . SmyGreeting '<p>Witaj!</p>' ). intval(icurDay): $db->setQuery($query): iholidays = $db->loadObjectList(). która przechowuje zapytanie pobierające życzenia dla obecnego dnia i miesiąca.11. zastosowanie funkcji intval () usunie zbędny przedrostek. PHP: date . to zmiennym $bb i $be przypisywane są odpowiednie znaczniki HTML powodujące wyświetlenie tekstu pismem pogrubionym. ponieważ funkcja date() zwraca numer miesiąca w postaci dwóch cyfr. następuje główna część skryptu — pobranie z bazy danych listy świąt. . W kolejnym kroku obecny dzień i obecny miesiąc zostają przypisywane do odpowiednich zmiennych wykorzystywanych w późniejszym etapie. if (count(iholidays)) { foreach (Iholidays as $holiday) { echo JText::_( '<p>' . uzupełniając go zerem (styczeń = 01).148 Joomla!. "\n WHERE holidayMonth = " . } else { $bb = "". A ponieważ numery miesięcy przechowywane są w postaci liczb całkowitych w bazie danych (styczeń = 1). Pierwsza instrukcja wyświetla aktualną datę jako ograniczoną znacznikiem <smal 1 > W następnej sekcji pobierane są wartości dwóch parametrów. $be = "". Profesjonalne tworzenie stron WN 1W <div> <?php $myGreeting = $params->get('greeting 1 . Zwróć uwagę na fakt. $be . '</p>' ): } echo JText::_( } else { echo JText::_( '<p>' . co zapobiegnie niejasnościom 2 . Alternatywnym rozwiązaniem byłoby pobranie aktualnego dnia poprzez wywołanie date(" j") oraz aktualnego miesiąca poprzez wywołanie date( "n") — obie funkcje nie dodają zer wiodących. Jeśli parametrowi boldgreeting przypisano wartość Tak. intval(icurMonth) . SboldSetting = $params->get('boldgreeting'. . if (iboldSetting == 1) { $bb = "<b>": $be = "</b>". $bb . po zakończeniu przygotowań. "\n FROM jos_greetings" . Dzieje się tak. Później.2008] — p r : y p .net/date [dostęp 02. Najpierw zmiennej Sdb przypisywana jest referencja do aktualnego obiektu bazy danych. } $curDay = date("d").

Rozdział 5. Po zakończeniu wprowadzania kodu stwórz archiwum ZIP lub TAR.l-i. Jest to proste i szybkie rozwiązanie. • Tworzenie prostych rozszerzeń: moduły 149 Zapytanie jest zapisywane w obiekcie bazy danych. .4.i Pomoc vJ Rozszerzenia Instaluj Komponenty Moduły Dodatki Języki Szablony Instaluj Modni: Powodzenie Moduł Świąteczne Życzenia w y ś wietla życzenia w zależności od aktualnej daty. czy znaleziono jakieś święta odpowiadające obecnej dacie.łizędzi. należy wprowadzić do bazy danych daty świąt wraz z odpowiednimi życzeniami. udanej talacji świetlana jest vartość pola scription •Iliku skryptora Witivii-i r. Funkcję countO zastosowano celem sprawdzenia. rorzenie tabeli i zapisywanie przykładowych danych Do stworzenia tabeli przechowującej życzenia możesz wykorzystać graficzny interfejs aplikacji MySQL Administrator.i il. Życzenia przechowywane są w tal» pośiednictwein interfejsu MySQL. zawierające folder z plikami modułu. a metoda 1 oadOb jectLi st () uruchamia zapytanie i zwraca listę wartości.. W przeciwnym wypadku wyświetlane jest proste powitanie „Witaj!".unek 5. pole typu integer z ustawionym atrybutem auto_increment). Jeśli udało znaleźć się pasujące życzenia. Tabela powinna nosić nazwę jos_greetings i zawierać trzy kolumny id (klucz główny — primay key. greeting (pole typu varchar). Wcsytaj plik & Instaluj Instaluj z katalogu Katalog instalacyjny: Instaluj Instaluj z Sieci Podaj adres VWWVi http:// Instaluj Zanim jednak będzie można wstawić moduł na stronę. Jeśli instalacja zostanie zakończona powodzeniem. pojawi się stosowny komunikat z instrukcjami dotyczącymi korzystania z modułu — co przedstawiono na rysunku 5.4. Następnie zainstaluj stworzone przed chwilą archiwum za pomocą opcji Rozszerzenia/Instalator w interfejsie administratora. Wczytaj paczkę Plik pakietu: FYseglądaj. a całość zwieńczana jest dopiskiem ustawianym jako parametr modułu. zostają wyświetlone w postaci kolejnych paragrafów (o ile kilka świąt przypisano do jednej daty).. do których rozszerzenie może się odwoływać. holidayMonth (pole typu integer) i holidayDay (pole typu integer). .u Altykuły Komponenty Rozszei zeni.

(3. W programie MySQL Administrator możesz to zrobić. Wybierz pozycję left z drugiej listy. Nie zapomnij dodać także przykładowego wpisu dla obecnej daty. klasy moduł etable).'holidayMonth') (1.6 Drugą możliwościąjest wprowadzenie liczby 0 w pole w kolumnie Kolejność i kliknięcie małej ikony dyskietki w nagłówku kolumny.1. Jeśli chciałbyś dodać przykładowe dane z poziomu wiersza poleceń. Warto rozważyć wyświetlanie modułu na pierwszej pozycji lewej kolumny — przed innymi modułami przypisanymi do pozycji left. Moduły wyświetlane na ekranie Moduły można filtrować za pomocą list rozwijalnych znajdujących się w górnej części strony. czy moduł działa poprawnie.25.5. który dodaje wpisy dla najpopularniejszych świąt: INSERT INTO 'jos_greetings' ('id'.150 Joomla!.3): VALUES Korzystając z opcji Rozszerzenia/Instalator. Następnie klikaj strzałkę w górę w kolumnie Kolejność. 'Wszystkim paniom.7. W obecnej implementacji styl fontów określany jest w kodzie modułu. PRIMARY KEY ('id') ): Po utworzeniu tabeli wprowadź kilka przykładowych życzeń.8. a spis modułów powinien zostać ograniczony tylko do tej pozycji. Jeśli instalacja zakończy się powodzeniem. Po poprawnym wprowadzeniu zmian w konfiguracji modułu otwórz stronę główną Joomla! w przeglądarce. 'Wesołych Świąt Bożego Narodzenia!'. co odpowiada funkcji Zapisz kolejność. dopóki nie pojawi się na samej górze (kolejność = 1). W dolnej części strony znajdują się parametry modułu. (2. aby sprawdzić. Dobrą praktyką jesl wyświetlanie elementów modułu z wykorzystaniem stylów zdefiniowanych w Joomla! (np. klikając prawym przyciskiem tabelę i wybierając opcję Edit Table Data z menu kontekstowego. Konfiguracja moduhl W interfejsie administratora przejdź do opcji Moduły i kliknij pozycję Świąteczne Życzenia.'greeting'.12). Dzięki wykorzystaniu standardowych stylów wygląd modułu będzi komponował się z resztą strony. pojawi się stosowny komunikat. podobnie jak na rysunku 5.1). jak przedstawiono to na rysunku 5. Profesjonalne tworzenie stron WN 1W Alternatywnym rozwiązaniem jest uruchomienie poniższego kodu SQL z wiersza poleceń: CREATE TABLE jos_greetings ( id int(10) unsigned NOT NULL auto_increment. W lewej części strony powinny pojawić się życzenia. najlepsze życzenia'. jak zilustrowano to na rysunku 5. zainstaluj archiwum zawierające moduł. greeting varchar(45) NOT NULL. holidayMonth int(10) unsigned NOT NULL. holidayDay int(lO) unsigned NOT NULL. odpowiadającą modułowi Świąteczne Życzenia. które zdefiniowałeś w pliku XML. . możesz użyć poniższego kodu. 'Szczęśliwego Nowego Roku'.'holidayDay'. Wprowadź własny dopisek i włącz opcję pogrubiania tekstu.

• Tworzenie prostych rozszerzeń: moduły ¡unek 5. y moduł Ziąteczne czenia był świetlany <o pierwszy Jeśli masz zamiar wykorzystać ten moduł na Twojej stronie. jak i dla dnia przed świętami.6. irowadź własny pisek i włącz cję pogrubiania (stu 151 sunek 5.Rozdział 5. . powinieneś dodać życzenia zarówno dla danego dnia świąt. 7ień kolejność Ddułów.5. dla Wigilii Świąt Bożego Narodzenia). Możesz także odpowiednio dostosować wpis do życzeń poprzedzających święta (np.

aby zapisać nową kategorię w bazie danych Joomla!. Możliwe jest także utworzenie kategorii grupującej informacje o kontaktach dostępnych publicznie. aby dodać nową kategorię. Kliknij przycisk Zapisz. Wybierz pozycję Kategorie z menu Komponenty/Kontakty w interfejsie administratora.'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. Te informacje mogą być automatycznie pobierane i wyświetlanie na stronie Kontakt z Nami.. online communities. Upewnij się. Za pomocą specjalnego modułu możliwe byłoby wyświetlenie tych informacji w dowolnym miejscu na stronie Joomla!.152 Joomla!. media poitals. najlepsze życzenia Wesołego świętowania! 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. które upraszczają i zabezpieczają cały proces. Profesjonalne tworzenie stron WN 1W Rysunek 5. Popular Wszystkim paniom. Pwrd ty t ee r ¿4 J o o m l a r . Dodatkowo platforma Joomla! zawiera wbudowane funkcje niezbędne do komunikacji z bazą danych. Ponieważ wszystkie dane przechowywane są w centralnej bazie danych MySQL.8. Przykładowo Joomla! zawiera komponent do zarządzania kontaktami. Domyślna instalacja Joomla! zawiera tylko jedną kategorię o nazwie Contacts.7. że opcja Publikacja ustawiona jest na Tak. . Szukej. Dostęp do danych w bazie wymaga. Tworzenie modułu Kontakt z Nami Wiele narzędzi dołączonych do systemu Joomla! można rozszerzyć. zaledwie kilku linii kodu. który pozwala na przyporządkowanie wpisów bezpośrednio zarejestrowanym użytkownikom. Pierwszym krokiem w tworzeniu takiego modułu jest określenie publicznej kategorii zawierającej kontakty. Zmiany wprowadzane w bazie danych są automatycznie odzwierciedlane na karcie Kontakt z Nami. bardzo łatwo jest napisać rozszerzenia. aby spełniały założenia danej strony.5 . co pozwoli dodawać kontakty do tej kategorii. Joomla! is used by organisations of all sizes for Public Web sites.. Wprowadź parametry podobnie jak na rysunku 5. documents. Na stronie głównej pojawią się życzenia ¿4 J o o m l a ! Joomla! 1. Joomlai provides an easy-to-use graphical user interface thai simplifies the management arid publishing of large volumes of c ontent including HTML. and rich media. ponieważ informacje przechowywane są w jednym miejscu. w przypadku modułu i korzystania z funkcji platformy Joomla!. które pobierają i modyfikują dane Joomla!. Kliknij przycisk Utwórz. Ploys and eCommerce applications.

• Tworzenie prostych rozszerzeń: moduły 153 ¡unek 5. aby wyświetlić aktualną listę wpisów. jak pokazano na rysunku 5. W kodzie rozszerzenia powinno wystąpić zapytanie do bazy danych. która ma być publiczna. Wszystkie informacje o kontaktach przechowywane są w tabeli jos_contact_detai 1 s. która pobiera wyłącznie kontakty przypisane do kategorii publicznej.10) lub wybrać istniejący i przypisać go do publicznej kategorii. sunek 5.9. W prawej kolumnie widnieją wartości pola category id dla poszczególnych wpisów. że przechowywane są tutaj wszystkie kontakty — nie tylko publiczne. Nórz nową bliczną tegorię. Zwróć uwagę na fakt.9.8. musisz najpierw wprowadzić dane użytkowników. Jednak w tym przypadku tabela. z której będą pobierane dane. istnieje już w systemie Joomla!.idNov*<łnie: P o z i o m dostępu: 0 (Contacts) • Publiczne kontakty Kontakty przypisane do tej kategorii będą pubi Nie * Tak IsSRSSH Zastrzeżony Specjalny . Po zakończeniu wprowadzania zmian kliknij przycisk Zapisz. Na szczęście wartość pola nd można odczytać z listy kategorii. Po zapisaniu nowej kategorii pojawi się ona na liście.Wybierz grafiką Lewa Podgląd Gi afika: Położenie yiafiki: Dostęp do bazy danych w rozszerzeniu Kontakt z Nami przypomina kod modułu Świąteczne Życzenia. notuj wartość la ID dla vorzonej tegorli Aby wyświetlić listę publicznych kontaktów. Możesz utworzyć nowy wpis (zobacz rysunek 5. aby zapisać w bazie danych informacje o kontakcie. które powinien wyświetlać moduł. Otwórz opcję Komponenty/Kontakty/Zarządzaj kontaktami.Rozdział 5. . Odpowiednie zapytanie wymaga znajomości pola category id kategorii publicznej. której staną dodane ormacje kontaktach M Kategoria: [ Zmień ] Szczegóły Tytuł: Tehst zastępczy: Publik acja: Sekcja: brak Upoi z. Zanotuj numer odpowiadający kategorii.

intval(ipubliccat). '. Profesjonalne tworzenie stron WN 1W Rysunek 5.php * @package Joomla * @copyright * @license */ / / Zablokuj definedi ?> bezpośrednie uruchamianie (C) 2007 Dan Rahmet. '. W edytorze tekstu wprowadź poniższy kod i zapisz go pod nazwą w folderze mod contactus: <?php * @version $ld: mod contactus. echo JText::_( '<small>' '</small></p>'): . <div style="border: lpx solid black: padding: 5px. modcontactus. </strong>'): echo JText::_( '<smal1>' . 42:1OZ Danr $ zastrzeżone. $db =& JFactory::getDB0(). w którym znajdzie się plik z kodem i plik deskryptora.php * Modul wyświetlający '_JEXEC' ) or die( 'Brak dostępu' ). $contact->con_position . 5203 2007-03-27 Wszystkie prawa 01. ( i z y t N o w n i k i v m . '. 0). Utwórz nowy kontakt i przypisz go do kategorii publicznej 3 ff Kontakt: [Zmień] Szczeyófy N azw* Tek«t z«słip«zy Publik acf<i K. dlatego można przejść do fazy implementacji modułu. </small>'): echo JText::_( '<small>' . $db->setQuery($query): icontacts = $db->loadObjectLi st(): if(count($contacts)) { foreach (icontacts as Scontact) { echo JText::_( '<p><strong>' ."> <h3>Kontakt z Nami</h3> <?php $publiccat = $params->get('publiccat'. GNU/GPL informacje o publicznych kontaktach. "\n WHERE catid = " .10. Utwórz folder o nazwie mod contactus.Hegona Polecz 7. $contact->name . } . $query = "SELECT *" . $contact->telephone .Brak użytkowników 1 (Name) Poziom dostępu • * Nie • Tak _ Henryk Sienkiewicz ¡25SH3w Zastrzeżony Specjalny m 1 Wszystkie niezbędne ustawienia zostały wprowadzone. $contact->email_to .154 Joomla!. "\n FROM jos_contact_details" . aby wykorzystać przygotowane wcześniej informacje. </small>').

że pole <description> zawiera wskazówki dotyczące konfiguracji. Po uruchomieniu modułu pobierana jest najpierw wartość parametru publiccat. • Tworzenie prostych rozszerzeń: moduły } else { echo JText::_( 155 } '<p>Emai1 pomoc@przyklad. Dla modułu Kontakt z Nami został zdefiniowany pojedynczy parametr: publ i ccat. jooml a jumpstart." /> </params> </i nstal 1> Prawdopodobnie zauważyłeś. należy skonstruować jeszcze plik deskryptora.org/copy1eft/gpl. Zapisz w folderze modułu pod nazwą mod_contactus. która odpowiada wartości category id dla kategorii publicznej. Jest to lista pozycji.gnu. z uwzględnieniem odpowiedniej wartości catid.5. Wynik zapisywany jest w postaci zmiennej $contacts. następnie pełniona funkcja.org</authorEmail> <authorUrl>www. Następnie pobierane są z bazy danych wszystkie kontakty zapisane w tabeli jos_contact_detai 1 s.0. który powoduje wyświetlenie obramowania wokół modułu.</copyright> <1 i cense>http://www.html GNU/GPL</1i cense> <authorEmai 1 >admi n{ajooml a jumpstart . Dla tego rozszerzenia pierwszy znacznik <div> posiada przypisany atrybut stylu. najpierw pojawi się imię i nazwisko.php</fi1ename> </files> <params> <param name="publiccat" type="text" label="ID publicznej kategorii kontaktów" description="Kontakty przypisane do tej kategorii będą wyświetlane na stronie. które zostają kolejno wypisane.0</versi on> <descnption>Modul Kontakt z Nami wyświetla informacje kontaktowe wpisów przyporządkowanych do publicznej kategorii. Id odpowiedniej kategorii można wprowadzić po wybraniu tego modułu w części Moduły. Jeśli nie znaleziono żadnych rekordów. Aby ukończyć moduł. dlatego dobrym rozwiązaniem jest umieszczanie w tym miejscu wskazówek dotyczących niezbędnej konfiguracji modułu. Jego wartość wykorzystywana jest w zapytaniu do bazy danych. Jeśli wybór dotyczyłby zwykłych kategorii Joomla! (kategorii artykułów).Rozdział 5. typ parametru mógłby zostać ustawiony na category. W rezultacie system Joomla! automatycznie stworzyłby listę rozwijalną zawierającą listę dostępnych kategorii. na stronie pojawi się e-mailowy adres pomocy technicznej. która zwraca listę kontaktów przypisanych do kategorii publicznej.com</p>'): </div> Struktura kodu w dużym stopniu przypomina moduł Świąteczne Życzenia.0" encoding="utf-8"?> <install type="module" version="1. Wartość tego pola wyświetlana jest po poprawnym zakończeniu instalacji. numer telefonu i adres e-mailowy. Wszystkie prawa zastrzeżone.0"> <name>Modul Kontakt z Nami</name> <author>Dan Rahmel</author> <creationDate>March 2007</creationDate> <copyright>(C) 2007 Dan Rahmel. . </description> <files> <fi 1ename modułe="mod_contactus">mod_contactus. org</authorllrl > <versi on>l.xml poniższy kod: <?xml version="l.

and Ertranets and is supported bv a community of thousands of users F w e a i by . Nogs and eCoinmeice applications. . Intranets. Joomla! is used by organisations of all sizes for Public Web sites. które będą niezbędne przy implementacji danego modułu.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. • • ^ ^ ^ Uruchom teraz stronę główną w przeglądarce.)CtUS Moduł Kontakt z Nami • Nie Tak • P a anteny modułu i ID ubiieznej kiiteyofti kontaktó^J Ustaw ID kategorii w parametrach modułu Nie * Tak left 2::Main Menu Zastrzeżony Specjalny 59 Moduł Kontakt z Nami wyświetla informacje kontaktowe wpisów przypisanych do publicznej kategorii. Profesjonalne tworzenie stron WN 1W Utwórz archiwum podobnie jak przy poprzednich modułach. wybierz go na liście Moduły i ustaw parametr. aby jego wartość odpowiadała ID kategorii publicznej.. Poświęć trochę czasu na przejrzenie tabel w bazie danych Joomla!. najlepsze życzenia Wesołego świętowania! Latest N e w s . Rysunek 5. • v A jrii-v to . documents. Wszystkim paniom. Prefei ¿neje l))0<l_C0ltt. aby otworzyć ekran edycji parametrów.156 Joomla!.12. 123 45 67. jak pokazano na rysunku 5. Wilco Jansen resorted to sending rum to . Id odpowiedniej kategorii można wprowadzić po wybraniu tego modułu w części Moduły.11. online communities. które będzie wykorzystywane w zapytaniach do bazy danych.. a następnie wprowadź ID. designers. które zapisałeś wcześniej. Kliknij pole oznaczone ID publicznej kategorii kontaktów. J'. Wybierz pozycję Kontakt z Nami na liście Moduły. 1 i Joomla! provides an easy-to-use graphical user Mnterface thai simplifies the management arid publishing of large volumes of content including HTML. Popular Informacje o kontaktach pojawią się w panelu na stronie głównej ^ ^ ^ • • Welcome lo Joomla' « What's New In 1 5'> 'i Kontakt z Nami Hewyk Sienkiewicz.M !. podobnie jak to jest na rysunku 5.p o lsovpisarze. >. 8 March 2008r. Newsflash 4 ^ ^ . sr«riki ewi cz fg.11. Rysunek 5.i jest Saturday. a następnie zainstaluj je w systemie za pomocą opcji Rozszerzenia/Instalator. To ensure this code release. .> W e are Volunteers & # ss S t i c k to the C o d e ! # -J ISfMiBISIIllll I 1 The Joomla' Core Team consists of volunteer developers. Stworzony moduł stanowi doskonałą demonstrację dostępu do danych zapisanych w systemie Joomla!. Jeśli moduł zostanie poprawnie zainstalowany. co pozwoli Ci określić miejsce przechowywania danych. Powinieneś zobaczyć listę kontaktów przypisanych do kategorii publicznej.12.Joornla! . and rich media. E>ziiia.s » Home * Joomla" * Joomla! License • Moi e about Joomla' » FAO • The News » Wel> Links • News Feeds Wiscej. media poitals. JOOmlQ! version l.

wyszczególniając poniższe etapy: • • • Tworzenie modułu Hello World. Na stronie może pojawiać się dowolna liczba modułów. znajdziesz informacje na temat tworzenia własnych komponentów. . opartego na komponencie Joomla! do zarządzania kontaktami. stanowiącego podstawę bardziej złożonych rozszerzeń. które opisano w rozdziale 6. Programowanie modułu. nie nastręczają trudności. Implementacja modułu. który pobiera z bazy danych życzenia odpowiadające aktualnej dacie. Stworzenie modułu nie jest trywialne. najlepszym rozwiązaniem jest stworzenie takiego komponentu. • Tworzenie prostych rozszerzeń: moduły 157 Zsumowanie Spośród programowalnych rozszerzeń Joomla! moduły stanowią najprostsze i najłatwiejsze w implementacji rozwiązanie. W tym rozdziale przedstawiono proces tworzenia modułów. jak te. dlatego stosując moduły. jednak jego dystrybucja i instalacja. Programowanie komponentów stanowić będzie prawdopodobnie główną część pracy w zakresie profesjonalnego programowania Joomla!. ze względu na zapisywanie w postaci archiwum ZIP. W rozdziale 6.Rozdział 5. Moduły są najprostszą form rozszerzeń Joomla!. który wyświetla publiczne informacje o kontaktach. można uzupełnić system Joomla! praktycznie o każdą pomniejszą funkcję. a następnie wyświetla je na stronie. Jeśli jednak dane zastosowanie wymaga bardziej rozbudowanej interakcji z użytkownikiem.

158 Joomla!. Profesjonalne tworzenie stron WN 1W .

co często oznacza współpracę z innymi programistami. jak wygląda tworzenie profesjonalnych. które można znacząco uprościć. stosując potężniejsze narzędzia programistyczne. Jednakże dowolny. skomplikowanych zintegrowanych środowisk programistycznych (IDE — Integrated Development Environment). komercyjnych aplikacji Joomla!. sugerowały wykorzystanie edytora tekstu do tworzenia i zapisywania plików źródłowych. Programowanie tych kilku modułów ograniczało się do wykorzystania prostego edytora tekstu. wygotowanie środowiska programistycznego Wskazówki w rozdziale 5. To spontaniczne podejście do procesu programowania sprawdza się w sytuacjach. a także automatyczną generację dokumentacji projektu (phpDocumentor). Ta szybka i prowizoryczna metoda jest jednocześnie jedną z zalet tworzenia programów PHP. Do tego celu wykorzystasz profesjonalne środowisko programistyczne (Eclipse). przynajmniej średniej wielkości (dotyczy to praktycznie każdego komponentu) projekt to zadanie. kiedy musisz napisać prosty moduł lub wprowadzić niewielką zmianę. co pozwoli Ci lepiej pojąć. W tym rozdziale naświetlono proces tworzenia zaawansowanego rozszerzenia Joomla!. ponieważ wprowadzany kod był nieskomplikowany i wcześniej sprawdzony. Przykładowo stworzenie komponentu sklepu internetowego z kilkoma dołączonymi modułami wymaga koordynacji wielu plików. Profesjonalne programowanie wymaga jednak dużo większej kontroli nad projektem. Będziesz miał okazję poznać wszystkie kolejne etapy programowania.6 Zaawansowane rozszerzenia: komponenty Dzięki wskazówkom umieszczonym w rozdziale 5 stworzyłeś kilka prostych rozszerzeń. ponieważ nie jesteś zmuszony do korzystania ze złożonych. poznając przy okazji podstawowe aspekty rozszerzalności systemu Joomla!. system kontroli wersji (Subversion). Dodatkowo .

ponieważ dostępne są rozszerzenia np. Jednym z najczęściej wykorzystywanych systemów kontroli wersji jest program Subversioi (SVN). Pomimo wielu podstawowych wad CVS został w znaczącym stopniu rozwinięty. Istnieje popularniejszy od SVN system kontroli wersji— nazywa się Concurrent Versions System (CVS). Organizacja pracy zorientowana jest m projekty. a jego popularność nie słabnie. przykłady opisane w tym rozdziale zostaną stworzone z użyciem dwócł profesjonalnych narzędzi programistycznych. to wspaniale. Jeśli tak jest. grupa programistów. Tym sposobem system} kontroli wersji pozostają niedoceniane. a w razie potrzeby istnieje możliwość przy wrócenia starszej wersji. Mimo wszystko warto przynajmniej pobieżnie zapoznać się z podrozdziałami. a architektura oparta na wtyczkach dodatkowo usprawnia konstrukcję oprogramowania Joomla!. głównie ze względu na archiwum starszych projektów stworzone w tym systemie. że korzystasz już ze środowiska programistycznego. Ja w codziennym użyciu preferuję CVS. ma narzędzia do rozwiązywania konfliktów. Na< jednym projektem może pracować kilku programistów jednocześnie. o których wcześniej nie pomyślałeś. System kontroli wersji SVN usprawnia zespołową pracę nad kodem. jeśli pojawią się dwie istotnie różniące się wersje tego samego pliku. Być może dzięki temu odkryjesz nowe sposoby wykorzystania obecnego IDE. a takżt umożliwia zarządzanie archiwum kodu źródłowego. W przypadku Joomla! wiodącym rozwiązaniem jest jednak SVN. Systemy kontroli wersji to kluczowy element prawie wszystkich projektów wyjątkiem są tylko te najmniejsze. w których opisano Eclipse. ponieważ wiele decyzji projektowych poprzednika narzucało permanentne ograniczenia.160 Joomla!. Niestety. z których powinna korzystać jak najszersz. Mając to na uwadze. dlatego programiści Joomla! powinni rozważyć korzyści płynące z adaptacji akurat tego systemu kontroli wersji. które spełnia Twoje potrzeby. Stosowanie systemu kontroli wersji SVN System kontroli wersji to jedna z technologii. Profesjonalne tworzenie stron WN 1W jeśli nad projektem pracuje grupa lub choćby dwie osoby. SVN stworzono z myślą o zastąpieniu CVS. . wielu ludzi nie dostrzega zalet płynących z zastosowania jej a firmy programistyczne często nie traktują tego jako obowiązku. Możliwe. Głównym zadaniem takiego systemu jest prowadzenif archiwum kodu źródłowego i notowanie wszystkich zmian wprowadzonych w plikach. System obsługujt wprowadzanie zmian. dla Subversion (SVN). Znalezienie środowiska programistycznego spełniającego oczekiwania przypomina wyszukiwanie samochodu. któiy Ci odpowiada—jest to kwestia indywidualnego wyboru. i nie masz zamiaru zmieniać go. SVN to zaawansowany program składający się z części serwerowej i części klienta co umożliwia zarządzanie projektem przez sieć podczas konstrukcji oprogramowania. nawet kiedy nad projektem pracuje tylkc jedna osoba. wykorzystanie profesjonalnycl" narzędzi może zadecydować o zakończeniu projektu o czasie i nieodkładaniu go w nieskończoność. kodu PHP XML i HTML. IDE o nazwie Eclipse posiada funkcjonalność daleko wykraczającą poza zwykły edytor tekstu. Zmiam wprowadzone w kodzie mogą być konsultowane.

ponieważ programiści open source. Firma zamierza stworzyć nową wersję aplikacji. jest znów potrzebna. jak zastosowanie systemu kontroli wersji może uratować sytuację. Ponieważ SVN jest systemem działającym na serwerze. Wprowadzenie zmian jest bardzo proste. Funkcja.Rozdział 6. Aplikacje podobne do SVN powstały. Minimalna wersja danej procedury uruchamiała się dużo sprawniej przed wprowadzeniem zmian. jednocześnie starsza wersja musi nadal być wspierana. aby zapisać zmiany. często gra także rolę aplikacji archiwizującej. Dzięki przeglądaniu wersji programu według dat lub nazw można łatwo i szybko przywrócić najnowszą wersję kodu. Za pomocą SVN możesz zbadać wcześniejsze wersje kodu. Możliwe jest stworzenie nowej wersji niezależnie od starej i kontynuowanie prac jednocześnie nad obiema. kiedy dana funkcja pracowała poprawnie. Nie musisz szukać wśród kopii zapasowych. które napotkasz w czasie tworzenia aplikacji. tłum. która została usunięta kilka miesięcy temu. Pobranie starej wersji pliku z systemu kontroli wersji jest trywialne. oraz sposoby rozwiązania ich dzięki SVN: • W kodzie źródłowym nowej wersji programu wprowadzono wiele zmian. ponieważ polega to do kliknięciu prawym przyciskiem pliku lub folderu i wybraniu opcji „check in". zobaczyć. więc programista chce poddać jąrefaktoryzacji. która zawierała wymaganą funkcję. która wymaga znaczących zmian. • • • • • Kilka przykładów wymienionych wyżej świadczy o tym. aby odnaleźć właściwy plik. po czym nagle okazuje się. ponieważ zmiany wersji oznaczane są w SVN. Rozwidlenie — przyp. muszą pojawiać się uaktualnienia i poprawki błędów. a Ty nie zrobiłeś kopii zapasowej. w różnych miejscach potrzebowali skutecznego sposobu wprowadzania zmian bez ryzyka uszkodzenia projektu. W razie konieczności możesz przywrócić projekt do stanu. . pracujący o różnych porach. Twój komputer zepsuł się. W powyższym opisie całkowicie pominięto bardziej znaczące aspekty. SVN pozwala na eleganckie rozwiązanie tego problemu dzięki opcji „fork" 1 . że jedna z podstawowych funkcji przestała działać — a Ty nie masz pojęcia dlaczego. uruchamianej na innej maszynie. a następnie zdiagnozować problem lub określić różnice w działaniu nowej wersji. jakie zmiany wprowadzono w danej części. takie jak możliwość wglądu w historię ukończonych projektów lub rola materiału dowodowego w przypadku oskarżenia o kradzież kodu. Jest to wygodny sposób tworzenia kopii zapasowych nawet dla leniwych programistów. jaką odgrywa solidna dokumentacja konstrukcji oprogramowania. biorąc za podstawę pierwszą implementację. • Zaawansowane rozszerzenia: komponenty 161 Poniżej wymieniono kilka częstych problemów. Wielu ludzi pracuje jednocześnie nad danym projektem. z tego powodu niezbędna jest koordynacja wysiłków i wprowadzanych zmian.

org.org) integruje się z Eksploratorem Windows.org/ Jeśli wolisz interfejs graficzny.umputun.de/wiki/programs/kdesvn. at/prg/emacs.//subversion. tkSVN— Klient systemów SVN i CVS napisany w Tcl/Tk. i komercyjną Professional.xsteve. WorkBench — Wieloplatformowe (napisane w oparciu o wxPython i pysvn) narzędzie. możesz skorzystać z jednej z poniższych implementacji: • TortoiseSVN— Najpopularniejsza implementacja dla systemu Windows. Profesjonalne tworzenie stron WN 1W Instalacja SVN System SVN można zainstalować na kilka sposobów. Windows.syntevo. kdesvn — Kolejny klient SVN dla środowiska KDE. dostępna na stronie http://rapidsvn. można ją znaleźć na stronie http://esvn. obiektowa implementacja biblioteki SVN w Pythonie. co pozwala na dostęp do wszystkich funkcji bezpośrednio z menu kontekstowego.com.tigris.com. SCPlugin — Wtyczkę dla narzędzia Finder w systemie MacOS X można znaleźć na stronie http://scplugin.lachoseinteractive. tigris. dostępny na stronie www. dostępna na stronie www. • • QSvn — Kolejny klient SVN napisany w oparciu o bibliotekę Qt. możesz pobrać bazę systemu SVN z poniższej strony: http -.162 Joomla!.org. dostępna na stronie http://subcommander. Windows. • Subcommander — Wieloplatformowa (Linux. org. svnX— Nakładka graficzna narzędzi tekstowych SVN dla MacOS X. tigris.anrichter. dostępny na stronie www. MacOS X) nakładka graficzna napisana w C++ z wykorzystaniem platformy wxWidgets. MacOS X) nakładka napisana w C++ z wykorzystaniem biblioteki Qt.el— Interfejs SVN dla programu Emacs. Można na niej znaleźć dwie wersje.tigris. tigris. dostępny na stronie www. • m SmartSVN— Wieloplatformowy (Linux. MacOS X) klient SVN dostępny na stronie www. • • • . eSvn — Wersja programu Subversion napisana w oparciu o bibliotekę Qt. net/tkcvs. TortoiseSVN (http://tortoisesvn. Jest to implementacja SVN w Javie z wykorzystaniem biblioteki SVNKit.alwins-world. dostępny na stronie www. twobarley corns. którą można znaleźć na stronie http://jsvn.com/smartsvn. • • • m psvn. JSVN— Kod proof-of-concept. org.alternatecomputing. Windows. darmową — Foundation.net/projects/qsvn/ RapidSVN— Wieloplatformowa (Linux.tigris. implementacja klienta SVN w Java Swingu.net/en/community/subversion/svnx. można znaleźć j ą na stronie http://pysvn.html. Jeśli preferujesz wiersz polecenia.

TortoiseSVN Otwórz za pomocą. tigris. Po utworzeniu folderu należy zarejestrować go w SVN jako repozytorium. Po zainstalowaniu aplikacji dostęp do niej uzyskasz po kliknięciu prawym przyciskiem okna Eksploratora Windows. Syncro SYN Client — Wieloplatformowa nakładka. com. . SVN Checkout. syncrosvnclient. 163 Jeśli dopiero zaczynasz. org Proces instalacji przeprowadzany jest w prostym..(rysunek 6. Pliki można uaktualniać i pobierać z repozytorium pojedynczym kliknięciem. W doskonały sposób integruje się z systemem operacyjnym i pozwala na dostęp do menu TortoiseSVN po kliknięciu prawym przyciskiem dowolnego pliku lub folderu. których kopie bezpieczeństwa tworzone są automatycznie. zalecana jest instalacja TortoiseSVN. Jeśli zamiast tego wolałbyś uruchomić serwer SVN. będziesz mógł obsługiwać repozytorium bezpośrednio z poziomu IDE. z Eclipse). Wyślij do Wytnij Kopiuj Utwórz skrót Usuń Zmień nazwę Właściwości ij? . ¡linek 6. na której bez problemu znajdziesz potrzebne wskazówki.1. Kliknij prawym przyciskiem stworzony przed chwilą folder i z menu kontekstowego wybierz TortoiseSYN/Create repositoiy here...Rozdział 6. Możesz umieścić go na dysku twardym komputera lub na przykład na dysku sieciowym. wpisy programu pojawią się jako jedne z pierwszych na liście. g. trójkrokowym kreatorze.. odwiedź stronę SVN. Create repository here Import.. dostępny na stronie http://zigversion. Jeśli nie zaznaczyłeś żadnych elementów. Settings Help About [> orzenie lozytorium nenu ntekstowego Ponieważ SVN można zintegrować z wieloma środowiskami programistycznymi (a co najważniejsze.. orzenie repozytorium SVN Każdy system kontroli wersji wymaga repozytorium — to miejsce przechowywania aktualnej kopii plików i kopii archiwalnych. które zostały zarejestrowane. dostępna na stronie www. możesz nadal korzystać z funkcji programu. Powinien pojawić się komunikat informujący o poprawnym utworzeniu repozytorium. System automatycznie umieści w nim pliki i foldery niezbędne do zarządzania archiwum.. Utwórz folder o nazwie Repozytorium_SVN. TortoiseSVN można pobrać ze strony: http://tortoisesvn. com. Konfiguracja serwera SVN (zwłaszcza zagadnienia związane z bezpieczeństwem) wykracza poza ramy tej książki.. • Zaawansowane rozszerzenia: komponenty • • ZigVersion — Komercyjny klient SVN dla Mac OS X. Dla pojedynczego programisty funkcję repozytorium może spełniać zwykły folder na dysku twardym. klikając menu Plik.1). ? • > Bii Repc-browser Export..

W lewym górnym rogu znajduje się pasek skrótów pozwalający na przełączanie między perspektywami.3. która bezproblemowo łączy system kontroli wersji SVN ze środowiskiem programistycznym. Konfiguracja Eclipse Przy pierwszym uruchamianiu Eclipse pojawi się okno z pytaniem o położenie folderu roboczego.2. stworzonym przez IBM.3 ustawiona jest perspektywa Resource. Uruchomienie Eclipse powoduje wyświetlenie ekranu powitalnego. Na pasku tytułu znajduje się informacja o aktualnie wyświetlanej perspektywie. Dla systemu Eclipse opracowano wtyczkę o nazwie Subclipse. do których dołącza się pliki. jak to przedstawiono na rysunku 6. dzięki czemu wybrany folder będzie wykorzystywany przy kolejnych uruchomieniach. a następnie przekazanym społeczności open source. Kontroluje ona. Proste kliknięcie prawym przyciskiem myszy i wybór odpowiedniej opcji z menu pozwala uaktualnić repozytorium lub pobrać z niego najnowszą wersję projektu. Na rysunku 6. Instalacja składa się zaledwie z dwóch etapów: akceptacji warunków licencji i wybrania katalogu docelowego. Instalator zawiera wszystkie wtyczki niezbędne w przypadku programowania w PHP. Na wygląd ekranu wpływa aktualnie ustawiona perspektywa. easyeclipse. Pobieranie i instalacja EasyEclipse Zamiast samodzielnej instalacji Eclipse. Główne okno workbencha przypomina to przedstawione na rysunku 6. a za pomocą wtyczki obsługuje w pełni programowanie w PHP. a także otwieranie kolejnych. Praca z programem sprowadza się do zarządzania projektami. które okna (lub części — w terminologii systemu Eclipse) są wyświetlane i które zasoby dostępne. Profesjonalne tworzenie stron WN 1W Korzystanie z Eclipse Eclipse jest profesjonalnym systemem programistycznym. Podstawy workbencha Środowisko programistyczne w systemie Eclipse nosi nazwę workbench. Wybierz odpowiedni folder i zaznacz opcję Use this as the default. . Na stronie internetowej EasyEclipse możesz znaleźć instalatory dla systemów Windows. org Pakiet zajmuje sporo ponad 100 MB. MacOS X i Linux: www. dlatego najlepiej pobierać go na szybkim łączu. a następnie wszystkich niezbędnych wtyczek warto rozważyć pobranie pakietu EasyEclipse for PHP. czyli także Subclipse. Eclipse posiada kompletne IDE.164 Joomla!.

warto rozważyć dodanie opcji automatycznego wstawiania we wszystkich plikach zabezpieczenia. które zapobiegnie wykonywaniu kodu spoza platformy Joomla!. • Zaawansowane rozszerzenia: komponenty rsunek 6. który zostanie utworzony.Rozdział 6. TODO Dodać pole formularza dla adresu e-mail Możesz utworzyć nowy projekt. Zanim jednak utworzysz nowy projekt. powinieneś wybrać projekt PHP. . Programując Joomla!. korzystając z jednego z dostępnych szablonów (np. Statyczna strona WWW.2. PHP. Java. XML) powiązanych z typem projektu.Navigator Result View Resource «==• •# Księga Gości j qî: Outline An outline is not available. yóre pomocą Ci ipoznać się interfejsem rogramu skutecznie niego korzystać 165 File Edit Navigate Search Project Run Window g C*php Sj. kran powitalny wiera opcje.

Profesjonalne tworzenie stron WN 1W Zmiana domyślnego szablonu PHP w celu dodania zabezpieczenia Joomla! pozwoli Ci lepiej zapoznać się z Eclipse. Od tej chwili wszystkie pliki PHP utworzone w Eclipse będą zabezpieczone przed uruchamianiem spoza systemu Joomla!.. aby zapisać zmiany. Export.. Pakiet EasyEclipse zawiera wtyczka Subclipse. tigris. Subclipse można pobrać na stronie: http://subclipse. Rozwiń węzeł PHPeclipse Web Development. musisz samodzielnie pobrać i zainstalować Subclipse. 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. Jeśli jednak zainstalowałeś standardową wersję Eclipse. Umożliwia ona zamieszczanie komentarzy przez użytkowników.. to księga gości.PHP . Kliknij przycisk OK. aby dodać funkcję współpracy z systemem SVN.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 dostępnych szablonów dla projektu tego typu. Export All. a następnie PHP. Wybierz pozycję New PHP files i kliknij przycisk Edit.. kliknij pozycję Code Templates. ] Ustawienia skategoryzowane i przedstawione są w formie drzewa 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 .4. Ustawienia wyświetlane są w postaci drzewa. Wybierz opcję Preferences z menu Window.. Najczęściej takie wpisy zawierają komplementy pod . Rysunek 6. które widoczne są następnie dla wszystkich odwiedzających stronę.. Możesz teraz wprowadzić kod. org Tworzenie komponentu Księgi Gości Tradycyjna aplikacja internetowa. W tym przypadku wprowadź poniższy: // zablokuj bezpośrednie uruchamianie defined( '_JEXEC' ) or die( 'Brak dostępu' ). który będzie dodawany do każdego nowego pliku. co widać na rysunku 6.4. która może służyć za przykład komponentu.166 Joomla!.

• Zaawansowane rozszerzenia: komponenty 167 adresem prowadzącego stronę.5. CAPTCHA to obrazek zawierający zniekształcone litery i cyfry. Mogą jednak zawierać także sugestie ulepszeń. które wyszukują formularze księgi gości na stronach WWW po to. a po drugie. jak zilustrowano to na rysunku 6. umożliwiającej wyświetlanie wpisów w księdze gości oraz dodawanie nowych za pośrednictwem formularza. gdzie można edytować istniejące wpisy. za pomocą wyrażeń regularnych. by zamieszczać niepożądane odnośniki. powinieneś wprowadzić zabezpieczenie CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart). który składa się z dwóch części: frontowej. N e w PHP project | PHP P r o j e c t Create a new PHP Project Project name: com_guestbook] [jjjjj] Use default location [ Finish J [ Cancel | ihrona przed spamem Spam w księgach gości jest częstym problemem. Większość komponentów składa się z dwóch części. które pojawiłyby się na stronie. wórz nowy ojekt PHP Eclipse nazwie >m_guestbook sunek 6. wybierając File/New/PHP Project. . co uniemożliwia dodawanie spamu. zwiększa liczbę odwiedzin reklamowanej strony.5. wpływa na pozycję na stronach wyników wyszukiwania. a druga umożliwia zarządzanie rozszerzeniem przez administratora. Spamerzy wykorzystują automatyczne narzędzia. Programy wysyłające spam nie są w stanie odczytać znaków z obrazka.Rozdział 6. Ochrona przed spamem w księdze gości sprowadza się do dopuszczania dodawania wpisów tylko przez zarejestrowanych użytkowników. które użytkownik poprawnie musi wprowadzić w pole tekstowe. Najpierw utwórz projekt dla Księgi Gości w Eclipse. W kreatorze wprowadź nazwę projektu com_guestbook. i zaplecza. a także usuwania. ponieważ roboty internetowe zliczają odnośniki do strony. W tym przypadku stworzysz komponent. a także (oby jak najrzadziej) krytykę. Jeśli jednak zamierzasz udostępnić dodawanie wpisów niezarejestrowanym użytkownikom. elementów HTML (czyli także odnośników). z czego jedna funkcjonuje jako interfejs użytkownika. Takie działanie ma dwojakie skutki: po pierwsze.

Jan Kowalski Wspaniała strona tak trzymać! . znajdziesz wiele przykładowych kodów. Najpopularniejszym typem takiego ataku jest SQL Injection. ale także formularz dodawania nowych komentarzy.6. jedną z darmowych bibliotek można było znaleźć na stronie www. Dane przesyłane przez hakerów (takie jak próby ataków SQL Injection) są automatycznie wykrywane i usuwane.com. a w rezultacie wyświetli się zawartość tabeli (w tym przypadku będzie to lista haseł). Księga gości zawiera listę wpisów wraz z informacją. Przykładowo formularz zawiera pole. Polega on na wstawieniu kodu SQL do wykonywanego zapytania. Jeśli haker wprowadzi zamiast tego ciąg znaków podobny do "kowalski. Część frontowa komponentu Funkcją części frontowej jest wyświetlanie informacji na stronie i interakcja z użytkownikiem. zamiast tradycyjnych instrukcji PHP. kto je tam umieścił 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 Gości I Na pewno h i j e s z c z e w i oce ł .J a n Kowalski Formularz dodawania wpisu do księgi gości Wprowadź treść wiadomości: Lokacja (opcjonalne) ( Dodaj wpis ] Podczas konstrukcji kodu zauważysz pewnie. Ponieważ komponenty są bardziej skomplikowane od modułów. Select * from Tabel aHasel". aby w pełni wykorzystać zabezpieczenia wbudowane w platformę Joomla!. Profesjonalne tworzenie stron WN 1W Biblioteki służące do generowania C A P T C H A dostępne są za darmo w internecie. Rysunek 6. Do części frontowej komponentu można uzyskać dostęp z poziomu menu. W czasie gdy powstawała ta książka. a kod PHP wprowadzi po prostu wartość pola w zapytanie. Stanowi to jednak pewne ograniczenie — szczególnie jeśli planujesz modyfikację danych przez użytkowników. komponent Polis) wykorzystuje moduł jako część frontową interfejsu. co przedstawiono na rysunku 6.6. w której przebiega kontrola poprawności danych nadesłanych przez użytkownika. Więcej informacji na ten temat i innych zagadnień związanych z bezpieczeństwem znajdziesz w rozdziale 14. Aplikacje internetowe. wyśle formularz. Metoda getVarO stanowi warstwę zabezpieczeń. W przypadku komponentu księgi gości warstwa prezentacji zawiera nie tylko aktualną listę wpisów. . injection).168 Joomla!. że wartości zmiennych pobierane są (z łańcucha żądania lub z danych wysłanych formularzy) za pomocą metody getVarO. powinny zawierać zabezpieczenia przed atakami przez wstrzyknięcie (ang. który znajduje się poniżej. Jeśli wprowadzisz CAPTCHA PHP w wyszukiwarce internetowej. które pobierają dane ze źródeł zewnętrznych. Zawsze używaj tej metody.cryptographp. wiele rozszerzeń (np. kod SQL nadesłany przez hakera zostanie uruchomiony. w które użytkownik powinien wpisać swoje nazwisko.

kliknij prawym przyciskiem nazwę projektu w oknie nawigacyjnym Eclipse i wybierz opcję New/PHP File. break. // Sprawdź wartość parametru task i wywołaj odpowiednią funkcję switch( JRequest::getVar( case 'add': addEntryi): break: default: displayGuestbookO. gdy użytkownik wyśle wypełniony formularz. // Pobierz treść wiadomości i lokację z formularza ifldMessage = JRequest::getVar{'message'). . o ile użytkownik nie zmienił domyślnego przedrostka nazw tabeli. * @package Księga gości * Komponent ten wyświetla listą wpisów w księdze gości i umożliwia dodawanie * nowych komentarzy przez zarejestrowanych użytkowników */ // Zablokuj bezpośredni dostęp defined! '_JEXEC' ) or die ( Brak dostępu' ).php 5203 2007-06-15 02:45:14Z DanR $ * @copyright (C) 2007 Dan Rahmel. 'task' )) { } // Przetwórz dane z nadesłanego formularza function a d d E n t r y O { // Pobierz referencję obiektu bazy danych $db =& JFactory::getDB0(): // Pobierz id użytkownika dodającego wpis $user =& JFactory::getUser(). że w zapytaniu do bazy danych odwołanie do tabeli nosi nazwę # guestbook. Ustaw nazwę pliku na guestbook. // Usuń wszystkie znaki. które mogą tworzyć kod HTML. Pod listą wpisów dołączany jest formularz. Funkcja addEntryO zostaje uruchomiona w momencie.Rozdział 6. Aby utworzyć nowy plik składowy komponentu. W większości przypadków będzie to odpowiadać tabeli jos_guestbook.php i wprowadź poniższy kod: <?php * @version $Id: guestbook. • Zaawansowane rozszerzenia: komponenty 169 rorzenie kodu części frontowej Projekt rozpoczynamy od zaprogramowania frontowej części komponentu. znaki powrotu karetki itp. Księga gości będzie dostępna dla zarejestrowanych użytkowników. Zwróć uwagę. obiekt baz danych automatycznie wprowadzi go w miejsce zapisu #_. $uid = $user->get('id'). Wszystkie prawa zastrzeżone. zawarte w funkcjach: addEntryO i display '-»•Guestbook (). Funkcja di spl ayGuestbook() wykonuje zapytanie do bazy danych i wyświetla listę wpisów z tabeli księgi gości. Komponent został podzielony na dwie części. Jeśli przedrostek został zmieniony. zadaniem komponentu jest wyświetlanie obecnych wpisów i umożliwianie użytkownikom dodawania nowych. który pozwala użytkownikom dodawać nowe komentarze.

guestbook AS a" . : w instrukcji insert . // Upewnij się przed wyświetlaniem. location." . " LEFT JOIN # " ORDER BY a.created DESC": $db->setQuery( $query.php?opti on=com_guestbook&task=add"> <p>Wprowadź treść wiadomości:<br /> <textarea name="message" cols="60" rows="4" </p> <p> <label>Lokacja (opcjonalne) </p> : </label> id="message"></textarea> <input name="location" type="text" id="location" /> . echo "<b>" . "VALUES (" . created_by. ""'. $_SERVER['REMOTE_ADDR'] . userip) " . users AS u ON u. " .created_by" . ". ". 0): . irowMessage echo " . : iinsertFields = "INSERT INTO # _ g u e s t b o o k "(message.". $db->setQuery( iinsertFields. // Wyświetl listę wpisów w księdze gości function displayGuestbookO { $db =& JFactory::getDB0(). "</b>": HTML ENT_QUOTES): SrowMessage = htmlspecialchars($row->message. " .name" . // Oddziel wpisy poziomymi liniami echo "<hr />".?!$()

Related Interests

###BOT_TEXT###quot;]/". $db->getEscaped($fldMessage) ." .id=a. echo "<a href=index. SfldLocation = . "Powrót do księgi gości </a>": .170 Joomla!. intval($uid) ifldLocation $db->query(). Profesjonalne tworzenie stron WN 1W SfldMessage = preg_replace("/[ A a-zA-ZąćęłóńśźżĄĆĘŁÓŃŚŹŻ0-9 $fldMessage). echo "<hl>Dziękujemy za dodanie wpisu!</hl>". iuserlp . foreach ($rows as $row) { // Sformatuj tekst do wyświetlania na stronie . $row->name." . // Wykonaj zapytanie " FROM # do bazy danych i pobierz listę wpisów $query = "SELECT a.php?option=com_guestbook>" . "). 0). "".message. 'location' )) . że Usta wpisów nie jest pusta if($rows = $db->loadObjectList()) { } } dla nowych wpisów // Wyświetl formularz <hl class="contentheading">Formularz dodawania wpisu do księgi gości</hl> <form id="torml" name="torml" method="post" acti on="i ndex. $db->getEscaped(JRequest::getVar( // Pobierz adres IP i przechowaj go z powodów bezpieczeństwa iuserlp = . u. itldMessage . // Dodaj znaki unikowe SfldMessage = do treści wiadomości i lokacji. aby można było ją umieścić . ".

Funkcja dl spl ayEntri es() wyświetli tabelę zawierającą listę wszystkich wpisów z tabeli księgi gości. Kliknij funkcję displayGuestbook(). co skutkuje wywołaniem funkcji updateEntry(). aby zapisać zmiany. która wprowadza zmiany w tabeli.. Outline : 'Brak dostępu' ) .. Zwróć uwagę. Obok każdego wpisu pojawia się odnośnik. adz 1% « xs addEntry() displayGuestbook() itch( ¿Request case ' a d d ' : addEntry().project IS* admin. więc jeśli klikniesz któryś z nich.) . Przykładowo w oknie Outline. Spowoduje to uruchomienie funkcji editEntryO prezentującej formularz. Jeśli klikniesz je.snl !. tym razem jednak z parametrem task w ciągu żądania ustawionym na edit. zostaniesz przeniesiony do odpowiedniego miejsca w oknie z kodem źródłowym.7. .sql Cl i inin^tflll. że po prawej stronie nagłówka funkcji znajduje się małe kółko ze znakiem minusa ( . kod funkcji zostanie ukryty. co przedstawiono na rysunku 6. którego pola odpowiadają wartością wybranemu wpisowi. paramet getVar( o dp o Problems Console Bookmarks Tasks !: 1 items • 5 Description TODO Dodać do formularza pole do wprowadzania adr. Wpisy na tej liście mają postać odnośników. • Zaawansowane rozszerzenia: komponenty <P> < =input type="submit" name="Submit" value="Dodaj wpis" /> </p> 171 </form> <?php } ?> Od razu po zapisaniu pliku kod zostaje automatycznie zanalizowany. usiinek 6. Możliwość ukrywania części kodu ułatwia zarządzanie dużymi plikami w Eclipse. break. Po wprowadzeniu zmian administrator klika przycisk Zapisz.guestbook. • P P . a w oknie edytora zostanie podświetlona odpowiednia funkcja. default : displayGuestbook() break. który umożliwia jego edycję.php •jSj guestbook.guestbook. a środowisko zaktualizowane.EasyEclipie for P P H H File Edit Navigate Search Project PHP/Apache Run Window Help .Rozdział 6. xml 0 install. po prawej stronie workbencha wyświetlana jest lista wszystkich funkcji i metod zdefiniowanych w pliku. a w miejsce minusa pojawi się plus (+).php . Kliknięcie odnośnika powoduje ponowne wywołanie komponentu.7. Resource zęść administracyjna komponentu Części administracyjnej przypisano trzy scenariusze. php x guestbook.JJ i i « S~J i «SB* PHP I t(b Resource unkcje i metody awarie w pliku 'yświetlane są ' oknie Outline o prawej stronie MIL & J P Księga gości X .

'addedit. " SET message= " . } // Zapisz dane pobrane z formularza function updateEntry() { // Ustaw tytuł w interfejsie administratora JToolBarHelper::title( JText::_( 'Uaktualnianie wpisu w księdze gości' ). break: case 'update': updateEntry(): break. " . $db->getEscaped(JRequest::getVar( w tabeli jos_guestbook 'id' )) . Wszystkie prawa zastrzeżone.guestbook.php 5203 2007-06-15 02:45:14Z DanR $ * @copyright (C) 2007 Dan Rahmel. echo "<h3>Uaktualniono wpis!</h3>". Profesjonalne tworzenie stron WN 1W Utwórz nowy plik PHP w środowisku Eclipse i nazwij go admin.php. 0): $db->'query().172 Joomla!. $db->getEscaped(JRequest: :getVar( 'message' )) .ifldLocation . $db->setQuery( iinsertFields. echo "<a href='index. // Pobierz referencję do obiektu bazy danych $db =& JFactory::getDB0(): // Pobierz dane z formularza . ""'. ifldLocation» SfldID = // Zapisz zmiany . : . break.png' ). ".php?option=com_guestbook'>Powrót do listy wpisów</a>": // Wyświetl listę wpisów z księgi gości function displayEntriesO { // Ustaw tytuł w interfejsie administratora JToolBarHelper::title( JText::_( 'Wpisy w księdze gości' ). wprowadź poniższy kod: <?php /** * @version $Id: guestbook. * @package Księga gości * Komponent ten wyświetla listę wpisów w księdze gości i umożliwia * nowych komentarzy przez zarejestrowanych użytkowników */ // Zablokuj defined( bezpośredni dostęp Plik ten dodawanie '_JEXEC' ) or die ( 'Brak dostępu' ). ifldlD . SfldMessage .png' ): . 'addedit. default: displayEntriesO. " WHERE id = " . SfldMessage = '"' . zawiera część administracyjną komponentu. iinsertFields = "UPDATE # _ g u e s t b o o k " . " location»" . $db->getEscaped(JRequest::getVar( 'location' )) . funkcję // Sprawdź wartość parametru task i wywołaj odpowiednią switch( JRequest::getVar( 'task' )) { case 'edit': editEntryi).

created_by. aby przejść do ekranu edycji. $row->created . 'addedit. 10 ): Srows = Sdb->loadObjectList()."</td>" . "<td><a href=" . " FROM # guestbook AS a" .id.message.". JRequest::getVar( $db->setQuery( iquery. "</td>" . $row->name . 0. $db->setQuery( iquery.png' ): $db =& JFactory::getDB0(): iquery = "SELECT a. u. a. ?> <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. "</a></td>" . "<td>" . • Zaawansowane rozszerzenia: komponenty // Wykonaj zapytanie i pobierz listę wpisów $db =& JFactory::getDB0().created_by" . "<td>" . $row->id: 'Utworzono' ): ?></strong> 'Wpis' ): ?></strong> 'ID wpisu 1 ). 0. $row->id . ">" .created_by. $link . a. "<td>" .. IrowMessage . 100) .id=a. 10 ). ".id..location" . a.</h3>": } function e d i t E n t r y O { JToolBarHelper::title( JText::_( 'Edycja wpisu księgi gości' ).created.uestbook&task=update"> <p>Wprowadź treść wiadomości:<br /> . } echo "<tr>" .php?option=com_guestbook&task=edit&id=' .id = " . "</td>" . " LEFT JOIN # 173 " ORDER BY created DESC".Rozdział 6. a. a. " WHERE a. iquery = "SELECT a. " FROM # guestbook AS a" .message. 0. a. a. if (irows = $db->loadObjectList()) { 'id' ): <form id="forml" name="forml" method="post" action="index.php?option=comjj.created.name" . ?></strong> // Przytnij treść wyświetlanych wiadomości $rowMessage = $row->message: if(strlen($rowMessage) > 100) { IrowMessage = substr($rowMessage. users AS u ON u. "</tr>": echo "</table>": echo "<h3>Kliknij treść wpisu w tabeli. ?></strong> 'Przez' ).

?>' /> </p> <p> <input type="submit" name="Submit" value="Zapisz zmiany" /> </p> </form> <?php } } ?> Zapisz plik.php</fi1ename> użytkowników.sql</file> component="com_guestbook">guestbook.0" encoding="utf-8"?> <install version="1. lista metod i funkcji. kod zostanie automatycznie przeanalizowany. jak i zaplecza. W oknie New File wprowadź guestbook. Następnie wprowadź poniższy kod: <?xml version="1.174 Joomla!. Profesjonalne tworzenie stron WN 1W <textarea name="message" cols="60" rows="4" echo $rows[0]->message: ?></textarea> </p> <p> <label>Lokacja (opcjonalnie) : </label> id="location" id="message"><?php <input name="location" type="text" value='<?php echo $rows[0]->location: ?>' /> <input name="id" type="hidden" id="id" value='<?php echo $rows[0]->id. Definicje umieszczone w pliku powodują instalację plików zarówno części frontowej.sql</file> </sql> </uninstall> <administration> <menu>Guestbook</menu> charset="utf8">install.xml jako nazwę pliku.5.0. wybierz File/New/File selection.0</versi on> <description>Wyświetla listę wpisów z księgi gości wraz z formularzem dodawania nowych komentarzy przez zarejestrowanych <fi1es> <f•i 1ename </files> <install> <sql> <file driver="mysql" </sql> </i nstal1> <uni nstal1> <sql> <file driver="mysql" charset="utf8">uninstall .</description> . Plik deskryptora Plik deskryptora tego komponentu jest zdecydowanie bardziej skomplikowany niż ten dla modułu Hello World. Ponieważ interfejs Eclipse nie zawiera opcji do tworzenia pliku XML.0" type="component"> <name>Guestbook</name> <author>Dan Rahmel</author> <versi on>l. a w oknie Outline pojawi się rezultat.

Kliknięcie któregoś z elementów spowoduje jego podświetlenie w oknie edytora. więc jeśli klikniesz prawym przyciskiem okno edytora. 'location' VARCHAR(45).xml ® install. • Zaawansowane rozszerzenia: komponenty <fi les> <fi 1ename component="admi n.guestbook.u •"'•'•—-—— E B B Help g u e s t b o o k .i [ej name author version description files •-.' i n<name> vGeur es si ot bno. jak zilustrowano to na rysunku 6. (M ê ij V i * S <8»PHP .xml ÎZ • i " G stall u.sql </fi 1 ename> </files> </admini stration> </i nstal1> 175 Po zapisaniu pliku w oknie Outline pojawi się schemat XML. Wybranie tej opcji spowoduje walidację pliku XML i zaznaczenie błędów w pliku małymi czerwonymi ikonami na lewym marginesie. 'created_by' INTEGER UNSIGNED NOT NULL.Easy Eclipse f o r P H P Navigate Window 5 chemat XML anego pliku yświetlany jest ' oknie Outline . "o"k -1/ . php *• guestbook. _ Resource i Navigator ' < 1 3 Result View % ® : & . 'userip' V A R C H A R Ü 6 ) .-1.„.guestbook |ej filename •ri i l e dr iv« B< Design ! Source 1 Tasks 1 items v ! Description PHP Browser > i « j filename . a S » * * « c > u chor a D a n Rahree <version. Eclipse obsługuje format XML. x m l . 'created' TIMESTAMP NOT NULL.sqh DROP TABLE IF EXISTS '#_guestbook' .Rozdział 6. - .sql 'E): x *guestbook.sql uninstall./| X Resource Path ^ D I TODO Dodać pole formularza dla adresu e-mail Jjjg » "> * > Plik deskryptora XML różni się od poprzednich przykładów. Musisz stworzyć te dwa pliki i dołączyć je do archiwum. "message' text NOT NULL.php «3*1 guestbook.sql i wprowadź do niego poniższy 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 .8. ponieważ zawiera odwołania do dwóch plików SQL.i tf? Księga Gości K .0.guestbook. r t File 1 • Resource Edit ' Source . Utwórz nowy plik o nazwie install. ^ *1 ..php</fi 1ename> <fi 1ename>i nstal1. które tworzą tabelę # guestbook podczas instalacji i oraz usuwają podczas deinstalacji komponentu. łsunek 6.8.project admin. w menu kontekstowym pojawi się opcja Validate.0-:/\ nowych komęntai coraj [ej Hi [ej [ej .guestbook">admi n. • — — Search % — — Project • Run • • XML . PRIMARY KEY('id')) Wprowadź następujący kod w nowym pliku o nazwie uninstall..sql</fi1ename> <fi 1ename>uni nstal1.filename [ej filename component=com_guestbook ® ie] install iSi jej uninstall % ( f j administration £ [ej filename component=admin.

Archiwum utworzone w programie Eclipse jest poprawnie odczytywane przez platformę Joomla!. Pozostaw niezmienione domyślne ustawienia Save in zip format i Create directory structure for files. które posłuży do instalacji w systemie Joomla!. Rysunek 6. a pliki kopiowane są w odpowiednie miejsce. a w prawym panelu wszystkie pliki do niego należące. co zilustrowano na rysunku 6. Jeden plik zostanie umieszczony w folderze components. . W przyszłości możesz wprowadzać zmiany bezpośrednio w plikach umieszczonych w tych folderach. możesz stworzyć archiwum. wybierz opcję Archive File i kliknij przycisk Next. Na liście wyboru powinien być zaznaczony Twój projekt.9. Okno eksportu zawiera opcję tworzenia archiwum ZIP z plikami projektu Select Export resources to an archive file on the local file system. możesz się także posłużyć przyciskiem Browse. za pomocą której zostanie utworzone archiwum. Instalacja komponentu Otwórz opcję Rozszerzenia w interfejsie administratora Joomla! i zainstaluj komponenty. type filter text & General „ É Ant Buildfiles .zip i kliknij przycisk Finish. a plik deskryptora i część administracyjna zostaną zapisane w folderze administrator\components.. o ile testowanie wymaga wyłącznie odświeżenia okna przeglądarki.176 Joomla!. domyślne ustawienia są odpowiednie.9.. Rozwiń kategorię General. O ile nie chcesz wykluczyć któregoś z plików (nikomu nie zaszkodzi jego obecność). W pole tekstowe To archive file wprowadź ścieżkę. Zostanie wyświetlone okno eksportu projektu. Eclipse utworzy archiwum i zapisze je w wybranym miejscu. Wprowadź nazwę archiwum com_guestbook. © Breakpoints 4 . Eclipse posiada nawet taką funkcję! W oknie nawigacyjnym kliknij prawym przyciskiem projekt com_guestbook i wybierz opcję Export. Select an export destination.File System I J Preferences Okno tworzenia archiwum ma kilka parametrów. Profesjonalne tworzenie stron WN 1W Tworzenie archiwum Twój projekt jest teraz gotowy.

iy zapobiec idużyciom ięgi gości zez spamerów t 1 1 Pozycja menu: [utwórz] łyp pozycji menu : P.5? More about Joomla! The News Web Links News Feeds ^ ^ ** ¿fr Publikacja: O Nie <3 Tak Kolejność: Nowa pozycja znajdzie si^*nTońcu. dlatego komponent Księga Gości będzie w części administracyjnej nosić oryginalną lazwę Guestbook —przyp. Następnie na ekranie parametrów wprowadź nazwę Moja księga gości.What's New in 1.Rozdział 6. sunek 6. menu mponenty jawi się wpis lestbook. Joomla! Overview •! $ . sunek 6.zęścią 'ministracyjną ięgi gości Wttiyn.10. czy pozycja będzie dostępna wyłącznie dla zarejestrowanych użytkowników — pomoże Ci w tym rysunek 6.11. Poziom dostępu: Powszechny Specjalny 'odczas tłumaczenia tej książki przyjęto konwencję tłumaczenia nazw rozszerzeń. Na razie nie ma potrzeby korzystania z tej opcji. • Zaawansowane rozszerzenia: komponenty 177 Jeśli zostanie wyświetlony komunikat o poprawnej instalacji.10.ll Recent .php?oplion=com_guestbook Wyświetlaj w: Main Menu lladi zedna poayeja: v a.Killed Anicie« Menu Stats Utwórz nową pozycję w Main Menu. ponieważ księga gości nie zawiera jeszcze żadnych wpisów. tłum. wraz z formularzem dodawania nowych komentarzy przez zarejestrowanych użytkowników. <ranicz dostęp < księgi gości ko dla rejestrowanych ytkowników. ale zachowywania iryginalnych nazw plików. W przypadku komponentów Joomla! te dwa założenia wykluczają się. »onieważ przy instalacji pliki komponentu (dla modułów nie ma tego problemu) kopiowane są do katalogu . Ze względów bezpieczeństwa upewnij się. w menu Komponenty powinien pojawić się wpis Guestbook1. która łączy z komponentem Guestbook.11.Hipa listrator Poprzednia Mieni .i Me mi Aityfcirty Komponenty Reklama Kontakty Rozszerzenia <'* Podgląd narzędzia 0 Pomoc £1 © wylot j/Velconie to JoontU! orjtjed tn llseis azyta i.ir<tHieti Parametr Guestbook I Zmień typ 1 Wyświetla listę wpisów z księgi gości.om_nazwakomponentu. jak przedstawiono to na rysunku 6. Po zapisaniu można zmienić kolejność. iry łączy :. Wytoyiif Po|>lll. Po wyświetleniu listy dostępnych komponentów wybierz pozycję Guestbook. . Szczegóły pozycji menu Tytłifc Moja Księga Gości Tekst zastępczy: Łącze: index .

Wprowadź wiadomość. aby zachować j ą w systemie. Na ekranie nie pojawią się żadne wpisy.ik t i z y n t a ć ! .178 Joomla!. możesz przejść do części administracyjnej. otwórz stronę Joomla! w przeglądarce i kliknij odnośnik Moja księga gości.14. a także dla wygody praktycznie wszystkie znaki. co pokazano na rysunku 6. Rysunek 6. aby przejść do eki. Profesjonalne tworzenie stron WN 1W Aby przetestować księgę gości. kiedy w tabeli # guestbook znajdują się już jakieś wpisy. Jego kliknięcie spowoduje wyświetlenie formularza edycji wpisu — co zilustrowano na rysunku 6. Ze względów bezpieczeństwa.J a n Kowalski Formularz dodawania wpisu do księgi gości Wprowadź treść wiadomości. są usuwane z wiadomości dodawanych przez użytkowników części . oprócz liter.J a n Kowalski W s p a n i a ł a stroii. Około 200 znaków każdego wpisu wyświetlanych jest w postaci odnośnika. Rysunek 6. Wprowadź wiadomość w formularzu księgi gości N. Kliknij go.11111 edycji.12. Każdy wiersz tabeli odpowiada jednemu wpisowi w księdze gości. podobnie jak zilustrowano to na rysunku 6.it. cyfr i podstawowej interpunkcji. tylko formularz dodawania nowego. Wybierz pozycję Księga Gości z menu Komponenty.i p e w n o tu j e s z c z e w i ó c e I .13.12. Kliknięcie odnośnika w tabeli spowoduje wyświetlenie formularza edycji danego wpisu Edycja wpisu księgi gości W p r o w a d ź treść wiadomości: Ma pewno t u jeszcze wrócę :-) Lokacja (opcjonalnie): Zapisz smiany Zmiany można wprowadzić do bazy danych. a następnie kliknij przycisk Dodaj wpis.13. Teraz. klikając przycisk Zapisz zmiany. aby wyświetlić listę wpisów. Lokacla (opcjonalne) D o d a j wpis Na ekranie pojawi się potwierdzenie wraz z linkiem kierującym z powrotem do księgi gości. W części administracyjnej zostanie wyświetlona lista wszystkich wpisów w księdze gości Wpisy w księdze gości !t> W|>i&u 2 1 Wpis Na pewno tu jeszcze wrócę ) Wspaniaja strona tak trzymać! Kliknij tieść wpisu w tabeli. Rysunek 6.14.

dlatego można go używać na dowolnym serwerze z obsługą PHP. Brak dokumentacji przekłada się jednak na trudności w zarządzaniu kodem i jego dalszym rozwijaniu. z których następnie tworzy dokumentację.phpdoc. Ponieważ generowanie dokumentacji jest zautomatyzowane. Możliwe jest utworzenie dokumentacji w takich formatach. tworzy własną tabelę do przechowywania danych. Program analizuje wszystkie pliki źródłowe i zbiera informacje.Rozdział 6. a także informacji na temat struktury aplikacji bezpośrednio w plikach źródłowych. Komponent Księga gości składa się z części frontowej i administracyjnej. którą znajdziesz pod adresem: http: //www. uaktualnianie). Program nie wymaga dostępu do bazy danych ani żadnych technologii renderowania. stalacja Instalacja programu phpDocumentor na serwerze WWW jest wyjątkowo prosta. która umożliwia programistom umieszczanie podstawowej dokumentacji. CHM (skompilowany HTML) i XML. Proces tworzenia i uaktualniania dokumentacji wraz z rozwojem aplikacji może być nudny i męczący. Dostęp do aplikacji odbywa się wtedy po wprowadzeniu poniższego adresu: http://localhost/phpdoc . org Następnie należy umieścić zawartość archiwum na serwerze WWW. że dokumentacja może odwoływać się zawsze do stanu bieżącego. którym programiści poświęcają najmniej czasu. wstawianie. Program phpDocumentor został stworzony. Zwróć uwagę. ponieważ phpDocumentor nie jest bezpieczną aplikacją. że przykładowy komponent stanowi doskonałą podstawę dla kolejnych rozszerzeń zorientowanych na komunikację z bazą danych. Te cechy sprawiają. Oznacza to. • Zaawansowane rozszerzenia: komponenty 179 frontowej. Jest to aplikacja open source. aby było to miejsce publicznie niedostępne. a także przeprowadza na niej różne operacje (pobieranie. Pozwala to wstawiać dodatkowe elementy użytkownikom posiadającym prawa administratora. Odpowiedni odnośnik znajduje się na stronie phpDocumentor. gdzie uzupełnić brakujące informacje). Część administracyjna nie ma takich zabezpieczeń. jest tworzenie dokumentacji. aby ograniczyć ten problem. Na moim serwerze testowym umieściłem program w folderze phpdoc w głównym katalogu serwera WWW. Pierwszym krokiem jest pobranie archiwum zawierającego najnowszą wersję z serwisu SourceForge. PDF. jak HTML. a słabo udokumentowane fragmenty kodu można łatwo zidentyfikować na podstawie przeglądu (dzięki czemu wiadomo. orzystanie z phpDocumentor Jednym z aspektów konstrukcji oprogramowania. aplikację phpDocumentor można uruchomić w dowolnym momencie. aby utworzyć najbardziej aktualną dokumentację danego projektu.

package). Pakiet jest pojęciem zbiorczym dla grupy klas. w którym będzie przechowywana dokumentacja. podobne sekcje powinny być wstawiane przed wszystkimi funkcjami. pliki. a następnie kliknij zakładkę Output na górze strony. wynik —przyp. Jeśli zdecydujesz się na tę drugą opcję. Za pomocą phpDocumentor regularnie tworzona jest dokumentacja dla platformy Joomla!. w którym zostanie umieszczona dokumentacja. 1 Odpowiednio: wprowadzenie.org. który utworzyłeś przed chwilą. Outpuł itd. Aby była ona kompletna. Wprowadź ścieżkę dostępu do katalogu. Za pomocą znacznika @package możesz oznaczyć miejsce wystąpienia pakietu nadrzędnego. Zazwyczaj będzie on brzmiał „Awaiting your command" („Czekam na rozkaz"). Files. ponieważ zawiera on niezbędne sekcje DocBlock. Pakiety podrzędne z kolei można opisywać znacznikiem @subpackage.). Utwórz na serwerze WWW katalog. Poniżej umieszczono fragment kodu źródłowego systemu Joomla!. metod i funkcji. Wstawianie sekcji DocBlock w kodzie źródłowym Prawdopodobnie zauważyłeś. Istnieje jednak możliwość uruchamiania aplikacji z wiersza poleceń. należy wpisać katalog. Config. możesz uruchomić proces generowania dokumentacji z kodu źródłowego Joomla!. oznaczone Target. konfiguracja. Organizacja dokumentacji opiera się na podziale na pakiet (ang. W pierwsze pole. klasami. Profesjonalne tworzenie stron WN 1W Zostanie wyświetlony ekran powitalny zawierający kilka menu (Introduction. Uruchom w przeglądarce program phpDocumentor. który należy do pakietu Joomla i podrzędnego pakietu Content: * @package Joomla * @subpackage Content */ class T00LBAR_content { function _EDIT() { Aby wypróbować działanie aplikacji phpDocumentor. że kody źródłowe w tej książce rozpoczynają się komentarzami w stylu C++. Składa się ona z wielu plików HTML.joomla. W tym rozdziale obsługa phpDocumentor została ograniczona do interfejsu strony WWW. warto rozważyć zastosowanie instalatora Pear. który ułatwia proces przygotowania aplikacji. dlatego najlepiej przechowywać je w jednym miejscu. . tłum. które przypominają poniższe: * */ Powyższa sekcja komentarza nosi nazwę DocBlock. jest odczytywana i wykorzystywana przez program phpDocumentor przy tworzeniu dokumentacji kodu. Najnowszą wersję znajdziesz na stronie internetowej http://api. metodami i procedurami.180 Joomla!. Pojawia się także aktualnie wybrany katalog i stan aplikacji.

następnie lista przypisanych do nich plików i klas. . W sekcji klas kliknij odnośnik JSite. które wystąpiły w trakcie tworzenia dokumentacji. Generowanie może potrwać kilka minut. a draga dla użytkowników). ponieważ zawiera on wiele dodatkowych funkcji. możesz tworzyć komponenty. W oknie zostanie wyświetlona lista plików zapisanych w katalogu includes. programowanie części frontowej i administracyjnej. kliknij przycisk Create (new window). który należy przetworzyć. metod i stałych należących do klasy. dzięki czemu kod źródłowy pozostaje wolny od obszernych komentarzy. dołączanie dodatkowych elementów formularza. Wprowadź ścieżkę dostępu do tego katalogu. Znajdują się w nim także informacje o błędach i problemach. Zsumowanie System komentarzy zawiera z pewnością najwięcej cech wspólnych dla komponentów Joomla!. Katalog includes systemu Joomla! zawiera wiele klas opisanych znacznikami DocBlock. Kilka chwil. aby dodać niezbędne informacje do plików. Przejdź do katalogu. która w przypadku systemu Windows może przypominać: C:\Program Files\Apache Software Foundation\Apache2. możliwość tworzenia kilku wersji dokumentacji (np. które zostały zdefiniowane. • Zaawansowane rozszerzenia: komponenty 181 Kliknij zakładkę Files. W lewej kolumnie znajduje się lista pakietów. udoskonalanie interfejsu księgi gości. Solidna dokumentacja dla programistów jest korzystna dla każdego projektu. jeśli dopiero zaczynasz pracę z programem phpDocumentor. ponieważ Joomla! zawiera dużo kodu.html. komentarzy programistów) na stronie znajduje się opis zmiennych. m. które zostaną przetworzone w programie. które trzeba poświęcić. wzbogacone dodatkowo o możliwości systemu SVN. Oprócz szczegółów klasy (np. Zapoznaj się z instrukcjami programu phpDocumentor. a także pobierania informacji z plików zewnętrznych. przełoży się na znaczące ułatwienia w przypadku dalszego rozwijania programu. jedna wersja dla programistów. Wykorzystując zaawansowane środowisko programistyczne. takie jak Eclipse. w którym została zapisana dokumentacja i otwórz w przeglądarce plik index. co może być szczególnie pomocne. tworzenie archiwum poprzednich wersji kodu źródłowego za pomocą interfejsu SVN dostępnego w Eclipse. stosując następujące techniki: • • • • dopasowywanie domyślnych szablonów Eclipse w celu wstawienia niezbędnego podstawowego kodu. aby wybrać pliki.in. ponieważ oprócz bogatej funkcjonalności związanej z wyświetlaniem ma także funkcje dostępne z poziomu interfejsu administratora. Po ukończeniu pojawi się okno zawierające informacje o wyniku generowania dokumentacji.Rozdział 6.2\htdocs\includes Aby rozpocząć proces. Zostanie wyświetlony przegląd informacji o klasie wraz z listą należących do niej metod. zawierających pożądaną funkcjonalność.

opisano tworzenie aplikacji Joomla!. W rozdziale 7. generowanie dokumentacji w oparciu o komentarze zawarte w kodzie źródłowym przetwarzanym przez program phpDocumentor.182 Joomla!. Sercem nowego sposobu interakcji ze stronami WWW. . jest połączenie kilku technologii pod nazwą Ajax.0. nazywanym powszechnie Web 2. Komponenty stworzone w tym rozdziale są klasycznym przykładem tradycyjnej interakcji ze stroną WWW. której główną częściąjest dynamiczna interakcja z użytkownikiem bez ponownego przeładowywania strony. Profesjonalne tworzenie stron WN 1W • • uaktualnianie interfejsu administracyjnego w celu poprawienia integracji z platformą Joomla!.

XML-a i XSLT 1 . Kod JavaScript. przesłać tylko wymagane minimum danych z serwera.7 Joomla! i Ajax Ajax (ang. Wykonywanie takich czynności jak zmiana porządku sortowania danych w tabeli poprzez kliknięcie nagłówka cechuje się minimalnym opóźnieniem. wyjaśnienia dla danego terminu). który zapewnia bogatszą interakcję z użytkownikiem niż poprzednie rozwiązania. można. kaskadowych arkuszy stylów (CSS). to zamiast pobierać w całości nową stronę. Dzięki technologii Ajax interakcja ze stroną WWW jest dużo atrakcyjniejsza dla użytkowników niż wcześniejsze rozwiązania. Stosowanie wymiany informacji w tle prowadzi do dynamicznej i bogatej interakcji ze stroną. tłum. a następnie pobraniem w całości nowej strony. Asynchronous JavaScript and XML — Asynchroniczny JavaScript i XML) to połączenie potężnych technologii. Praca z aplikacjami internetowymi funkcjonującymi w tym modelu była niewygodna i nieatrakcyjna. obiektowego modelu dokumentu (DOM). . korzystając z technologii Ajax. Technologia Ajax to kombinacja technologii związanych ze stronami WWW — HTML-a.0. Uaktualnianie informacji na stronie jest dynamiczne i nie wymaga przeładowania całego dokumentu. która sprzyja implementacji rozwiązań ajaksowych. truktura technologii Ajax Wbrew informacjom prasowym na temat narodzin technologii Ajax nie jest to wcale nowość. które leżą u podstaw Web 2. Jeśli dana akcja wymaga pobrania dodatkowych informacji (np. azujący na XML-u język przekształceń dokumentów XML —przyp. JavaScriptu. W przypadku aplikacji zaprojektowanych z myślą o Ajaksie możliwe jest osiągnięcie prawie natychmiastowej reakcji na działania użytkownika. Jest to raczej sposób łącznego wykorzystania istniejących technologii. W przeszłości każda zmiana parametrów lub kliknięcie przycisków wiązały się z przesłaniem danych do serwera WWW. W systemie Joomla! wprowadzono funkcjonalność. która odzwierciedlała wykonane akcje.

łączy się w tle z serwerem WWW. Informacje mogą być przesyłane w obu kierunkach. jednakże większość z tych technologii jest szeroko stosowana. Dzięki temu czas pobierania strony zostaje skrócony. a następnie wyświetli je w postaci „chmurki". Z serwera pobierana jest strona zawierająca podstawowe informacje i kod. ocena. W praktyce oznacza to.9 Member Average Informacje wyświetlane w „chmurce" nie znajdują w kodzie źródłowym strony. Liczba funkcji może wydawać się zniechęcająca. Peter still cant Mary-Jane (Kirsten Dunst) Available Formats: DVD . przetworzenie i formatowanie.1. a jednocześnie coraz popularniejszym zastosowaniem Ajaksa jest „chmurka" pojawiająca się po najechaniu kursorem myszy na daną pozycję. ponieważ nie są przesyłane niepotrzebne informacje. tak aby można byłoby je wyświetlić. że większość istniejących przeglądarek jest w stanie skorzystać z zalet Ajaksa. a następnie dynamicznie formatowane i wyświetlane w oknie przeglądarki. he decides td ego. które odpowiadają żądaniu. korzystając z DOM. który wysyła żądanie do serwera. składowej platformy Joomla!. W przypadku strony Netflix jest to często zdjęcie pudełka z filmem. który pobierze z serwera nowe informacje. który pobiera i wyświetla dodatkowe informacje. Kirsten Dunst Director: Sam Raimi Gerne: Action ^Adventure Rotiny: PG-1 3 The Spectacular Spi (2008) n if it in this three-episode colle Peter Parker . Peter still cant act on his feelings for Mary-Jane (Kirsten Dunst).. Bardzo prostym. Burned outfrom being Spider-Man. SMllintj: Tobey Maguire. krótkie podsumowanie fabuły.1). Rozwiązanie tego typu stosowane jest na stronie Netflix (rysunek 7. występujący aktorzy itp. Ta „magia" wymaga sprzężenia kilku technologii. Profesjonalne tworzenie stron WN 1W uruchamiany w przeglądarce użytkownika. Kolejny etap to odebranie informacji w przeglądarce. Jeśli użytkownik najedzie kursorem myszy na którąś z pozycji. Następnie serwer musi zwrócić odpowiednio sformatowane informacje. he decides to shelve his superhero alter ego. which leaves the city carnage left by the evil Dot meantime. . zostanie uruchomiony kod JavaScript. jeśli to konieczne. Rysunek 7. Peter Parker ( 1 » through a major identity cn Spider-Man.184 Joomla!. musi być w stanie uruchamiać kod JavaScript. Informacje o filmach na stronie Netflix pobierane są dynamicznie.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. reagując na dane wydarzenie. Dwie główne przeglądarki — Internet Explorer (IE) i Mozilla Firefox — od dłuższego czasu (kilka poprzednich wersji) mają niezbędną funkcjonalność. Właściwie sformatowana odpowiedź serwera może być przygotowana przez własny komponent. Niezbędne funkcje strony serwerowej dostępne są za pośrednictwem klasy JDocument. Jeśli użytkownik najedzie kursorem myszy na tytuł lub zdjęcie produktu. In the meantime. which leaves the city suffering in the wake of carnage left by the evil Doc Ock (Alfred Molina). a następnie wyświetlane w postaci „chmurki" | Spjdf r-Man J — J (2004)1. Przeglądarka. zostanie wyświetlona „chmurka" zawierająca powiązane informacje i obrazki.fresh from roWWt surm 3. % The heroic arachnid iSk directed by Sam R a i m i \ Chabon.

dlatego nietrudno pogubić się na początku.2. jak program „Hello World!" przeniesiony w realia technologii Ajax. Komunikatem zwrotnym jest informacja o dostępności danego produktu. Wyszukaj . Poniższy przykład to nic innego. • JoomlaüAjax 185 rosty komponent aiaksowy System wykorzystujący Ajaksa można bardzo szybko skomplikować. który wykonuje żądanie do serwera Joomla!. Odebrana wiadomość wyświetlana jest w postaci okna dialogowego — co przedstawiono na rysunku 7. Utwórz najpierw folder \comjproductinfo na dysku twardym. Odpowiada on bezpośrednio na żądania. odpowiedź na żądanie ajaksowe. przy czym nie zawiera żadnych elementów interfejsu.Rozdział 7. takich jak menu. które składają się z bardzo wielu elementów.html [MÓJ Produkt f ###BOT_TEXT###gt; * Wybrany produkt jest dostępny! 1 ^ r n ä Gotowe J Mój komputer Ten prymitywny przykład stanowi szkielet rozwiązania ajaksowego. Umieść w nim plik productinfo. 'Wybrany produkt jest dostępny!': . ponieważ posiada on prawie wszystkie znaczące elementy stosowane w zaawansowanych rozwiązaniach. Aplikacja przypomina puzzle. Przykładowa aplikacja składa się z pojedynczej strony WWW. Z tego powodu na początku przydatna będzie demonstracja podstaw technologii Ajax. Posłuży do zademonstrowania. sunek 7. . który wkrótce wykorzystasz jako podstawę bardziej przydatnej aplikacji. jak należy łączyć poszczególne elementy układanki. rorzenie komponentu Pierwszy element aplikacji stanowi komponent Joomla!.J w s t K Z - 2 .2.php o następującej treści: <?php //Zablokuj bezpośrednie uruchamianie definecK echo '_JEXEC' ) or diet 'Brak dostępu' ).t wynikiem namicznego dania sianego komponentu omia H k ' ! " S ö l l •X >. Po najechaniu kursorem myszy na treść paragrafu zostanie uruchomiony kod JavaScript. która wyświetla obramowany paragraf zawierający tekst „Mój produkt". Dlatego w naszym przypadku musi jedynie wyświetlać pojedynczą linię tekstu. Ulubione v ^p' g ^ J Przejdź ł> 1 ^S] Dkumenty\Professional Joomlal\kod\ch07_ajax\AjaxRequestTe5t. adomość świetlona oknie ilogowym .

Jeśli zaglądniesz do źródła dokumentu. ' 3 hitp://loealhost/joomla/index.3.zip.5.php?option=com_productinfo&forrnat=r Wybrany produkt jest dostępny! | y Gotowe ^ Lokalny intranet . niezbędny jest także plik deskryptora XML. Rysunek 7. tylko zwykły tekst.3.0</versi on> <description>Kornponent wyświetlający 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. zauważysz. zawierające oba te pliki.0" <name>Informacje o produkcie</narne> <versi on>l. php?option Plik Edycja Widok : com Wydruk komponentu stanowi informacja o dostępności danego produktu w postaci zwykłego tekstu Ulubione L^J Narzędzia [Ml :. w oknie przeglądarki zostanie wyświetlona pojedyncza linia tekstu. Profesjonalne tworzenie stron WN 1W Aby zainstalować komponent. że nie ma tam żadnego kodu HTML. Właśnie taka metoda jest stosowana na stronach korzystających z rozwiązań ajaksowych do wyświetlania informacji. i . Ulubione v : i jj|]J Przejdź http://localhost/joomla/index. Ustawienie parametru format na raw (drugi parametr łańcucha żądania) powoduje uruchomienie danego komponentu i zwrócenie wyłącznie jego wydruku.5.0" <install encoding="utf-8"?> type="component"> version="1.php</filename> Utwórz archiwum o nazwie com_productinfo.php?option=com _productinfo&format=raw Jeśli komponent działa poprawnie. Pomoc / wVszukai %J . a następnie zainstaluj je w części administracyjnej Joomla!.php</filename> Info</menu> component="com_productinfo">productinfo. co przedstawiono na rysunku 7. Wprowadź następujący kod i zapisz go w pliku o nazwieproductinfo. Możesz przetestować działanie komponentu poprzez ręczne wpisanie adresu URL żądania w oknie przeglądarki: http://localhost/index.186 Joomla!.xml: <?xml version="1.

a następnie wyświetlenie ich w oknie dialogowym. Kolejnym krokiem jest ustawienie funkcji wywoływanej przy odbieraniu wyników. W przeglądarce Internet Explorer. która przeglądarka wykonuje kod. że pierwsza litera A w skrócie Ajax oznacza asynchroniczny.w3. Funkcja otworzy połączenie. odbieranie i wyświetlanie informacji. i następnie prześle żądanie pod odpowiednim adresem.dtd"> <html xmlns="http://www. korzystając z adresu URL przekazanego jako parametr. a następnie naruszono standardy. nie wprowadzając przyjętych rozwiązań. Aby zobaczyć technologię Ajax „w akcji".org/TR/xhtml1/DTD/xhtml1 . Funkcja displayReturnO sprawdza pobrane informacje. • Joomla! i Ajax 187 orzenie strony WWW Zadaniem strony WWW będzie wywołanie komponentu w celu pobrania informacji. charset=UTF-8" /> <script type="text/javascript" language="javascript"> // Utwór: imienną d/a obiektu XMLHttpRequest var myRequest = false: . które nadal są używane. Funkcja utworzy obiekt komunikacyjny XMLHttpRequest (dane wymieniane są głównie w formacie XML) i wysyła żądanie. W przeciwnym wypadku zostaje uruchomione okno dialogowe zawierające otrzymaną wiadomość.w3. Żądanie informacji wiąże się z wywołaniem funkcji di spl ayAjax() i przekazaniem jej jako parametru adresu URL.org/1999/xhtml "> <head> <meta http-equiv="Content-Type" content="text/html. żądanie informacji. Interakcja z użytkownikiem sprowadza się do reakcji na zdarzenie onMouseOver. Podobnie jak w większości przypadków kodu JavaScript. Zapisanie wskaźnika do funkcji powoduje jej uruchomienie w przypadku zmiany stanu obiektu komunikacyjnego (czyli głównie w przypadku odebrania danych). ponieważ odpowiada za etapy: interakcję z użytkownikiem.s t n ct. korzystając z obiektu XMLHttpRequest (dane wymieniane są głównie w formacie XML). następnym — otwarcie połączenia i wysłanie żądania. Jeśli żądanie zostało przerwane z powodu przekroczenia limitu czasu lub wystąpi inny błąd. jako pierwszej. a następnie zastosować odpowiadającą jej logikę.html i otwórz w przeglądarce: <!D0CTYPE html PUBLIC "-//W3C//DTD XHTML 1. zostanie wyświetlony stosowny komunikat. Kod strony jest zdecydowanie bardziej skomplikowany. Funkcja displayAjax() tworzy najpierw obiekt XMLHttpRequest. trzeba wziąć pod uwagę ogromną ilość starszych wersji IE. czyli wywołanie funkcji JavaScriptu.Rozdział 7. trzeba najpierw wykryć.0 Strict//EN" "http://www. zapisz go pod nazwąAjaxRequestTest. Pamiętaj. na który należy wysłać żądanie. wprowadź poniższy kod w edytorze tekstu. zaimplementowano interfejs obiektu komunikacyjnego XMLHttpRequest (za pośrednictwem obiektu ActiveX). dlatego pozostałe elementy strony powinny działać niezależnie od wykonywanego żądania bez oczekiwania na jego rezultat. Chociaż zostało to poprawione w późniejszych wersjach IE (począwszy od IE7).

Profesjonalne tworzenie stron WN 1W function displayAjax(myURL) { // Usuń ewentualny poprzedni obiekt myRequest = false. } catch (e) {} } } // Sprawdź.send(nul 1). } catch (e) { try { myRequest = new ActiveXObjectC'Microsoft. które wykorzystują poniższe: if (window.XMLHTTP").XMLHttpRequest) { myRequest = new XMLHttpRequest0. // Dla przeglądarek takich jak Firefox. myURL.').status == 200) { // Wyświetl komunikat zwrotny alert(myRequest.readyState == 4) { // Sprawdź kod statusu HTTP if (myRequest.XMLHTTP").overrideMimeType) { myRequest. return false: } // Przypisz funkcję. która zostanie wywołana po otrzymaniu odpowiedzi myRequest. if (myRequest. 4—ukończone if (myRequest. czy poprawnie otworzono obiekt if (!myRequest) { a l e r t C B ł ą d : Nie można utworzyć obiektu XMLHttpRequest')." onmouseover= "displayAjax('http://localhost/index. } else if (window. true). czy żądanie zostało ukończone.ActiveXObject) { // Przeglądarka IE6 i wcześniejsze wykorzystują } inny model try { myRequest = new ActiveX0bject("Msxml2.php?option=com_productinfo&format=raw')"> Mój produkt </p> </body> </html> . } else { } } } alert('Wystąpił problem z żądaniem.responseText).onreadystatechange = displayReturn.188 Joomla!.open('GET'. // Wyślij żądanie myRequest.overrideMimeType('text/xml 1 ). Safari i innych. function displayReturnO { // Sprawdź. </script> </head> <body> <p style="border:lpx solid black. // Otwórz docelowy adres URL myRequest.

jeśli uruchamiasz stronę Joomla! na zdalnym serwerze.xml odpowiednio na articleinfo. gdy chce się pobrać nowe wiadomości. Rozwiązaniem jest przeniesienie pliku na serwer WWW i uruchomienie go stamtąd. możemy przejść do bardziej skomplikowanego przykładu. nrorzenie komponentu Serwer-Żądanie Korzystając z prostej aplikacji jako podstawy. • Joomla! i Ajax 189 Umieść ten plik w głównym katalogu serwera Joomla! i otwórz w przeglądarce. który stworzysz w tym podrozdziale.php i articleinfo. Stanowi ona demonstrację dynamicznego pobierania danych za pośrednictwem komponentu Joomla!. że adres przekazywany funkcji displayAjaxf) odwołuje się w obecnej postaci do serwera zainstalowanego na komputerze lokalnym (localhost). właściwą dla technologii Ajax. Po najechaniu kursorem na treść paragrafu zostanie wyświetlona wiadomość w oknie dialogowym. Następny przykład jest kompletnym systemem ajaksowym opartym na Joomla!.open zabroniony".Rozdział 7. W ten sposób pobiera się więcej informacji. Chociaż poniższa aplikacja nie jest szczególnie użyteczna. Zmień kod w pliku articleinfo. pojawi się „chmurka" zawierająca tytuł artykułu i jego pierwszych 200 znaków.php. Zwróć uwagę. black box) do pobierania danych. prawda? W przypadku programu Firefox zabezpieczenie przed atakami cross-site scripting zablokuje działanie skryptu. Większość rozwiązań ajaksowych stosowanych na istniejących stronach WWW wymaga połączenia dynamicznego generowania treści z interaktywną komunikacją. Tę funkcję można przenieść na dowolną stronę — czy to sklepu internetowego.xml. zastosowane rozwiązanie można zaadaptować do własnych potrzeb.php 5203 2007-07-27 01:45:14Z DanR $ * Komponent wykorzystuje wartość parametru 'articlenum' . Następnie zmień nazwy plików productinfo. a następnie wyświetlania ich w postaci „chmurki". a przeglądarka zablokuje wyświetlanie strony. Kiedy użytkownik najedzie kursorem myszy na tytuł artykułu wyświetlony przez specjalny komponent. Ale zwracane będą artykuły Joomla! zamiast informacji o filmach. będzie miał funkcjonalność podobną do tej. Teraz. który w przyszłości ewentualnie posłuży jako czarna skrzynka (ang. czy internetowego klienta poczty. jeśli zostanie uruchomiony z twardego dysku komputera. Pojawi się komunikat „Błąd: nieobsłużony wyjątek: Dostęp do metody XMLHttpRequest. możesz teraz stworzyć praktyczny komponent. Zmień go. którą mają „chmurki" na stronie Netflix. Komponent Serwer-Żądanie. kiedy podstawowa implementacja została ukończona. aby odpowiadał poniższemu: <?php * @version $Id: com articleinfo. gdzie wyświetlane są dodatkowe informacje o produkcie. rorzenie komponentu Pierwszym krokiem jest skopiowanie folderu \com_productinfo i nadanie kopii nazwy \com_articleinfo.php i productinfo. co eliminuje konieczność odświeżania całego dokumentu. To chyba nie było aż takie trudne.

:getDB0(). to przy próbie instalacji zostanie wyświetlony komunikat że rozszerzenie zostało już zarejestrowane w systemie! Utwórz archiwum o nazwie com_articleinfo. SarticleBody = "Błąd": // Pobierz referencję obiektu bazy danych $db =& JFactory. zawierające te dwa pliki. Będąc w interfejsie administratora. Wartości pola ID poszczególnych artykułów wyświetlane są w kolumnie ID. * które są zwracane w formacie XML * */ //Zablokuj bezpośrednie uruchamianie defined( '_JEXEC' ) or die( 'Brak dostępu' ): // Odczytaj ID artykułu podany jako parametr żądania SarticleNum = intval(JRequest::getVar( 'articlenum' )). // Wykonaj zapytanie if "(Srows = $db->loadObjectList()) { // Odczytaj pierwszy zwrócony rekord $row = Srows[0]. Jeśli tego nie zrobisz. aby pobrać tytuł i treść artykułu. 200): // Zwróć tytuł i treść artykułu w formacie XML echo "<article><title>" SarticleBody .id =" . "\n". SarticleTitle .id.?!S()

Related Interests

###BOT_TEXT###quot;]/". aby pobrać wartość pól id. // Domyślne wartości na wypadek błędu $articleTitle = "Błąd". skróć go if(strlen(SarticleBody) > 200) { SarticleBody = J S t n n g : :substr(SarticleBody. przejdź do listy artykułów i zanotuj ID istniejącego artykułu. a następnie zainstaluj je w systemie Joomla!. SarticleBody = $row->introtext.title. // Jeśli artykuł jest dłuższy niż 200. // Przypisz tytuł i treść artykułu do odpowiednich zmiennych SarticleTitle = Srow->title. aby wskazywał nowy plik i nazwę komponentu. cyframi lub znakami interpunkcji SarticleBody = preg_replace( "/[-ząćęłńóśżżA-ZĄĆĘŁŃÓŚŻŹO-9 .a. " FROM # content " WHERE a. 0): \n" . "". a. korzystając z opcji Rozszerzenia/Instalator. 0. title i text artykułu $query = "SELECT a. . "</title><body>" . Nie zapomnij zmienić atrybutu component znacznika <fi 1 ename>.php?opüon=com_articleinfo&format=raw&articlemm . // Usuń wszystkie znaczniki z treści artykułu SarticleBody = strip_tags($articleBody): // Usuń wszystkie znaki niebędące literami.introtext AS a \n" . "</body></article>": } } ?> Po wprowadzeniu powyższego kodu zmień odpowiednio plik deskryptora. // Utwórz zapytanie. $db->setQuery( Squery. Profesjonalne tworzenie stron WN 1W * w zapytaniu.190 Joomla!. SarticleNum .zip. Otwórz w przeglądarce poniższy adres: http://localhost/index. SarticleBody).

Po oczyszczeniu treści artykułu przycinana jest ona maksimum do 200 znaków. Zmiennej $row przypisywany jest najpierwszy obiekt w tabeli $rows. formularza lub innego źródła. dlatego uruchamiana jest funkcja usuwająca znaczniki HTML. Jeśli zwrócono więcej pasujących rekordów. Warto zwrócić uwagę na fakt. że instrukcja FROM wykorzystuje zapis # content zamiast odwołania się do konkretnej tabeli. zostaną usunięte przez funkcję intval (). kiedy sprawdziliśmy poprawność kodu. Zwróć uwagę. Jeśli wynikiem zapytania jest przynajmniej jeden wiersz. Dzięki temu programista nie musi samodzielnie odczytywać konfiguracji Joomla!. Po ustawieniu zmiennej iarticlenum zmiennym SarticleTitle i SarticleBody przypisywane są wartości domyślne. Głównym zadaniem tej metody jest jednak pobieranie wartości parametrów z różnych źródeł (GET. Pod wywołaniem getVar() kryje się tak na prawdę kilka funkcji. liczbę danych zwracanych do klienta najlepiej utrzymywać na możliwie niskim poziomie. POST itd. Nawet jeśli niepożądane informacje zostaną przepuszczone przez metodę getVar(). title (tytuł) i introtext (które zawiera skróconą treść artykułu). jaki przedrostek wykorzystywany jest dla tabel w bazie danych. Podczas uruchamiania zapytania system Joomla! zastąpi ten zapis (#_) właściwym prefiksem dla tabel Joomla!. zostaną one po prostu zignorowane. Jeśli więc w kodzie komponentu potrzebujesz pobrać informacje z łańcucha żądania. W przeglądarce powinno zostać wyświetlonych pierwszych 200 znaków artykułu. Stanowi ona bardzo ważną warstwę zabezpieczeń. którego referencja pobierana jest metodą getDB0(). Do tego celu posłużono się metodą JRequest::getVar(). możemy dokładniej przeanalizować jego działanie. a następnie kasowane są wszystkie znaki. które nie są literami. Konstrukcja zapytania zakłada zwrócenie z bazy danych wyłącznie pól ID. aby określić.). która odczytuje wartość parametru z łańcucha żądania. jak choćby jos_content. Kolejnym krokiem jest przypisanie i uruchomienie zapytania. Treść artykułu powinna zostać zwrócona w postaci zwykłego tekstu. która zmienia podany ciąg znaków na bezpieczną i nieszkodliwą liczbę. Całkiem fajne.Rozdział 7. które przygotowują działanie komponentu. • Joomla! i Ajax 191 Oczywiście powinieneś zmienić wartość parametru articlenum. cyframi lub znakami interpunkcji (mogłyby one negatywnie wpłynąć na działanie „chmurki"). iowiedź na żądanie W pierwszej części kodu umieszczono instrukcje. ikonywanie zapytania do bazy MySQL Zapytanie wykonywane jest za pośrednictwem standardowego obiektu bazy danych. które mogłyby posłużyć do ataku SQL Injection (zobacz podrozdział „Zagrożenia bezpieczeństwa") lub innych prób włamania. zostanie on przetworzony. dlatego najlepiej wykorzystywać tę metodę zamiast ręcznego pobierania danych za pomocą instrukcji PHP. że metoda ta usuwa z przesłanych informacji fragmenty. a także pobierają wartość ID artykułu odczytaną z odebranego żądania. Ponieważ założeniem technologii Ajax jest szybkość reakcji. Pobrana wartość została zapisana w postaci zmiennej iarticlenum. aby odpowiadał ID artykułu znajdującego się w bazie danych. . możesz to zrobić za pomocą tej jednej metody. nieprawdaż? Teraz.

Jeśli wynikiem zapytania miałoby być kilka rekordów. Moduł będzie w tym wypadku bardziej skomplikowany. które uruchamia procedurę ajaksową pobierającą informacje o artykule za pomcą komponentu com_articleinfo.com/web/overlib). przetwarza informacje do postaci zwykłego tekstu i przesyła z powrotem w postaci prostego drzewa XML.0" encoding="utf-8"?> <install type="module" version="1. xml: <?xml version="1. pisząc własny kod. W tym przypadku. w którym będzie przechowywany moduł. aby poznać możliwe parametry i dostępną funkcjonalność. W przypadku platformy Joomla! wystarczy wstawić w kodzie strony jedną linię: <script type="text/javascript" src="includes/js/overl ibjrini. wprowadź poniższy kod i zapisz go pod nazwąmod_articl eajax. Tworzenie modułu ajaksowego Moduł wyświetlający informacje zwrócone za pośrednictwem Ajaksa będzie składać się w możliwie jak największym stopniu z napisanego wcześniej kodu. Pochodzi ona z biblioteki overLIB. stworzonej prze Erika Bosrupa (www. skomplikowany model XML jest zbędny. które możesz wykorzystać. można by je zapisać w postaci kolejnych elementów <article>. js"></script> Powyższa instrukcja wskazuje. Odnośnik do każdego posiada zdefiniowane zdarzenie onMouseOver. Za pomocą instrukcji echo tworzone jest proste drzewo XML. Następnie otwór.bosrup.0"> <name>Ajax i artykuły</name> <versi on>l.5.0</versi on> <description>Ten moduł wyświetla odnośniki do 5 aktualnych artykułów. Platforma Joomla! jesi pełna procedur i obiektów. obsługuje trzy etapy: interakcję z użytkownikiem. </description> . posłużymy się już tym istniejącym w Joomla!. zamiast pisać własny kod odpowiedzialny za wyświetlanie „chmurek". a elementami potomnymi są <title> i <body>. że kod biblioteki przechowywany jest w katalogu /includes/js Jeśli dysponujesz wolnym czasem. warto przeanalizować jej kod. wysyłanie żądania i wyświetlanie informacji zwrotnych. To by było na tyle! Komponent odczytuje ID artykułu z łańcuchu żądania. które w znacznym stopnii można dopasować do własnych potrzeb.192 Joomla!. Tworzenie pliku XML i folderu z modułem Utwórz folder mod_artic1eajax. Profesjonalne tworzenie stron WN 1W Zwracanie danych w formacie XML Ponieważ klient potrzebuje wyłącznie dwóch informacji (tytułu i skróconej treści artykułu). Na jego stronie internetowej znajdziesz najnowszą wersję biblioteki którą możesz wykorzystać. który łaskawie pozwolił na dołączenie jej do instalacji Joomla!. jeśli planujesz implementację poza systemem Joomla!. go. przegląda bazę danych w poszukiwaniu odpowiedniego wpisu. którego głównym elementem jest <article>. System Joomla! zawiera świetną funkcję wyświetlającą „chmurki".5.

na który zostanie wysłane żądanie var myURL = 'http://localhost/index.XMLHTTP"): } catch (e) { try { myRequest = new ActiveXObjectC'Microsoft.overrideMimeType('text/xml'): } else if (window. } catch (e) {} } } //Sprawdź.XMLHttpRequest) { myRequest = new XMLHttpRequest(): if (myRequest. function displayAjax(tempArticlelD) { // Wprowadź adres.php</filename> 193 Powyższy kod to najprostszy plik deskryptora.php i wprowadź poniższy kod: <?php /** * @version $ld: mod articleajax.js"></script> // Utwórz zmienną dla obiektu XMLHttpRequest var myRequest = false.Rozdział 7. które rozszerzą tworzoną aplikację. które uruchamia * procedurę ajaksową pobierającą informacje o artykule za pomocą komponentu com articleinfo.php?option=com_articleinfo&format=raw&articlenum=' + tempArticlelD. */ <script type="text/javascript" <script type="text/javascript"> src="inc1udes/js/overlib_mim. czy poprawnie otworzono obiekt if (!myRequest) { overlibt'Błąd: Nie udało się utworzyć obiektu XMLHttpRequest'): } return false: . * Odnośnik do każdego posiada zdefiniowane zdarzenie onMouseOver. »orzenie mod_articleajax Utwórz w folderze plik o nazwie mod_articleajax. // Dla przeglądarek takich jak Firefox.php 5203 2007-07-27 01:45:14Z DanR $ * Ten moduł wyświetla odnośniki do 5 aktualnych artykułów. jeśli planujesz wstawić dodatkowe pliki i parametry. Możesz go rozszerzyć.overrideMimeType) { myRequest.XMLHTTP"). Safari i innych.ActiveXObject) { } // Przeglądarka IE6 i wcześniejsze wykorzystują inny model try { myRequest = new ActiveX0bject("Msxml2. które wykorzystują poniższe: if (window. • Joomla! i Ajax <files> «filename </files> </i nstal1> module="mod_articleajax">mod_articleajax. // Usuń ewentualny poprzedni obiekt myRequest = false.

Snow . " AND ( a. 4=ukończone if (myRequest.getElementsByTagNamei'article'): // Pobierz elementy title i body // IE6 wymaga typu mime ustawionego na „text/xml".CAPTION.RIGHT): } else { // Wystąpił błąd. "')".publish_up <= "' . czy poprawnie otworzono obiekt function displayReturnO { // Sprawdź.publish_down = "' . w przeciwnym razie nie odczyta //poprawnie odpowiedzi. " AND (a. Profesjonalne tworzenie stron WN 1W // Sprawdź. jeśli niedostępny jest element o indeksie [0]. czy żądanie zostało ukończone.responseXML. // Dlatego.nodeValue: „ chmurki" w postaci overlib(myBody. Snuli Date .RIGHT): żądania.open('GET'.status == 200) { // Pobierz główny element XML var article = myRequest. mamy do czynienia z IE6 i musimy // ręcznie załadować model obiektu.firstChiId.'. true): // Wyślij żądanie myRequest.194 Joomla!.fi rstChiId. } myTitle = article[0].responseXML.1oadXML(myRequest.myTitle. Snuli Date . myURL.getElementsByTagNamei'body')[0].publish_up = "' . Snow . timet)): // Wyszukuj wyłącznie opublikowanych artykułów Swhere = 'a.BELOW. "')" . if (!article[0]) { myRequest. są dostępne .send(null).'Błąd } } } </script> <small>Moduł ajaksowy</small><br /> <?php //Zablokuj bezpośrednie uruchamianie defined( '_JEXEC' ) or die( 'Brak dostępu' ): //Zdefiniuj lokalne zmienne $db =& JFactory::getDB0(): $user =& JFactory::getUser(): Suserld = (int) $user->get('id'): //Zdefiniuj odpowiednie daty. że artykuły Snuli Date = $db->getNullDatei): Snow = date('Y-m-d H:i:s'.CAPTION. // Otwórz docelowy adres URL myRequest. "' OR a. "' OR a.getElementsByTagNamei'title')[0]. wyświetl „chmurkę " z komunikatem overlib('Wystąpił problem podczas wykonywania pobierania'. aby zagwarantować.onreadystatechange = displayReturn.BELOW.nodeValue: myBody = // Wyświetl article[0].state = 1 ' .getElementsByTagName('article'): } myRequest.responseXML.readyState == 4) { // Sprawdź kod statusu HTTP if (myRequest.responseText): var article = myRequest.publishjjown >= "' .

mil eC oinmei ce applications.title " FROM # content AS a \n" . " WHERE " . Joomlal is used by organisations of all sizes for Public Web sites.i Overview i l'. iartTitle . tilo'is . pmered "v -Joomlal provides an easy-to-use graphical user Interface that simplifies the management and publishing of large volumes of content including HTML. Po ukończeniu tworzenia modułu utwórz archiwum o nazwie mod_artic1eajax. które uruchomi funkcją displayAjax() echo "<span onmouseover=displayAjax(" . Po najechaniu kursorem na każdy z wyświetlonych odnośników zostanie wyświetlona „chmurka" zawierająca tytuł i pierwszych 200 znaków artykułu.id.1 flee open source i t a m e w o i k and content publishing system designed tot quickly Cio.itiri'j tii. ícense i M u tí .jtitv iiiteiactive multi-language Well sites.in Jiinitila: I FAO i Tire News i W e l l Links • News Feeds Joomlal Joomia! is . // Utwórz odnośnik do właściwego artykułu echo "< a href=index. iwhere . zostanie on wyświetlony na stronie głównej.php?optnon=com_content&view=article&id=" . jeśłi pobieranie danych nie powiodło się echo Sdb->getErrorMsg(). "). a.lii'. musisz zmienić adres wykorzystywany przez funkcję di spl ayAjax(). arid rich media. if (irows = $db->loadObjectList()) { // Wykonaj dla każdego rekordu foreach ( irows as $row ) { // Wyświetl tytuł artykułu iartTitle = JText::_($row->title). Intranets. iuserld."Int.ZTp i zainstaluj je.Rozdział 7. documents. 0. >". • Joomla! i Ajax 195 // Utwórz zapytanie $query = "SELECT a. J o o m l a ! . online communities. " AND a. \n" . $row->id . korzystając z opcji Rozszerzenia. // Uruchom zapytanie i pobierz 5 pierwszych rekordów $db->setQuery( $query. "</a><br /></span>\n". $row->id . Tytuł i pierwszych 200 znaków każdego artykułu zostaną wyświetlone w postaci „chmurki" Ajax i artykuły Latest N e w s • Content Layouts MM-' DOI I to Joomlal . co przedstawiono na rysunku 7. media poitais. jeśli uruchamiasz stronę na zdalnym serwerze. Jeśli pozostawisz moduł na pozycji left. onmouseout=nd(). ?> Podobnie jak we wcześniejszym przykładzie. Jak możesz zauważyć.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.4.4. Rysunek 7.. "\n" . Otwórz przeglądarkę internetową i otwórz stronę główną.access <= " . and Extrañéis and is supported by a community of thousands of Ją. "&Itemid=44>" . dzięki Ajaksowi sporo dodatkowych informacji jest błyskawicznie przedstawianych użytkownikowi. // Dodaj zdarzenie onmouseover. } // Wyświetl komunikat o błędzie.5).

która występuje we wcześniejszym przykładzie wyświetlającym informacje o dostępności. Niezbędne jest wprowadzenie zabezpieczeń uniemożliwiających wyświetlanie niepowołanych treści. Pobrane wartości znajdują zastosowanie przy wywoływaniu funkcji overLIB().196 Joomla!. a następnie pobierane są wartości elementów <title> i <body>. które wpływają na wygląd chmurki. Zamiast prostego odbierania tekstu wysłanego przez komponent (za pomocą obiektu reponseText) nowy kod napisano z wykorzystaniem obiektu responseXML. ponieważ niezbędny jest dostęp do bazy danych Joomla!. Kod modułu jest bardziej skomplikowany niż ten komponentu. dzięki któremu pobiera się odpowiednie informacje o artykułach..Chmurki" Jedną z pierwszych instrukcji w kodzie modułu jest znacznik script. Funkcje wywołujące Poniżej znacznika <scri pt> znajdują się definicje funkcji di spl ayAjax() i di spl ayReturn(). . Najpierw tworzone jest odwołanie do elementu głównego <article>. Jedyną znaczącą zmianą jest parametr przekazywany funkcji. Po dołączeniu biblioteki możesz wyświetlić „chmurkę". Te dwie funkcje odpowiadają za część wysyłania i pobierania danych. określana jest treść i nagłówek „chmurki". Wynajdywanie artykułów w bazie danych Joomla! Kod odpowiedzialny za wyświetlanie artykułów nie może składać się wyłącznie z prostej instrukcji pobierającej tytuły aktualnych artykułów. np. dlatego trzeba dokładnie go przeanalizować. umiejscowienie czy parametry wyświetlanego tekstu. aby w pełni rozumieć jego działanie. wysokość. Z powodu bezpośredniego dostępu do danych umieszczonych w tabeli artykułów takie podej ście spowodowałoby pobranie zarówno niepublikowanych artykułów. Profesjonalne tworzenie stron WN 1W Korzystając z potęgi tego prostego przykładu. jak i tych z ograniczonym dostępem. który niezbędny jest do skorzystania z funkcjonalności biblioteki overLIB. zapisane w polu nodeVal ue. dzięki czemu można odczytywać dane sformatowane w postaci drzewa XML. a następnie wyświetlającej je w postaci listy. Istnieje możliwość określenia sporej liczby parametrów. Elementy odpowiedzialne za interakcję z użytkownikiem są odrobinę bardziej skomplikowane. . wywołując funkcję overLIBO. będziesz prawdopodobnie chciał tworzyć własne rozwiązania ajaksowe. kolor. na podstawie którego tworzony jest odpowiedni adres odwołujący się do komponentu com_articleinfo. Funkcja di spl ayAjax() jest praktycznie identyczna z tą. Zamiast podawania kompletnego adresu URL funkcja wymaga podania ID artykułu. W przeciwieństwie do displayAjaxO w kodzie funkcji di spl ayReturn() zaszło wiele zmian.

programiści mogą łatwo zapomnieć o j e j wadach. że do każdej pozycji przypisane jest odpowiednie ID w postaci parametru funkcji di spl ayAjax(). dlatego lepiej ograniczyć zakres lub rozmiar pobieranych danych. a odpowiednie ID przekazywane jest w postaci parametru. Jego kliknięcie powoduje uruchomienie komponentu com_content. Ostatecznie zostaje uruchomiona metoda setQuery(). Dodatkowo przy definicji tego zdarzenia umieszczana jest instrukcja. możesz zauważyć. Analizując kod źródłowy. na stronie pojawi się stosowny komunikat. Możliwe byłoby pobranie kompletnej listy artykułów. aby osiągnąć większą interaktywność. gromadzenie informacji. Stworzony szkielet można rozbudowywać w dowolny sposób. która zawiera zapytanie pobierające pola ID i title artykułów. Zmienna $now usuwa z listy przeszukiwanych artykułów te. Kod źródłowy wygenerowanej strony zawiera dla każdego zdarzenia onMouseOver odpowiedni ID artykułu. Wady technologii Ajax Korzystając z ekscytujących możliwości technologii Ajax. który wyświetla artykuł. która ukrywa wcześniej wyświetlone „chmurki". Instrukcja zapisana w zmiennej $where gwarantuje. Dla każdego rekordu pobranego jako wynik zapytania tworzony jest element <span>. dlatego nie ma powodu. . możliwe zagrożenia bezpieczeństwa. Jeśli podczas pobierania danych z bazy wystąpi błąd. Wartość zmiennej inullDate powoduje wyświetlenie artykułów. która uruchamia zapytanie i pobiera maksymalnie pięć rekordów. Dla każdego elementu <span> tworzony jest także odnośnik do danego artykułu. Nazwą odnośnika jest jedno z pól rekordu. dla którego zdefiniowano zdarzenie onMouseOver. Klauzula WHERE jest następnie dodawana do zmiennej $query. Oprócz skomplikowania projektu strony istnieje kilka realnych problemów związanych ze wzmożonym zastosowaniem tej technologii: • • • niedostępność treści pobieranych za pomocą Ajaksa dla robotów internetowych. jednak moduł zająłby wtedy zbyt wiele miejsca w pionie. W przypadku modułu konieczne jest wyświetlanie wyłącznie prostej listy wpisów. dla których nie określono daty wygaśnięcia. • Joomla! i Ajax 197 Dlatego podczas odwoływania do bazy danych wykorzystywane są dane aktualnie zalogowanego użytkownika.Rozdział 7. które zostaną opublikowane w przyszłości. aby pobierać nadmiarowe dane. tytuł artykułu. Powinieneś mieć już solidne umiejętności związane z implementacją rozwiązań ajaksowych z wykorzystaniem platformy CMS Joomla!. że zostaną pobrane wyłącznie obecnie opublikowane artykuły.

kiedy wszystkie informacje znajdą się w ich bazie. Gromadzenie informacji Większość żądań ajaksowych prowadzi do odebrania w przeglądarce sformatowanych danych. na których wszystkie funkcje realizowane są za pomocą technologii Ajax — od wyświetlania menu. Upewnij się. Dzięki temu robot internetowy odwiedzający stronę nie natrafi na pustą skorupę. a nawet tajne informacje firmy. że żądania nie są tworzone według prostego schematu. np. a także atakami hakerów. że wszystkie informacje dostępne za pośrednictwem Ajaksa dostępne są gdzieś indziej na stronie. Trzeba jednak pamiętać. sekwencji liczb. Profesjonalne tworzenie stron WN 1W Niedostępność dla robotów internetowych Wzrost wykorzystania technologii Ajax można przyrównać do szalejącego pożaru. Mimo iż wyświetlanie „chmurek" może być atrakcyjne i zachęcające dla odwiedzających stronę. gdzieś w zakamarkach witryny. nie umieszczaj głównych treści. po prezentację kluczowych informacji. ponieważ zaczęły powstawać strony. Jeśli dobierający program wstawia odebrane dane bezpośrednio do zapytania. aby konkurencja stworzyła. że wszystkie informacje wyświetlane w widgetach (pobrane z użyciem Ajaksa) są niedostępne dla robotów internetowych. które normalnie dostępne są dla użytkowników za pomocą Ajaksa w postaci plików HTML. W tym przypadku haker próbuje przesłać zapytanie SQL w postaci parametru.198 Joomla!. Najprostszym z nich jest zapewnienie. Jak dotąd najlepszym zastosowaniem są widgety. roboty internetowe całkowicie je zignorują. Chociaż można łatwo ulec zachwytowi nad nową technologią. Jeśli produkty są ponumerowane od 1 do 50. możliwe jest zdradzenie wielu prywatnych informacji. nadużywając komponentu ajaksowego. kodu powiązanego z odnośnikiem. Musisz zwrócić szczególną uwagę na zabezpieczenie się przed niepowołanym dostępem. . Ponieważ dane pobierane są w formacie XML. Mogą to być informacje na temat ceny/dostępności produktu. ponieważ nie uruchamiają one np. ponieważ pogorszy to pozycję strony. które powodują zwrócenie danych z bazy. należy stosować ją tylko tam. nie trzeba dużo czasu i wysiłku. Większość aplikacji ajaksowych wykonuje żądania. Jeżeli zależy Ci na pozycjonowaniu strony w wyszukiwarkach. tak aby niemożliwe było stworzenie aplikacji. gdzie najlepiej pasuje. spróbuj zastosować inną metodę identyfikowania rekordów. która pobiera informacje dla kolejnych ID. program pobierający dane do momentu. Istnieje kilka sposobów obrony przed takim podstępowaniem. Zagrożenia bezpieczeństwa Kolejne niebezpieczeństwo stanowi potencjalny atak SQL Injection. takie jak te na stronic Nctflix lub Google Maps. w postaci zwykłej strony HTML.

Narzędzia programistyczne noszące nazwę wzorców projektowych mogą ułatwić planowanie aplikacji. • Joomla! i Ajax 199 Na szczęście Joomla! zawiera funkcje takie jak getVar(). XML. że w pełni zasłuży ona na miano witryny Web 2. które zapobiegają „przenikaniu" większości szkodliwego kodu. co jest demonstracją funkcjonalności technologii Ajax. kod programu może stać się zupełnie niejasny. Jeśli stanowi ona cześć większego projektu. jednak trud zostaje wynagrodzony w chwili uruchomieniem strony. która jest przykładem zastosowania całej platformy. rozszerzanie systemu Joomla! — dodanie wyświetlania „chmurek". W rozdziale 8. Implementacja technologii Ajax może być całkiem skomplikowana. zanim zdecydujesz się na ominięcie funkcji wbudowanych w Joomla!. zredukować liczbę błędów i zwiększyć zysk wiedzy z poprzednich aplikacji. W tym rozdziale opisano implementację rozwiązań ajaksowych w Joomla!. a w szczególności: • • • • • opisano powiązania między składowymi technologii Ajax.Rozdział 7. tworzenie prostej aplikacji ajaksowej. JavaScript itd. Połączenie i właściwa implementacja niezbędnych technologii (HTML. a także sposoby implementacji w Joomla!. .0. jak stosować wzorce projektowe w programowaniu Joomla!. opisano. świadomość wad nowej technologii. pobieranie danych w formacie raw. zalety konserwatywnego punktu widzenia — rozsądnego decydowania o miejscach implementacji rozwiązań ajaksowych. odsumowanie Wykorzystanie technologii Ajax na Twojej stronie może sprawić. ponieważ zawierają wiele sprawdzonych i pewnych zabezpieczeń.) mogą być frustrujące. opisano działanie komponentów. Zawsze pomyśl dwa razy.

Profesjonalne tworzenie stron WN 1W .200 Joomla!.

jej działanie i potencjalne zastosowania. pionierskich prac Ericha Gamma. W tym rozdziale przedstawiono podstawy wzorców projektowych. których połączenie tworzy funkcjonalność systemu zarządzania treścią (CMS). a ponieważ zostały one zastosowane przez programistów Joomla! w konstruowaniu CMS. Właściwe dopasowanie wzorców projektowych do problemu. . może dostarczyć Ci sprawdzonych metod. Począwszy od wczesnych lat dziewięćdziesiątych. były udoskonalane w ramach prac nad wieloma projektami. które ułatwią zadanie. Richarda Heima. które napotkasz w Joomla!. Przykładem takich paradygmatów są wzorce projektowe. Adaptacja skutecznych wzorców projektowych oznacza w praktyce. obiektowego wielokrotnego użytku. także przykładowe użycie w kodzie Joomla!. 2005. Bandy Czterech — ang. Modele. napisano wiele obszernych pozycji na ten temat. nad którym pracujesz. wytycznych nowego sposoby programowania zorientowanego na obiekty. Boston 1995). że łatwiej dotrzymać terminów. odzwierciedlane w postaci wzorców projektowych. Wyd. Wzorce projektowe to w istocie zestaw modeli konceptowych. Elementy oprogramowania Warszawa. tłum. polskie Wzorce projektowe.8 Wzorce projektowe a Joomla! Joomla! jest aplikacją napisaną techniką programowania obiektowego. ale także lepiej poznasz samą platformę. na których opiera się Joomla!. Cała platforma składa się z zestawu klas. a nowi programiści szybciej dostosowują się do projektów. Ralpha Johnsona i Johna Vlissidesa (tzw. zarządzanie systemem jest tańsze. Rozumiejąc założenia projektowe. opisano w niej wiele podstawowych wzorców używanych obecnie — łącznie z tymi. Gang ofFour). Efektywne programowanie Joomla! wymaga zapoznania się z kilkoma paradygmatami programowania obiektowego i stosowania ich. ISBN 83-204-3041-0 —przyp. Oryginalna (i prawdopodobnie najważniejsza) książka nosi tytuł Design Patterns: Elements of Reusable Object-Oriented Software1 (Addison-Wesley. Dzięki zastosowaniu wzorców projektowych znika potrzeba wynajdywania koła przy każdym nowym projekcie. będziesz w stanie nie tylko tworzyć skuteczniejsze rozszerzenia. WNT. rozumienie ewolucji systemu prostsze.

wtedy warto ponieść koszty związane z implementacją. tym więcej zamierzonych korzyści uzyskuje się. Powinieneś dokładnie znać zalety zastosowania poszczególnych wzorców. Zazwyczaj jest to jeden z trzech podstawowych typów: konstrukcyjny. W praktyce trzeba się często zmierzać z ograniczeniami w adaptacji wzorców. która wskazuje na typ wzorca. Konkretny przykład— problemu. procesy i obiekty. aby rozwiązać konkretne. Założeniem wzorców projektowych jest uproszczenie i usprawnienie procesu tworzenia aplikacji. jeśli projekt jest bardzo mały. że jeśli nad projektem pracuje lub będzie pracować w przyszłości co najmniej trzech programistów. Hipoteza — Ogólny opis działania wzorca. ze względu na wydajność. zamiast ślepo stosować je w tworzonych programach. zawierający ogólne modele konceptowe. . a także jak jego zastosowanie prowadzi do rozwiązania. np. Rozwiązanie — Szczegółowy opis rozwiązania problemu. jest zaprzeczeniem tego założenia. Dzięki temu. jak: • Nazwa oraz klasyfikacja — Nazwa wzorca wraz z ogólną klasyfikacją. a im dokładniej się je stosuje.202 Joomla!. Wzorce projektowe to zbiór wytycznych. a wprowadzanie ich na silę. Wzorce projektowe mogą być także przytłaczającym ciężarem. Zostały stworzone. Dokumentacja poszczególnych wzorców zawiera w większości przypadków takie informacje. Pamiętaj. Wskazówki odnośnie do implementacji — Ogólne sugestie dotyczące stosowania danego wzorca. Konsekwencje — Kompromisy i zależności. W przypadku pojedynczych programistów zastosowanie wzorców nie przekłada się na znaczące korzyści. kosztem skomplikowania projektu. Można z grubsza przyjąć. powtarzające się problemy programistyczne w schematyczny sposób (wzorzec). dla którego stworzono dany wzorzec. które wymusza zastosowanie wzorca. Nie istnieje prosty sposób na określenie wielkości projektu. które odzwierciedlają podstawowe cele w procesie tworzenia aplikacji. może jednak służyć wyrobieniu dobrych nawyków. jeśli projekt zostanie rozszerzony. a także jego ograniczenia. Sugestywny przykład zastosowania wzorca do rozwiązania • • • • • • • Zastosowanie — Obszary zastosowania danego wzorca. strukturalny lub czynnościowy. że wzorce projektowe nie są doskonałe ani nie są dogmatem. Profesjonalne tworzenie stron WN 1W Wzorce projektowe Wzorce projektowe stanowią wytyczne programowania obiektowego. dla którego implementacja wzorców ma sens. który trzeba stosować za wszelką cenę. jego struktura nie będzie go ograniczać. Problem — Opis problemu.

pobierany jest obiekt DAL. czynnościowe. a większość zadań wykonuje system. możliwe jest zarządzanie pulą połączeń (ang. usprawnienie uaktualnień lub lepsze zarządzanie zasobami — szczególnie w większych systemach. Przykładowo technologia DAL (Database Abstraction Layer — warstwa abstrakcji bazy danych. . W ramach opisu powyższych kategorii przedstawiono po jednym wzorcu. Definicje tych wzorców opisują niektóre z procesów wymaganych przez aplikację. Istnieją jednak przypadki. wzorzec budowniczego. np. Ten wzorzec konstrukcyjny służy oszczędzaniu zasobów serwera. zmniejszając konieczność tworzenia nowych. kiedy ręczne zarządzanie tworzeniem obiektów może przekładać się na znaczące korzyści. connection pooling).Rozdział 8. PDO i ADOdb) tworzy warstwę pośrednią między aplikacją a źródłem danych. strukturalne. że tworzenie obiektów jest proste. Najczęściej stosowanymi w Joomla! wzorcami z tej kategorii są: fabryka abstrakcyjna (przedstawiona niżej jako przykład). Powyżej został opisany realny przykład wzorca konstrukcyjnego. który za pośrednictwem DAL pobiera dane z dowolnego systemu baz danych. dla których zastosowanie dodatkowej warstwy w mechanizmie tworzenia obiektów przynosi korzyści. a także. dzięki czemu programista może pisać kod. Do kategorii wzorców konstrukcyjnych należą: fabryka abstrakcyjna. dzięki czemu dostępne połączenia niewykorzystywane przez procesy macierzyste mogą być przekazane do kolejnych. Zamiast tworzyć obiekt łączący się bezpośrednio z bazą danych. • Wzorce projektowe a Joomla! 203 frzy główne kategorie wzorców Twórcy wzorców projektowych podzielili je na trzy kategorie: • • • konstrukcyjne. metoda fabrykująca. np. Może Ci się wydawać. który można potraktować jako reprezentację pozostałych rozwiązań programistycznych z danej kategorii. specyficznej dla danego języka programowania. może rozwiązać wiele problemów związanych z dostępem do konkretnych źródeł danych. singleton i wzorzec budowniczego. Istnieje jednak wiele zastosowań. instrukcji tworzenia obiektu. ponieważ DAL obsługuje tworzenie obiektów. Mzorce konstrukcyjne Wzorce klasyfikowane do kategorii konstrukcyjnych związane są z mechanizmem tworzenia obiektów. Gdy korzysta się z tej metody. prototyp i singleton. pula obiektów. leniwa inicjacja. PEAR DAL. W wielu aplikacjach tworzenie nowych obiektów sprowadza się do wywołania.

zawierającą metody. Z tego powodu zostaje utworzona klasa o nazwie EncryptionB. "\ n FROM josjnessages" . Budowniczy gra rolę rozszerzenia dla klasy bazowej nazywanej dyrektorem. Aby zmniejszyć ubytek wydajności. zwracałaby egzemplarz obiektu EncryptionA. to zmiana jednej z klas wymagałaby poprawienia i ponownego skompilowania całego systemu. Operator przypisania referencji znajdujący się przed wywołaniem metody JFactory: :getDB0() pozwala wykorzystać istniejący już obiekt bazy danych. Jeśli obiekt EncryptionA tworzony jest ręcznie w każdym miejscu programu. Dobrym przykładem fabryki abstrakcyjnej jest system szyfrowania.204 Joomla!. zapisywane następnie w bazie danych. $query = "SELECT *" . intval(icurMonth). tak aby zwracała obiekty typu EncryptionB. Wzorzec singleton Wzorzec konstrukcyjny singleton jest stosowany w Joomla! głównie w przypadku obiektów łączących z bazą danych. komunikacja przebiega za pośrednictwem istniejącego połączenia. tzn. gdzie wymagane jest szyfrowanie. implementowany jest wzorzec singleton. można by skonstruować klasę 0 nazwie EncryptionObiect. wystarczy zmienić klasę EncryptionObject. Aby wprowadzić zmiany w systemie korzystającym z wzorca fabryki abstrakcyjnej. Wyobraź sobie. które szyfrują dane. który tworzy z nich sformatowany wydruk. który odpowiada za połączenie z bazą danych. kiedy niezbędna jest konwersja danych. aby można było z niej skorzystać. uaktualnienie systemu wymaga wprowadzenia wielu zmian 1 ponownej kompilacji. W systemie Joomla! zapytanie z wykorzystaniem obiektu bazy danych wygląda tak: $db =& JFactory::getDB0(). która w odpowiedzi na żądania utworzenia obiektów zwraca obiekty danej klasy. która grając rolę fabryki abstrakcyjnej. Dyrektor przetwarza plik lub strumień wejściowy i rozdziela go na poszczególne elementy. Aby zrealizować ten wzorzec. W przypadku wprowadzenia klasy EncryptionC brak zastosowania wzorca fabryki abstrakcyjnej wymusza powtórzenie całej złożonej operacji. "\n WERE messageMonth = ". która zawiera bezpieczniejszą metodę. . $db->setQuery($query). Profesjonalne tworzenie stron WN 1W Wzorzec fabryki abstrakcyjnej Jednym z wzorców konstrukcyjnych jest fabryka abstrakcyjnaJej istotą jest utworzenie klasy — „fabryki". że po pewnym czasie zostaje odkryta wada w metodzie wykorzystywanej w EncryptionA. Zamiast tworzyć nowe połączenie przy każdym zapytaniu. Wyobraź sobie klasę o nazwie EncryptionA (Szyfrowani eA). Jeśli tworzenie obiektów odbywałoby się bezpośrednio w każdej części systemu. Wzorzec budowniczego Wzorzec budowniczego stosowany jest w sytuacji. w programie wykorzystywany jest pojedynczy egzemplarz obiektu. Każdy element jest kolejno przesyłany do budowniczego. W aplikacjach bazodanowych otwieranie i zamykanie połączeń wprowadza spory narzut. SmyRows = $db->loadObjectList().

Przykładem wykorzystania wzorca budowniczego w Joomla! jest obsługa parametrów modułu. password. .php. Ponieważ interfejs wyjściowy jest abstrakcyjny.php itd. pozwala na komunikację dwóch niekompatybilnych systemów.php. most. dane prywatne klasy oraz wrapper. agregat. inny może z kolei utworzyć kod SQL. rurki i filtry. Simple Machines Forum. Wartości tych parametrów można zmienić w interfejsie administratora za pomocą opcji Moduły. rozszerzalność lub platforma. textarea. fasada. Wzorce należące do kategorii strukturalnych to: adapter. Działanie klasy budowniczego zależy od oczekiwanego formatu wydruku.filelist. przy założeniu specyficznego dziedziczenia. waga piórkowa. który zapisuje otrzymane elementy w bazie danych. fi lei i st itd.) znajduje się w katalogu element. dekorator. Ifzorzec mostu Wzorzec mostu pozwala na implementację warstwy abstrakcji za pośrednictwem ustandaryzowanego interfejsu. Przesyła ona każdy znacznik i element drzewa XML do klasy budowniczego.). pośrednik. użytkownik może zmienić sterowniki bez konieczności zmian w implementacji systemu wydruku. Stosuje się go w kodzie komponentów łączących z takimi technologiami jak np. którzy generują odpowiedni kod HTML wysyłany do przeglądarki. imagelist. Ifzorzec adaptera Wzorzec adaptera wykorzystywany jest do połączenia ze sobą dwóch niekompatybilnych interfejsów. który można znaleźć w (zakładając. Wzorzec budowniczego pozwala na tworzenie budowniczych niezależnie od dyrektora. Kod odpowiedzialny za obsługę parametrów poszczególnych typów (text. System wydruku przesyła informacje za pośrednictwem standardowego interfejsu do dowolnego sterownika drukarki. tfzopce strukturalne Wzorce strukturalne związane są z organizacją klas w ramach platformy. Jeden budowniczy może zwrócić listę elementów oddzielonych przecinkami. • Wzorce projektowe a Joomla! 205 Przykładem dyrektora może być klasa przetwarzająca XML.Rozdział 8. a następnie wywołuje budowniczych poszczególnych typów. Najczęstszym przykładem wzorca mostu jest system wydruku. Celem tych wzorców jest uproszczenie (na ile to możliwe) powiązań między elementami (lub klasami) systemu. kompozyt. że zaczynamy w głównym katalogu Joomla!): \libraries\joomla\html\parameter\element W folderze jest kilkadziesiąt plików PHP odpowiedzialnych za poszczególne typy parametrów (xvp. pojemnik. Najpopularniejsze wzorce wykorzystywane w Joomla! to wzorzec adaptera i wzorzec mostu. Komponent łączący stanowi dwukierunkowy adapter. radio button. Realizacja tego zadania w platformie Joomla! wygląda następująco: dyrektor pobiera listę parametrów modułu.

Celem tych wzorców jest uproszczenie i zwiększenie elastyczności komunikacji między elementami systemu. Każdy dodatek jest rejestrowany w systemie wraz z informacją o zdarzeniach. mediator. która wyświetla dane w odpowiednim formacie. Prostym przykładem realizacji tego wzorca jest system automatycznego odtwarzania dla urządzeń USB. . które może obsłużyć. łańcucha odpowiedzialności i strategii. obserwator. Profesjonalne tworzenie stron WN 1W Innym przykładem tego wzorca jest ustawianie typu wydruku komponentu Joomla!. Jednym z obserwatorów jest program odtwarzający DVD. polecenie. Założeniem tego wzorca jest przekazywanie zdarzenia między kolejnymi obiektami. Jeżeli jeden z nich zwróci informację. wsadzenie płyty DVD do napędu) powoduje poinformowanie wszystkich obserwatorów. Jeśli by porównać ten wzorzec ze wzorcem obserwatora. który monitoruje stan urządzeń USB. to automatycznie uruchomi odtwarzanie go (o ile został skonfigurowany w ten sposób). pamiątka. stan. Zmiana stanu urządzeń USB (np. interpretator. Wzorzec obserwatora W przypadku wzorca obsei~watora obiekt nazywany obserwowanym jest punktem łączącym. że obsłuży dane zdarzenie. a dodatkowe czynności nie są wymagane zarówno ze strony obserwatora. można by je nazwać obserwatorami. że obserwatory zostają powiadomione o zdarzeniu. Łańcuch odpowiedzialności polega na wysyłaniu powiadomienia do kolejnych obiektów. Możliwe typy zawierają m.206 Joomla!. który służy do powiadamiania innych obiektów o zmianie parametrów. że został utworzony obiekt (obserwowany). strategia. Najczęściej wykorzystywane w Joomla! są wzorce obserwatora. Każdy obserwator jest rejestrowany. Każdemu typowi odpowiada klasa. Różnica polega na tym. W przypadku wystąpienia zdarzenia danego typu obserwowany (Joomla!) powiadamia obserwatora (dodatek) o tym fakcie. jeśli tak. po otrzymaniu powiadomienia. Obserwator obsługujący odtwarzacz DVD sprawdzi. szablon. Wzorzec obserwatora wykorzystywany jest w Joomla! do obsługi dodatków (wtyczek). proces zostaje zatrzymany. wizytator i jego warianty. Wzorce czynnościowe Wzorce czynnościowe związane są z komunikacją między obiektami. Wzorce należące do tej kategorii to łańcuch odpowiedzialności. a zmiana w obiekcie reprezentowanym przez obserwowany powoduje jego automatyczne powiadomienie. Wzorzec łańcucha odpowiedzialności Dodatki w systemie Joomla! podążają także za wzorcem łańcucha odpowiedzialności. iterator. jak i obserwowanego.in. czy został wsadzony film. Wyobraź sobie. raw i text (tekst). a żadne pozostałe obiekty nie zostają powiadomione. HTML (domyślnie).

Iłzorzec strategii W przypadku wzorca strategii algorytmy poddaje się hermetyzacji (zostają zapisane w postaci obiektów). co w praktyce oznacza. które nic zrealizują rezerwacji. Wzorce architekturalne Wzorce architekturalne nie zostały opisane przez Bandę Czterech. W ten sposób można uaktualniać lub wymieniać algorytmy bez wprowadzania zmian w systemie. że istnieje spora szansa. Takie rozwiązanie jest często stosowane podczas implementacji algorytmów uwierzytelniania i szyfrowania. Dlatego warto zapoznać się z kilkoma wzorcami współbieżności. System podczas przeszukiwania musi sprawdzić listę lotów przylatujących. Wzorce tego typu nakreślają ogólną konstrukcję systemu. Program musi na podstawie aktualnej wartości sporej liczby zmiennych sprawdzić dostępność i możliwość rezerwacji lotu. dużej organizacji system baz danych musi być w stanie obsłużyć tysiące użytkowników próbujących w tym samym czasie uzyskać dostęp do tych samych danych. więc wyobraź sobie inną sytuację: dwóch ludzi (redaktor i dziennikarz) wprowadza zmiany w tym samym artykule dokładnie w tym samym momencie. chociaż mają zapewne największe znaczenie dla programistów Joomla!. Typowy sprzedawca biletów na lotnisku musi sprawdzić. a nawet przewidzieć procent osób. w jaki sposób rozwiązują konflikty związane ze współbieżnością. a system Joomla! nie wykonuje żadnych dodatkowych akcji dla tego zdarzenia. Wzorce współbieżności Chociaż nie należą do wzorców opisanych przez Bandę Czterech. że autor artykułu będzie dodawał kolejne informacje w tym samym momencie. aby zrozumieć. że obsłuży dane zdarzenie. W takiej sytuacji przetwarzanie zostaje przekazane dodatkowi. kiedy zażąda tego stojący przed nim klient. Ten przykład jest odległy od większości zastosowań Joomla! (które nie wymagają współbieżnych operacji na dużą skalę). co może mieć zastosowanie obecnie i w przyszłości. a także zmodyfikować je. wzorce współbieżności coraz bardziej zyskują na znaczeniu. W sytuacji zmiany algorytmu wymieniany jest obiekt zwracany przez fabrykę. jak funkcjonuje kompletny system. • Wzorce projektowe a Joomla! 207 W Joomla! dodatek może poinformować system. W przypadku typowej. zmianom podlega wyłącznie kod algorytmu wewnątrz obiektu. możliwe połączenia (być może także te należące do innych linii lotniczych). . W kręgu specjalistów od baz danych współbieżność stanowi główny problem.Rozdział 8. opisując. obecne rezerwacje. Joomla! jest CMS-em. czy może sprzedać bilet lub zrobić rezerwację na dany lot w chwili. Wzorzec strategii stosowany jest często w połączeniu z wzorcem fabryki. kiedy redaktor poprawia artykuł pod kątem poprawności.

Jego korzenie sięgają stosowania kart dziurkowanych — wsadzano je do centralnego komputera. tworzy warstwę prezentacji i uruchamia większość kodu. że użytkownik uruchamia większość skomplikowanych obliczeń na własnym komputerze (jego komputer jest w tej terminologii nazywany klientem). Kolejnym krokiem był system UNIX w latach 70. a koordynacja danych — po stronie serwera We wczesnych latach istnienia sieci Web powszechnie stosowany był wzorzec serwerowy. to wraz ze wzrostem wykorzystania wzorca klient-serwer Joomla! wchodzi w świat Web 2. Wzorzec serwerowy Joomla! jest esencją systemu serwerowego. przeglądarka służyła wyłącznie jako prosty wyświetlacz. Wzorzec serwerowy ma prawdopodobnie najdłuższą historię zastosowania w informatyce. Nawet za pomocą prostej przeglądarki można było korzystać z aplikacji internetowych. Większość operacji przetwarzania danych przebiega na komputerze klienta.1. kontrola poprawności danych. Chociaż aplikacja uruchamiana jest w głównej części na serwerze. opisane w rozdziale 7. i 80.. a sformatowana strona przekazywana jest do przeglądarki. przeglądarka pobiera pewną część logiki programu (zazwyczaj w postaci kodu JavaScript). Serwer wykonuje wszystkie zapytania. np. chociaż uruchamiany kod przesyłany jest wcześniej z serwera.1.0. Oprócz edycji treści artykułu (np. odpowiadają rozwiązaniu pośredniemu między wzorcem klient-serwer a wzorcem serwerowym. a większość danych przechowywanych jest na serwerze — zilustrowano to na rysunku 8. który następnie wyświetlał wyniki. Klient (przeglądarka) uruchamia bardzo niewiele lub zero kodu. gdy wykorzystywano terminale do przesyłania procesów na serwer. Wszystkie dane i logika programu znajdowały się na serwerze. Implementacja wzorca klientserwer oznacza przetwarzanie związane z interfejsem użytkownika po stronie klienta. . są wykonywane na komputerze klienta. Choć w przeszłości konstrukcja Joomla! bazowała na wzorcu serwerowym. na którym były wykonywane.208 Joomla!. Profesjonalne tworzenie stron WN 1W Najpopularniejszym wzorcem z tej grupy jest wzorzec klient-serwer. Rysunek 8. Nowe technologie tworzące Ajaksa. Dlatego pewne elementy przetwarzania. za pomocą TinyMCE) także całe przetwarzanie odbywa się na serwerze WWW (za pomocą kodu PHP). a większość przetwarzania miała miejsce na serwerze. aby pobrać dane z bazy. a z serwerem łączy się. Polega on na tym. pobieranie dodatkowych danych..

Rozdział 8. Każdy obszar odpowiada konkretnej warstwie aplikacji: • • • Model — Logika lub właściwy kod aplikacji. zrywanie połączeń. niewystarczająco szybkie komputery klientów sprawiły. wiele firm przewidywało. Wzorzec Model-Widok-Kontroler Trzy najważniejsze wzorce projektowe systemu Joomla! (Obserwator. co zakłada korzystanie z bazy kodów pocztowych zapisanych na dysku lokalnym. że wzorzec serwerowy z powrotem przejmie pozycję głównego modelu tworzenia oprogramowania w świecie komputerów. przetwarzanie zdarzeń. aplikacja napisana według modelu uruchamiania po stronie klienta będzie porównywalnie szybka. zostanie wyświetlona prośba o usunięcie błędu. tekst i grafika. ale już aplikacje internetowe spowodowały wzrost ponownego zainteresowania świata komputerów wzorcem serwerowym. W przypadku tego rozwiązania serwer wykorzystywany jest do przechowywania i rozpowszechniania danych. Kompozyt i Strategia) połączono w postaci wzorca Model-Widok-Kontroler (MVC — Model-View-Controller). iż kod pobierany z serwera odpowiada za większość interaktywnych funkcji po stronie klienta. Jeśli wprowadzony kod jest niepoprawny. model odpowiada kodowi PHP i zapytaniom do bazy danych wykonywanym na serwerze WWW. więc pobieranie ich w całości jest niepraktyczne. Z powodu rozpowszechnienia szybkich łączy i wydajnych urządzeń klienckich dominującym wzorcem w przyszłości będzie prawdopodobnie wzorzec uruchamiania po stronie klienta. Jeśli odniesiesz te trzy pojęcia do realiów związanych z Joomla!. W czasie boomu dot-comów w latach 90. Firma Google podjęła próbę przełamania dominacji aplikacji Microsoftu za pomocą pakietu noszącego nazwę Google Apps Premier Edition. przy czym zmiany wprowadzane w jednej części mają minimalny wpływ na resztę. Słaba wydajność. a moc obliczeniowa komputera pozwala na interakcję przypominającą pracę ze zwyczajnym programem. Wzorzec uruchamiania po stronie klienta Model uruchamiania po stronie klienta implikuje. sprawdzać poprawność kodu pocztowego). Bazy danych zawierające kody pocztowe są z reguły duże. Widok odpowiada . • Wzorce projektowe a Joomla! 209 W erze następującej po Uniksach dominującą rolę przyjął wzorzec klient-serwer. że sprawdzanie poprawności kodu pocztowego nie wymaga ponownego przeładowania strony. Kontroler — Komunikacja z użytkownikiem. jak ta implementująca schemat klient-serwer. Widok — Warstwa prezentacji. Zamiast sprawdzać poprawność danych po stronie serwera (np. że ta teza stała się nieprawdopodobna. pobrany kod wykona zapytanie do serwera bez konieczności przeładowania całego dokumentu. Jeśli zagwarantujemy. które mogą być rozwijane (w miarę możliwości) niezależnie od pozostałych. Celem zastosowania tego wzorca jest rozdzielenie aplikacji na trzy obszary.

aby MacOS wyglądał i działał jak Windows Vista i vice versa. dzięki czemu użytkownicy mogą wybrać preferowany sposób pracy z systemem. platforma zawiera definicję obiektów dla każdej warstwy: • • • JModel — Klasa. JView — Klasa. aby użytkownicy mogli zmienić wygląd lub temat wykorzystywany przez system operacyjny w zależności od preferencji. że poczyniono wiele wysiłku. że nadal trudno jest sprawić. Bardziej zaawansowany przykład to podział na interfejs wiersza poleceń i interfejs graficzny (oba dostępne dla MySQL). która odpowiada za warstwę prezentacji w platformie Joomla!. Wybór nowego szablonu w interfejsie administratora może całkowicie zmienić wygląd strony WWW. Rozdzielenie poszczególnych części aplikacji oznacza. Szablony Joomla! stanowią oczywistą demonstrację zalet rozdzielenia obszarów aplikacji. JControl ler — Klasa. zmiana wyglądu wymagałaby dużej ilości programowania. Jeśli kod modelu i kod widoku byłyby połączone (co w przeszłości było popularną praktyką). przeglądarki głosowej).210 Joomla!. Kontroler z kolei odpowiada za system zdarzeń menu i rozszerzenia. takie jak moduł wyszukiwania. która odpowiada funkcjom modelu w platformie Joomla!. odpowiednie opisy odnośników i obrazków. Profesjonalne tworzenie stron WN 1W szablonowi. Szablony zawierają sporą ilość logiki w postaci kodu PHP (model) po to. który pozwala uruchomić daną funkcję. Podobnie rozdzielenie interfejsu użytkownika oraz właściwego kodu aplikacji lub kontrolera i modelu umożliwia pracę z aplikacją na wiele sposobów. a nie kaftan. . aby umożliwić poprawne wyświetlanie. Dzięki zapewnieniu ułatwień dostępu strona może być odwiedzana za pomocą przeglądarki tekstowej (a także. wzorce projektowe stanowią pewien ideal. który przekazuje dane od użytkownika do modelu Joomla! w celu dalszego przetwarzania. Jak zaznaczono wcześniej. że każda z nich traktowana jest jak czarna skrzynka. Prostym przykładem jest kontroler. który określa sposób wyświetlania zawartości. zdefiniowaną w modelu. Na stronie internetowej oddzielny kontroler może odpowiadać za wersję tekstową menu. Częściowe zastosowanie modelu MVC jest dowodem na to. Podobnie jak systemy operacyjne. która odpowiada funkcjom kontrolera w platformie Joomla!. by wprowadzić model MVC w systemach operacyjnych w celu umożliwienia zmiany interfejsu i tym samym dostosowania go do preferencji użytkownika. w konsekwencji. a kod modelu pobierający treść artykułu pozostaje niezmienny. do którego można dążyć. Przez wiele lat czyniono wysiłki. Chociaż implementacja modelu MVC w Joomla! nie jest w pełni zgodna z założeniami wzorca. a informacje muszą być w całości przekazywane z jednej warstwy do drugiej. Joomla! nadal nie obsługuje w pełni tego modelu. co sprawia. z rozwijalnego menu lub po naciśnięciu klawisza. Brak pełnej implementacji MVC oznacza. że optymalizacja staje się trudnym zadaniem. Podobnie pewne aspekty modułów (kontrolery) są blisko powiązane z warstwą prezentacji (widokiem). ogranicznik wszystko-albo-nic. Jednym z niezbędnych kompromisów MVC jest spadek wydajności. które umożliwiają nawigację na stronie z dużą ilością grafiki ludziom z upośledzeniem wzroku.

DS. Odpowiadają one poszczególnym warstwom wzorca MVC: • • • Model — Plik hellomvc. 'controllers' .php'): } .php Przykładowy kod komponentu zawiera odwołanie do rozszerzenia odpowiedzialnego za kontroler. Adaptacja wzorca MVC w komponentach Joomla! wprowadza podział kodu na trzy oddzielne pliki. • Wzorce projektowe a Joomla! 211 Wykorzystanie wzorca MVC w tworzeniu komponentów W pracy z systemem Joomla! programista zaimplementuje wzorzec MVC. że zmotywuje Cię także do poszukiwania i wprowadzania rozwiązań opartych na wzorcach projektowych w przyszłych aplikacjach.php'): /* Jeśli ustawiono zmienną controller.php obsługuje interakcje z użytkownikiem. Implementacja tego komponentu będzie dobrym przykładem zastosowania wzorców projektowych w praktyce programowania Joomla!.Rozdział 8. Wewnątrz tego folderu utwórz trzy podkatalogi. '. jak zastosować wzorzec MVC.'control 1 er. Widok — Plik view. */ if($controller = JRequest::getVar('controller')) { require_once (JPATH_COMPONENT . Mam nadzieję. najprawdopodobniej pisząc komponent. Wprowadź poniższy kod i zapisz go jako hellomvc. aby stworzyć prosty komponent Hello MVC. załaduj odpowiedni kontroler.html. aby uzyskać poniższą strukturę: \com_hellomvc\controllers \com_hellomvc\models \com hellomvc\views Mik modelu: hellomvc.php w katalogu \com_hellomvc: <?php z* * * %version * @package */' $Id: hellomvc. DS .DS. Rozszerzenia tego typu posiadają wszystkie trzy warstwy wymieniane przez wzorzec. a dodatki zawierają głównie logikę związaną z modelem.Scontroller . podczas gdy modułom brakuje aspektów kontrolera.php zawiera logikę związaną z warstwą prezentacji. Rozpocznij od utworzenia folderu \com_hellomvc.php zawiera główną logikę komponentu. Kontroler — Plik controller. W tym podrozdziale dowiesz się.php 7122 2007-06-21 11:52:292 daw $ hellomvc /* Zablokuj bezpośrednie uruchamianie */ defined( '_JEXEC' ) or die( 'Brak dostępu' ): /* Załaduj główny kontroler */ requi re_once (JPATH_COMPONENT. plik zawierający kod widoku domyślnie ładowany jest automatycznie.

php w folderze: \hellomvc\views\helIomvc: <?php * @version * @package */ /* Zablokuj defined( /* Zaimportuj jimport( bezpośrednie $Id: hellomvc.application. w widoku powinny być wykorzystywane elementy warstwy prezentacji wspólne dla wszystkich komponentów Joomla!.ucfirst(Scontroller).component. icontroller = new $classname( ). Pliki widoku W przykładowym pliku widoku możesz dostrzec odwołania do części związanych z kontrolerem i interfejsem użytkownika. . Stosując dostępne style. Są one dostępne w bogatej bibliotece stylów zdefiniowanych w Joomla!. icontroller->redi rect(): ?> Ze względu na podział MVC kod modelu nie musi zawierać instrukcji związanych z warstwą prezentacji lub interakcji z użytkownikiem strony. Umożliwia to niezależne udoskonalanie głównej logiki przez profesjonalnych programistów bez konieczności tradycyjnej współpracy z grafikami i projektantami stron. /* Wykonaj żądanie */ $controller->execute(JRequest::getCmd('task')). Wprowadź poniższy kod i zapisz go pod nazwą view.html.212 Joomla!. Zwróć uwagę. Profesjonalne tworzenie stron WN 1W /* Utwórz egzemplarz kontrolera */ iclassname = 'HelloMVCcontroller'. Metoda d i s p l a y ( ) wywoływana jest automatycznie. prezentacja widoku będzie automatycznie dopasowywana do reszty strony dla szablonu wybranego przez użytkownika.view'): class HelloMvcViewHelloMvc extends JView { function display($tpl = null) { /* Wyświetl powitanie */ echo "<hl>Hello MVC!</hl>". } } ?> O ile to możliwe. w reakcji na żądanie wyświetlenia strony.php hellomvc 7122 2007-06-21 11:52:292 dam $ uruchamianie */ '_JEXEC' ) or die( 'Brak dostępu' ): klasę widoku */ 'joomla. że można j ą zmienić bez wpływu na kod modelu lub kontrolera. do których można odwołać się za pomocą atrybutów cl ass i i d.

php 7122 2007-06-21 11:52:29Z danr $ hellomvc /* Zablokuj bezpośrednie uruchamianie */ definecK '_JEXEC > or die( 'Brak dostępu' ): /* Zaimportuj klasę kontrolera */ jimport('joomla. która jest właściwa dla braku implementacji wzorca MVC. wystarczy wprowadzić zmiany w warstwie prezentacji. przez dziedziczenie klasy J C o n t r o l l e r . Zmiany wprowadzane w podstawowych algorytmach w części modelu nie będą miały wpływu na wygląd. jak kalendarz otwierany w dodatkowym oknie lub interaktywne sprawdzanie pisowni. że warstwa prezentacji nie różni się od tej.php Ponieważ w tym przykładzie nie ma żadnej interakcji z użytkownikiem. Zwróć uwagę. Po dodaniu odpowiedniej pozycji w menu. Kod należy zapisać w katalogu komponentu pod nazwą controller. że w kodzie poniższego kontrolera zastosowano. Zalety zastosowania wzorca MVC staną się wtedy oczywiste. * wywołaj metodę display rodzica */ function di s p l a y O { } } ?> parent::di splay(). wzorzec obserwatora opisany wcześniej.component. większość zadań związanych z warstwą prezentacji wykonywana jest automatycznie. że interfejs może być dowolnie rozszerzany. bez wpływu na funkcjonowanie aplikacji.application. Prezentacja może zostać dopasowana do wymagań klienta. co ograniczy implikację potencjalnych błędów. . zauważysz. która uruchamia ten komponent. a programista nie musi się tym przejmować.php: <?php /** * @version * @package $Id: hellomvc.Rozdział 8. kontroler musi zawierać wyłącznie metodę d i s p l a y O . Wywołując metodę J C o n t r o l l e r : : d i s p l a y O . Zamiast obciążać główny kod rozszerzenia specjalnym. Różnice dostrzeżesz. która stworzy prezentację. nie będzie miało wpływu na kluczowe funkcje komponentu. Dodanie takich ułatwień. dopiero kiedy będziesz chciał rozbudować jego funkcjonalność lub lepiej dopasować prezentację do aktualnie wybranego szablonu. • Wzorce projektowe a Joomla! 213 ik kontrolera: controller .controller'): /* Odziedzicz klasę JController */ class HelloMVCcontroller extends JController { /* Jeśli otrzymano żądanie wyświetlenia widoku. Jeszcze większą zachętą jest fakt. obsługującym kilka wyjątków.

html</fi1ename> <fi1ename>vi ews/hel1omvc/vi ew. newentry itd. Przykładowo foldery controllers i models zostały utworzone.«.zip i za pomocą opcji Rozszerzenia/Instalator zainstaluj go w systemie Joomla!. Tylko jeden plik został umieszczony w folderze \views. co przedstawiono na rysunku 8.0"> Teraz stwórz archiwum zawierające komponent pod nazwą com_hellomvc. a następnie uruchomisz.php</fi1ename> <ti1ename>i ndex.php</fi1ename> <fi1ename>i ndex.xml w głównym folderze komponentu: <?xml version="1. ponieważ komponent składał się z pojedynczego modelu i pojedynczego kontrolera.</description> <files> <fi1ename component»"hel1omvc">hel1omvc.214 Joomla!. abyś mógł lepiej poznać podstawy tego sposobu programowania.php</filename> </files> </administration> </install> version="1. Jeśli przypiszesz do niego odnośnik w menu.^ 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^^Łdostępnym na lcnj GNU GPL r! etonr ieci Jest to bardzo piymitywny przykład.2.2. ale nie umieszczono w nich żadnych plików.php</fi1ename> </files> <administration> <menu>Hel1oMVC</menu> <files> <fi1ename component»"hellomvc">hel1omvc. Komponent został ograniczony do minimum.0" encoding="utf-8"?> <1nstal1 type="component" <name>Hel1oMVC</name> <versi on>l. Komponent wyświetli powitanie w głównej kolumnie strony Hello MVC! C p r g t ©?0|]H oyih Su****^.5.html. podczas gdy standardowy komponent zawiera oddzielny plik widoku dla każdego zadania (takiego jak displaylist.xml Wprowadź poniższy kod i zapisz go pod nazwą hellomvc.5. Rysunek 8. edit.html. co można osiągnąć dzięki modelowi MVC. który pokazuje wyłącznie zarys tego.html</fi1ename> <fi1ename>control1er.html </fi 1 ename> <filename>views/hel1omvc/view.0</versi on> <description>Przykład zastosowania wzorca MVC w stylu Heli o World.php</fi1ename> <fi1ename>vi ews/i ndex. zostanie wyświetlone powitanie. Profesjonalne tworzenie stron WN 1W Plik deskryptora: hellomvc. .php</fi1ename> <fi1ename>vi ews/i ndex.).html</fi1ename> <fi1ename>control1er.html</fi1ename> <fi1ename>vi ews/hel1omvc/index.html</fi1ename> <fi1ename>vi ews/hel1omvc/i ndex.

• Wzorce projektowe a Joomla! 215 Jeśli przyjrzysz się uważniej komponentom dołączonym do Joomla! (wszystkie wykorzystują strukturę MVC). który przetwarza artykuły w systemie Joomla!. jak stworzyć dodatek. Biblioteka sprawdzonych.Rozdział 8. takich jak Ajax. które napotykają programiści. W tym rozdziale opisano stosowanie wzorców projektowych. dobrze udokumentowanych wzorców projektowych stwarza możliwość redukcji kosztów i zapobiegania przekroczeniom terminów. aby zrozumieć działanie nowych technologii. . Opisano projektowanie rozszerzeń. których implementacja opiera się na skuteczności wzorców projektowych. jest teraz wygodniejsze i korzystniejsze niż kiedykolwiek dotychczas. dowiesz się. »odsumowanie Znaczenie wzorców projektowych wzrasta wraz ze zwiększaniem się stopnia skomplikowania problemów. Badanie istniejącego wzorca projektowego pod kątem zastosowania wzorców projektowych. Za pomocą wzorców projektowych możesz czerpać z najlepszych praktyk programistycznych w pracy nad dowolnymi rozszerzeniami Joomla!. tak częstym w przemyśle informatycznym. będziesz w stanie rozbudować przykładową implementację Hello MVC na potrzeby komponentu dowolnego typu. Stosowanie wzorców projektowych w programowaniu podsystemów. rozszerzeń platformy Joomla!. np. a w szczególności: • • • Przedstawiono konstrukcję platformy obiektowej Joomla!. W rozdziale 9. będąc jednocześnie demonstracją kilku wzorców.

216 Joomla!. Profesjonalne tworzenie stron WN 1W .

po uprzednim zrozumieniu. tłum.9 Ingerencja w fundamenty Joomla!: wtyczki Czytając tę książkę. 1 Ang. Ostatnim. Rolą wtyczki jest ingerencja w podstawy systemu. przechowywanych w folderze \modules. a także w pozostałych częściach tej książki nazywane dodatkami — p r z y p . zmiana funkcjonalności Joomla! na najniższym poziomie. a komponenty służą przede wszystkim do interakcji z użytkownikiem. daje niekwestionowane korzyści. plug-ins. . na podstawie którego skonstruowano CMS Joomla!. teraz przyszedł czas na najbardziej skomplikowane rozszerzenia Joomla!: na wtyczki'. wtyczki grupowane są w podfolderach odpowiadających ich kategoriom. w polskiej wersji językowej Joomla!. biorąc pod uwagę poprzednie bogate doświadczenia związane z programowaniem modułów i komponentów. których bezpośrednie wykorzystanie. i komponentów. jak zostanie on pobrany z bazy danych — wprowadzając zmiany. Przegląd wtyczek Joomla! W odróżnieniu od modułów. dołączysz do grupy zaawansowanych programistów rozszerzeń Joomla!. Przykładowo wtyczki oferujące funkcje związane z wyszukiwaniem przechowywane są w folderze \plugins\search. zanim wygenerowana strona zostanie wysłana do przeglądarki użytkownika. zapisywanych w folderze \components. Platforma jest właściwym szkieletem. uzupełniającym elementem Twojej edukacji będzie zapoznanie się ze szczegółami platformy programistycznej Joomla!. podczas gdy wtyczki należące do kategorii content znajdują się w folderze \plugm\content. Po napisaniu i przetestowaniu tej pary wtyczek. składa się z klas. Głównym zadaniem modułów jest wyświetlanie informacji. jak stworzyć prostą wtyczkę Hello World!. miałeś już okazję pisać moduły i komponenty. W tym rozdziale dowiesz się. po tym. a następnie rozbudować j ą do poziomu zaawansowanego rozszerzenia — które przechwytuje treść artykułu.

po tym jak zostaną pobrane z bazy danych i jeszcze nie zostaną przesłane do użytkownika. ukrywanie adresów e-mailowych. GMail i Joomla. OpenID. oceny danej pozycji. odnośników. sekcji. Jak widać na rysunku 9. • • • • • . które służą np. jak i dodawanie informacji (np. nazwę każdej wtyczki poprzedza informacja o typie. System — Wtyczki ingerujące w podstawowe funkcje systemu Joomla!. kanałów RSS lub kategorii. w interfejsie administratora.218 Joomla!. umożliwiają kontrolę i modyfikację podstawowych zadań. Editor button (Przyciski edytora) — Mają za zadanie rozszerzanie funkcjonalności dostępnych edytorów poprzez dodawanie przycisków.1. Kategoria danej wtyczki wyświetlana jest w kolumnie Typ. Profesjonalne tworzenie stron WN 1W Na ekranie Dodatki. komentarzy użytkowników. ukrywanie.1. Content (Zawartość) — Umożliwiają wprowadzanie zmian w treściach artykułów. Typ wtyczki determinuje sposób jej funkcjonowania w systemie. takich jak publikowanie. Search {Wyszukiwanie) — Dodają możliwość wyszukiwania treści danego typu np. Rysunek 9. Kilka domyślnie dołączonych wtyczek z tej kategorii to LDAP. informacja o kategorii danej wtyczki wyświetlana jest w dwóch miejscach: jako przedrostek nazwy wtyczki. jak TinyMCE czy XStandard Lite. Editor (Edytor) — Do tej kategorii należą takie edytory. a także w postaci przedrostka nazwy Wtyczka może należeć do jednej z ośmiu kategorii: • Authentication (Autoryzacja) — Dostarczają dodatkowych metod związanych z autoryzacją. kontaktów. do wstawiania obrazków lub podziału strony. opcji nawigacyjnych). aby zapobiec spamowi). Umożliwia to zarówno modyfikowanie (np. Na przykład wtyczka LDAP zostaje wyświetlona na liście jako Authentication — LDAP. We wcześniejszych wersjach Joomla! wtyczki z tej kategorii nosiły nazwę editor-xtd. artykułów. a także w kolumnie Typ. a nawet instalacja.

zanim system Joomla! rozpocznie jakiekolwiek przetwarzanie. kiedy zostanie odebrane żądanie wygenerowania strony. onAfterDi spl ay — Następuje po wyświetleniu treści. które zostałyby wyświetlone w treści strony (lub w postaci odnośnika). że wstawia słowa i zwroty. zanim strona zostanie wysłana do przeglądarki. Jest to najczęściej wykorzystywane zdarzenie. która dziedziczy po klasie podstawowej JP1 ugi n. System and Search (System i wyszukiwanie). • Ingerencia w fundamenty Joomla!: wtyczki • • User (Użytkownik) — Służą do synchronizacji bazy użytkowników z innymi systemami. Wtyczka. Pogrupowanie wtyczek w wyżej wymienione kategorie nie służy wyłącznie do organizacji. w podobny sposób przeszukuje treść artykułu.Rozdział 9. ale przed przesłaniem jej do przeglądarki. Przykładowo rozszerzenie Email Cloaking wyszukuje adresy e-mailowe. Platforma została załadowana. w miejsce skrótów. Definicja typu danej wtyczki implikuje zbiór przechwytywanych zdarzeń. będzie ona uruchomiana za każdym razem. Kod tych metod uruchamiany jest w momencie wystąpienia danego zdarzenia. a następnie wstawia w ich miejsce wersję odporną na spam otrzymaną przez wywołanie procedury JHTMLEmail: :cloak(). Simple Machines Forum itd. Przykładowo jeśli zdefiniowałeś w klasie metodę onAfterlnitialiseO. Zdarzenia należące do powyższych kategorii mogą być wykorzystywane wyłącznie we wtyczce odpowiedniego typu. 219 Utworzenie wtyczki wymaga napisania klasy. W kodzie tej klasy definiuje się metody. XML-RPC — Odbierają zdarzenia przesyłane protokołem XML RPC (Remote Procedure Cali — zdalne wywoływanie procedur). które im odpowiadają. [darzenia typu Content Wtyczki typu Content mają w założeniu wprowadzać zmiany w treści artykułów. inicjałów i akronimów. Referencja do aktualnej zawartości artykułu przesyłana jest w postaci parametru a r t i c l e w taki sposób. chociaż większość zdarzeń systemowych może być przechwytywana przez wtyczki dowolnego typu. a strona zainicjalizowana. że wprowadzone zmiany będą bezpośrednio odzwierciedlane . jeśli wtyczki wprowadzają zmiany w treści artykułów. W przypadku wtyczek typu Content możliwe jest przechwytywanie poniższych sześciu zdarzeń: • • • onBeforeDi spl ay — Uruchamiane przed wyświetleniem treści. Dlatego pogrupowano je w cztery ogólne kategorie: • • • • Content (Zawartość). których nazwy odpowiadają zdarzeniom Joomla!. onPrepareContent — Aktywowane po wyświetleniu treści przez system Joomla!. Editor (Edytor). To ograniczenie nie dotyczy niektórych zdarzeń (szczególnie z kategorii System). User (Użytkownik). którą napiszesz w dalszej części tego rozdziału. z tym. takimi jak Gallery2.

dołączonych do standardowej instalacji Joomla!. Zdarzenia typu Editor Zdarzenia typu Editor mają zastosowanie głównie dla wtyczek posiadających funkcje edytorów (takich jak TinyMCE lub XStandard Lite). • onAfterDisplayTitle — Następuje po wygenerowaniu tytułu. onCustomEditorButton — Dzięki temu zdarzeniu można skorzystać z dodatkowych przycisków edytora. któremu odpowiada przesyłana zawartość. Czytaj więcej. Funkcje przypisane do tego zdarzenia powinny zwrócić tablicę łańcuchów znakowych. • • Dziedzicząc klasę podstawową JPlugin i określając typ wtyczki jako Content. każdy z nich zostanie dołączony do treści przed artykułem. ale przed wyświetleniem zawartości. kiedy chcesz stworzyć rozszerzenie wyświetlające obecną ocenę artykułu przez użytkowników. Parametr params zawiera tablicę parametrów związanych z widokiem.220 Joomla!. onSave — Aktywowane tuż przed zapisaniem treści. która umieszcza deklarację skryptu dla dokumentu wynikowego. każdy z nich zostanie wstawiony na stronie. To zdarzenie przydaje się szczególnie wtedy. Przekazywany jest pojedynczy argument zawierający nazwę edytora. Do zdarzeń typu Editor należą: • • • • • • onlnit — Uruchamiane w momencie inicjalizacji wtyczki. Funkcje przypisane do tego zdarzenia powinny zwracać tablicę łańcuchów znakowych. Podział strony. tuż pod treścią artykułu. który wyświetli komentarze pod danym artykułem. onSetContent — Następuje tuż przed wprowadzeniem nowej treści. kiedy edytor powinien zostać wyświetlony. Zdarzenie tego typu jest szczególnie przydatne. To zdarzenie przydaje się szczególnie. jeśli chcesz dodać własne definicje stylów dla wyświetlanych treści. Przekazywany jest pojedynczy argument zawierający nazwę edytora. Funkcje przypisane do tego zdarzenia powinny zwrócić tablicę łańcuchów znakowych. onGetContent — Uruchamiane w momencie otrzymania treści. • . a parametr limitstart zawiera numer „strony". Profesjonalne tworzenie stron WN 1W w treści przesyłanej przeglądarce użytkownika. onAfterDi spl ayContent — Następuje po wyświetleniu treści artykułu. Żadne parametry nie są przekazywane tej funkcji. onGetlnsertMethod — Wykorzystywane przez wtyczkę do wstawienia funkcji JavaScriptu JInsertEditorText. jeśli zamierzasz dodać system komentarzy. onDi spl ay — Następuje w momencie. takich jak Obraz. Przekazywany jest pojedynczy argument zawierający nazwę edytora. onBeforeDi spl ayContent — Aktywowane bezpośrednio przed wyświetleniem zawartości. każdy z nich zostanie dołączony do wynikowego łańcucha. możesz przechwytywać powyższe zdarzenia i wprowadzać zmiany w treści artykułów.

onSearchAreas — Uruchamiane jest w odpowiedzi na żądanie wyszukiwania. Poniżej umieszczono siedem zdarzeń należących do tej kategorii: • onAfterlniti al ise — Uruchamiane jest w momencie wykonania żądania wygenerowania strony. jeśli chce się przechwycić dane zadanie (typ zdania można odczytać bezpośrednio z łańcucha żądania) i wykonać wstępne przetwarzanie. po załadowaniu platformy i uruchomieniu funkcji. zdarzenia logowania i wylogowywania z systemu: . onAfterRoute — Uruchamiane jest po otrzymaniu żądania wygenerowania strony. Przykładowo wtyczka mogłaby przechwytywać zadanie save (zapisz) i robić kopię zapasową istniejącego artykułu. Ta funkcja jest szczególnie przydatna. jakie „obszary" (ang. onGetWebServi ces — Umożliwia implementację introspekcji wtyczek. kiedy platforma jest już załadowana i zainicjalizowana. W tym przypadku. Zdarzenie stosowane głównie we wtyczkach XML-RPC. wywołaniu funkcji startujących i przekazania treści do bufora. • • • • • • onSearch — Uruchamiane jest w odpowiedzi na żądanie wyszukiwania.Rozdział 9.in. areas) mają być przeszukiwane. W momencie uruchamiania kodu odpowiedzialnego za to zdarzenie został już przypisany odpowiedni komponent. a odpowiednie parametry (w tym żądany komponent) zapisywane są w obiekcie JRequest. Introspekcja jest techniką programistyczną polegającą na wysłaniu zapytania do obiektu celem pobrania informacji o jego API i funkcjach. a także sygnaturę zawierającą typy parametrów. łańcuch żądania został przetworzony. zawiera m. Poniżej znajduje się lista zdarzeń powiązanych z uwierzytelnianiem. a zdarzenia administracyjne powiązane są z modyfikacją kont użytkowników z poziomu interfejsu administratora. Definicje zdarzeń tego typu można umieszczać we wtyczkach dowolnego typu. zanim treść nowego zostanie zapisana w bazie danych. może zwrócić listę zaimplementowanych funkcji wraz z opisem wtyczki w formacie doc-string. kiedy wynik gotowy do przesłania do przeglądarki zapisany jest w obiekcie JResponse. jeśli wtyczka zawiera metodę odpowiadającą temu zdarzeniu. onAfterRender — Uruchamiane jest w chwili otrzymania żądania wygenerowania strony. ale przed wygenerowaniem jakiejkolwiek części strony. Uwierzytelnianie odbywa się w części frontowej systemu. • Ingerencia w fundamenty Joomla!: wtyczki 221 Zdarzenia typu System i Search Zdarzenia typu System odnoszą się do sytuacji związanych z funkcjonowaniem całego systemu. Zdarzenia typu User Istnieją dwa podzbiory zdarzeń typu User: zdarzenia związane z uwierzytelnianiem i zdarzenia związane z administracją kontami użytkowników. onAfterDi spatch — Uruchamiane jest po załadowaniu platformy. initial i ze. z dodatkowym określeniem.

wprowadzający . onBeforeDel etellser — Uruchamiane zanim rekord konta użytkownika zostanie usunięty z tabeli jos_users. onAuthenti cate — Uruchamiane po poprawnej autoryzacji. Jeśli funkcja przypisana do tego zdarzenia zwróci wartość False. onLogoutUser — Aktywowane przy próbie wylogowania z systemu. • • • Następujące zdarzenia występują w odpowiedzi na akcje związane z zarządzaniem kontami użytkowników z poziomu interfejsu administratora: • • • • onBeforeStoreUser — Uruchamiane zanim zmiany konta użytkownika zostaną zapisane w tabeli jos_users. kiedy żądanie autoryzacji zostało odrzucone przez kod jednej z wtyczek. Wtyczka Hello World! Ciężko zrozumieć koncepcję zdarzeń. Jeśli funkcja przypisana do tego zdarzenia zwróci wartość Fal se. Profesjonalne tworzenie stron WN 1W • onLogi nllser — Wykonywane po sprawdzeniu nazwy użytkownika i hasła względem tabeli użytkowników Joomla!. wylogowywanie nie powiedzie się. tłum. onAfterDel eteUser — Uruchamiane tuż po usunięciu rekordu konta użytkownika z tabeli jos_users. zanim pojawi się treść artykułu. Przykładowe rozszerzenie Hello World! będzie wstawiać pod tytułem każdego artykułu powitanie. W przypadku tej wtyczki jest to po prostu łańcuch znaków zawierający powitanie. stworzymy prostą wtyczkę Hello World!. który zawiera również wyniki zwrócone przez wtyczki. autoryzacja użytkownika w systemie Joomla! zostanie zakończona niepowodzeniem. Rozszerzenie będzie przechwytywać zdarzenie onAfterDisplayTitle. Funkcje obsługujące to zdarzenie wywoływane są po wyświetleniu tytułu i mogą wstawiać dodatkowe informacje.222 Joomla!. jeśli Tekst danego artykułu został wyłączony — przyp. co zilustrowano na rysunku 9. zatwierdzonej przez wszystkie wtyczki. dane logowania przekazywane są w postaci obiektu JAuthenticateResponse. 2 Dla tego konkretnego zdarzenia zwracany tekst zostanie wyświetlony wyłącznie. W odpowiedzi na zdarzenie onAfterDisplayTitle funkcja zwraca tekst w formacie HTML. Biorąc to pod uwagę. onAfterStoretlser — Aktywowane po zapisaniu zmian w tabeli jos_users. onAuthenti cateFai 1 ture — Uruchamiane za każdym razem. dopóki nie zobaczy się ich obsługi w prawdziwej wtyczce. który wyświetlany jest bezpośrednio pod tytułem2.2.

commercial alternative add new functionality would probably mean taking out a second mortgage each ti Podobnie jak przy tworzeniu modułów i komponentów.). it is release Public License v 2. jooml a jumpstart. a także plik zawierający uruchamiany kod PHP. worzenie pliku deskryptora Tworzenie wtyczki warto rozpocząć od stworzenia pliku deskryptora.ws feeds If you're new to Web publishing systems.php</f 11 ename> </files> </install> Plik XML przypomina w sporym stopniu dotychczasowe deskryptory. tworzone dla pozostałych rozszerzeń. 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. Zawiera on jednak grupę parametrów specyficznych dla definicji wtyczki.5 is free. com</authorUrl > <version>1. Jeśli wyszukiwanie pliku zakończy się niepowodzeniem. Wartość atrybutu type nie wymaga wyjaśnień. Kolejnym elementem.0</version> <description>Wstawia powitanie "Hello World!" pod tytułem każdego artykułu. Had you invested in a mainstream. W przypadku wystąpienia zdarzenia ładowany jest plik PHP odpowiadający nazwą wartości tego atrybutu. and more good news! Joomla! 1. authentication itd. kod odpowiedzialny za obsługę zdarzenia nie zostanie uruchomiony. korzystając z edytora tekstowego lub za pomocą IDE. Atrybut group wskazuje na kategorię wtyczki. user. która (w momencie instalacji) zapisywana jest w polu element. że dane rozszerzenie jest wtyczką: type i group.0.xml: <?xml version="1.. search.Rozdział 9.com</authorEmai1> <authorllrl >www. Wprowadzona nazwa powinna dokładnie odpowiadać nazwie pliku z kodem PHP — bez rozszerzenia. there's good news .Hello World</name> <author>Dan Rahmel</author> <creationDate>July 2007</creationDate> <authorEmail>admin@joomlajumpstart. że znacznik <install> zawiera dwa atrybuty.2. jedną z wyszczególnionych wcześniej (content.. . you'll find that Joomla! delivers sophistii robust enterprise-level Web site. • Ingerencia w fundamenty Joomla!: wtyczki ysunek 9. Wprowadź poniższy kod i zapisz go pod nazwą plg ^•HelloWorld. musisz stworzyć plik deskryptora w formacie XML. na który musisz zwrócić szczególną uwagę. który zawiera informacje dla instalatora dotyczące szczegółów wtyczki.</description> <files> <fi1ename plugin="plgHel1oWorld">plgHel1oWorld. które wskazują. tabeli jos_plugins. jest atrybut plugin znacznika <fi lename>.0" encoding="utf-8"?> <instal 1 version="l. Vtyczka Hello Vorld! wstawia owitanie między /tulem a treścią rtykułu • Hie News > Welt Links 223 Joomla! Overview Hello W o i Id! * N<.5" type="plugin" group="content"> <name>Content . Zwróć uwagę. Pliki należące do wtyczki zostaną zapisane w folderze odpowiadającym danej grupie.

że nowa klasa o nazwie plgContentHell o EWorld dziedziczy klasę abstrakcyjną JPlugin. To by było na tyle. $1imitstart=0) { $myOutput = "<h4>Hello World!</h4>": return SmyOutput: } } // Zainicjuj wtyczkę. podając jako parametr egzemplarz dyspozytora zdarzeń $myPlugin =& new plgContentHelloWorld(JDispatcher::getlnstance() ?> ): Analizując powyższy kod. i z tego powodu gra rolę konstruktora. Pierwsza zdefiniowana metoda nosi nazwę pokrywającą się z nazwą klasy. który następnie zwracany jest do funkcji wywołującej za pośrednictwem instrukcji return. dla zachowania kompatybilności z PHP4. zauważysz. Nie było to wcale trudne. co spowoduje jego aktywację. prawda? Kolejna wtyczka będzie odrobinę bardziej skomplikowana. W tym przypadku. Domyślnie nowe wtyczki nie są aktywne. Utwórz archiwum zawierające plik XML i PHP (może być w formacie ZIP lub Tarball). uruchamia ona jedynie konstruktor klasy rodzica. Kod funkcji zawiera definicję łańcucha znaków "Hel lo World!". Poniżej znajduje się definicja funkcji obsługującej zdarzenie onAfterDisplayTitle. Ponieważ tworzymy prosty program wyświetlający powitanie. Przejdź do ekranu Dodatki. możesz spokojnie zignorować te parametry. Profesjonalne tworzenie stron WN 1W Tworzenie kodu wtyczki Po zapisaniu pliku deskryptora utwórz kolejny plik i zapisz go pod nazwą pl gHel 1 oWorl d. . tak jak jej zadanie. Jeśli otworzysz teraz stronę Joomla!. ph Umieść w nim następujący kod: <?php * @version * @package */ $ld: plgHelloWorld. powinieneś zauważyć.224 Joomla!. Przejdź teraz do opcji Dodatki i wyłącz wtyczkę Hello World!. Wystąpienie tego zdarzenia skutkuje przekazaniem trzech parametrów umożliwiających odczytanie (ale nie zmianę) zawartości artykułu.php 6138 2007-07-02 03:44:182 daw $ plgHelloWorld // Zablokuj bezpośrednie uruchamianie defined( '_JEXEC' ) or die( 'Brak dostępu' ): class plgContentHelloWorld extends JPlugin { // Konstruktor kompatybilny z PHP4 function plgContentHelloWorld( & $subject ) { parent:: construct( Ssubject ): } // Nazwa funkcji odpowiada nazwie zdarzenia function onAfterDisplayTitle(& iarticle. aby opublikować dane rozszerzenie (znajdziesz je pod nazwą Content— Hello World!). dla którego zostało wygenerowane zdarzenie. & iparams. Za pomocą opcji Rozszerzenia/Instalator zainstaluj plik w systemie. aby nie zaśmiecała i nie spowalniała systemu. że między tytułem a treścią każdego artykułu zostało wstawione powitanie.

Wtyczka może cenzurować tekst. fragmenty słów mogłyby zostać potraktowane jako skróty. a powitanie powinno zostać wyświetlone we właściwym miejscu. Możliwe. które zmienia treść artykułu. zanim artykuł zostanie przesłany do przeglądarki.Rozdział 9. Wtyczka Automatyczne Skróty. demonstruje wszystkie kluczowe punkty implementacji. • Ingerencia w fundamenty Joomla!: wtyczki 225 Jeśli aktywowałeś wtyczkę. Kod wtyczki powinien zawierać instrukcje. napisz nowy artykuł za pomocą opcji Artykuły. które zapobiegną takim sytuacjom. aby zapobiec spamowi. dodawać reklamy do słów kluczowych w stylu Google AdSense.. ale dla których nie jest uruchamiane zdarzenie onAfterDisplayTi tle. . a następnie kliknij przycisk Preferencje. Przykładowy artykuł wykorzystany na potrzeby tej wtyczki może brzmieć tak: Analizując ww. Powyższy fragment zawiera nie tylko kilka skrótów. znajduje się ono w grupie Parametry: rozszerzone. zanim zostaną one przesłane do przeglądarki użytkownika. Zanim stworzysz rozszerzanie. lub tytuł artykułu. Kliknij odnośnik Czytaj więcej. które znajdują się na stronie głównej. Druga ewentualność to wyłączona opcja Tekst wprowadzający dla jednego lub wszystkich artykułów. Tak naprawdę większość popularnych wtyczek typu Content (cenzura. ukrywanie adresów e-mailowych itd. tj. jeśli stanowią one fragment jakiegoś słowa. Ponieważ żadne zmiany nie są zapisywane w bazie.) daje się odtworzyć przez wprowadzenie wyłącznie kilku zmian w kodzie rozszerzenia Automatyczne Skróty. np. Przykładowo dodający mógłby wstawić w treści artykułu skrót „NBP". który odpowiada prawdopodobnie nazwie Narodowy Bank Polski. właściwy artykuł pozostaje nietknięty. ale także demonstruje zdolność odróżniania skrótów — pasujące litery nie są zamieniane na pełną formę. Problem niskich plac dot. Przejdź do opcji Artykuły w interfejsie administratora.. Przykładowo słowo dotychczasowy zawiera znaki odpowiadające skrótowi „dot. będzie przeszukiwać tekst pod kątem fraz dających się zapisać w postaci skrótów. a mimo to nie pojawiło się żadne powitanie przed treścią artykułów. aby przejść do danego artykułu. warto zwrócić uwagę na poziom wynagrodzenia. przycinać treść artykułów dla niezarejestrowanych użytkowników i tak dalej. Wtyczka przechwyci treść artykułu pobraną z bazy danych i rozwinie skróty. którą stworzysz. a dotychczasowy projekt nie przewiduje poprawy tego stanu rzeczy. Chociaż nasza wtyczka nie służy do rozwiązania poważnego problemu. a także ułatwia zrozumienie systemu wtyczek Joomla! oraz stanowi doskonałą podstawę do tworzenia podobnych rozszerzeń. ukrywać adresy e-mailowe. przychód netto dla danych zawodów. Wtyczka Automatyczne Skróty Najwięcej wtyczek spośród wszystkich tworzonych zalicza się do grupy tych. Przestaw opcję Tekst wprowadzający na Pokaż. Jeśli wtyczka opierałaby się na prostej operacji znajdź i zmień. Możesz także zmienić ustawienia dla danego artykułu. nauczyciel stażysta zarabia 800 zł netto. dane. które zmieniają treść istniejących artykułów. a ich rozwinięcie zniekształciłoby tekst. istnieją dwa prawdopodobne scenariusze. Dlatego najwięcej pożytku przyniesie Ci stworzenie rozszerzenia.". głównie zawodów finansowanych z budżetu. że przeglądasz skróty artykułów.

xml: <?xml version="1. Po uruchomieniu wtyczki skróty zostaną rozwinięte. jednak zastosowanie się do niej ułatwia określenie typu wtyczki wyświetlanej na liście w interfejsie administratora. konieczne będzie zdefiniowanie metod obsługujących zdarzenia typu Content.com</authorEmail> <authorllrl>www. a dotychczasowy projekt nie przewiduje poprawy tego stanu IM.</description> Znacznikowi <name> można przypisać dowolną wartość. Rysunek 9. głownie zawodów tinans poprawy tego stanu rzeczy. Profesjonalne tworzenie stron WN 1W Po wyświetleniu artykułu w niezmienionej formie na stronie głównej odpowiada on dokładnie wprowadzonemu tekstowi (zobacz rysunek 9. Sposób wprowadzania zmian w treści artykułów będzie odpowiadać innym zdarzeniom tego typu.0" <install encoding="utf-8"?> group="content"> Skróty</name> version="1.php</fi 1 ename> </files> <params> <param name="replace_limit" type="text" size="5" default="50" zmian" description="Maksymalna </params> </instal l> liczba zmian skrótów jednego 1abel="Limit rodzaju"/> wyrażeniami.226 Joomla!. Po utworzeniu i aktywacji wtyczki skróty zostaną zastąpione odpowiednimi wyrażeniami.5" type="plugin" Rahmel</author> <name>Content . ""MMMIIffliWBailw r i I • Extension« Aby zrealizować założenia tego rozszerzenia. com</authorllrl> <version>1.3). jednak konwencja Joomla! przyjmuje nazewnictwo z przedrostkiem wskazującym typ wtyczki (w tym przypadku „Content -").4). Kod deskryptora XML Rozpocznij od utworzenia pliku deskryptora. to zawodów. dane warto zwrócić uwagę na poziom wynagrodzenia. tekst artykułu zawiera wiele skrótów The News Weit Links News Fee*ls Artykut próbny Analizując ww. Rysunek 9. ii zarabia 800 zł netto. a lektura tekstu będzie prostsza (zobacz rysunek 9.0</version> <description>Zastępuje skróty odpowiadającymi <files> <fi 1 ename plugi n="rep!aceabbr">replaceabbr. .4. Wprowadź poniższy kod do edytora tekstu lub IDE i zapisz go pod nazwą replaceabbr. na przykład nauczyciel stażysta zarabia 800 zł netto Problem niskich płac dt finansowanych z budżetu.Automatyczne <author>Dan <creati onDate>July 2007</creati onDate> <authorEmail>admin@joomlajumpstart. Rozszerzenie będzie działać nawet. Problem niskich płac dot. Ponieważ wtyczka Automatyczne Skróty nie została jeszcze zainstalowana i aktywowana. a pełny tekst przesłany do przeglądarki • lite News • Weh Links Artykuł próbny • News Feetls Analizując wyżej y^miemone dane warto zwrócić uwagę na poziom wynagrodzenia.C i . jeśli zignorujesz tę konwencję.3. joomla jumpstart.

php ReplaceAbbr 6138 2007-07-02 03:44:18Z danr $ replaceabbr.". ale jednak to pełnoprawna demonstracja stosowania parametrów.".". 1)) { $num = $pluginParams->get('replacejimit'.". $article->text = str_replace( ''." .new JParameter( $plugin->params ): $num =1. a następnie wprowadź poniższy kod: <?php * @version * @package */ // Zablokuj definedi $ld: replaceabbr."dr". "ww. &$params. na wypadek gdyby były potrzebne później iplugin =& JPluginHelper::getPlugin('content'. (od wtyczki Po zapisaniu pliku deskryptora na dysku twardym utwórz plik o nazwie w tym samym katalogu. "wg". } // Nazwa funkcji odpowiada nazwie zdarzenia function onPrepareContentt&iarticle. function replaceAbbrStr($myStr. return true: $num). Jego użyteczność w przypadku wtyczki Automatyczne Skróty jest wątpliwa. Ta wtyczka ma jeden parametr— repl ace_l imit (limit zmian). 'replaceabbr'): ipluginParams . "np.php bezpośrednie uruchamianie '_JEXEC' ) or die( 'Brak dostępu' ): class plgContentReplaceabbr extends JPlugin { // Konstruktor kompatybilny z PHP4 function plgContentReplaceabbr( & isubject ) { parent:: constructi isubject ). W przypadku tej wtyczki atrybut plugin ma jeszcze większe znaczenie niż dla rozszerzenia Hello World!. • Ingerencia w fundamenty Joomla!: wtyczki 227 Nazwa wtyczki systemu Joomla! przekazywana jest w postaci atrybutu plugin znacznika <filename>. "tzn. "mgr". "tj. Odpowiednie ustawienie jest niezbędne do późniejszego pobrania parametrów. $article->text ): return true. 1): } if ( !JString::strpos( $article->text. if (!$pluginParams->get('replace_limit'.Rozdział 9. } } $article->text =$this->replaceAbbrStr($article->text. $1imitstart=0) { //Pobierz wartość parametrów. $num) { // Utwórz tablicę zawierającą skróty $abbr=array("dot. '{replaceabbr=off}' ) === false ) { '{replaceabbr=off}'.

$abbr[$i]) . Wtyczka zawiera metodę obsługującą zdarzenie onPrepareContent. co umożliwia modyfikację wartości tych zmiennych — z czego zresztą skorzystamy. Referencję wtyczki otrzymuje się za pomocą funkcji JPluginHelper:: ^getPlugin. iparams i $1 imitstart. "doktor". Pierwsze dwa przekazywane są za pomocą referencji. Instrukcja powrotu kończy funkcję i przekazuje sterowanie systemowi. pod nazwą plgContent "-»-Replaceabbr. To zdarzenie uruchamiane jest w momencie. którego wartość musi zostać pobrana. // co ułatwia dopasowanie do powyższej listy. "to jest". a dalsze zmiany zostają zblokowane za pomocą instrukcji return. "\b\. $myStr. co nie ma znaczenia dla tego przykładu. "według". Wtyczka Automatyczne Skróty ma parametr (o nazwie replace_l i mit). "wyżej wymienione". Następnie odczytywane są wartości parametrów. // Dodaj znaki tworzące wyrażenie regularne ze skrótów. Profesjonalne tworzenie stron WN 1W // Utwórz tablicą zawierającą rozwinięcia skrótów // Umieszczane są po dwa rozwinięcia w jednej linii. Parametr $1 imitstart zawiera numer aktualnej „strony". Nie jest to ani dyrektywa patTemplate. "to znaczy" ). Następie nadpisywana jest oryginalna treść zmiennej $article->text danymi zwróconymi przez funkcję. "na przykład". funkcja ma trzy parametry: iarticle. Jeśli odpowiedni znacznik nie zostanie zlokalizowany.?/i": // Zastąji skróty za pomocą wyrażeń regularnych $myStr = preg_replace ( $abbr. $actual=array("dotyczy". Przed rozpoczęciem przetwarzania następuje sprawdzenie. "magister". } ". a stan parametru replacej i mit zapisywany jest w postaci zmiennej $num. że dany artykuł powinien zostać zignorowany przez wtyczkę.$i++) { $abbr[$i] = " A \ b " . Rozpoczyna się od definicji klasy dziedziczącej JPlugin. Sactual. W przypadku wystąpienia znacznika jest on usuwany z treści artykułu. imyPlugin =& new plgContentReplaceabbr(JDispatcher::getlnstance() ).228 Joomla!. 1 . ani żadna formalna deklaracja — j e s t to znacznik wymyślony na potrzeby tego rozszerzenia. $num): // Zwróć zmieniony ciąg } } return SmyStr. kiedy treść artykułu jest gotowa do wysłania do przeglądarki. Kod powyższego rozszerzenia jest odrobinę bardziej skomplikowany niż wcześniejsza wtyczka Hello World!. . czy w treści artykułu znajduje się znacznik wskazujący. aby umożliwić wyłączanie przetwarzania danych artykułów bez dezaktywowania wtyczki. //dodatkowo ignoruj wielkość liter for($i=0:$i < sizeof(iabbr). wartość $article~>text (przechowuje aktualny artykuł) przekazywana jest funkcji replaceAbbrStrO w celu rozwinięcia skrótów. Instrukcję {replaceabbr=off} należy wpisać w treść artykułu. // abv dopasowywane byty wyłącznie poprawne skróty. Jak mogłeś zauważyć. str_replace('.

Ciąg \b odpowiada komendzie \b. Wyrażenie regularne rozpoczyna się znakiem ukośnika (/). Wyrażenie kończone jest kolejnym ukośnikiem (/). że dzięki tej prostej. Zanim zostanie wywołana funkcja preg replaceO. nie zostaną wprowadzone ograniczenia liczby zmian. przykładowej wtyczce zrozumiałeś potęgę tkwiącą w systemie rozszerzeń. kiedy posiadasz już umiejętność programowania rozszerzeń wszystkich trzech typów (moduły. Doskonałe przewodniki znajdziesz na stronie www. Wynik zapisywany jest w zmiennej SmyStr i zwracany do funkcji wywołującej. Twoja praca programistyczna będzie wymagać ścisłej integracji tworzonych rozszerzeń z systemem Joomla!. które powinny zostać rozwinięte. a ich użycie może oszczędzić ogromnie dużo czasu i energii. drugi odpowiadające rozwinięcia (Sactual). żeby ignorować wielkość liter przy wyszukiwaniu. Wyrażenia regularnie to potężne narzędzie przetwarzania tekstu. a także na wywoływanie funkcji składających się na platformę. Funkcja preg_replace() wywoływana jest z czterema parametrami. aby zamienić pasujące wystąpienia na odpowiedniki. Przekłada się to na konieczność zrozumienia działania tego systemu na najniższych poziomach.info/php. • Ingerencia w fundamenty Joomla!: wtyczki 229 Funkcja repl aceAbbrStr() jest zwyczajną funkcją PHP. komponenty i wtyczki). co ułatwia programiście odczytywanie i łączenie z odpowiednimi rozwinięciami zapisanymi w drugiej tablicy. być z jednej i z drugiej strony ograniczony znakiem interpunkcyjnym lub znakami odstępu). Platforma Joomla! została podzielona na kilkanaście pakietów. który zawiera pliki źródłowe: . Wstawienie \b na początku i na końcu danego skrótu oznacza. a czwarty maksymalną liczbę zmian każdego skrótu ($num). w jaki sposób wtyczki ingerują w podstawy platformy Joomla! i wpływają na podstawowe aspekty działania systemu.html. Jeśli ostatniemu parametrowi przypisano wartość -1 (wartość domyślna). który jest rodzajem ogranicznika dla danego wyrażenia. niezbędna jest zmiana formatu skrótów. które zamieszczono w drugiej tablicy. trzeci przeszukiwany tekst (SmyStr). pierwszy zawiera tablicę skrótów ($abbr). która informuje kod przetwarzający wyrażenia regularne. Poprzez wywołanie funkcji str_repl ace() usuwane są kropki (które są elementem wyrażeń regularnych). po nim występuje dyrektywa i. aby nie został potraktowany jako sekwencja specjalna. powinieneś uzupełnić braki w edukacji.Rozdział 9. w jednej umieszczane są wyrażenia regularne. Deklaracja tablicy zawiera po dwa wpisy w jednej linii. Jeśli nie zapoznałeś sięjeszcze z przetwarzaniem tekstu za pomocą wyrażeń regularnych. Jestem pewien. że musi on stanowić samodzielne „słowo" (tzn.regular-expressions. która wykorzystuje dwie tablice. zapis z dwoma lewymi ukośnikami jest konieczny. Prawdopodobnie wiesz już. aby tworzyły one wyrażenia regularne. ludowa platformy Joomla! Teraz. Pierwszy argument funkcji preg_replace() zawiera listę skrótów. a następnie uruchamia preg_repl ace(). większość z nich ma własny katalog.

z a w i e r a a d a p t e r y JCacheCal 1 back. która dziedziczy JObservable (znajduje się w pakiecie Base). tj. Klasy obsługujące dostęp do baz danych dziedziczą po JDatabase. Pakiet znajduje się w katalogu \libraries\joomla\document. JBrowser i JURI (ta ostatnia przetwarza adresy URI). JModel Component. JModelModule. Pakiet znajduje się w katalogu \libraries\joomla\event. znajduje się więcej informacji na temat wzorców projektowych). który służy za podstawę obiektów JObservable i JTree. JModelSession i JModel User. Cztery klasy. Pakiet zawiera także biblioteki DAO (Data Access Object — Obiekt dostępu do danych). JReponse. multimediów. JSite. Klasa JSimpleRecordSet wykorzystywana jest w interakcji z bazą danych. FTP (klasa JFTP) lub LDAP (klasa JLDAP). a także klasy JModel Category. Zawiera klasy JInputFi Iter i JOutputFi Iter. Pakiet znajduje się w katalogu \libraries\joomla\il8n. JFile. np. Całość znajduje się w katalogu • \libraries\joomla. JFolder i JPath. Pakiet znajduje się w katalogu \libraries\joomla\fdter. zawiera klasę JDi spatcher. i JP1 ugi n. rozszerzeń i pakietów językowych. Pliki znajdują się w katalogu \libraries\joomla\client. JCacheOutput i JCachePage. Zawiera klasy JArchive. Pakiet Event — Obsługuje system zdarzeń w Joomla!. a b s t r a k c y j n ą klasę JModel. Pakiet znajduje się w katalogu \libraries\joomla\database. JRequest. • • • • • • • • . JAdministrator) t w o r z ą C M S Joomla!. Profesjonalne tworzenie stron WN 1W • Pakiet Application — JAppl i cation i powiązane biblioteki zaimplementowano z wykorzystaniem wzorca fabryki (w rozdziale 8. JText i JHelp. JPluginHelper. Pakiet Document — Biblioteki zawierające funkcje do generowania stron takich jak abstrakcyjna klasa JDocument. ale planowane jest stworzenie odpowiedników dla Oracle i Microsoft SQL Server. Procedury zarządzania plikami wykorzystywane są głównie dla wysyłanych plików. JModel PI ugins. Pakiet Filesystem — Biblioteki związane z obsługą systemu plików. Pakiet znajduje się w katalogu \libraries\joomla\environment. która dziedziczy JEvent. abstrakcyjna klasa dziedziczona jest w postaci klas obsługujących pamięć podręczną. Pakiet Client — Zawiera biblioteki klienckie dla np. która tworzy strony HTML stanowi rozszerzenie klasy JDocument. zawiera klasy JLanguage (implementacja wzorca singleton). Pakiet il8n — Biblioteki obsługujące ustawienia regionalne i języki. JModel. Pakiet Database — JDatabase i powiązane biblioteki tworzą warstwę łączącą z funkcjonalnością baz danych. Klasa JDocumentHTML. Zapisany w katalogu \libraries\joomla\base. Pakiet Environment — Klasy obsługujące interakcje z użytkownikiem. Pakiet Cache — Implementacja bibliotek obsługujących pamięć podręczną.230 Joomla!. Pakiet znajduje się w katalogu \libraries\joomla\filesystem. która dziedziczy JObserver. JModelMenu. JEvent. JCacheView. JModel Section. tzn. • Pakiet Base — Podstawowy pakiet składający się z klas takich jak JObject. Pakiet Filter — Biblioteki filtrujące dane wejściowe i wyjściowe z dowolnego źródła celem zapobiegnięcia atakom. Obecnie dostępne są wyłącznie klasy JDatabaseMySQL i JDatabaseMySQLi. które dziedziczą ten pakiet (JInstal 1 ation.

parseAttributesO i isWinOSO. Możliwe jest stworzenie innych aplikacji za pomocą tej platformy. • profilowania. Zawiera klasy JRegistry. która dziedziczy klasę PHPMai 1 er. poczty. JUserHelper. znajdują się na najniższym poziomie platformy.in. CMS Joomla! jest właściwie aplikacją zbudowaną na podstawie platformy Joomla!. sendAdminMai 1 0 . cleanBodyO. JInstallerPlugin i JInstallerTemplate. Jak wspomniano w poprzednich rozdziałach. JInstallerLanguage. JRegistryFormatXML. • Pakiet User — Biblioteki służące do aktywacji. np. nie zaleca się wykorzystywania funkcji i klas z tego pakietu — w przyszłości mogą wystąpić problemy z kompatybilnością. JRegistryFormatPHP. Pakiet Session — Biblioteka do obsługi sesji Joomla! za pomocą klas JSessionStorage i JSession. cleanLine(). Zawiera klasy JAuthorization. JRegistryFormat. Pakiet znajduje się w katalogu \libraries\joomla\session. Pakiet Registry — Biblioteki powiązane z konfiguracją systemu. i JPagination. Bezpośrednie programowanie platformy wymaga dokładniejszej analizy i lepszego zrozumienia kodu źródłowego Joomla!. błędów. jednak są one podstawą. • Ingerencia w fundamenty Joomla!: wtyczki • Pakiet Installer — Biblioteki związane z instalacją rozszerzeń. funkcji. na podstawie której stworzone zostały klasy JInstal!erComponent. JMail. Pakiet znajduje się w katalogu • \libraries\joomla\registry. służy do zwracania różnych obiektów. Pakiet znajduje się w katalogu \libraries\joomla\utilities. JMai 1 Hel per. cleanText(). która dziedziczy JObservable. a JVersion przechowuje informacje dotyczące wersji aktualnej instalacji. buforów. JFactory to implementacja wzorca fabryki. tn. JInstal lerModule. Biblioteki związane z pocztą elektroniczną. Pakiet znajduje się w katalogu \libraries\ joomla\user. cleanAddress() i isEmailAddressO. 231 Pakiet znajduje się w katalogu • • \libraries\joomla\installer. i JUser. JRegistryFormatlNI. Prawdopodobnie nie będziesz korzystał z nich bezpośrednio. JProfiler ułatwiają obsługę tablic. Pakiet znajduje się w katalogu \libraries\joomla\parameter. Inne f u n k c j e n a r z ę d z i o w e m Pakiet Utilities— Różne biblioteki. Zawiera abstrakcyjną klasę JInstal ler. dat. getHashO. Pakiet Parameter — Biblioteki służące do manipulowania i wyświetlania parametrów. Ponieważ twórcy Joomla! odchodzą od wykorzystania patTempl ate. simplexml i ciągów znaków. JError.Rozdział 9. Klasa JMai 1 Hel per posiada kilka funkcji związanych z listami elektronicznymi. autoryzacji i uwierzytelniania użytkowników. U podstaw platformy Joomla! leżą dwie klasy: JFactory i JVersion. getTokenO. ale informacje na ten temat wykraczają poza ramy tej książki. JAuthentication. Pakiet znajduje się w katalogu \libraries\joomla\template. włączając w to klasę JMai 1. cleanSubjectO. dzienników. dlatego może warto rozpocząć dokładne badania Joomla! właśnie od nich. Klasa JUti lity z a w i e r a m e t o d y sendMai 1 0 . m Pakiet Template — Biblioteki obsługi szablonów patTempl ate. .

Ruch w tej części (zarówno odczyt. Aplikacja Jlnstallation Aplikacja instalująca. JAdmi ni strator — cześć administracyjna. jest uruchamia zazwyczaj wyłącznie jeden raz — w momencie instalowania systemu.php — Importuje biblioteki platformy Joomla!. W większości przypadków jest to dostęp tylko do odczytu. framework.php — Zawiera kod ajaksowy stosowany przy asynchronicznej analizie składniowej plików XML. Większość podstawowej logiki znajduje się w katalogu \installation\ includes. Ponieważ praktycznie wszystkie rozszerzania pisane są z myślą o współdziałaniu z klasą JSite. Wyjątkami od tej reguły mogą być funkcje interaktywne (np. Zawiera on poniższe pliki: • • • • application. Następnie wykonuje pierwsze uruchomienie systemu i nie jest wykorzystywana nigdy więcej. Dane odczytywane są z bazy danych MySQL i wyświetlane w przeglądarce w postaci sformatowanej strony WWW. jak i zapis) jest zdecydowanie mniejszy niż w części frontowej. Nawet redaktorzy spędzają niewiele czasu. . klasy JAdmi ni strati on i Jlnstallation zostanąjedynie pobieżnie opisane. Profesjonalne tworzenie stron WN 1W Struktura CMS Joomla! (JApplication) CMS Joomla! składa się z trzech aspektów: • Instalator — Część instalacyjna obsługuje czynności związane z instalacją i wstępną konfiguracją systemu Joomla!. zawierające ścieżki wykorzystywane podczas instalacji.232 Joomla!. Pliki źródłowe można znaleźć w katalogu 1 installation. xajax.php — Tworzy globalne zmienne. wypełniają wymienione wyżej zadania: • • • JSite — część frontowa aplikacji. uzupełniania informacji wykorzystywanych przy sortowaniu danych w bazie. Jlnstallation — interfejs instalacji. Wszystkie powyższe klasy dziedziczą abstrakcyjną klasę JApplication. której odpowiada klasa JInstal 1 at i on.php — Inicjalizuje i uruchamia aplikację instalującą. przeglądając artykuły w części administracyjnej. obsługuje instalację przykładowych danych. tworzy sesję. wykorzystywane przez instalator. sprawdzania poprawności połączenia FTP. Część administracyjna — Wykorzystywana jest praktycznie wyłącznie w celu dodawania i wprowadzania zmian w zawartości strony. które uruchamiane w różnych momentach. głosowanie w sondzie). defines. Część frontowa — Widziana jest przez użytkowników strony. • • CMS Joomla! został podzielony na trzy różne „aplikacje".

Aplikacja JSite zawiera kod odpowiedzialny za pobieranie informacji z bazy danych MySQL.php — Uruchamia klasę JInstal!ationControl ler. Podobnie jak przy innych aplikacjach opartych na platformie Joomla!. di spatch — Obsługuje wyświetlanie HTML-a najwyższego rzędu.php. iplikacja frontowa JSite Najważniejszym etapem podczas analizy kodu platformy Joomla! będzie JSite. uruchamianie aplikacji rozpoczyna się od załadowania pliku index. aby zakończyć sesję. Obsługuje wyświetlanie ekranów instalacji.Rozdział 9. odwołań do plików JavaScript. wyświetlania ekranów wygenerowanych przez JInstal 1 ationControl 1 er. html. tj. którymi się kierujemy.php. installer. Zawiera także logikę do utworzenia bazy danych.php — Obsługuje zadania ajaksowe.php) znajduje się w katalogu 1 includes. Obsługuje również funkcje związane z logowaniem i interakcją z użytkownikiem.php tworzy egzemplarz klasy JSite i po wstępnym przygotowaniu środowiska (rozpoczęciu sesji i zaimportowaniu wtyczki system) uruchamia aplikację. wstawianie tytułu. Kod w pliku index. framework. 1 ogi n — Sprawdza autoryzację podanej nazwy użytkownika i hasła.php i application. Następnie ładowane są trzy najważniejsze pliki: defines. które nie zostaną wyjaśnione na ekranie. przekazując wygenerowane dane.php — Zawiera logikę do obsługi warstwy prezentacji. Dlatego nie jest możliwy dostęp do niego. łączenie z wybranym szablonem i przesyłanie wyniku do przeglądarki użytkownika. Po wyświetleniu treści wywołuje metodę setBody obiektu JResponse.php.php — Zawiera definicję klasy JInstal 1 ationControl 1 er. opisu. • render — Wyświetla główną część strony ze sprawdzaniem formatu (HTML lub kanał RSS). • Ingerencia w fundamenty Joomla!: wtyczki Katalog \installation\installer zawiera następujące pliki: • 233 controller. Plik zawierający główną definicję klasy JSite (application. wstępne sprawdzanie. Komunikaty o błędach i inne problemy. procedury w pliku xajax. 1 ogout — Wywołuje metodę logout klasy JAppl i cati on. że aplikacja instalująca będzie znajdować się na normalnej stronie Joomla!. wyświetlanie warunków licencji GPL. metadanych. • • . a następnie wywołuje metodę generującą klasy JDocument. Wywołuje metodę JComponentHelper::renderComponent(). wybór języka. i to niezależnie od motywów. główny kod instalatora.php w głównym katalogu. Katalog I installation musi zostać usunięty po zainstalowaniu Joomla! na serwerze. • • • Chociaż rzadko będziesz wykorzystywać procedury instalatora. mogą mieć wyjaśnienie w kodzie źródłowym. jednak warto zapoznać się z jego kodem źródłowym. Nie powinieneś zakładać. jajax. ponieważ podczas instalacji mogą wystąpić problemy. konfigurację bazy danych i FTP oraz ekran końcowy. Zawiera następujące kluczowe funkcje: • • initial ize — Ładuje ustawienia językowe i ustawienia użytkownika.

że nie istnieje standardowa struktura zdarzeń.php. którą można by wykorzystać przy tworzeniu wtyczek. z tym że w miejsce klasy JSite ładowana jest klasa JAdministrator.php. że kilka procedur zawiera większość logiki dostępnej w ramach platformy Joomla!. Jej uruchamianie jest praktycznie identyczne jak w przypadku strony JSite. getTempl ate — Zwraca nazwę szablonu wybranego do wyświetlenia strony. Struktura części administracyjnej przypomina raczej zestaw małych aplikacji uruchamianych dla poszczególnych elementów. Analogicznie dzieje się w przypadku interfejsu administratora. który dodaje pasek menu w interfejsie administratora. pobiera z tabeli jos_templ atesjnenu pierwszy pasujący rekord. createPathway — Tworzy ścieżkę URL dla różnych obiektów na stronie. która wykorzystuje pojedynczą metodę do wyświetlania wszystkich treści. które zawierają odnośniki do różnych katalogów.php. m JPATH_BASE — Przechowuje ścieżkę aktualnie uruchamianej aplikacji. Z tego powodu. JPATH_INSTALLATION — Zawiera ścieżkę do głównego katalogu aplikacji Jlnstallation. że w przeciwieństwie do modułów i komponentów nie zawiera on oddzielnego podkatalogu dla wtyczek. Do tych stałych należą: • • • • JPATH_R00T — Przechowuje ścieżkę do głównego katalogu platformy Joomla!. Ścieżki Joomla! Istnieje spora liczba stałych w kodzie Joomla!. Jeśli zbadasz zawartość katalogu 1 administrator.php i application. Przy włączonym trybie spuścizny sprawdza ustawienia strony także w pliku mosConfig. 1 oadConfi gurati on — Wykorzystuje stałą JPATH_SITE. wartość tej stałej jest identyczna z JPATH SITE.234 Joomla!. a następnie ładuje konfigurację. takich jak elementy menu. Aplikacja administracyjna JAdministrator Aplikacja JAdministrator znajduje się w katalogu \administrator. JPATH_SITE — Zawiera ścieżkę do głównego katalogu aplikacji JSite. JPATH_ADMINISTRATOR — Przechowuje ścieżkę do głównego katalogu aplikacji JAdministrator. Oprócz administracyjnych wersji trzech głównych plików (defines. zwraca je w postaci tablicy o nazwie iparams. Profesjonalne tworzenie stron WN 1W • • getPageParameters — Pobiera parametry komponentu i menu. Zwróć uwagę. setTempl ate — Wykorzystywana do wymuszania innego szablonu strony niż wybrany. zauważysz. Jeśli zostało przypisanych kilka szablonów do aktualnego menuid. Oznacza to. aby zlokalizować plik ustawień configuration.php) ładowany jest także plik toolbar. JAdministrator działa inaczej niż aplikacja JSite. stała pokrywa się zJPATH ADMINISTRATOR. . • • • Metody zapisane w pliku tworzą serce CMS-a. jeśli uruchamiana jest aplikacja JSite.framework.

Zaglądając do plików źródłowych. Może się to wydawać z początku lekko przytłaczające. Ponieważ Joomla! jest oprogramowaniem o otwartym kodzie źródłowym. Jeśli otworzysz ekran edycji dowolnego modułu. w jaki kod został zorganizowany. jak to przedstawiono na rysunku 9. że chcesz rozszerzyć listę typów parametrów dla modułów. komponenty i wtyczki). a Twoje zdolności rozszerzania systemu Joomla! ograniczone są wyłącznie poziomem Twoim umiejętności jako programisty i znajomością tego systemu.5. Wykorzystywanie funkcji przeszukiwania katalogów Istnieje spora szansa. Przykładowo wyobraź sobie. • Ingerencia w fundamenty Joomla!: wtyczki 235 Wymienione stałe tworzą grupę nielicznych zmiennych globalnych. możesz zauważyć. że na pytanie dotyczące funkcjonowania Joomla! można odpowiedzieć. jak stworzyć rozszerzenia programistyczne Joomla! każdego typu (moduły. Zapoznanie się z kodem źródłowym jest wysoce zalecane. W czasie tworzenia rozszerzeń wiele razy znajdziesz się w sytuacji.5. które doprowadzą w końcu do rozwiązania.Rozdział 9. kiedy nie będziesz rozumiał. jeśli planujesz zaawansowane programowanie Joomla!. jak dokładnie zachowuje się system Joomla! dla szczególnych danych lub akcji użytkownika. Rysunek 9. Wobec postawionego zadania należy przyjąć postawę detektywa — szukać wskazówek. niż otworzyć kod w edytorze tekstu. Nie ma jednak lepszego sposobu.tiHPtty lulu prsytostefc klasy modułu . Lista parametrów modułu znajduje się w panelu o nazwie „Parametry modułu" Piefeiiiiiuje P.n. które powinny być pomocne w pracy z kodem źródłowym. W takich wypadkach analiza kodu źródłowego to doskonały sposób rozwiązania problemu. Kolejne podrozdziały zawierają kilka wytycznych. które na pewno będą dostępne w przyszłych wersjach Joomla!. a następnie dzięki wnikliwej analizie poznawać jego działanie. że parametry wyświetlane są w panelu Parametry modułu. Wskazówki przydatne podczas pracy z kodem Joomla! Wiesz już. można uzyskać odpowiedź prawie na każde pytanie. wykonując proste wyszukiwanie w plikach tekstowych. prawdopodobnie jednak szybko zrozumiesz sposób. cały kod jest w pełni dostępny w każdej instalacji systemu. Większość globalnych zmiennych oraz stałych została porzucona i w kolejnych wydaniach będą one usunięte.

że za wyświetlanie parametrów odpowiada kod w pliku admin. Rysunek 9. 3 Musimy pamiętać. modules. Po zapoznaniu się z wynikami wyszukiwania stanie się jasne.iiti (1 occurrence) 35: MODULE PARAMETERS=Module Parameters Kilka linijek poniżej wyszukiwanego tekstu znajduje się poniższy kod: $p->render('params') Kolejne wyszukiwanie. tym razem słów „function render". teksty w języku polskim będąjedynie w plikach z tłumaczeniami. która pobiera parametry. Inną metodą byłoby wybranie z pliku deskryptora. jEdit. Możesz podążać dalej tym tropem. napotkasz kod. np. a następnie przeprowadzenie wyszukiwania. Wynikiem wyszukiwania w programie jEdit jest lista plików.236 Joomla!. f C:\xat1lpp^ltdocs#omla^dministrator'danguase«n-GBWr^GBxom_modules. możesz przeszukać system Joomla! pod kątem tego tekstu 3 . Podążając dalej. w którym zdefiniowano funkcję do generowania wydruku parametrów modułu. redaktorzy. Profesjonalne tworzenie stron WN 1W Korzystając z aplikacji zawierającej funkcję przeszukiwania katalogów. Możesz teraz zdefiniować własny! Większość programistów Joomla! będzie badać i modyfikować interfejs systemu.php Powyższy plik zawiera wywołanie funkcji getParams(). którego nazwa jest unikatowa (np. radio). że Joomla! w oryginale występuje po angielsku.litml4)hp (1 occurrence) 441 echo $parie->startPanel(JText:: „('Module Parameters). w których występuje dany tekst — co widać na rysunku 9. który uruchamia tworzenie wydruku. Funkcję render() można znaleźć w 35 plikach.modules.6. "param-page"). sekcje. tłum. W rezultacie otrzymasz listę plików. np.html. kategorie. który znajduje się w katalogu comjnodules interfejsu administratora. lista plików itd. . z sekcji parametrów takiego typu. Pliki odpowiedzialne za wyświetlanie tego elementu można znaleźć (bingo!) w katalogu: \libraries\joomla\htmI\parameter\element W tym katalogu znajdziesz kod wyświetlający parametry wszystkich typów. które zawierają szukaną frazę \ d t Module Parameters (2 occurrences in 2 files) f €:\xampp!MdQCSjoomlaadministrator lcomponents«omjiiodules>admin. Pomocne w zrozumieniu funkcji poszczególnych plików będą opisy pakietów umieszczone wcześniej w tym rozdziale. odstępy. aż trafisz na poszukiwany kod. ale jedna pozycja znacząco się wyróżnia: \libraries\joomla\html\parameter.php. powinno doprowadzić do pliku.6. dlatego najlepiej zacząć od folderu \libraries\joomla. dlatego w tym wypadku powinniśmy wyszukiwać „Module Parameters" —przyp.

kliknij prawym przyciskiem folder i wybierz opcję SVN Checkout. Jeśli chcesz. znajdują się informacje na temat dostępności aplikacji SVN i ich instalacji.html. W moim przypadku na serwerze testowym jest to katalog JoomlaSVN.php SVN Joomla!: najnowsze osiągnięcia Jeśli tworzysz rozszerzenia systemu Joomla! (moduły. aby pobrać do niego pliki z repozytorium. Znajdziesz ją w pliku view. W pole opisane URL of the repository wprowadź http://joom1acode.Rozdział 9. a następnie rozwijać je. Wprowadź nazwę anonymous (anonimowy) i pozostaw pole hasła puste.7. Zostanie wyświetlone okno Checkout. Po zainstalowaniu SVN musisz utworzyć folder. Pojawi się okno z zapytaniem o nazwę użytkownika i hasło. są integrowane z resztą projektu. Może to trochę potrwać. opisany w rozdziale 8. skąd można ją. Repozytorium Joomla! jest publicznie dostępne w trybie do odczytu. Stara wersja pliku trafia do archiwum. które przechowuje aktualną wersję plików danego programu. pobrać lub przywrócić. Po zakończeniu tego procesu możesz korzystać z pobranej wersji Joomla! jak z każdej innej. Użytkownicy mogą także pobierać pliki.html. Jeśli korzystasz z programu TortoiseSVN na platformie Windows. Grupa deweloperów Joomla! wykorzystuje system kontroli wersji Subversion (SVN) do zarządzania kodem źródłowym.2\htdocs\Joom!aSVN Po utworzeniu folderu musisz dokonać niezbędnych ustawień. System taki zawiera repozytorium. możesz pobrać z repozytorium SVN najnowszą wersję aplikacji Joomla!. . Pierwszym krokiem będzie instalacja SVN. Ostateczne generowanie kodu HTML dla komponentu obsługuje kod klasy ContentViewArticle. Wprowadzone zmiany. w razie potrzeby.php w poniższym folderze: \components\com_content\views\article\view. znajdujący się w głównym katalogu serwera WWW. W rozdziale 6. • Ingerencia w fundamenty Joomla!: wtyczki 237 Badanie com_content Wyświetlanie treści nie jest integralną częścią platformy Joomla! — odbywa się za pośrednictwem komponentu comcontent. Dlatego ścieżka dostępu wygląda tak: c:\Program Files\Apache Software Foundation\Apache2. po wysłaniu do systemu.org/svn/joomla/developrnent/trunk i kliknij przycisk OK. powinieneś wykorzystać system kontroli wersji. Dzięki analizie poszczególnych plików (w szczególności content. komponenty i wtyczki). Na serwerze testowym znajdziesz go w katalogu o ścieżce przypominającej poniższą: C:\Program FiIes\Apache Software comcontent Foundation\Apache2\htdocs\components\ Podczas implementacji tego komponentu zastosowano wzorzec MVC (Model-Widok-Kontroler). jak to przedstawiono na rysunku 9. który będzie zawierał pobrane pliki. ponieważ konieczne jest przesłanie ponad 3000 plików.php) możesz poznać sposób formatowania treści. Członkowie grupy pracującej nad daną aplikacją mogą pobrać z repozytorium jej najnowszą wersję. Klient systemu SVN połączy się z repozytorium i pobierze wszystkie pliki źródłowe Joomla! do wybranego katalogu.

dodałeś rozszerzenia. php C: \ JoomlaSVN\libraries\)oornla\database\table\aro. które pliki wymagają uaktualnienia. Rysunek 9. Pliki znajdujące się w folderach . dodanych. Added Updated .8).php At revision: 11323 Update . Jeśli zamierzasz przesłać taką wersję za pośrednictwem protokołu FTP. Nie usuwaj tych folderów. uaktualnianie będzie transparentne.8. których nowsze wersje znajdują się w repozytorium. Dlatego zanim rozpoczniesz wysyłanie. które bezpośrednio nie dotyczą plików źródłowych.238 Joomla!. Profesjonalne tworzenie stron WN 1W Rysunek 9. Ich obecność jest niezbędna. usuniętych lub uaktualnionych. Added Added Updated Updated Completed Path C: \JoomlaSVN\libraries\joomla\database\table\backup. php C: \ JoomlaS VN\libraries\joomla\database\table\_acIgroup. \ Joomla5VN\libraries\ joomla\database\table\axosection. Aplikacja połączy się z repozytorium i pobierze pliki.svn są małe. cały proces może potrwać nawet 10 razy dłużej niż zazwyczaj. nie naruszy także bazy danych Joomla!.TortoiseSVN Finished! Mime type m 66 kBytes transferred in 0 minute(s) and 15 second(s) Added: 16 Updated:26 Show log. Jeśli zainstalowałeś Joomla!. php C: \ JoomlaS VN\libraries\joomla\dat abase\table\axo.\ JoomlaS VN\libraries\joomla\database\table\adsection. a które są w najnowszej wersji. Uaktualnianie nie spowoduje usunięcia innych plików. które służą do śledzenia wersji projektu. które zostały zmienione od momentu ostatniego dostępu.7. aby klient SVN odczytał. wykorzystaj opcję eksportu . php C: \ JoomlaS VN\libraries\joomla\database\table\extension . Pobranie na dysk aplikacji Joomla! z repozytorium SVN spowoduje utworzenie w każdym katalogu folderu . plików połączonych.svn.php C: \JoomlaSVN\libraries\joomla\database\tabie\_aclob ject. Added Updated I Added . Katalogi zawierają dużą liczbę plików kontrolnych. Informacje o przebiegu uaktualniania plików pobranych z repozytorium SVN wyświetlane są w specjalnym oknie * • C:UoomlaSVN Action Updated . dostosowałeś konfigurację lub wprowadziłeś inne zmiany.. jeśli planujesz uaktualniać pliki w przyszłości. php C. Zostanie wyświetlone okno zawierające informacje o postępie pobierania uaktualnionych plików (zobacz rysunek 9.php C . ale ich liczba jest znacząca. wystarczy z menu kontekstowego dla wybranego folderu wybrać opcję SVN Update. Zostaną nadpisane wyłącznie te pliki. php C:\JoomlaSVN\llbraries\loader. W oknie programu TortoiseSVN możesz 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 V 1 O 1 K j Cancel ] [ Help J Aby w przyszłości uaktualnić pobrane pliki. Po ukończeniu przesyłania pod listą plików zostanie wyświetlony komunikat o liczbie przesłanych bajtów. które zapisałeś w folderze.php C:\JoomlaSVN\CHANGELOG.

org/svn/joomla/development/releases/l. W czasie instalacji zostanie utworzona kopia zapasowa istniejących tabel. W rozdziale opisano proces tworzenia wtyczek Joomla!. Mogą zacząć się pojawiać błędy związane z bazą danych przy próbie dostępu do bazy o zmienionej strukturze. Podsumowanie Wtyczki Joomla! zawierają kod obsługi zdarzeń systemowych. aby ręcznie przywrócić artykuły lub ustawienia rozszerzeń. Stworzono wtyczkę Hello World! aktywowaną przy zdarzeniu onAfterDi spl ay "-»•Title().Rozdział 9.x można znaleźć pod adresem: http://joomlacode. budowę platformy. a w szczególności: • • • Wprowadzono podział na osiem typów wtyczek wykorzystywanych przez system Joomla!. Ponieważ opcja uaktualniania dostępna w SVN nie dotyczy w żaden sposób bazy danych Joomla!. a następnie ponowne uruchomienie procesu instalacji. wszelkie zmiany wprowadzone przez programistów w bazie danych (lub dowolnym kodzie.org/svn/joomla/development Procedura logowania i dostępu dla powyższych zasobów jest identyczna jak w przypadku głównego repozytorium Joomla!. który się z nią łączy) mogą spowodować błędy w Twoim systemie. Wiedzę tę oraz gruntowną znajomość platformy Joomla! możesz wykorzystać w praktyce — do stworzenia dowolnego systemu. .x (które zawiera wersje archiwalne i eksperymentalne) można znaleźć pod adresem: http://joomlacode. jaki sobie tylko wyobrazisz. z której możesz skorzystać. ponieważ wcześniej nauczyłeś się tworzyć moduły i komponenty.php. po wstawianie dodatkowych formularzy uwierzytelniania użytkowników. które stanowią serce aplikacji Joomla!.0. Repozytorium kodu Joomla! dla wersji 1. 0 Repozytorium modułów Joomla l. Rozszerzenia tego typu mają rozległe możliwości — od przechwytywania i modyfikacji treści. Dzięki zapoznaniu się z procesem tworzenia wtyczek potrafisz już programować rozszerzenia wszystkich trzech typów. Najprostszym sposobem przywrócenia prawidłowego działania systemu jest usunięcie lub zmiana nazwy pliku configuration. Wyjaśniono cztery kategorie zdarzeń systemowych. z pominięciem plików kontrolnych. co powodowało dodanie powitania Hello World! między tytułem a treścią artykułu. Jeśli korzystasz z programu TortoiseSVN. które może obsługiwać kod wtyczek. • Ingerencia w fundamenty Joomla!: wtyczki 239 plików do innego folderu. kliknij prawym przyciskiem folder z projektem i wybierz opcję TortoiseSVN/Export. który znajduje się w głównym katalogu. Zostaną skopiowane wyłącznie właściwe pliki.

dowiesz się. aby zwiększyć znajomość systemu i ułatwić lepsze wykorzystanie dostępnych możliwości. . aby dodać na stronie funkcje serwisu społecznościowego. Profesjonalne tworzenie stron WN 1W • Zaprogramowano rozszerzenie Automatyczne Skróty. Przedstawiono wskazówki przydatne podczas samodzielnego badania i poznawania kodu źródłowego Joomla!.240 Joomla!. jak zaimplementować istniejące rozszerzenia. • • Po zapoznaniu się z funkcjonowaniem systemu z punktu widzenia programisty warto wrócić do aspektów związanych z prowadzeniem strony WWW. które nadają sens programowaniu Joomla!. Opisano poszczególne pakiety składające się na platformę Joomla!. które przechwytuje treść artykułu. wyszukuje popularne skróty i wstawia w ich miejsce odpowiednie rozwinięcia. W rozdziale 10.

joomla. korzystając z dostępnych.joomla.10 Budowanie społeczności w Joomla! Światem Web 2. jak np. do którego pozycje dodawane są przez użytkowników (www. co pomaga kontrolować nowe treści. . Na szczęście dla Joomla! istnieją technologie. Komunikacja przebiega za pośrednictwem różnych funkcji. Dodanie na stronie odpowiednich technologii jest zachętą dla odwiedzających do wzbogacania zawartości witryny. jak stworzyć wirtualną społeczność. np.0 rządzą dwa słowa: interaktywność i społeczność. czatów. systemów komentarzy. korzyści z jej istnienia są znaczące — wzrost popularności i pozycji strony. ksiąg gości.org).org). gdyby nie skuteczne zastosowanie technologii społecznościowych. czy ukierunkowana jest raczej na codzienne wizyty. forów. a ich implementacja nie nastręcza większych trudności. a także komunikowania się z innymi. sieci społecznych. które ułatwiają budowanie skutecznych społeczności.org/content/ blogcategory/35/69). co umożliwia zapisywanie danych przesyłanych przez użytkowników. W tym rozdziale dowiesz się. internetowej społeczności). Rozwijanie internetowej społeczności lub sieci społecznej wymaga rozwagi w czasie instalowania systemu i łączenia poszczególnych technologii. konsumenci umieszczający komentarze na temat produktów na danej stronie). sond. jak 1 nadzorowane). stron z informacjami osobistymi. statycznych stron internetowych witryny społecznościowe kładą nacisk na dynamiczne treści dodawane przez użytkowników. a także katalog stron 0 dużej skali. że stworzenie wirtualnej społeczności (tzn. czy wirtualna społeczność stanowi luźne zgromadzenie członków (np. darmowych rozszerzeń Joomla!. Wiele organizacji zdało sobie sprawę. W przeciwieństwie do tradycyjnych. Rozwój Joomla! nie byłby tak dynamiczny. gdy chce się dobrze prosperować na nowym rynku. katalog rozszerzeń wzbogacany przez użytkowników. po dodatkowe zadania administracyjne (zarówno automatyczne. z możliwością komentowania (extensions.joomla. MySpace. jest kluczowe. Wraz z Joomla! zostało stworzone dobrze prosperujące forum (forum. chociaż trudne. kalendarzy wydarzeń i systemów wiki. Taka zmiana przekłada się na ogrom nowych wyzwań — od właściwej konfiguracji źródeł danych. Niezależnie od tego. Historia Joomla! jest przykładem sukcesu w budowaniu i rozwijaniu społeczności internetowej.

nie zostało uaktualnione. które ma te same wymagane funkcje. Dlatego. warto podczas przygotowywania systemu przyjąć postawę konserwatywną. Jeśli nie zdobędzie ona popularności lub nie jesteś zadowolony z dostępnych opcji. w jaki film inwestują. Budowanie wirtualnej społeczności można podzielić na trzy główne etapy. Wszystkie wymienione rozszerzenia dostępne są za darmo. które charakteryzuje się specyficzną funkcjonalnością. Większość stron internetowych. Chociaż dzięki Joomla! dodawanie funkcji społecznościowych jest proste. Podobnie jest w przypadku wirtualnych społeczności. Część z rozszerzeń służących do budowania społeczności internetowych została już opisana w rozdziale 4. Rozszerzalność systemu Joomla! czyni go idealnym materiałem do rozbudowywania krok po kroku. Potrzeba wiele czasu. dlatego w tym rozdziale zostanie jedynie krótko przedstawiona ich rola w tworzeniu społeczności. gdy chce się osiągnąć sukces nawet.joomla. Opisanych zostanie wiele innych rozszerzeń posiadających funkcje różnego typu. czy aktorzy zostali odpowiednio dobrani. dla wszystkich wymienionych rozszerzeń będą dostępne uaktualnione wydania. kiedy pisałem tę książkę. czy scenariusz jest na swoim miejscu. jeśli strona rozbudowywana jest krok po kroku. a kiepskie planowanie może sprawić. możesz w kilka sekund usunąć lub dezaktywować dane rozszerzenie. które chciałbyś wykorzystać.5.. Ponieważ zarządzanie wirtualną społecznością wymaga dużo czasu. Profesjonalne tworzenie stron WN 1W W czasie. upewnić się. Dzięki zachowaniu rozsądku w fazie planowania i konstrukcji nowej strony społecznościowej zmniejszysz ryzyko frustracji u ciężko zdobytych użytkowników. których częste i niejasne zmiany mogłyby skłonić do opuszczenia Twojej strony na zawsze. spróbuj znaleźć zamiennik w katalogu rozszerzeń Joomla fextensions. Przy każdym demonstrowanym rozszerzeniu pojawia się adres internetowy. które oferuje określoną funkcję w mniej niż 10 minut. wymagałaby dużej liczby dodatkowego programowania do wstawienia lub usunięcia dodatkowych funkcji. Mam nadzieję. pod którym można było je znaleźć w czasie. właściwe planowanie jest niezbędne. część z wykorzystanych rozszerzeń nie została jeszcze przystosowana do pracy z Joomla! w wersji 1. W większości przypadków możesz dodać rozszerzenie. a ogrom czasu i energii zostanie po prostu zmarnowany.5. pojawi się informacja na jego temat. Planowanie wirtualnej społeczności Tworzenie wirtualnej społeczności w wielu aspektach przypomina kręcenie filmu. jeśli zanotowany adres strony internetowej jest nieaktualny. że do momentu. czy producenci wiedzą. Jeśli którykolwiek z wymienionych elementów zostanie zaniedbany. to za pomocą katalogu zdołasz odnaleźć stronę. kiedy sięgniesz po tę książkę. Często jednak projekty przenoszone są w inne miejsca. na której można pobrać rozszerzenie. którymi można wzbogacić system Joomla!. Jeśli jednak istnieje szczególnie znane rozszerzenie komercyjne. Przed nakręceniem pierwszego ujęcia należy przejść cały proces przygotowań. Jeśli rozszerzenie. to przełoży się to na liczne potknięcia podczas kręcenia. Wszystkie rozszerzenia wymienione w tym przeglądzie można znaleźć w katalogu rozszerzeń Joomla!. że uda Ci się znaleźć rozszerzenie.242 Joomla!. czy rekwizyty zostały wypożyczone i czy działają poprawnie.org). które nie opierają się na Joomla!. Istnieje spora szansa. że nawet obiecujący początek może zmienić się w rozczarowanie. kiedy pisałem tę książkę. . aby przyciągnąć odwiedzających i dodających. zgodne z wersją 1.

„sadzenie" społeczności warto rozpocząć od zdefiniowania listy tematów. Z drugiej strony. Co więcej. który można było rozbudowywać. dlatego można wyróżnić pewne punkty odniesienia. który umożliwia roślinom dogodny wzrost i rozkwitanie. Cały proces można podzielić na trzy etapy: • • • programowanie i testy. Programowanie i testy Po zapoznaniu się z pomysłem stworzenia wirtualnej społeczności powinieneś wykształcić wstępne wyobrażenie na temat tego. Jeśli Twoja strona zostanie nagle. Dodatkowo strony hobbystyczne mają dużo luźniejsze standardy. ponieważ społeczność powoli odkrywa. Biorąc pod uwagę unikatową naturę tworzenia i rozszerzania wirtualnych społeczności. nie ma większych szans. „zalana" nowych milionem użytkowników. Joomla! pozwala na lokalne uruchomianie strony i eksperymentowanie z różnymi funkcjami. Niezależnie od okoliczności. Czy istnieje jakiś porządek omawianych tematów? — Wielu nieudanym wirtualnym społecznościom brakowało szkieletu. uruchamianie i przyciąganie użytkowników. Taka agenda ułatwia odwiedzającym odnalezienie interesujących miejsc na stronie. jaki typ społeczności chcesz zbudować. • Budowanie społeczności w Joomla! 243 •zy stadia wirtualnej społeczności Wirtualne społeczności różnią się od tradycyjnych stron WWW (takich jak strony statyczne lub sklepy internetowe) tym. Praktycznie wszystkie udane społeczności internetowe podążają podobnym szlakiem. jakiego typu stronę chcesz stworzyć.Rozdział 10. aby udało się utrzymać ich na dłuższy czas. Podobnie jak trejaż. aby zachować obrany na początku kierunek i przetrwać frustrujące momenty. dodając treści. ap 1. pierwszym wrażeniem nowych odwiedzających będzie brak treści i kiepska wydajność. Wzrost wirtualnych społeczności to praca organiczna. ponieważ odpowiedź na to pytanie określa poszukiwaną grupę ludzi. czy hobbystyczna? — Robi to dużo większą różnicę. • . zebranie dużej liczby użytkowników może zająć trochę czasu. Przykładowo komercyjna społeczność skupiona wokół produktu A nie będzie raczej zdobywać członków spośród fanów produktów B i C. Odpowiedzi na poniższe pytania poparte eksperymentami dadzą Ci jasne wyobrażenie na temat przyszłej strony: • Czy będzie to społeczność komercyjna. ponieważ nie muszą odpowiadać przed sponsorami lub reklamodawcami. warto zerknąć na „mapę" rozwoju. społeczność hobbystów może zrzeszać fanów wszystkich produktów danej kategorii i nie musi służyć promowaniu produktu A. co grupa ma do zaoferowania. niż myślisz. że czerpią głównie z komunikacji między członkami dużej grupy użytkowników witryny. Tworzenie wirtualnej społeczności odbywa się zazwyczaj stopniowo. W ten sposób możesz zdecydować. przedefiniowanie i dojrzałość. a nagły przypływ użytkowników nie daje takich korzyści jak na tradycyjnych stronach. w przeciągu nocy. jeśli chodzi o poziom wulgarności i dyskusje nie na temat.

chociaż ważne w przypadku normalnej strony Joomla!. której powodem istnienia jest społeczność. który chcą współtworzyć stronę. Cechą takiej strategii jest zaleta stopniowej adaptacji nowych technologii. a nie fundamentalne elementy strony. Profesjonalne tworzenie stron WN 1W • Czy wirtualna społeczność ma być dodatkiem do strony internetowej. polecane przez nich społeczności. Poświęć czas pierwszym dodającym. Zazwyczaj pojawia się dużo mniej odwiedzających. a następnie przekazać im część odpowiedzialności. aby przeprowadzili nieformalny test.244 Joomla!. którzy wchodzą na stronę. znajdź kogoś. Przed uruchomieniem strony powinny zostać przeprowadzone testy za pomocą narzędzi badających wydajność pod obciążeniem. jednak często okazuje się także zniechęcający. niż się spodziewałeś. dodanie podstawowych artykułów i warunków korzystania ze strony oraz zastosowanie zabezpieczeń w postaci logowania. jaki typ stron przyciąga użytkowników tego typu. czy jej główną atrakcją? — Ponieważ funkcje społecznościowe wymagają poświęcenia dużej ilości czasu. Za pomocą opcji dostępu Joomla! możesz ograniczyć funkcje społecznościowe do grupy osób. w przypadku większości stron to wielka zaleta. Odpowiednie informacje na ten temat znajdziesz w rozdziale 11. ma krytyczne znaczenie dla strony społecznościowej. witryny. Na dalszym etapie dobrym pomysłem może być samodzielne rekrutowanie użytkowników. dlatego programowaniu i wdrażaniu poświęcany jest jedynie ułamek czasu przeznaczonego na projekt. Etap 2. którzy reprezentują docelową grupę. Uruchomienie strony pozwoli Ci zlokalizować ludzi. Konfiguracja może oznaczać utworzenie kategorii. W przypadku strony skupiającej specjalistów z branży high-tech. ponieważ pozwala ustalić górne granice społeczności dla aktualnej konfiguracji serwera. by poczuli się niesamowicie ważni dla właściciela strony (kimkolwiek on jest). Większość wirtualnych społeczności wykorzystuje istniejące oprogramowanie (takie jak rozszerzenia opisane w tym rozdziale). W takim wypadku raczej nie jest możliwe zrealizowanie scenariusza w stylu MySpace. Tym sposobem dowiesz się. W większości dziedzin 10 procent ludzi wykonuje 90 procent pracy. Uruchomienie i przyciąganie użytkowników Moment uruchomienia wirtualnej społeczności Joomla! jest ekscytujący. chcą się raczej porozglądać lub „podpatrywać". na wielu stronach traktowane są jako mało znaczące dodatki. aby określić granice obecnej instalacji. zwłaszcza w zakresie zarządzania. Na początku musisz dotrzeć do tych. którzy wnoszą nawet najmniejszy wkład. Jeśli strona ma być skierowana do nastolatków. Możesz sprawić. aby mieli wrażenie uczestnictwa w zakładaniu społeczności. które pomagają w przygotowywaniu strony. Po zainstalowaniu i skonfigurowaniu oprogramowania można uruchomić platformę realizującą zaplanowane cele. warto zapytać także o inne. i zachęcanie ich. Chociaż mały ruch na stronie może wydawać się niekorzystny. a Ci. które czerpią z istniejącej bazy użytkowników. kto j ą sprawdzi i podzieli się wrażeniami. Wykorzystanie tych narzędzi. Po nakreśleniu ogólnych koncepcji można przejść do fazy konstrukcji. aby poczuli się . zamiast dodać coś od siebie lub wziąć udział w dyskusji. Osoba dodająca pierwszy komentarz lub pierwszą wiadomość na forum zasługuje co najmniej na osobisty e-mail od ludzi prowadzących stronę.

aby zbadać. Możesz ich nawet nagradzać upominkami. w jaki sposób wzbogacić ich doświadczenia. wtedy przedefiniowanie witryny ma sens. ap 3. jak zarobić na jej popularności. Przykładowo jeśli założeniem strony miało być zrzeszanie miłośników joggingu. zaawansowany użytkownik. czy niezbędne jest przedefiniowanie strony. Zmiana wiodącego tematu strony nie musi oznaczać porzucenia pierwotnego założenia (chociaż może). a większość odwiedzających wymienia informacje na temat najbardziej malowniczych tras. aby lepiej odpowiadała ona zamieszczonym treściom.Rozdział 10. czy strona wymaga przedefiniowania. Częściej oznacza to jednak zmianę priorytetów i poświęcenie zasobów tym obszarom. że to. Na tej podstawie możesz określić. Nie ma prostej reguły. regularnych użytkowników dodających treści. doskonale oddaje fakt. aby zwrócić uwagę na przyjazy ton komunikacji między członkami społeczności — lub vice versa. Wirtualna społeczność . Dodatkowo można by wprowadzić podział na kategorie odpowiadające różnym miejscom. Wielu zwolenników wirtualnych społeczności przyrównuje je do opieki nad ogrodem. na których dodających możesz polegać. przycinać drzewa i usuwać chwasty. a jeśli strona stanowi przedsięwzięcie komercyjne. ponieważ jest ona kluczowa dla wyznaczenia kierunku dalszego rozwoju strony. Przykładowo wybierz datę lub inne ramowe ograniczenie. ale istnieją pewne specyficzne wskazówki. Po przeprowadzeniu przedefiniowania. który dotychczas sugerował surowy profesjonalizm. Możesz nawet chcieć zmienić wygląd strony. aby zastanowić się. Aby podjąć odpowiednie działania. Powiedzenie „Nawet najpiękniejsza róża kiedyś więdnie". co najbardziej interesuje użytkowników. główny współpracownik itd. kiedy należy dokonać przedefiniowana. choć najbardziej męczące. dodając kolejne treści na stronie. aby odwiedzający mogli wstawiać ścieżki w swojej okolicy. należy ocieplić. Być może temat strony. przedefiniowanie oznaczałoby dodanie galerii. Należy zasiewać nowe nasiona. jak lepiej możesz służyć swojej społeczności. aby sprawdzić. Przedefilowanie i dojrzałość Wraz ze wzrostem siły wirtualnej społeczności webmaster powinien zbadać. • Budowanie społeczności w Joomla! 245 docenieni. czym chce zostać w przyszłości. kto odwiedza Twoją stronę. zmienia się później w rutynę i nudę. kiedy masz już stabilną społeczność. które sugerują. należy ocenić poniższe elementy: • Powiązane tematy lub produkty — Czy Twoja strona poświęcona butom do biegania może służyć także jako szczerze źródło informacji na temat fitenssu? Czy może mógłbyś umieszczać ogólne informacje na temat dostatniego stylu życia? Nie zapominaj. którzy wymienialiby się informacjami na temat butów do biegania. a następnie przeanalizuj dokładnie dziennik i inne źródła. dodatkowymi przywilejami na stronie lub specjalnym dopiskiem (takim jak tester strony.). W tym momencie wiesz już. ponieważ nagrodzą Cię. Kierując się przykładem strony o butach do biegania. biorąc pod uwagę łatwość zmiany szablonów. przyszedł czas. że nowe funkcje powinny być dodatkami. Na etapie dojrzewania wirtualna społeczność podejmuje decyzję. Właśnie w fazie dojrzewania wysiłki ogrodnika są najpotrzebniejsze. Przeznacz na analizę wystarczająco dużo czasu. która umożliwiałaby użytkownikom dzielenie się zdjęciami najbardziej malowniczych ścieżek. które odpowiadają zainteresowaniom odwiedzających. co w przypadku Joomla! nie jest wyzwaniem. co na początku było ekscytujące i nowe.

jeśli stanie się zbyt ogólna lub jeśli znikną powody. takich jak forum czy księga gości. Internet jest pełen opuszczonych stron lub „stron widm" zawierających komunikat. kiedy zostanie on opublikowany (a także datę. Profesjonalne tworzenie stron WN 1W może łatwo ulec samozniszczeniu. Jeśli na stronie jest informacja. Dla każdego artykułu możesz określić datę. organizując konferencję. to czy strona nie zyska na usunięciu tej reklamy? Jeśli mała reklama powoduje duże przychody. aby nie podważać swojej wiarygodności. Na każdej witrynie dostępna jest tylko ograniczona ilość miejsca na reklamy. Dla wirtualnych społeczności jest ona krytyczna. staje się miejscem. że uaktualnienia na stronie będą pojawiać się nieregularnie. gdzie odwiedzający komunikują się i łączą z innymi. nie obiecuj żadnych terminów. Joomla! zawiera fantastyczną funkcję. co przyniesie korzyść członkom danej grupy (np. Jeśli nie jesteś pewien. kiedy jego publikacja powinna zostać zakończona). które przyciągnęły do niej ludzi. którzy nie odróżniają półmaratonu od maratonu. że nie chce już z niej korzystać.246 Joomla!. czy użytkownicy byliby zainteresowani takim programem. to nowe artykuły muszą być dodawane co wtorek. że strona zostanie uaktualniona w przyszłym tygodniu — z datą sugerującą. a wiele stron przytłacza odwiedzających reklamami. może warto przenieść j ą w bardziej widoczne miejsce. Brak dostępu do strony spowoduje frustrację użytkowników. co będzie miało pozytywny wpływ na całą społeczność (np. zbieranie funduszy na szybszy serwer). Oceń reklamy pojawiające się na stronie pod kątem atrakcyjności i generowanych zysków. Jeśli witryna spełnia swój cel. Jeśli istnieje ryzyko. • Specjalne działania i oferty grupowe — Każda współpracująca grupa ludzi dysponuje sporą siłą. która pomaga zapobiegać niedotrzymywaniu terminów: datę rozpoczęcia publikacji. np. Prawie tak ważne. możesz określić. wielu użytkowników może stwierdzić. programy partnerskie lub odnośniki do produktów sprzedawanych przez internet. zakup dużej ilości jakiegoś produktu). że nowe artykuły pojawiają się w każdy wtorek. Dzięki komponentowi Banner zarządzanie kampanią reklamową nie jest wyzwaniem. Jeśli banner prowadzi do spowolnienia ładowania strony i praktycznie nie przekłada się na zysk. akcję zbierania datków. bannery. • Znaczenie stabilności i regularności W przypadku każdej tradycyjnej strony WWW ważna jest stabilność. np. ułatw sobie życie . czy dotrzymasz term inów. które bardziej odpowiadałyby celom Twojej strony. Powinieneś myśleć w kategoriach zarówno tego. Ukierunkowana reklama— Większość stron zawiera jakiś typ reklam. Korzystając z rozszerzeń Joomla!. jest dotrzymywanie obiecanych terminów. że stają się one nieatrakcyjne i zaczynają odstraszać użytkowników. jej przekroczenie sprawia. Udana strona skierowana do ludzi profesjonalnie uprawiających jogging nie jest miejscem dla początkujących. że wiadomość opublikowano kilka lat temu. jak utrzymywanie użytkowników szczęśliwymi. Taką siłę można wykorzystać na wiele sposób. jak i tego. zakupów zbiorowych ze zniżkami lub uruchamiając kampanię pisania listów popierających regionalnego polityka. Oprócz oceniania obecnych partnerów mądre byłoby także rozejrzenie się w poszukiwaniu nowych dostawców i nowych możliwości. Jeśli dostęp do strony jest często zakłócany. którzy mogą poczuć się odcięci od innych.

tym większa szansa na to. laczego warto stworzyć wirtualną społeczność Biorąc pod uwagę wszystkie trudności związane z prowadzeniem wirtualnej społeczności (głównie w zakresie poświęcanego czasu i pracy). które są bezpośrednio związane z tematyką witryny. jeśli chodzi o sprzedaż produktu lub usługi. będzie to oznaczało. Tak nie jest. ale także zabezpieczysz się na wypadek nagłych sytuacji. wirtualne społeczności mają funkcję natychmiastowego komunikatu zwrotnego od użytkowników zainteresowanych daną częścią strony. Twoja społeczności nie musi jednak sięgać gwiazd. aby zdobyć sukces. Im większa jest Twoja wiedza na temat przyszłych wyzwań przez podjęciem próby stworzenia wirtualnej społeczności.com lub YouTttbe. dosłownie. gdzie dane na temat aktywności odwiedzających można czerpać wyłącznie z dzienników. miliony odwiedzających. członkowie wirtualnych społeczności spędzają na stronach wiele godzin. Działania takie mogą wzmocnić wizerunek strony jako witryny bezpośrednio związanej z danym obszarem zainteresowań. Długie wizyty na stronie — W przeciwieństwie do charakteru „krótkich przystanków". podczas gdy nieudana społeczność internetowa będzie przypominać „miasto duchów" odwiedzane przez niewielu turystów. • Budowanie społeczności w Joomla! 247 i dodaj kilka artykułów. które zawiera. Jest to okazja do zdobycia lojalności użytkowników i jednocześnie lepszego dopasowania reklam. jakie wyzwania napotkasz. • • • . Ma to szczególne znaczenie. W handlu istnieje stara zasada — klient musi napotkać produkt siedem razy. Możesz wstawić wszystkie przygotowane artykuły za jednym zamachem. aby go kupić. nie próbuję zniechęcić Cię do budowania wirtualnych społeczności. jeśli zdecydujesz się na zrealizowanie takiego przedsięwzięcia. sensowność przedsięwzięcia może się wydawać wątpliwa. aby nie wpływały negatywnie na odbiór strony. staram się tylko uświadomić Ci. Prawdopodobieństwo fiaska przy źle przeprowadzonym budowaniu wirtualnej społeczności jest dużo większe niż przy implementacji kiepskiej strony WWW. że będziesz gotów zmierzyć się z trudnościami i pokonasz je. zanim ogłosisz. Po przekroczeniu pewnego punktu zaobserwujesz wzrost wykładniczy. że w przyszłości wirtualna społeczność będzie się rozrastać. Odwiedzający stronę WWW nadal będą na nią wchodzić w poszukiwaniu informacji. ale także i zalety — ich lista jest znacząca: • Stworzenie rosnącej grupy odbiorców — Wszystko wskazuje na to.Rozdział 10. Nie tylko będziesz do przodu (zapobiegając w ten sposób przekroczeniom terminów). Bezpośrednifeedback— W przeciwieństwie do tradycyjnej strony WWW. dodających nowe treści. a ich datę publikacji ustawić w przyszłości.com. Budowanie społeczności ma pewne wady. istnieje wiele okazji. Możliwości marketingu grupowego — Ponieważ użytkownicy samodzielnie nakreślą swoje zainteresowania przez treści. Długie wizyty na stronie sprzyjają zapoznawaniu się z promowanymi produktami. które dodają na stronie. że strona zawiera funkcje takie jak newsłetter czy regularnie uaktualniany dział. zanim zapozna się z nim na tyle. typowego dla większości wizyt na stronach WWW. Jeśli społeczność osiągnie pęd przypominający MySpace. żeby oferty dobrać dokładnie do nich.

dlatego nie boj się dodawania nowych funkcji. czatu. systemy wiki.248 Joomla!. Powyższe technologie można łączyć i mieszać. możesz ponownie wprowadzić ją na etapie przedefimowama. Rozszerzenia szczególnie obciążające bazę danych (np. Na moim serwerze testowym nic . czego szukają. dlatego zamieszczane informacje stanowią kopalnię wiedzy na dany temat. sondy. sonda. aby dać odwiedzającym to. kalendarza wydarzeń i systemów wiki. które umożliwiają dynamiczną komunikację użytkowników na stronie. ponieważ jest spoiwem w obszarze administracji i wspólnej bazy użytkowników. aby dostosować konfigurację serwera baz danych w celu uzyskania najwyższej wydajności. Większość społeczności łączy ludzi o podobnych zainteresowaniach i ułatwia im wymianę informacji. forum) należy dokładnie monitorować. Pożytek społeczny — Niezależnie od elementu spajającego społeczność — jest ona w znaczącej części „dobra". Profesjonalne tworzenie stron WN 1W • Skupienie na określonych treściach — Większość wirtualnych społeczności dysponuje specjalistycznymi informacjami na wysokim poziomie. kalendarz wydarzeń. strona szybko upadnie. Prawdę mówiąc dostępna jest ogromna liczba różnych rozszerzeń Joomla!. Joomla' to doskonała podstawa dla tych funkcji. np. komentarzy sieci społecznych. Jeśli webmaster przestanie dodawać atrakcyjne informacje. Tworzący ją ludzie są często profesjonalistami (lub pretendują do tego miana). Wirtualna społeczność zawsze będzie znajdować się w fazie „prace w trakcie". • • Technologie wirtualnych społeczności Strona społecznościowa nie działa w oparciu o pojedynczą technologię. forum. a ludzie przestaną ją odwiedzać.: • • • • • • • • księga gości. sieci społeczne. aby uzyskać możliwie najlepszy efekt. nawet jeśli zostaną pozostawione same sobie. forum. która wydawała Ci się mało popularna. Lojalność odwiedzających — Tradycyjna strona WWW ma słabą siłę przyciągania. Wirtualne społeczności funkcjonują przez długi czas. komentarze. które mógłbyś później usunąć. czat. Kolejne podrozdziały zawierają opis jednego lub więcej rozszerzeń dla każdej funkcji charakterystycznej dla witryny społecznościowej: księgi gości. ponieważ są nieużywane Jeśli wystarczająca liczba użytkowników będzie zgłaszać pretensje z powodu wyłączenia funkcji.

pochylanie itd.). możliwe jest także powiadamianie administratora o próbie wysłania wiadomości zawierającej zabronione słowa. prosty k o m p o n e n t księgi gości.i Księga Gości Jan Kowalski 30 listopad 2 0 23m i 08 Muszę zaglądać tułaj częściej © Jan Kowalski »listopad 2003 23. które rozszerzenie wizualnie lepiej pasuje do reszty strony. Vpis w aplikacji 7. aby po dodaniu wiadomości został w y s ł a n y list z żądaniem potwierdzenia pod p o d a n y m adresem e . (Samodzielnie utworzyłeś m a ł ą aplikację o b s ł u g u j ą c ą księgę gości w rozdziale 6. Koszt czasu i energii niezbędny do implementacji księgi gości jest niewielki. Twój wybór będzie prawdopodobnie zależeć głównie od tego. Dwa najpopularniejsze rozszerzenia księgi gości dla Joomla! to Easybook i Jambook.48 1 1 • Exteił$ions 1 • Coirteni Lłtyoirts 1 • Example Pages | Ta księga jest jeszcze lepsza od poprzedniej! 1 2 Entries in guestbook Easybook zawiera obsługę z n a c z n i k ó w B B C o d e . Dodawanie wpisów można ograniczyć. lumer ICQ. Easybook można również tak skonfigurować.m a i l o w y m . 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 . oba rozszerzenia o f e r u j ą podobną funkcjonalność. e-mail. w przypadku braku potwierdzenia wiadomość zostanie zignorowana. jak i implementacja księgi gości jest całkiem prosta. • Budowanie społeczności w Joomla! 249 stwierdzono konfliktów między rozszerzeniami. Dlatego księga 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 społecznościowej. Dlatego możesz dowolnie mieszać i d o p a s o w y w a ć przedstawione aplikacje. tzn. Ponieważ zarówno idea.). które u m o ż l i w i a j ą f o r m a t o w a n i e tekstu (pogrubianie. 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 wysyłanego pod adresem e-mailowym oraz filtr słów. Easybook pozwala na wysyłanie e-maili z podziękowaniem do u ż y t k o w n i k ó w dodających wpisy. v zależności id decyzji administratora Moja Księga Gości • • • • • • • • • Heine Joomki! uveiview Joomla' License Moie . lub udostępnić a n o n i m o w e wpisy. .1 Easybook to doskonały. Umożliwia ona odwiedzającym umieszczanie komentarzy i komplementów odnośnie do treści na stronie. W zależności od ustawień w e wpisach m o g ą się pojawiać także emotikony i inne obrazki.asybook może awierać kilka np. Listę zabronionych słów można zdefiniować w interfejsie administratora. imię nazwisko Mającego) ub całkiem sporo iól (np. asybook Pokazany na rysunku 10.1. pozwalając na to w y łącznie zarejestrowanym u ż y t k o w n i k o m . sięga gości Księga gości to jedna z najstarszych form komunikacji na stronach internetowych. i taki też jest j e j efekt w p o b u d z a n i u społeczności.iboiił Joomla* FAO The News Web Links News Feetls fyloj.Rozdział 10. instalacja jednego nie kolidowała z innymi. ysunek 10. adres trony WWW).

u s u w a n e lub w s t r z y m y w a n e . tłum. greckim. k o m e n t o w a n e . numer I C Q itd. następnie zmień nazwę z easybook. np. musisz skorzystać z angielskiego deskryptora X M L i stworzyć archiwum komponentu na nowo.mail to the user. aby z m i e n i ć go na angielski.2 — p r z y p . xmlen zmień na easybook. M o ż e s z zainstalować rozszerzenie Easybook. a easybook. 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 ) " . angielski. Send -Thank You.250 Joomla!. W nowszej wersji poprawiono tę niedogodność — przvp.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 .xml.<br />Bitte versuchen Sie es spoter wieder. hiszpańskim. Opcja powiadamiania administratorów powoduje wysyłanie wiadomości informujących o n o w y c h w p i s a c h . francuskim.).2. n o r w e s k i m i duńskim 1 . pobierając z poniższej strony archiwum ZIP: http://joomlacode. Notify webmaster w h e n n e w entries are post« Email address to send notifications to.xmlde. p u b l i k o w a n e . Te informacje odnoszą się wyłącznie do komponentu Easybook dla Joomla! w wersji 1. a także d a j ą kompletną kontrolę nad tym. które m o g ą b y ć z m i e n i a n e . Interfejs administratora Easybook zawiera bogate opcje kontroli wyświetlania i zapobiegania spamowi Backend Frontend ecurity ® Fielete i Tools Switch the guestbook frontend offline. klikając odnośniki w otrzymanej w i a d o m o ś c i . usei Ö Nie ® Tak 0 Nie O Tak webmaster^domain © Nie O Tak Auto-publish n e w guestbook entries. Aby to zrobić. węgierski. chińskim uproszczonym. a w s z y s t k i e te o p c j e m o ż n a u r u c h o m i ć .0.2). 1 W najnowszej wersji rozszerzenia jest to tylko sześć języków (niemiecki. wypakuj wszystkie pliki z archiwum. . Istnieje także f u n k c j a importu a r c h i w u m księgi gości utworzonej za p o m o c ą komponentu AkoBook. Dostępny jest także w wielu językach. rosyjskim. adres strony W W W . Profesjonalne tworzenie stron WN 1W Bogate opcje konfiguracyjne w interfejsie administratora pozwalają wstawiać dodatkowe pola do formularza (np. Auto-publish entlies: Notify webmaster : Webmastei s email: Thank you. W internecie można znaleźć polskie tłumaczenie Easybook 1.xml na easybook. D o m y ś l n i e k o m p o n e n t wyświetlany jest w j ę z y k u n i e m i e c k i m . tłum. które z dodatkowych informacji będą wyświetlane na liście wpisów (zobacz rysunek 10. niderlandzkim. Komponent Easybook jest kompatybilny z komponentem łączącym Joomla! z Simple Machines F o r u m ( S M F . niemieckim. Rysunek 10. hiszpański. holenderski i rosyjski). Teraz utwórz archiwum zawierające wszystkie pliki komponentu 2 . włoskim. aby z d o b y ć więcej informacji na temat tego rozszerzenia). Message presented to the frontend users if gi Guestbook offline: Offline message: Nie O Tak Das Gostebuch befindet sich im Wartungsmodus.

imbook Jambook (zobacz rysunek 10. którego instalacja i konfiguracja nie nastręczają trudności.ć overview i i i . i edyne magane pola Name i E-mail Moja Księga Gości . Rozszerzenie Jambook umożliwia t a k ą kontrolę dzięki zastosowaniu systemu szablonów. Na rysunku w i d a ć także.Worst rating) public Jan Kowalski kowal@o2.Sign guestbook Home Joi>inl.Rozdział 10.4) należy do najpopularniejszych k o m p o n e n t ó w dodających f u n k c j ę księgi gości ze względu na nacisk na ochronę przed s p a m e m . niektóre strony w y m a g a j ą większej kontroli wyglądu księgi gości. zostanie wyświetlony formularz dodawania wpisu (zobacz rysunek 10. 1 . 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 . co umożliwia d o p a s o w a n i e w y g l ą d u komponentu do szablonu strony.3). N o w e wpisy można dodawać za pośrednictwem części f r o n t o w e j lub administracyjnej. z którego dodawany jest wpis. rmularz ^dawania <wego wpisu istępy jest równo w części ntowej. Jeśli klikniesz odpowiedni odnośnik. że n o t o w a n y jest adres 1P k o m p u t e r a . Szablony m o ż n a edytować z poziomu interfejsu administratora. Poniżej wymieniono niektóre zabezpieczenia z ich długiej listy: • • • generowanie obrazków C A P T C H A .Best rating.3. a także zaawansowany interfejs administratora. możliwość importu wpisów AkoBook. Potężny system szablonów pozwala wpływać na każdy aspekt warstwy prezentacji części f r o n t o w e j . i! L i c e n s e M o i e atłoirt J o o m l a ! FAO The N e w s Wtłti Links N e w s Feeds M o j .m a i l o w y ) . . jak \dministracyjnej. sunek 10. integracja z systemem logowania Joomla!. 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 (Twój adres e . blokowanie adresów IP — ma zapobiec nadużyciom księgi gości. m i l . • Budowanie społeczności w Joomla! 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 księgi gości.pl U Si ©@@@ ©© Submit entty Chociaż Easybook jest bardzo popularnym rozszerzeniem.

Ma także funkcję wyszukiwania w p i s ó w pod kątem w p r o w a d z o n e g o tekstu. serbskim (łaciński zestaw znaków). ustalony przez administratora. K o m p o n e n t zawiera także f u n k c j ę chroniącą 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 częsty p r o b l e m e m w przypadku niewprawionych użytkowników księgi gości. ukrywanie adresów e . portugalskim. które można wykorzystać w e wpisach. Część frontowa komponentu Jambook umożliwia wyświetlanie i wyszukiwanie wpisów DODAJ WPIS Ogółem w p i s ó w w księdze I • • • • • p o w i a d a m i a n i e administratora e-mailem o nowych wpisach. niemieckim. Nowe wiadomości m o g ą być wprowadzane za pomocą aktualnie ustawionego edytora W Y S I W Y G lub w formie zwykłego tekstu.in.com/jambook Jak pokazano na rysunku 10. Edit item — W y g l ą d formularza edycji wpisu. Przycisk Podgląd umożliwia sprawdzenie. ale także m o d y f i k a c j a szablonów H T M L .252 Joomla!.4. norweskim i polskim. Profesjonalne tworzenie stron WN 1W Księga Gość Lista wpisów SZU kAJ WPISU Rysunek 10. ale formatowanie tekstu nie jest wtedy dostępne.m a i l o w y c h . j a k na tak prostą aplikację. . zmieniać treść swoich wypowiedzi. część administracyjna rozszerzenia Jambook jest zaskakująco rozbudowana.5. których zmiana w p ł y w a na wygląd komponentu: • • • • • Show — Wyświetla pojedynczy wpis Jambook. ochrona przed m a s o w y m d o d a w a n i e m wiadomości. List — Określa sposób wyświetlania listy wpisów. Zarejestrowani użytk 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. Możliwa jest nie tylko edycja i usuwanie wpisów. m o d y f i k o w a l n a lista znaczników H T M L . angielskim. Jambook dostępny jest w wielu językach. Jeśli korzystałeś wcześniej z rozszerzenia Easybook. jak wiadomość będzie się prezentować na stronie. przed ostatecznym dodaniem j e j do bazy. francuskim.jxdevelopment. List item — Logika odpowiedzialna za generowanie wydruku poszczególnych wpisów. J a m b o o k m o ż e zaimportować wpisy utworzone w tamtej aplikacji. Rozszerzenie Jambook można pobrać na stronie: www. D o m y ś l n a instalacja zawiera poniższe szablony. m. List empty — W y g l ą d listy wpisów. konfiguracja usuwania znaczników H T M L z wiadomości. w przypadku gdy żadne nie zostały dodane.

B e z p o ś r e d n i a komunikacja. Konfiguracja Jambook ZmieVj0144 opcje dla: przegl\u0105dania właściwości. stwarza większe p r a w d o p o d o b i e ń s t w o nadużycia niż inne technologie.5. Dokumentacja komponentu (wraz ze wskazówkami dotyczącymi edycji szablonów) dostępna jest z poziomu interfejsu administratora. przez nowoczesne implementacje Shoutbox. a wiadomości są widoczne dla całego świata. który wykorzystywał p o k o j e czatowe do złych celów. Jambook wykorzystuje do generowania obrazków CAPTCHA funkcje TrueType biblioteki GD2. U • • Thankyou — Ekran wyświetlany p o u d a n y m dodaniu wpisu. wysyłania wiadomości. gdzie komunikacja nie jest ciągła. edycji oraz dodawania nowych pozycji. Kliknięcie na lo<jo komponentu powiać. w y k o r z y s t u j ą c T w o j ą stronę. p o f u n k c j e związane z k o m u n i k a torami internetowymi. ustawienia e-mail. dopuści się przestępstwa. Dokładniejsze informacje na temat tego zagadnienia znajdziesz w podrozdziale „Odpowiedzialność prawna". . • Budowanie społeczności w Joomla! ¡unek 10. o «i u ' Przeczytaj dokumentację. Informacje o Jambook S . w PHP4 trzeba zainstalować dodatkowy moduł. Preview — Podgląd n o w e g o wpisu. listę rzeczy do zrobienia. typowa dla czatów. Dlatego obsługa TrueType musi być dostępna w systemie PHP. 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 . Nie ma tygodnia bez wiadomości o przestępcy. Chociaż większość czatów nie jest siedliskiem zła. problem jest na tyle znaczący. począwszy od p o k o j ó w czatowych. :at Pojęcie czatu internetowego obejmuje wszystkie formy komunikacji. ż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. aby umożliwić dodawanie wiadomości. listę zmian oraz licencję.) do Panelu Konti olnego. Mak® A Dijmtian ^ śpi Importuj wpisy • B P Importuj wpisy księgi z zewnętrznego źródła. Menedżer szablonów Edytuj szablony dla wszystkich stron i e-maili. Wspieraj Jambook Aby umożliwić dalszy rozwój komponentu. Search — Określa sposób wyświetlania strony wyszukiwania.Rozdział 10. spamu. nel kontrolny vbook posiada •budowane cje ministracyjne 253 JX< fSi8P$ W J a m b o o k Conti ol P a n e l Wpisy Wyświetl wszystkie wpisy z opcjami publikacji. W ostatnich latach czaty dorobiły się wątpliwej reputacji z p o w o d u częstych nadużyć związanych z wykorzystaniem nieletnich. W przeciwieństwie do PHP5 zawiera wbudowaną obsługę TrueType. jeśli j a k a ś „ z ł a " osoba. pros wspierać autora dobrowolnymi datkami finansowymi klikają w poniższy guzik.

musisz najpierw utworzyć konto na serwerze.. Ponieważ Twój serwer wykorzystywany jest wyłącznie do zainicjowania połączenia.V I I • Y o i i i Details • Liojoilt I i. Po zainstalowaniu k o m p o n e n t u BlastChat możesz z poziomu interfejsu administratora dodać konto usługi BlastChat. wybierając opcję Komponenty/BlastChat.7. com 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 .6) to k o m p o n e n t oparty na technologii Ajax." ~ OT "ł Dźwięk n Wszyscy P o w e r e d by BlastC hat Pakiet BlastChat m o ż e s z pobrać z poniższej strony: www. uaktualnia listę wpisów na czacie bez przeładowywania całej strony ÖO Home Joomla! wervtey* Joomla! License Moie about J o ¡oni. Ekran konfiguracji komponentu umożliwia przeprowadzanie d a r m o w e j rejestracji. dzięki technologii Ajax. BlastChat.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! localhost/bombla [Chatters] Odśwież adasmiauczynskfOOrn] Gości Mój Blast ii. komponent nie obciąża zasobów i łącza. który odpowiada za działanie czatu.6. A b y uruchomić czat na stronie. który za pośrednictwem zdalnego serwera (serwera BlueChat) udostępnia opcję czatu. N a stronie BlastChatu z n a j d u j e się informacja.. że j u ż ponad 14 tysięcy stron wykorzystuje tę technologię. Procedura rejestracji nowej strony umożliwia dodanie j e j do centralnego katalogu BlastChata.it Odśwież i: i priv: Wiadomość: • i Wyślij .• <5 - " CO S i. Rysunek 10.254 Joomla!. o d b y w a się za p o m o c ą opcji Rozszerzenia/Instalator. Po zarejestrowaniu się na serwerze BlastChata musisz się zalogować i ustawić serwer pod k ą t e m obsługi T w o j e j strony. Profesjonalne tworzenie stron WN 1W BlastChat R o z s z e r z e n i e BlastChat ( z o b a c z rysunek 10. z którego korzysta rozszerzenie BlastChat.ii • • ¡i fti JS> U » S /. . jak pokazano to na rysunku 10. Oprócz komponentu. Otwórz ekran konfiguracji rozszerzenia w interfejsie administratora Joomla!. blastchat. co m o ż e się przełożyć na wzrost popularności.i! FAO The News Welt Links News Feeds Mojo Ki. który wyświetla listę dostępnych użytkowników z odnośnikami do ich profili. do pakietu dołączony jest moduł.

W rezultacie wyświetla zmieniony tekst w oknie czatu bez uaktualniania całej strony. Komponent BlastChat jest kompatybilny z JoomFish.8. dlatego obsługuje wszystkie języki wspierane przez to rozszerzenie. może: • • • • • • wysyłać wiadomości publiczne (do poszczególnych użytkowników i pokoi). T e c h n o l o g i a Ajax wykorzystywania jest do odświeżania okna czatu bez konieczności przeładowania całej strony. Opera (wersje 8 i 9). ifiguracja wera stChat wpływa wygląd czatu 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) Hój pierwszy czat Intranet serverAvebsite: Q tlilú [. a także Netscape (8. dlatego wygląd czatu powinien dobrze pasować do reszty strony. a także 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). jest rozszerzeniem zbudowanym w oparciu o skrypt PhpFreeChat. ¡hat Komponent utChat. przedstawiony na rysunku 10. szerokość i wysokość marginesów (Margin Width i Margin Height).7.j y e s BlastChat korzysta z Ajaksa do pobierania w i a d o m o ś c i na czacie.joomlapl. a na dodatek nie zużywa wiele z zasobów serwera. usuwać użytkowników z danego pokoju. Możesz pobrać rozszerzenie utChat z poniższej strony: http://video. o b r a m o w a n i e (Frame Border).1).Rozdział 10. Administrator czatu ma nad nim k o m p l e t n ą kontrolę. utChat jest prostą i m p l e m e n t a c j ą czatu. ustawić długość bana. blokować dostęp użytkownikom do j e d n e g o pokoju lub kilku. Internet Explorer (wersje 6 i 7). • Budowanie społeczności w Joomla! unek 10. Warstwa prezentacji opiera się na stylach zdefiniowanych w Joomla!. 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 . dostępną w wielu j ę z y k a c h . Ekran konfiguracji rozszerzania pozwala określić rozmiary okna czatu (Width — szerokość. a j e g o d z i a ł a n i e s p r a w d z o n o w przeglądarce Mozilla Firefox (wersje 1 i 2). 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 ! .com/tag/utchal/ . nadawać innym użytkownikom uprawnienia moderatora. Height — w y s o k o ś ć ) . włączając w to tekst pisany od prawej do lewej strony. zablokować dostęp z danego adresu 1P.

9. tylko przechowuje wszystkie wiadomości w postaci prostego archiwum. Prywatne wiadomości między uczestnikami. Ustawienia zapisywane są w postaci kodu PHP. Komponent utChat nie korzysta z bazy danych Joomla! do zapisywania wiadomości i nicków. M o d y f i k a c j e za p o m o c ą arkuszy stylów (CSS). który jest bezpośrednio uruchamiany przez rozszerzenie. • • Domyślna konfiguracja nie określa domyślnie wykorzystywanego języka.:-: 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 łączącą z częścią frontową rozszerzenia. Obsługa d o w o l n e g o języka. W ł a s n y system wtyczek.256 Joomla!.' zr. Komponent utChat wykorzystuje skrypt PhpFreeChat. 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. PhpFreeChat (a także. t"! .jma*-! n^s. w konsekwencji. Zostanie wyświetlony edytor. .8. który pozwala na zmianę miejsca przechowywania danych (przykładowo można dodać zapisywanie wiadomości w bazie danych). możliwość usuwania i blokowania użytkowników).in. utChat) zawiera następujące f u n k c j e : • • • • • Możliwość p r o w a d z e n i a kilku pokoi. który umożliwia m o d y f i k a c j ę parametrów. Funkcje dla moderatorów (m. aby dodać do Joomla! obsługę czatów utChat Joomla! o n o adasmiauczynski o e ii e o « » O * 6 > t & © Q & © |j # ffi^l 7 </ 5 ? t"'". jak przedstawiono to na rysunku 10. Po zainstalowaniu komponentu wybierz w interfejsie administratora opcję utChat z menu Komponenty. który można zapisywać i wyświetlać w postaci kodowania UTF-8. Profesjonalne tworzenie stron WN 1W Rysunek 10.

• Budowanie społeczności w Joomla! sunek 10. niemieckim. wykorzystywana na wielu witrynach. arabskim.org. katalońskim. r r 2'J. Program dostępny jest w ponad 20 językach: angielskim. j a k i open source.phpFreeChat. Źródeł forów dyskusyjnych należy upatrywać w poprzedzających strony W W W systemach BBS.admin.joomla. '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 .org) do prowadzenia forum. chińskim. mple Machines Forum (SMF) Simple Machines F o r u m jest aplikacją (zobacz rysunek 10. i nfigu racja zszerzenia 3hat zapisywana . szwedzkim. portugalskim.9.tAdocs joomla administiatoi components com_utchat.org).php 257 ck S u t p a r a m s [ 1 f r o z e n n i. Wraz z rozrostem internetu dyskusje zostały przeniesione na grupy dyskusyjne. Ponieważ . albańskim. hiszpańskim. rosyjskim. tajskim. aby ustawić język na a m e r y k a ń s k ą o d m i a n ę angielskiego: $urparams['language'1 = 'en_US': K o m p l e t n ą dokumentację rozszerzania utChat (a raczej skryptu phpFreeChat) znajdziesz na stronie: www. perskim. Społeczność Joomla! rozwija się właśnie dzięki forum (forum.TRUE.c k ' ]] . S M F nie jest rozszerzeniem Joomla!. '( $utparams [ 1 admins 1 ] = aa rr a . Jutparams('channeirs'] = i : r a y ( ' P o k o j l ' . francuskim.utchat.10) w y k o r z y s t y w a n ą na g ł ó w n e j stronie Joomla! (www. Fakt ten świadczy o j e j w y d a j n y m działaniu pod dużym obciążeniem. Obecnie forum w postaci strony internetowej można łatwo dodać d o istniejącej witryny lub systemu Joomla!.• ' ) .joomla.confadv.joomla. greckim. tureckim. japońskim. hebrajskim. Forum Joomla! wykorzystuje do działania aplikację Simple Machines Forum (SMF). fińskim. węgierskim. to oddzielna aplikacja spełniająca założenia f o r u m .Rozdział 10. polskim. włoskim. niderlandzkim.t w postaci du PHP 'jchamianego zez system l\Ith: C: xampp. Istnieje jednak możliwość połączenia programu SMF z systemem Joomla! za pomocą specjalnego komponentu. net irum dyskusyjne Forum to ogromnie popularna metoda świadczenia p o m o c y technicznej z a r ó w n o dla produktów komercyjnych. w tym na forum. norweskim i mmuńskim.y ( ' admin 1 =>. Dodaj poniższą linię. które zrzesza programistów i webmasterów Joomla!. bułgarskim.

dostępnych jest wiele rozszerzeń. Po zainstalowaniu S M F należy dodać komponent łączący. Fireboard (połączony 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 uzupełnienie systemu Joomla!. pakiet można pobrać na poniższej stronie: www. Profesjonalne tworzenie stron WN 1W Rysunek 10.12 zostało napisane z m y ś l ą o wykorzystaniu w systemie Joomla!. 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 ! .258 Joomla!.11.to * . zarządzanie reklamami i wiele innych. np. Wybierz odpowiednią opcję z menu komponenty. Powodem przerwania prac była niekompatybilność licencji. które określają jej wygląd General Discussion Feel free to talk a b o u t a n y t h i n g a n d e v e r y t h i n g in this b o a r d . Chociaż część frontowa SMF uruchamiana jest w ramach interfejsu Joomla!. stworzone przez programistów S M F — co zapewnia tym s a m y m n a j l e p s z ą kompatybilność. że istnieje sporo innych rozszerzeń. S M F należy zainstalować oddzielnie od Joomla!. aby w s k a z y w a ł miejsce instalacji SMF. które p o z w a l a j ą połączyć S M F i Joomla!. 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 przeglądarce o d p o w i e d n i e g o adresu. następnie kreator przeprowadzi Cię przez proces instalacji. Każde z nich m a swoje w a d y i zalety. aby umożliwić uruchamianie forum w r a m a c h interfejsu witryny Joomla!. Z w r ó ć uwagę.simplemachines. to zawiera własny zestaw tematów. K o m p o n e n t łączący ( S M F Bridge) możesz pobrać ze strony: www. Powinieneś j e d n a k korzystać z komponentu SMF Bridge. M n " ( Today at 1 2 : 1 7 : 0 5 PM ) View the most recent posts o i the forum. 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.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 ! . żeby wyświetlić ekran konfiguracji zilustrowany na rysunku 10. Więcej infonnacji na http://www.org/download/? brie/ges3. p o n i e w a ż jest to oficjalne rozszerzenie.org/ community/index. tłum. Największe z n a c z e n i e ma parametr Palh to SMF (ścieżka dostępu do S M F ) . . Instalacja SMF p r z y p o m i n a w instalację J o o m l a ! .simplemachines. funkcje ułatwiające pozycjonowanie (SEO). W pole należy w p r o w a d z i ć odpowiednią ścieżkę absolutną. Shoutbox. Rozszerzenie przedstawione na rysunku 10. galerie. Fireboard W przeciwieństwie do SMF. : [More Stats] S M F z a w i e r a w ł a s n y s y s t e m wtyczek. L a t e s t Member: t e s t L a t e s t Post: " W e l l unit. filtry antyspamowe.10. 3 Oficjalne rozszerzenie SMF Joomla Bridge nie jest już rozwijane ani dostępne na stronie SMF. która jest odrębną aplikacją. 1 Posts 1 Topics Last post by Simple Machines in W«lcom« to SMF! on Today at 12:17:05 PM Forum Stats A 1 Posts in 1 Topics by 1 Members.simplemachines. Po zainstalowaniu k o m p o n e n t u łączącego 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.php?topic=184557 — przyp. p o n i e w a ż j e g o poprawne ustawienie jest w a r u n k i e m działania połączenia.

własna architektura wtyczek. obsługę Joom!Fish.11. • • • • • • Możesz pobrać komponent Fireboard i p o w i ą z a n e moduły z poniższej strony: www. •ęść frontowa omlaboard 'korzystuje :tuainy ablon strony ) stworzenia idobnej ezentacji -Joomlaboard-Forum :atriie posty . • Budowanie społeczności w Joomla! sunek 10. ) ekranie nfigu racji części 1ministracyjnej AF Bridge ajduje się opcja 'ath to SMF" Configuration Path to SMF (absolut): SMF Forum intergration: Use SMF CSS in other pages?: Synchronize Language from Mambo/Joomla to SMF?: i Synch Upgrade C :V:amppV-itdo sljoomlaVorum Wrapped V Yes V No v 259 Create path automatically & dlatego nie w y m a g a żadnych łączników. bestofjoomla. Fireboard posiada następujące f u n k c j e f o r u m dyskusyjnego: • • • • nieograniczona możliwość definiowania kategorii i podkategorii. najnowsze wątki. Integracja z systemem jest znacząca — zwłaszcza w zakresie wyglądu i uprawnień użytkowników. umieszczanie d o d a t k o w y c h funkcji w panelach: n a j n o w s z e wiadomości.«otispam integration b y JoorniaPi. import danych Joomlaboard. systemów komentarzy i innych.12.Rozdział 10. J o o m l a ! jest w o l n y m o p r o g r a m o w a n i e m d o s t ę p n y m na licencji G N U G P L . obsługa wielu j ę z y k ó w . C o p y r i g h t © 2008 O p e n Source Matters. która pozwala na integrację z Joomap.i go ty Fol tlili Forum 1 Sample Forum 1 Pobierz nagłówki ostatnich p o s t ó w Joomlaboard Forum Component i i i Stable T'JJO Shoes M . . org . przyklejone tematy i inne. obsługa systemów prywatnych wiadomości. tworzenie map stron Google. integracja z systemem profili u ż y t k o w n i k ó w C o m m u n i t y Buildera. generowanie kanałów R S S i d o k u m e n t ó w w formacie P D F . sunek 10.oom T e a m Tenuity 1 Odpowiedzi Ost. W s z e l k i e prawa zastrzeżone. takich jak ClexusPM i Uddeim.F a o t o r y Wersja PL Zwiastun . opcja wybierania własnych ulubionych w ą t k ó w przez u ż y t k o w n i k ó w . system szablonów p o r ó w n y w a l n y z S M F . ! R e g u l a m i n i i Pomoc szukaj w forum Forum '' .Ttłli |)OST Pobieiz n a g l o w n ostatnich postów. Fireboard bezpośrednio wykorzystuje listwy kontroli dostępu ( A C L ) Joomla! do zarządzania uprawnieniami u ż y t k o w n i k ó w .

wyświetlanie najlepszego i ostatnio zarejestrowanego użytkownika. ifiguracja _ M 1 <% ipJL 3 Użytkownicy css 18- / J sśkm Przeglądarka grafik Edytor pliku CSS Kategorie i fora Przeglądarka plik ów . statystyki f o r u m i inne. Jeśli j e d n a k wirtualna s p o ł e c z n o ś ć j e s t j u ż silna. jak wybór t e m a t ó w .260 Joomla!. Sondy Sondy m o g ą być doskonałym dodatkiem. N i każdej stronie zn< jdziesz pomoc kontekstowi objaśniającą. \ .Panel kontrolny W i t a j m i f o r u m Fii e B o a i d Dziękujemy za w/bór FireBoard jako T w ó j 3go Forum. a n a s t ę p n i e w p r o w a d ź nazwę. Panel kontrolny rozszerzenia Fireboard pozwala na dostęp do konfiguracji. Kolejnym krokiem po zainstalowaniu komponentu jest dodanie kategorii i forów. pozwala na dostęp d o wszystkich funkcji rozszerzenia. aby zobaczyć wyniki sondy. 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 ) . przedstawiony na rysunku 10.13. Niektórzy spośród o d w i e d z a j ą c y c h z a g ł o s u j ą tylko p o to. za p o m o c ą opcji Rozszerzenia/Instalator. .13. lak korzystać z dostępnych narzędzi. N a te stronie możesz prz egiądać statystyki forum. ikona szybkiego uruchomienia interfejsu administratora Fireboard. Zapisz kategorię i przejdź do tworzenia kolejnej. s o n d y m o g ą b y ć d o s k o n a ł ą m e t o d ą poznania opinii użytkowników. Panel kontrolny Fireboard. Następnie d o d a j w Menadżerze Menu pozycję łączącą z komponentem Fireboard. gdzie możesz d o d a w a ć n o w e kategorie. które umożliwią u ż y t k o w n i k o m dostęp. Kliknięcie przycisku Forum Administration s p o w o d u j e wyświetlenie ekranu. Użytkownicy będą mogli teraz dodawać wiadomości na utworzonym forum. Rysunek 10. jeśli wirtualna społeczność została uruchomiona. Inwestowanie w nieruchomości. pobieranie i w y ś w i e t l a n i e n a j n o w s z y c h t e m a t ó w za p o m o c ą Ajaksa. k t ó r ą p r z e d c h w i l ą u t w o r z y ł e ś . . np. zarządzania użytkownikami i wystanymi plikami oraz do administracji forum Fireboard . a następnie wprowadź tytuł forum. 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 ę . Profesjonalne tworzenie stron WN 1W Po pobraniu komponentu możesz zainstalować go w tradycyjny sposób. M o ż l i w e jest także dodanie m o d u ł ó w oferujących takie funkcje. ł ą za po lewej stronie umożliwią C i administrację wszystkimi as pektami forum. M o g ą służyć także za źródło informacji i opinii społeczności na różne tematy — także na temat strony.O Blokowanie Forum Łf^yi Synchronizacja użytkowników O Strona domowa Fireboard | Wczytaj przyktedc w e dane W ¥ Usuń przykładowe dane Uśmieszki (**) Przelicz statystyki kategorii Rangi Po kliknięciu przycisku New zostaniesz przeniesiony do ekranu tworzenia kategorii.

Rozdział 10. • Budowanie społeczności w Joomla!
System o b s ł u g i sond j e s t , o c z y w i ś c i e , d o m y ś l n i e d o ł ą c z o n y d o J o o m l a ! . R y s u n e k zawiera fragment strony, na której z n a j d u j e się sonda. ysunek 10.14. Umyślne pytanie ' sondzie ystemu Joomla! otyczy astosowań oomla!
W e l c o m e to the Frontpage Polls

261
0.14

Welcome to Joomla!

&

1

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 paitáis, hloys and eCo applications. Joomla! provides an easy-to-use graphical user interface that verstóíi 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

Możesz skorzystać także z innych rozszerzeń, które m a j ą więcej funkcji i o f e r u j ą w i ę k s z ą elastyczność. Moduł sondy dołączony jest także do pakietu S M F , który miałeś o k a z j ę zainstalować wcześniej. Aby dodać sondę w aplikacji SMF, kliknij przycisk Add Poll z panelu administratora S M F . Zostanie wyświetlony ekran tworzenia sondy (co przedstawiono na rysunku 10.15). M o ż e s z dodać dowolną liczbę odpowiedzi, skonfigurować czas trwania sondy, a także wstawić k o m u nikat opisujący p o w o d y j e j uruchomienia. ysunek 10.15. )odanie sondy ' programie SMF ?st tak proste jak wysłanie nowej wiadomości 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: Góra św. Jerzego O p t i o n 4: O p t i o n 5: j ( Add Option)

„ .. Options:

Po11

. .. 1 Maximum votes per user.
Run the poll for days, (leave blank for no limit) Eli Allow user to change vote, Show the poll's results to anyone.

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 powiązanie z tematem forum dyskusyjnego. Skoro próbujesz zgromadzić na swojej stronie z a a n g a ż o w a n ą społeczność, to czy istnieje lepszy sposób 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 liście tematów (zobacz rysunek 10.16) w dziale, w którym zostały umieszczone. Po kliknięciu odnośnika p r o w a d z ą c e g o d o sondy wyświetlany jest formularz umożliwiający oddanie głosu zamiast wprowadzenia wiadomości. Do p o p r a w n e g o działania sond niezbędne jest włączenie obsługi ciasteczek w przeglądarce, ponieważ moduł sondy wykorzystuje je, aby zapobiec wielokrotnemu głosowaniu przez tego samego użytkownika w j e d n e j sondzie.

262

Joomla!. Profesjonalne tworzenie stron WN 1W

Rysunek 10.16. Sonda wyświetlona w interfejsie forum SMF

Poll Question: Gdzie najlepiej się s p o t k a ć ? O Kawiarnia • 0 Park miejski Góra Św. Jerzego
y i e w Lock resu|t>;

voting Edit Pol!

1 Submit Vote I : previous next Pages:[1]

Administrator Newble Posts-i

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

'

Proszę o d d a w a ć głosy, gdzie c h c i e l i b y ś c i e s p o t k a ć się z r e s z t ą użytkowników forum ©

R e p o r t to m o d e r ator

37.206.22.160

Pages:[1]

Komentarze
Komentarze to szczególnie e f e k t y w n a metoda b u d o w a n i a społeczności. 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 , które 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 ą wysyłanie opinii i dzielenie się wrażeniami na temat określonych treści umieszczonych na stronie. Przeogromna liczba udanych stron zawiera funkcję komentowania. Niektóre witryny (np. epinions.com) nie zawierają wielu artykułów — główną treść stanowią opinie użytkowników. Komentarze stają się coraz popularniejszą funkcją na wszystkich wielkich stronach. Niektóre z nich to Onet.pl, Wp.pl, Gazeta.pl. Implementacja rozszerzenia A k o C o m m e n t lub ¡JoomlaComment umożliwi odwiedzającym dodawanie komentarzy pod k a ż d y m artykułem. Włączenie funkcji k o m e n t o w a n i a oznacza nie tylko udostępnienie platformy dla konstruktywnej krytyki, pozwala także o d w i e d z a j ą c y m na uzupełnianie treści artykułu d o d a t k o w y m i i n f o r m a c j a m i i odnośnikami.

AkoComment Tweaked Special Edition 1.4.6
J e d n y m z najpopularniejszych s y s t e m ó w komentarzy jest rozszerzenie A k o C o m m e n t . Warstwę prezentacji s t w o r z o n o , k o r z y s t a j ą c z arkuszy stylów, co p o z w a l a w e b m a s t e r o w i na d o w o l n e d o p a s o w y w a n i e w y g l ą d u komentarzy. Rozszerzenie A k o C o m m e n t zawiera następ u j ą c e funkcje: • • • • • d o d a w a n i e komentarzy z f o r m a t o w a n y m tekstem; tworzenie kanałów R S S zawierających n a j n o w s z e komentarze; p o w i a d a m i a n i e administratora o n o w y c h komentarzach; obsługa szablonów, co przekłada się na bogate możliwości dopasowywania wyglądu; ograniczanie liczby komentarzy pod k a ż d y m artykułem;

Rozdział 10. • Budowanie społeczności w Joomla!

263

definiowanie minimalnego czasu między komentarzami d o d a w a n y m i przez tego samego użytkownika;

• • •

opcjonalne powiadamianie użytkownika o kolejnych komentarzach; generowanie obrazków C A P T C H A , które z a p o b i e g n ą spamowi; integracja z profilem użytkownika w systemie C o m m u n i t y Builder.

Aplikacja dostępna jest w wielu językach: angielskim, brazylijskim, portugalskim, chińskim, czeskim, fińskim, francuskim, niemieckim, greckim, węgierskim, indonezyjskim, włoskim, norweskim, polskim, rosyjskim, słowackim, hiszpańskim i tureckim. Podczas dodawania komentarza można 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 użytk 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 ą wyświetlane obok komentarzy. suneK 10.17. ygląd <oComment st jednocześnie •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,

on the 'Send' button. K e e p i n m i n d t h a t t h e a b o v e p r o c e s s o n l y a p p l i e s if y o u s i m p l y e n t e r e d t h e w r o n g s e c u r i t y

Name: E-mail Homepage Title: BBCode: Comment:

Jan Kowalski

» s u m ( ¡ a E l i a is e s
Wspaniała strona, pozdrawiam jej autorów

# 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

1

Formatowanie tekstu możliwe jest dzięki zastosowaniu znaczników BBCode, prostego języka, 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] podkreśleniu (ang. underline). Dodatkowo obsługiwane są wypunktowane listy, emotikony i wprowadzanie tekstu w dowolnym języku obsługiwanym przez Joomla!. A k o C o m m e n t możesz pobrać na: www.visualclinic.fi" Pakiet A k o C o m m e n t składa się z wtyczki (bot_akocomment_SE.zip), k o m p o n e n t u (com_ akocomment_SE.zip) i dwóch modułów (mod_ac_lastcomments.zip i mod_ac_mostfavowed. zip). Wtyczka p o w o d u j e wyświetlanie odnośnika Komentarzy (x) pod k a ż d y m artykułem, przy czym litera x odpowiada liczbie dodanych komentarzy. Kliknięcie tego odnośnika powoduje uruchomienie komponentu.

264

Joomla!. Profesjonalne tworzenie stron WN 1W
Interfejs administratora, z i l u s t r o w a n y na rysunku 10.18, u m o ż l i w i a d o k ł a d n e ustawienie opcji związanych z układem strony i d o d a w a n i e m nowych wiadomości. Obecna jest także f u n k c j a zgłaszania, dzięki czemu użytkownicy m o g ą i n f o r m o w a ć administratora Joomla! o obraźliwych lub spornych komentarzach.

Rysunek 10.18. Interfejs administratora AkoComment umożliwia konfigurację procesu dodawania i wyświetlania komentarzy

/

TUJEflKED SPECIAL EDITION

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 :

About Joomla! fiSMHH

Aiito|>til>lish C o m m e n t s : Anonymous Comments: Foi l e g i s t e i e d u s e i s : s h o w n a ni e oi useiname ? Comment Window :

O Nie ® Tak

Automatically publish new comments? Allow unregistered users to post comments?

O

Nie

0

Tak

|^p»«fii||||||||| 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

S..J enabled add new comment on archive item

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 można ustawić, dopasowując dostępne parametry lub m o d y f i k u j ą c szablon. Do parametrów wyświetlania należą Autolimit num of comments to display (Automatycznie ograniczaj liczbę wyświetlanych komentarzy), Num of comments per page (Liczba komentarzy na stronie), Show favoured link (Wyświetlaj prom o w a n y odnośnik), Show quote this article in website link (Pokazuj odnośnik do cytowania treści artykułu), Show hits/view (Wyświetlaj liczbę odsłon), Show print link (Pokazuj odnośnik uruchamiający drukowanie), Show send Email link (Wyświetlaj odnośnik do powiadamiania znajomych przez e-mail), Show read more link (Pokazuj odnośnik „Czytaj więcej"). Dostępna 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 stylów 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. Umożliwia także importowanie komentarzy rozszerzenia AkoComment. Rozszerzenie ¡ J o o m l a C o m m e n t zawiera następujące 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 całej strony; obsługa obrazków; awatar użytkownika; cytowanie innych komentarzy;

• • •

Rozdział 10. • Budowanie społeczności w Joomla!
sunek 10.19. •ęść frontowa lomlaComment ;t bardzo zejrzysta

265

i Nick: | E-mail: | Strona www. i Tytuł. [ UBBCode: B Z U nie powiadamiaj *

»

fi

Ä

-kolor-

v

-rozmiar-

"

e © @ OiD ©®

© © © © © ©

® €> © ©© ©

O © © ©

[ Wyślij |

• • •

formatowanie tekstu i emotikony, obsługa B B C o d e ; integracja z profilami i awatarami w systemie C o m m u n i t y Builder; dostępność w wielu językach: angielskim, słowackim, czeskim, włoskim, niemieckim, norweskim, hiszpańskim, tureckim, greckim, węgierskim, perskim, bułgarskim, macedońskim, niderlandzkim, brazylijskim i portugalskim.

Podobnie jak w większości 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 treści przez użytkowników, także 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 chroniące przed spamem: • • • • generowanie obrazków C A P T C H A ; blokowanie u ż y t k o w n i k ó w ; lista cenzurowanych słów; ograniczenia długości wpisu.

U o o m l a C o m m e n t możesz pobrać na poniższej stronie: http://joomlacode.org/gf/project/joomagecomment/frs/ Podobnie jak większości komponentów, instalacja UoomlaComment odbywa się za p o m o c ą opcji Rozszerzenia/Instalator. Co różni ten k o m p o n e n t od pozostałych? — fakt, że w t y c z k a dodająca odnośnik do komentarzy pod k a ż d y m artykułem instalowana jest automatycznie. Interfejs administratora, zilustrowany trów p o g r u p o w a n y c h w trzy zakładki: (Zabezpieczenia). W zakładce General komentowanie w wybranych sekcjach na rysunku 10.20, umożliwia konfigurację parameGeneral (Ogólne), Layout (Układ strony) i Security m o ż n a włączyć obsługę technologii A j a x , wyłączyć i kategoriach, ustawić obsługę B B C o d e , format daty

266

Joomla!. Profesjonalne tworzenie stron WN 1W
i różne opcje powiadamiania. Zakładka Layout udostępnia w y b ó r kilku różnych szablonów, w ł ą c z e n i e z a g n i e ż d ż a n i a k o m e n t a r z y , d o p u s z c z a l n ą długość w p i s ó w , a także aktywację funkcji „Read o n " (Czytaj dalej). Zakładka Security pozwala skonfigurować wymienione wcześniej m e c h a n i z m y ( C A P T C H A , zapisywanie adresów IP itd.). Bardzo użyteczna jest możliwość zdefiniowania listy słów i ich substytutów, którymi zostaną automatycznie zastąpione (lista zawiera w większości wulgaryzmy).

Rysunek 10.20. Interfejs administratora IJoomlaComment pozwala na konfigurację wyglądu stron dodawania i wyświetlania 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:

autodetect autodetect utf-8

fssclude I n c l u d e i t e m s i d s :

Exclude Include sections:

Static Content About Joomla!

Clic to Exclude-lnc ude sections-. Use CTRL, or SHIP key to select unselect lines.

Sieci spolecznościowe
Chociaż najpopularniejszym przykładem sieci społecznościowej jest MySpace.com, strony tego typu m o g ą zawierać dosłownie wszystko — od listy „moich ulubionych filmów", po listę przepisów kulinarnych. Sieci społecznościowe stanowią platformę, której 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, które wskazują. Proces ten odbywa się poprzez przesyłanie odnośników lub wiadomości e-mailem. Założeniem sieci społecznościowych jest tworzenie przez u ż y t k o w n i k ó w list zakładek (odsyłaczy do stron W W W ) , które u w a ż a j ą za interesujące. Listy są następnie przypisywane do odpowiednich kategorii i znaczników, aby można było j e wyszukiwać i przeglądać w katalogu. U ż y t k o w n i c y m a j ą dostęp do list umieszczonych przez innych, m o g ą oceniać poszczególne odnośniki lub całe listy. Często listy zakładek publikowane są w formie kanałów RSS, co pozwala zainteresowanym na śledzenie n a j n o w s z y c h zakładek 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 materiałów, które m o ż n a sugerować innym. Dostępnych jest kilka rozszerzeń, które w s p ó ł p r a c u j ą z różnymi serwisami społcczn 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 zakładek. J e d n y m z najpopularniejszych rozszerzeń tego typu jest SocialBookmarkerBot.

Rozdział 10. • Budowanie społeczności w Joomla!

267

jcialBookmarkerBot vl.3.2
Aby zachęcić użytkowników do dodawania zakładek wskazujących artykuły na Twojej stronie, możesz zainstalować rozszerzenie Social BookmarkerBot, które wstawia rząd przycisków na dole wybranych podstron (zazwyczaj są to podstrony zawierające artykuły), przedstawiono to na rysunku 10.21. Przyciski pozwalają na szybkie dodanie zakładek 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 wyświetla listę rzycisków, które pozwalają a dzielenie się zakładami innymi użytkownikami
Add this page to your favorite Social Bookmarking websites

fi

y

«:

*l

A

ui

4i> m

r

•>* KS

-4

U*

Dostępna jest także opcja wyświetlania „sprytnych" przycisków dla stron Digg, Del.icio.us i Reddit w p r a w y m lub lewym g ó r n y m rogu każdego artykułu. Ich pojawianie m o ż n a ograniczyć do podstron zawierających skróconą wersję artykułu lub do tych zawierających całe artykuły. Panel może być wyświetlany na górze, na dole lub zarówno na górze, jak i na dole; może zawierać wszystkie lub wybrane przyciski. Rozszerzenie usuwa także wszystkie dodatkowe informacje z łańcucha żądania, takie jak ID użytkownika, generowane są absolutne adresy U R L (to znaczy, że działają niezależnie od miejsca, w którym zostaną umieszczone). Przycisk dla witryny Digg, wyświetlany po prawej stronie artykułu, działa poprawnie tylko wtedy, gdy włączona jest opcja Proste adresy na ekranie Konfiguracji Globalnej w interfejsie administratora. W przeciwnym wypadku występuje błąd generowany przez kod JavaScript, pobrany z serwera Digg.com. Wtyczkę SocialBookmarkerBot można znaleźć pod poniższym 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ę należy opublikować po zainstalowaniu. Domyślnie panel z przyciskami wyświetlany jest pod wszystkimi artykułami na stronie. K o r z y s t a j ą c z interfejsu administratora, m o ż n a ustawić opcje wyświetlania przycisków.

alendarz wydarzeń
Kalendarz wydarzeń to doskonały sposób na skupienie w j e d n y m miejscu ludzi zainteresowanych wydarzeniami danego typu, zachęca także społeczność do spotkań na żywo. Rozszerzenia oferujące funkcjonalność kalendarza wydarzeń dostępne dla Joomla! są j e d nocześnie proste i dobrze skonstruowane. Rozszerzenie Event Calendar (JEvents) jest bardzo elastyczne w zakresie prezentacji i organizacji zdarzeń w kategoriach. JCalPro zawiera więcej funkcji związanych z regularnymi wydarzeniami i planowaniem.

268

Joomla!. Profesjonalne tworzenie stron WN 1W
Jeśli nie chcesz zarządzać kalendarzem zdarzeń na stronie WWW, możesz skorzystać z darmowej usługi Google Calendar fwww.google.com/calendar>. Następnie, za pomocą odpowiedniego modułu, możesz wstawić ją na swoją stronę. Usługa Google Calendar zawiera opcje automatycznego wysyłania przypomnień (za pomocą poczty elektronicznej lub SMS-ów) zapisanym użytkownikom.

Rozszerzenie Events Calendar (JEvents)
R o z s z e r z e n i e E v e n t s Calendar, p r z e d s t a w i o n e na rysunku 10.22 (znane także pod n a z w ą JEvents), pozwala na łatwe zarządzanie wydarzeniami. Nie tylko możliwe jest dodawanie praktycznie nieograniczonej liczby wydarzeń, ale także określanie powtarzalności (codziennie, co miesiąc, co rok). Zdarzenia można umieszczać w kategoriach definiowanych przez użytkowników. Rysunek 10.22. Interfejs rozszerzenia Events Calendar (JEvents) jest bardzo prosty
Start
X. •

[December 01 200«

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

X

2

3

Pakiet Eevents Calendar (JEvents) składa 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 wyświetlający kalendarz. — Umożliwia konfigurację systemu.

Moduł kalendarza dla Events Calendar — Mały kalendarz z zaznaczonymi wydarzeniami, który można wstawić np. na stronie głównej. Moduł listy nadchodzących z n a j d u j ą c y c h się w bazie. wydarzeń — Lista nadchodzących wydarzeń

Rozdział 10. • Budowanie społeczności w Joomla!

269

Moduł legenda wydarzeń w kalendarzu.

— Przedstawia legendę symboli p o j a w i a j ą c y c h się

Wtyczka wyszukiwania w kalendarzu.

— Umożliwia 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 raportów z wydarzeń — A u t o m a t y c z n e d o d a w a n i e odnośnika pod wydarzeniami, który przenosi na stronę, gdzie m o ż n a dodać zdjęcia i relacje z minionych wydarzeń.

Przed wprowadzeniem wydarzeń do kalendarza musisz najpierw utworzyć kategorię za p o m o c ą opcji Add Category w części 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ż domyślnie nowe kategorie nie są aktywne. Po utworzeniu kategorii możesz zacząć dodawać wydarzenia. irsunek 10.23. 'rzed /prowadzeniem ikichkolwiek tydarzeń należy 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 V / U ABC

Public U

w m mm
*! i n

- Styles -- v d, >t

-- Format •f —

v

-- Font family s r

:= i = i

W A

u ' * a - »

- ¿ H i

Wprowadzanie wydarzeń (zobacz rysunek 10.24) odbywa się w części frontowej rozszerzenia JEvents. Dla nowego wydarzenia można wpisać tytuł, wybrać kategorię i wprowadzić k o m pletny opis. Opcjonalnie m o ż n a ustawić informacje o miejscu, dane kontaktowe i inne niezbędne informacje dla danego wydarzenia. Wprowadzone dane wykorzystywane są podczas wyszukiwania, dlatego dodając wydarzenia, staraj się umieszczać słowa kluczowe, aby użytkownicy zainteresowani wydarzeniami danego typu mogli j e odnaleźć. Jeśli 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 także dostępu i uprawnień użytkowników. Możliwe jest także 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 stylów m o ż n a zmieniać, aby odpowiednio d o p a s o w a ć wygląd kalendarza do aktualnego szablonu strony. Rozszerzenie Events Calendar możesz pobrać na stronie: joomlacode.org/gf/projects/jevents Instalacja odbywa się za pomocą opcji Rozszerzenia/Instalator i nie różni się od postępowania 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 łączącą z k o m p o n e n t e m .

270

Joomla!. Profesjonalne tworzenie stron WN 1W

Rysunek 10.24. Ekran dodawania nowych wydarzeń został podzielony na kilka zakładek

Common

Calendar

images:

Extra

Help i

About

Temat: Kategorie: Aktywność B

Ferie zimowe Wakacje "V Poziom dostępu Public
V

I
S=

u

ák W 1

m

m

m i

m

--styles-4> C2f! ZŁ

v

-- Format -a !
1

v J -

-- Font family ~ ii !3 u

v A -

B

J » » j a '

JL

i l l

X,

xa I n

- s

," |

B a w sią z nami!|

Grafika <?«

Pagebreak

Readmore

Rysunek 10.25. Część administracyjna zawiera opcje konfiguracji i tworzenia relacji

JEvents
Component « ' •: .--4,
CSS

J Events C onf i g (vi 4 c ek to,,e r version ] . hc ew 2
I Tooltip About

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 V'> ak French-Englis ® Nie Green Day O ak V v V

O Nie ® ak

©
O ak Q V

© Nie

O Random ••J None O Category ' Event specific colors allowed
O

JCalPro
Jednym z najatrakcyjniejszych kalendarzy jest rozszerzenie JCalPro, przedstawione na rysunku 10.26. Zastosowanie różnych stylów pozwala dopasować kalendarz do prezentacji reszty strony. Wygląd wszystkich elementów może być modyfikowany przez zmianę plików 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 ściśle związane z systemem zabezpieczeń Joomla!, dzięki czemu możliwa jest kontrola dostępu prywatnych kategorii, a także zarządzanie wprowadzaniem wydarzeń. Dostępne są także moduły wyświetlające wersję minikalendarza, a także nadchodzące wydarzenia.

Rozdział 10. • Budowanie społeczności w Joomla!
itsunek 10.26. 'ozszerzenie CalPro ma 'spaniały iterfejs części •ontowej, tóry dodatkowo wżna lodyfikować 1zięki systemowi zablonów

271

fiSJ

Si=j

Weekly view 0

ŚźB

%

Monthly View 4 October 208« Nowe rofeei 008

Sunday, Hovember 30, /«*8 Beceniber >«08 t

<> football 2 3 4 «»Business Maeting 6

7
O Football Game 14 <> Football Game

u
Oeuiiness : Meeting

13

17 n -M
25

i« OSuiines? Westing -M O Business

20

It
<> Football

27

m
;

<» Football Gam*

;

OfWonthSy | Work

Today • Search Calendar •

1

i Sports

¡ T y p e m ome k e y w o r d s . . ,

!j Go .

JCalPro zawiera następujące funkcje: • • • • Widok zdarzeń z danego dnia, tygodnia, miesiąca, a także 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. Możliwość m i n u t o w e g o planowania zdarzeń. Funkcja importowania zdarzeń i kategorii systemu Extcalendar. Moduł wyświetlający nadchodzące wydarzenia. Obsługa wielu j ę z y k ó w za pośrednictwem funkcji systemu Joomla!. Powiadamianie administratora o n o w o d o d a n y c h wydarzeniach. Obsługa wydarzeń okresowych, cało- i kilkudniowych. Powiadamianie użytkownika o wydarzeniach przez e-mail.

• • • • • • •

JCalPro m o ż n a znaleźć na stronie: http://dev. any thing-digital. com

272

Joomla!. Profesjonalne tworzenie stron WN 1W
Instalacja o d b y w a się za p o m o c ą opcji Rozszerzenia/Instalator i nie różni się od postępowania w przypadku innych k o m p o n e n t ó w . Aby wstawić kalendarz JCalPro na stronę, dodaj p o z y c j ę m e n u łączącą z komponentem.

Systemy Wiki
Jedną z najbardziej interesujących interaktywnych technologii (i prawdopodobnie najszybciej z y s k u j ą c ą na popularności) jest system wiki. W systemie tym artykuły pisane są przez użytk o w n i k ó w . Kolejni o d w i e d z a j ą c y m o g ą edytować lub rozszerzać istniejące artykuły. Najpopularniejszym p r z y k ł a d e m takiego systemu jest Wikipedia, encyklopedia tworzona przez użytkowników. Chociaż zasada działania Joomla! (system C M S ) pozwala na dodawanie treści przez użytk o w n i k ó w , rozwiązanie to nie zostało stworzone z m y ś l ą o umożliwieniu dużej grupie ludzi wprowadzania małych zmian w artykułach — funkcji leżącej u podstaw systemów wiki. Dla Joomla! stworzono kilka dobrych rozszerzeń, uzupełniających 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 łączącym 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 Główny Administrator, Administrator, Operator, Autor, Redaktor itp. Możliwe jest określenie uprawnień tworzenia, edycji, odczytywania, usuwania artykułów i wysyłania plików. O p e n W i k i zawiera wiele użytecznych funkcji: • • Prosta składnia do f o r m a t o w a n i a artykułów w stylu wiki. Nieograniczona liczba wersji danej strony z funkcji diff, podświetlającej różnice między wersjami. Obsługa f o r m a t o w a n i a tekstu i dołączania obrazów. 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 całego tekstu. Przyciski szybkiego dostępu w celu przyspieszenia edycji. N a w i g a c j a okruszkowa ułatwiająca przeglądanie. Czarna lista (blokowanie spamu). Oznaczanie stron j a k o tylko do odczytu. Obsługa p o n a d 30 j ę z y k ó w .

• • • • • • • •

4

Rozszerzenie OpenWiki działa poprawnie wyłącznie z Joomla! w wersji 1.0.x — p r z y p . tłum.

Rozdział 10. • Budowanie społeczności w Joomla!
sunek 10.27. lenWiki to <mponent zzący aplikację ikuWiki PHP systemem omla!

273

[ [ s t a r t ] ] i Edit this page j [ O l d

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

DokuWiki for Joomla!

^

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.

JOOMLA! Knowledge Base
• DokuWiki for Joomal! is a Joomla! component based on DokuWiki, using and Joomla! group permissions • DokuWiki for Joomla! is currently using plain text file for data storage. Database storage would be interesting to Joomla! users, which is also our target

• • •

System szablonów umożliwiający d o p a s o w y w a n i e wyglądu. Własna architektura wtyczek (dostępnych jest ponad 100). Generowanie kanałów 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 różni się od postępowania w przypadku innych komponentów. W p i s w m e n u na stronie głównej odsyłający 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ęść użytkownika i administratora) o d b y w a się z poziomu strony głównej Joomla!. K o n f i g u r a c j ę k o m p o n e n t u łączącego OpenWiki m o ż n a przeprowadzić w części administracyjnej. Aplikacja DokuWiki, na której opiera się OpenWiki, nie zapisuje artykułów w bazie danych. Są one przechowywane w postaci plików. Dlatego do poprawnego działania OpenWiki niezbędne są uprawnienia zapisu w odpowiednich katalogach. Rozszerzenie opiera się w głównej części na funkcjach PHP fwriteO i fopenO, dlatego upewnij się, że nie zostały one wyłączone na serwerze, na którym chcesz zainstalować OpenWiki.

W interfejsie administratora Joomla! możesz uzyskać dostęp do ekranu konfiguracji O p e n W i k i (OpenWiki Configuration Settings — zobacz rysunek 10.28), wybierając 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 artykułów.

T e c h n o l o g i e d o s t ę p n e za p o ś r e d n i c t w e m r o z s z e r z e ń J o o m l a ! z n a c z ą c o upraszczają fazę implementacji. Spore znaczenie ma też dobór odpowiednich moderatorów. [[te słowa]]. Uruchamianie wirtualnej społeczności Jeśli wcześniej opracowałeś dokładny plan. Dzięki w y k o r z y s t a n i u tego narzędzia 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. Społeczności często korzystają z wolontariatu moderatorów. Dobór moderatorów 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 . Profesjonalne tworzenie stron WN 1W Rysunek 10. WikiBot zawiera obsługę znaczników w wielu językach. com/wikibot. aby przetwarzać treść artykułów.php is: Writeable Distussion About [ U Make unwriteabte after saving A n t i s p a m Perniission S a f e m o d e en W Language Base Directory Bsse URL: Save Directory: C:/xampp/htdocs/old/components/com_openwiki/ http: //localhost/old/components/com_openwiki C: /xampp/htdocs/old/components/com_open wiki/data > WikiBot WikiBot łączy stronę Joomla! z w o l n ą encyklopedią Wikipedia. Rozszerzenie pozwala na oznaczenie słów w treści artykułów. Odnośniki można także zapisywać w postaci [[artykuł |nazwa odnośnika]]. theinevitabledossier. w tym odpowiedzialność prawną.274 Joomla!. za p o m o c ą opcji Rozszerzenia/Instalator. Powinieneś wziąć pod uwagę także odpowiedzialność związ a n ą z zarządzaniem społecznością. Słowa oznaczone podwójnymi po wybraniu opcji podglądu.28. d l a t e g o z a n i m się s p o s t r z e ż e s z . będziesz potrzebował wsparcia w prowadzeniu społeczności. Słowa należy oznaczać w sposób identyczny jak na Wikipedii. instalacji rozszerzenie musi zostać opublikowane. Rozszerzenie W i k i B o t m o ż n a znaleźć na stronie: www. po zapisaniu artykułu. Ekran konfiguracji OpenWiki \ : OpenWtki C Display ' j dokuwiki. 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. uruchomienie wirtualnej społeczności nie powinno być p r o b l e m e m . Tekst umieszczony wewnątrz znaczników zostanie automatycznie zmieniony w odnośnik d o Wikipedii podczas otwierania strony. aby prowadziły do odpowiednich stron w encyklopedii.html Po Instalacja wtyczki o d b y w a się s t a n d a r d o w o . nawiasami nie są wyświetlane w postaci Zmiana widoczna jest wyłącznie w części odnośnika frontowej. wybranych spośród użytkowników wykazujących duże zaangażowanie . Rozszerzenie WikiBot działa w tle systemu Joomla!. Wystarczy dodać niezbędne znaczniki w treści zwykłego artykułu.

że padły o f i a r ą niesprawiedliwości. aby strona pozostawała czysta — Podobnie j a k graffiti w sąsiedztwie. że ofiara m a małe szanse. a następnie „przyklejenie" go w d a n y m dziale. obecność spamu na stronie p o w o d u j e wrażenie. bez wątpienia uderzy w drzewo. żeby zawsze pojawiał się j a k o pierwszy na liście. Ciągłym zagrożeniem jej istnienia są inne społeczności. rozpatruj j e oddzielnie. jest namiastka władzy. D o b r y m pomysłem jest umieszczenie na stronie e-mailowego adresu administratora. Umieść na stronie zasady w w i d o c z n y m miejscu. Często dobór moderatorów wymaga wyłącznie przeanalizowania dziennika. które m a j ą dokładniejsze informacje lub lepszy interfejs użytkownika. w którym kilkanaście osób ściska się na miejscu pasażera — a każda z nich trzyma rękę na kierownicy. rowadzenie społeczności Prowadzenie społeczności przypomina kierowanie samochodem. Pamiętaj. a p o t e m stagnację. w sposób obiektywny i logiczny. aby podchodzić do nadsyłanych skarg odrobinę nieufnie. Z a b l o k o w a n i e użytkownika ogranicza możliwość zgłoszenia nadużyć. że jest ona opuszczona lub nieużywana. który zasnął. który nadużywa swoich uprawnień. aby o d w i e d z a j ą c y mogli j e przeczytać i aby nie pojawiały się wątpliwości. robi to w taki sposób. • Pilnuj. 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. nawet jeśli jest to odrobina czasu poświęcona wirtualnej społeczności. prowadząc wirtualną społeczność. z j a k i m musi sobie radzić webmaster. Kolejnym powodem. Po zablokowaniu możliwości w y p o w i e d z i osoby te zaczęły wysyłać skargi. które pomogą zachować zdrowy rozsądek i zapewnić stały wzrost liczby odwiedzających i członków: • Zamieść na stronie w widocznym miejscu listę reguł— Nie m o ż e s z winić użytkowników za naruszanie regulaminu strony. Webmaster. 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. dlaczego ktoś chciałby zostać moderatorem. Wielu ludzi odczuwa w e w n ę t r z n ą potrzebę dodawania czegoś od siebie. Dlatego przeglądając skargi od użytkowników. aby się obronić lub zgłosić nieuczciwe traktowanie. jeśli nie mogli się z nim zapoznać. . a ich p r a w o wolności w y p o w i e d z i zostało n a r u s z o n e .Rozdział 10. Znane są przypadki osób 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 przekleństw. często n o t u j ą c z a s k a k u j ą c y rozrost. dostając niewiele lub w ogóle nie otrzymując za to pieniędzy? Powodów jest kilka — najprostszym i najważniejszym jest pasja. Z a z w y c z a j moderator. Podobnie społeczność porusza się „ z y g z a k i e m " . Potencjalni moderatorzy spędzają sporo czasu na stronie i zazwyczaj dobrowolnie służą innym p o m o c ą i informacjami. Jest to jednocześnie największy problem. Poniżej zamieszczono kilka wskazówek. Dlaczego ktoś mógłby chcieć poświęcać swój czas j a k o wolontariusz. której przedmiot związany jest z tematyką strony. • Budowanie społeczności w Joomla! 275 w działalność strony.

Im popularniejsza jest Twoja strona. kiedy strona zostaje upubliczniona. konstruowanie złożonej strony przez sprzężenie ze sobą kilku technologii. kiedy uruchamiasz wirtualną społeczność. . jeśli strona będzie s z w a n k o w a ć lub działać powoli. Począwszy od pierwszego dnia. Na szczęście. Profesjonalne tworzenie stron WN 1W • Nie uruchamiaj strony. a w szczególności: • • • • • • w a d y i zalety wirtualnych społeczności. metody p o p r a w y interakcji na stronic W W W . tym większe znaczenie ma dostrojenie ustawień pod kątem maksymalnej wydajności. które 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 wydajności. narzędzia gotowe do wykorzystania w systemie Joomla! ułatwiają z a r ó w n o początkowe uruchomienie strony. You never get a second chance to make a first impression. opisano różnorodne techniki i k o n f i g u r a c j e . sposoby przedefiniowania strony na dalszym etapie istnienia. aby zapewnić m a k s y m a l n e wykorzystanie i minimum problemów. Jeśli odwiedzający trafi na pustą stronę. Można łatwo stracić wielu członków wirtualnej społeczności. zarządzanie nią m o ż e kosztować wiele wysiłku. aby skłonić o d w i e d z a j ą c y c h do powrotu.276 Joomla!. P o n i e w a ż skuteczna wirtualna społeczność w y m a g a współpracy wielu odwiedzających. Podsumowanie Budowanie efektywnej społeczności wirtualnej jest j e d n ą z najtrudniejszych (a jednocześnie najbardziej satysfakcjonujących i najbardziej opłacalnych) czynności w procesie rozwijania stron internetowych. adaptację różnych rozszerzeń dodających interaktywne funkcje. zanim nie powstaną podstawowe artykuły — Stare przysłowie „Nigdy nie dostajesz drugiej szansy. 5 Ang. m u s z ą one wyglądać profesjonalnie i zyskać szeroką popularność. jest mało p r a w d o p o d o b n e . Ze względu na ilość pieniędzy inwestowanych przez firmy w strony W W W . powinna zawierać wystarczająco dużo treści i aktywności. że na nią wróci i na p e w n o będzie unikał o d n o ś n i k ó w p r o w a d z ą c y c h do niej. W tym rozdziale opisano etapy i narzędzia związane z tworzeniem wirtualnych społeczności w oparciu o Joomla!. p o p r a w n ą instalację rozszerzeń. W rozdziale 11. aby zrobić pierwsze wrażenie" 5 nie traci na ważności. jak i dalsze zarządzanie nią.

Równie ważna jest znajomość tych jego funkcji. warto zainwestować czas w dostosowanie ustawień wszystkich aplikacji. Ponieważ „niedostrojony" system nigdy nie osiągnie wydajności tego. dlatego w krótkim czasie można uzyskać w pełni działającą stronę. rogramowanie i testy Profesjonalne programowanie Joomla! nie sprowadza się wyłącznie do wyboru właściwego IDE. Aktywacja wbudowanych procedur diagnozujących Joomla! znacząco ułatwia programowanie. W pełni profesjonalna instalacja wymaga jednak dużo większego wysiłku. Poszczególne techniki przedstawione w tym rozdziale można skategoryzować następująco: programowanie i testy. które w s p o m a g a j ą diagnozowanie problemów. Zmiana ustawień pod kątem potrzeb danej strony Joomla! pozwoli uzyskać lepszą wydajność bez zmiany sprzętu. Poznane dotychczas aspekty pracy z Joomla! związane były głównie z samym systemem. ponieważ jest źródłem dodatkowych komunikatów. także eksperci odnajdą możliwości niezbędne do prowadzenia profesjonalnej strony. stosowanie dostępnych narzędzi PHP. administracja Joomla!. Dodatkowym atutem jest bogaty zasób narzędzi dostępnych dla serwerów składowych systemu. . ponieważ wszystkie związane są z zarządzaniem serwerem Joomla! i jego konfiguracją. Oczywiście zakres wyszczególnionych kategorii pokrywa się w niektórych punktach. o b e j m u j e także zastosowanie zewnętrznych narzędzi i konfigurację innych serwerów. Chociaż Joomla! zawiera wiele funkcji przeznaczonych dla początkujących użytkowników. który został dokładnie skonfigurowany. a także implementacja zautomatyzowanych procedur testujących. zwłaszcza w zakresie zarządzania i administracji.11 Prowadzenie profesjonalnej strony Przeprowadzenie podstawowej instalacji Joomla! nie nastręcza trudności. Profesjonalna instalacja wykracza jednak poza tę platformę. obsługa Joomla! i ostateczne dostrajanie strony. Wszystkie wspomniane zagadnienia odgrywają znaczącą rolę w procesie tworzenia solidnego systemu.

Włączenie tych funkcji p o w o d u j e wyświetlanie informacji dotyczących działania systemu. że informacje generowane są przez system Joomla! i różnią się od tych. Rysunek 11. w panelu Diagnostyka (zobacz rysunek 11.! ¡)4bWUllsjKeMpVbdq •'' cAProgram FilesV>pache Si 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 języka.•'.1) znajdziesz ustawienia trybu diagnostycznego Joomla!.278 Joomla!. które w y ś w i e t l a j ą się po włączeniu opcji P H P di spl ay errors.1. Zapytania do bazy danych. Komunikaty diagnostyczne na stronie po włączeniu odpowiedniej opcji •liiftłi ubicie o wydajności* •Zużycie pamięci* . Rysunek 11. Wczytane pliki języka.2. Frazy nieprzetlumaczone. Profesjonalne tworzenie stron WN 1W Ustawienia diagnostyczne W panelu administratora z n a j d u j ą się opcje pozwalające a k t y w o w a ć kilka procedur diagnostycznych. 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 części 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 . 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 odwołanie w kodzie szablonu. . I n f o r m a c j e podzielono na pięć sekcji: Informacje o wydajności. Na ekranie Konfiguracja globalna. 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 . Włączenie ustawień diagnostycznych ułatwia programowanie na serwerze testowym Konfiguracja globalna ¡i' . Jednak większość szablonów zawiera wymaganą instrukcję: <jdoc: include type="modules" name="debug" />. które u ł a t w i a j ą p r o g r a m o w a n i e na serwerze testowym. Zużycie pamięci.2. Zwróć uwagę. 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.

1 WHERE WWFTTF. W odpowiedniej sekcji wyświetlane są wszystkie wykonanie zapytania SQL •Informacje o wydajności* •Zużycie pamięci* Zapytań <lo bazy «lanych: 24* SELECT FKOM WHERE FKOM WHERE SELECT FKOM 1 . co zostało jeszcze do zrobienia. Poniżej.Rozdział 11. Rysunek 11. to ta opcja pozwoli Ci określić. Druga sekcja odzwierciedla zużycie pamięci przez serwer Joomla!. Opcja Analiza języka spowoduje wyświetlenie wszystkich tekstów. Rysunek 11.3. Często służy ona za d o s k o n a ł ą w s k a z ó w k ę podczas szukaniu źródła błędów. w kolejnej grupie.3. dla których nie znaleziono tłumaczeń •Wczytane pliki języka* •Frazy niepi zet luinac zone* . jednocześnie umożliwia wgląd w funkcjonowanie systemu Joomla!. Kolejne grupy z a w i e r a j ą i n f o r m a c j e szczególnie p r z y d a t n e w procesie tworzenia rozszerzeń i diagnozowania błędów systemu.4).4. Jeśli pracujesz nad pakietem j ę z y k o w y m lub bierzesz udział w poprawianiu tłumaczenia Joomla!. które pojawiły się na stronie i dla których nie znaleziono tłumaczeń (przedstawiono to na rysunku 11. • Prowadzenie profesjonalnej strony 279 W pierwszej sekcji wyświetlany jest czas uruchamiania w y k o n y w a n i a funkcji dla poszczególnych zdarzeń. Opcja Analiza języka spowoduje wyświetlenie na stronie tekstów. 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.

W systemie Windows powinieneś znaleźć plik php. Interfejs wiersza poleceń PHP P r o g r a m u j ą c rozszerzenia Joomla!.280 Joomla!. W P H P taka możliwość istnieje dzięki interfejsowi wiersza poleceń PHP (CLI — Command Line Interface). Profesjonalne tworzenie stron WN 1W Pamiętaj. -d — D e f i n i u j e wartość danej dyrektywy. -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. piszesz kod w PHP. Przykładowo poniższy kod ustawi m a k s y m a l n y czas uruchamiania skryptu: php -d m a x execution time=20 -m — Wyświetla listę aktualnie z a ł a d o w a n y c h m o d u ł ó w P H P i Zend. . Zamiast uruchamiać kod z poziomu systemu Joomla!. który odpowiada za CLI. m o g ą Ci pomóc.html.r : php -r "echo 'Hello World! 1 : " Powyższa komenda spowoduje wyświetlenie komunikatu na ekranie wraz z podsumowaniem działania skryptu. w y w o ł u j ą c aplikację z pakietu PHP. p o w i n i e n e ś zastosować poniższą komendę: php -q test.html Lista przełączników zawiera m. aby nigdy nie włączać tych ustawień na serwerze produkcyjnym.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( ).php > test. . c — Określa katalog. w k t ó i y m z n a j d u j e się plik php.exe. -q — Wyłącza umieszczanie n a g ł ó w k ó w H T T P w g e n e r o w a n y m wydruku. w y w o ł u j ą c funkcję highl ight_fi le( ). dołączoną w każdej standardowej instalacji. Jeśli chcesz uruchomić plik test. • • • • • • • -a — Przełącza P H P w tryb interaktywny. N a j p r o s t s z y m p r z y k ł a d e m w y k o r z y s t a n i a C L I j e s t u r u c h o m i e n i e p o j e d y n c z e j linii kodu za p o m o c ą przełącznika .: • • • • -h lub -? — Wyświetla listę wszystkich przełączników wraz z krótkim opisem.ini. Możesz także uruchomić kod P H P w pliku i zapisać wydruk w innym pliku. Ten sam rezultat m o ż n a uzyskać z poziomu PHP. więc narzędzia. Otwórz okno wiersza poleceń i przejdź do katalogu zawierającego P H P (często jest to główny katalog serwera Apache). ponieważ możesz tym s a m y m z d r a d z i ć i n f o r m a c j e p r z y d a t n e h a k e r o m . k t ó r z y chcieliby w ł a m a ć się na T w o j ą stronę. w którym 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 niedostępny na platformie Windows). a j e g o wydruk (bez nagłówków HTTP) zapisać w pliku test.in. -S — Wyświetla podany plik z podświetlonymi elementami kodu źródłowego. Wyświetla zainstalowaną wersję P H P .php. M o ż e s z uruchamiać kod P H P bezpośrednio. które w s p o m a g a j ą i ułatwiają programowanie PHP. często lepiej bezpośrednio sprawdzać małe fragmenty kodu.

A d o b e D r e a m w e a v e r lub M i c r o s o f t Expression Web.w3.html). Ostatecznie możesz skorzystać z Accessibility Valet (http://valet. . p o p r a w n o ś ć kodu H T M L i X H T M L .webthing. Raport. 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 . unit testing). które analizują treść strony W W W oraz g e n e r u j ą raporty. które zostało n a p i s a n e w Javie. np. c o m / p a g e ) jest aplikacją internetową. następnie uruchamia się j e w systemie. w których wystąpiły.com/link).com/access/ url. sprawdza poprawność strony. możesz także skorzystać z zalet trybu interaktywnego (przełącznik -a). 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ę testów jednostkowych (ang. wyświetlany w dolnej części strony. 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 . Faza testów 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 .net/projects/jemt). sprawdzanie współdziałania elementów systemu i testy j e d n o s t k o w e . a sprawdzanie przeprowadzane jest w i e l o w ą t k o w o . który jest p r a w d o p o d o b n i e najbardziej użytecznym narzędziem do testowania f r a g m e n t ó w kodu PHP.org. dla których z n a n e s ą poprawne rezultaty. Testy j e d n o s t k o w e p o l e g a j ą na stworzeniu serii testów. skryptów i dostosowania do potrzeb osób niepełnosprawnych. 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. które należy sprawdzić. w e b t h i n g . Kod X H T M L sprawdzić można za p o m o c ą narzędzia W 3 C M a r k u p Validation. zanim zostanie ona przeniesiona do środowiska produkcyjnego. W e b Page Valet ( h t t p : / / v a l e t . zawiera informacje o błędach oraz numery linii. Jeśli korzystasz z systemu opartego na Uniksie. a spada wysiłek niezbędny do przeprowadzania skutecznej analizy kodu. np. Sprawdzanie poprawności odnośników można przeprowadzić za p o m o c ą aplikacji Link Valet (http://valet. N i e s t e t y . Narzędzie to przydatne jest głównie w przypadku konieczności dostosowania stron do potrzeb osób niepełnosprawnych (choć warto przyjąć za punkt honoru. W internecie można znaleźć kilka narzędzi. że o p r o g r a m o w a n i e spełnia założenia projektu i działa poprawnie. jednak znaczna część programistów Joomla! korzysta raczej ze środowisk tzpu Eclipse. która sprawdza stronę pod kątem błędów kodu H T M L .webthing. aby upewnić się. M o ż n a to zrobić także za p o m o c ą takich narzędzi j a k Jenu (http://soitrceforge. j a k j e rozwiązać. W i ę k s z o ś ć narzędzi d o t w o r z e n i a stron W W W . • Prowadzenie profesjonalnej strony 281 Bezpośrednie uruchamianie kodu PHP może być dobrym sposobem na sprawdzanie działania prostych rozszerzeń. 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 . była dostępna dla niepełnosprawnych). prawdzanie poprawności strony Istnieje kilka elementów strony Joomla!. żeby każda strona. którą prowadzisz. wyszczególniając problemy i wskazówki. odnośników. które znajdziesz pod adresem http://validator. Z a w i e r a ono o p c j ę graficznej prezentacji odnośników.Rozdział 11.

2 i 2) i odczytaniu z w r ó c o n e j wartości. o której wiadomo. Nie istnieje z a u t o m a t y z o w a n a metoda pozwalająca na transfer kluczowych aspektów systemu testowego (takich jak wybrane r o z s z e r z e n i a ) z p o m i n i ę c i e m . Jeśli zostanie zwrócony odmienny rezultat. Profesjonalne tworzenie stron WN 1W Przykładowo dany test m o ż e w y w o ł y w a ć f u n k c j ę dodaj (a. Testy jednostkowe okazały się j e d n ą z kluczowych technologii dla programowania grupowego.282 Joomla!. która umożliwia zautomatyzowane testowanie stron W W W . Do testów j e d n o s t k o w y c h w PHP możesz wykorzystać narzędzie SimpleTest. z w y ł ą c z e n i e m tych najprostszych. p o n i e w a ż j e s t to szybka m e t o d a określenia. Dostępne jest za d a r m o na stronie: www. co umożliwia zidentyfikowanie miejsc. zapisane w bazie Przenoszenie strony na serwer produkcyjny P r o c e d u r a p r z e n i e s i e n i a strony J o o m l a ! na s e r w e r p r o d u k c y j n y składa się z serii zadań. które należy przeprowadzić. co zostanie z a n o t o w a n e w raporcie. b). Z n a j d z i e s z j ą na stronie: h ttp ://selenium. lastcraft. jak i pliki. spowodowane przez wprowadzenie zmian. trzeba przenieść z a r ó w n o dane danych. test zakończy się wynikiem negatywnym. p o n i e w a ż dzięki nim wielu p r o g r a m i s t ó w m o ż e w p r o w a d z a ć z m i a n y w dowolnych miejscach kodu. j e d e n lub więcej zadań. Test polega na wywołaniu funkcji dodaj z dwiema liczbami (np. w których modyfikacja spowodowała nieoczekiwane rezultaty (to oznacza p r a w d o p o d o b n i e błędnie działającą funkcję). Z a u t o m a t y z o w a n e testy p o z w a l a j ą natychmiast odkryć problemy występujące w poszczególnych częściach systemu. selen iumhą. z których składa się system Joomla!. t w o r z ą c o d p o w i e d n i e testy (na p o c z ą t k u w s z y s t k i e k o ń c z ą się n i e p o w o d z e n i e m ) . 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 narzędzi w s p o m a g a j ą c y c h Dlatego. Powinieneś tworzyć testy jednostkowe i przeprowadzać automatyczne testowanie dla wszystkich t w o r z o n y c h rozszerzeń. Z a u t o m a t y z o w a n e testy u ł a t w i ą Ci u a k t u a l n i a n i e kodu. ponieważ p r o c e s migracji. stubs). Komplet testów pozwala sprawdzać program po wprowadzeniu znaczących zmian. czy nowy kod nie w p ł y w a negatywnie na wcześniej działające funkcje. wtedy f u n k c j a pozytywnie przeszła test j e d n o s t k o w y . aby s t w o r z y ć kopię z a p a s o w ą . Co więcej. z o s t a j ą oznaczone j a k o gotowe do zintegrowania z resztą systemu. j e s z c z e przed r o z p o c z ę c i e m prog r a m o w a n i a . p r o j e k t a n c i s ą w stanie nakreślić zarysy funkcji (ang.php Możesz zastosować także aplikację Selenium. Projektant może przypisywać poszczególnym programistom fragmenty aplikacji. Jeśli przejdą one testy j e d n o s t k o w e . 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