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

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..348 348 350 351 353 354 354 355 359 359 360 361 362 363 363 364 364 365 365 366 Rozdział 14. Łą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. 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 . Bezpieczeństwo Joomla! Typy ataków Ataki na hasła SQL Injection 367 367 368 368 .

konwersja i eksport plików Ograniczone funkcje zabezpieczeń i autoryzacji Równoważenie obciążania i replikacja danych Poziomy interfejsu użytkownika. Czego Joomla! nie potrafi Kontrola wersji dokumentów Import.10 Joomla!. obsługa skórek Standardowa funkcjonalność groupware Funkcjonalność portalu Podsumowanie 385 385 387 387 388 388 389 390 393 Rozdział 16. 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. 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 .

) Safari Ventures Sky Systems KISSin' UK Calialive. magazyny itp.Spis treści Media (Aktualności.) MainSPOT.NET Centrum Informacji ONZ dla Europy Zachodniej HCJB Global Asiaing.com The Chaser Creative Guy Publishing Strony hobbystyczne Success and Sport (S.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 .S.A.

Profesjonalne tworzenie stron WWW .12 Joomla!.

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

Profesjonalne tworzenie stron WWW .14 Joomla!.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Profesjonalne tworzenie stron WWW .30 Joomla!.

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

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

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

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

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

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

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

y. . że niektórzy dostawcy usług internetowych nie pozwalają na tworzenie baz danych przez programy.F r e n c h (Fr) .Nederlands (NL-BE) Joomla! jest Wolnym Oprogramowaniem udostępnianym na licencji GNU/GPL. czy wszystkie niezbędne funkcje działają poprawnie Kroki 1 : Jeżyk .4. Zwróć uwagę.3.Italian (Italy) Ija-JP .B a s q u e (Euskara estandarra) fa-IR-Persian^jU) fi-FI .Esperanto e s .Lao ('. . być niemożliwa.10 . Rysunek 2. proszę podejmij działania w celu ich zmiany. Po kliknięciu Dalej zostaniesz przeniesiony do ekranu konfiguracji bazy danych (zobacz rysunek 2.5. irlSi313Cj3 Rysunek 2. wpisać nazwę użytkownika bazy danych i hasło.Norsk bokmSl (Norway) nl-NL . Instalator Joomla! utworzy wewnątrz niej niezbędne tabele.Latvian i n b .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.S p a n i s h ( E s p a ñ o l internacional) e u .MySQL Domyślny język wielobajtowy Nadpisywanie funkcji wielobajtowych wyłączone configuration.E S . he-IL."í:'.E S .English (United Kingdom) eo-XK .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.Hebrew(IL) hi-IN . ze ustawienia Twojego serwera nie są do końca niedostosowanym środowisku może KCW !*spoctarv\'5ne próbie?:. Jeśli tego nie zrobisz instalacja Joomla! może . W zakładce Dodatkowe ustawienia.L T ..38 Joomla!.obsługa XML . które trzeba poprawić. . Pierwsza strona instalacji pozwala na określenie języka 'i J O O T Wersja 1. czy wszystkie niezbędne elementy systemu działają poprawnie. Jeśli ustawienie któregoś z parametrów koliduje z wymaganiami Joomla!.N O . .obsługa kompresji zlib .L A .C r o a t i a n (Hr) . a jej nazwę wpisz w odpowiednie pole.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.F R . W takiej sytuacji utwórz bazę ręcznie. hu-HU . Następny ekran (zobacz rysunek 2.Finnish ( S u o m i ) : f r . Możesz tutaj ustawić adres serwera MySQL (w przypadku instalacji lokalnych jest to często local host). Profesjonalne tworzenie stron WWW ? r T » Q ! .D e v a n a g a r i / H i n d i (India) j h r .Hungarian (Magyar) j it-IT . 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.H R . na dole ekranu znajdziesz opcje umożliwiające utworzenie kopii lub usunięcie istniejących danych w bazie. w podrozdziale „Konfiguracja PHP" poszukaj wyjaśnienia opcji.6).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.Lithuanian Iv-LV .Japanese(JP) l o .php Niezapisywalne Tak Tak Tak Tak lak Tak Tak • M l V » W W 'iflniiir-t isiaiai/ja • Wersja 1.Greek en-GB .5. Ekran sprawdzania przed instalacją potwierdzi.) i I t . Wersja PHP >=4.'í.

Typ bazy danych mysql v Nazwa serwera localhost Nazwa użytkownika >. będzie to gjówny adres witryny i adres głównego administratora zignorować tą seteji.rnv<£im> d. iacuJhoat iroot Nazwa bazy danych joomla15| Konfiguracja główna (zobacz rysunek 2.. Określisz je w ustawieniach dodatkowych. wybierz odpowiednią opcję i zatwierdź j ą zanim przejdziesz dalej. d a n e z s e r w i s u J o o m l a ! 1. A b y to zrobić.Rozdział 2. 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.. < Instalacja zwieńczona jest infonnacją o jej zakończeniu. Tam możesz również oto eślić sposób w jaki Joomla! potraktuje istniejące tabele o tym samym co wybr any przedrostiu. hasło oraz nazwę bazy danych. .. . proszę podaj adres serwera.6. . że komunikacja z serwerem baz danych przebiega bezbłędnie. witryny Potwierd: email i hasło administratora w w JoomlaJumpstart com w Wpisz adres email.. . na którym Joomla! ma być zainstalowany. ponieważ twoje beda przeniesione z poprzedniego ser Twój e a admin@JoomlaJumpstart com mi l "ft. Następnie podaj nazwę użytkownika MySQL. Przed zakończeniem instalacji możesz wypełnić bazę danych ptzykładową treścią.7) polega na ustawieniu kluczowych parametrów strony. Na ekranie pojawiają się także przyciski kierujące na główną stronę Joomla! lub do interfejsu administracyjnego (zaplecza). W ten sposób możesz się upewnić.»t i f i i i 7 > U r i ( l n w t ' 1 1 Wczytaj ( » ) przykładowe Wczytaj! ) Załaduj skrypt i. Możesz tutaj ustawić jej nazwę.0. Na ekranie konfiguracji głównej można ustawić nazwę strony.x l u b k o p i i WAŻNE: Zaleca się instalowanie przykładowych danych. Po kliknięciu Wczytaj przykładowe dane w bazie danych MySQL zostaną zapisane przykładowe dane. hasło administratora. 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. hasło administratora. . którą ma używać Joomla!. Rysunek 2. a także wczytać przykładowe dane. • Szczegóły instalacji i konfiguracji lysunek 2. Oto jakie są możliwości: > I W.7. a także wczytać przykładowe dane Główna konfiguracja Narwa witryny: Nazwa Wpis2 lazw^ Twoje} witryny. 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. . 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 .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

12. If you do many sequential scans. jak np.11. jak to przedstawiono na rysunku 2. the rows are read through this buffer to avoid a disk seeks.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. rather than a unique name for each new When reading rows in sorted order after a sort.option[.0.11. Po zaznaczeniu bazy Joomla! (w tym przypadku joomlalS) na liście w panelu po prawej stronie zostanie wyświetlona lista tabel. a także schematu wybranej bazy. Note that changes will have no effect until you restart the server.]] where option can be one of: REAL AS FLOAT.11 Jako administrator większość czasu poświęcisz prawdopodobnie opcji Catalogs. • Szczegóły instalacji i konfiguracji lysunek 2.option. 0 Read rnd buffer size 512 v j Po uruchomieniu aplikacji wyświetlane są ogólne informacje na temat stanu serwera.. Program MySQL Administrator umożliwia łatwe zarządzanie bazą MySQL za pośrednictwe m graficznego interfejsu użytkownika # MySQL Administrator .0. then it's set to the value of record_buffer.Rozdział 2.. If not set.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.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. you may want to increase this value. Syntax: sql-mode=option[. 0 SQL Mode: STRICT _TRANS_T AB LE S . W lewej części okna programu umieszczono listę dostępnych funkcji. zatrzymać i restartować serwer MySQL) lub Startup Variables (konfiguracja parametrów MySQL). Service Control (pozwala uruchomić. . jak zilustrowano to na rysunku 2. M y Connected to MySQL Server Instance Username: Hostname: Port: Server Information MySQL Version: Network Name: MySQL 5. Rysunek 2. PIPES_AS_CONCAT^NSI_QUOTES. Odznacz pole vyboru SQL VI ode. Kliknięcie przycisku Catalogs spowoduje wyświetlenie listy dostępnych baz danych. 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.1. 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.0. która jest ostatnią pozycją na liście w panelu po lewej stronie.51 b-community-nt via TCP/IP localhost 127.10.

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

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

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

the dynamie portal engine': SMetaKeys = 'joomla. • 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 $ftp_host = 'O'. var $gzip = 'O': var ilifetime = '900': // Session timeout var $error_reporting = '-l': var Shelpurl = 'http://help. var $ftp_root = '': var $ftp_enable = ''.joomla. var Sftp_port = 'O'.Rozdział 2. $lang_administrator = 'en-GB'. = = = 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'. SMetaTitle = 'l'. Joomla'. Soffset user = '0'.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! . var $log_path = '/var/logs'. Slanguage = 'en-GB'. var $ftp_pass = " . Scaching_tmpl = 'O'. Soffset = '0'. Scaching_page = '0'. var Sftp_user = ''. . 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'. 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' . $lang = 'english'. Scachetime = '900': S e k c j a Debug Settings ( u s t a w i e n i a d i a g n o s t y k i ) : var Sdebug = '0'. var $tmp_path = '/tmp'. SMetaAuthor = 'l'.

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

w której umieszczone są skróty haseł. • 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!.. 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. Jeśli nie masz wymaganych uprawnień. Wprowadź teraz skrót MD5 nowego hasła. np.6 kB 60 B 320 B 275 B OB 400 B 1. jeśli korzystasz z systemu Windows. czyli także do tabeli jos users. Pisanemu bez polskich znaków! — p r z y p . naciśnij klawisz F2. jak przedstawiono to na rysunku 2.8 kB 237 B 1. Po kliknięciu prawym przyciskiem pojawi się menu kontekstowe zawierające opcję Edit Table Data. . tłum.. 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* . dlatego wyszukałem wiersz.14. a następnie. W moim przypadku musiałem zresetować hasło administratora. dopóki nie pojawi się kolumna oznaczona password.. Przewiń zawartość okna w prawo. którego wartość chcesz zmienić. |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 obu przypadkach procedura jest podobna. Wybierz pole.5 kB OB 40 B Index len.Rozdział 2. że dostęp do poprawnie zabezpieczonej bazy danych. 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. aby zresetował Twoje hasło (jeśli zdarzyło Ci się je zapomnieć) lub nadal niezbędne uprawnienia. wymaga posiadania uprawnień administratora lub roota. dla którego pole username („nazwa użytkownika") odpowiadało wartości admin. jak zilustrowano to na rysunku 2.14.: 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. phpMyAdmin.15. 'o kliknięciu irawym przyciskiem os_users wybierz • menu opcję •dit Table Data Schema Tables Schema Indices Views Stored procedures . Zwróć uwagę. ysunek 2. poproś administratora systemu.1 kB 2.

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

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

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

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

66 Joomla!. Profesjonalne tworzenie stron WWW .

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

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

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

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

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

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

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

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

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

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 .76 Joomla!.

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

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

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

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

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

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

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

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

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

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

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';!«-,» \>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.

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

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

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

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

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

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

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

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

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

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

• Dodawanie i modyfikacja dostępnych r o z s z e r z e ń 113 ¡unek 4.7. .Operator . Be. Lizbona.2 Copyright 2004 . 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.2. COMMUNITY V2 Your version i s : Latest version: 1.Team@joomlapolis.1 4. .17 1.0.Administrator .Wydawca .net .0.ioomiapoiis.Autor . Documentation and Public Relations If y o u like the services provided by this free component.Team@joomlapolis.htm http: /.6.Zaplecze . Deiivate work m u s t piominently duly acknowledge original work and include visible online link www.com Donate in USD to CB.pi .net/agreement .Wybierz język •V Kowalski kowalski@onet.3 1. please consider making a small donation to support the team behind it: Donate in EUR to CB.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.2006 MamboJoe JoomlaJoe. 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 : .eae .02 1.Redaktor . L o n d y n Witryna " ^ ^ : % Group: .it and CB team.'Web fx . mny ekran erfejsu mmunity ildera •edstawla listę ństalowanych /czek k. % fi % fi 9 % fi mm II V (UTC 00:00) Uniwersalny: Dublin.2 1. J a n Kowalski Jan .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.com Credits: Nick A.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. data.Rozdział 4.pl ko walski@onet .

7. Pola możesz dodawać za pośrednictwem opcji Field Management. zobaczysz.8.8. lista rozwijalna. Add a Value Name Joomla 1. Przykładowo jeśli chcesz dać użytkownikom możliwość określania preferowanego typu CMS w swoich profilach. System . że pojawiło się nowe pole. N N N Use the table below to add new values.114 Joomla!. przedstawionego na rysunku 4. obszar edycyjny. zatytułowanej Contact Info.0 Vigenette Po zapisaniu pola musisz je opublikować. możesz wykorzystać rozwijalną listę. że podczas tworzenia nowego pola wybrana była opcja umieszczenia go właśnie w tej zakładce. co przedstawiono na rysunku 4. adres W W W . że na rysunku 4. Być może zauważyłeś także. Być może zauważyłeś. Dodawanie nowego pola. 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. Następnie. przyciski wyboru dla kilku opcji.5 Joomla 1. dostępnej w menu Community' Buildera. Dla każdego z pól CB można wybrać dowolny z powyższych typów. jeśli przejdziesz do ekranu ustawień profilu użytkownika. ogranicznik pól. pole tekstowe.7 wszystkie informacje o użytkowniku pojawiły się w jednej zakładce. Rysunek 4. 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. wielowierszowe pole tekstowe. Profesjonalne tworzenie stron WWW • • • • • • • • • adres e-mailowy. przycisk opcji.

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

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

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

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

an architect. a sculptor. a painter. rsunek 4. and a ceramist.12. 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. and a ceramist. there might be a bug left here or there.Rozdział 4. a sculptor. który umożliwia ustawienie opcji systemu płatności.13. a n d a ceramist. 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.e.12 Quantity: 1 A d d to Cart Interfejs administratora.13). a także składania zamówień. ari architect. a painter. ozszerzenie [icroShop vożliwia a stronie odawanie zedmiotów o koszyka Browse Capelo C a p e l o " is an artist. 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. co upraszcza zamówienie.0!Tt «v | Allopass m While these integrations have been tested to be working. który umożliwia dodawanie przedmiotów i składanie zamówień.14. an architect. • Dodawanie i modyfikacja dostępnych rozszerzeń sunek 4. ^ y&KBUXBs $242. przedstawiono na rysunku 4.12 A d d to Cart Capelo is an artist. Capelo is an artist. His paintings and ceramic pieces decorate numerous places throughout the world. Jest w pełni zintegrowany z systemem płatności Paypal. His paintings arid ceramic pieces decorate numerous places throughout the world. a painter. : Ś242. a sculptor. . 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/.Net fy* Subscription | the AEC hns also I ecently •irlrleil stippoittoi tliese: Supported Gatt Other Features Working with ot viaKLIX „ ii «.

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

. • 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. Aby uzyskać dostęp do tych funkcji.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 . Interfejs tego rozszerzenia. 0 Pokaż: wszystko V lle*v Copy A i chive Delete Search.00 0 00 + 0.00 0 00 0 00 neWriter lożliwia godne towanie .16. Można tworzyć powtarzalne zadania. ] j linek 4.Rozdział 4.15.00 0. 0 Cieatedon 10/30/2008.00 + 0. Zostanie wyświetlona lista odnośników do następujących funkcji: • • Timesheet Report by Company (Przegląd kart pracy według firm)'. sunek 4.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.. kliknij odnośnik Reports (lekko niefortunna nazwa) w prawym górnym rogu. .00 0.zystkich /nności iązanych irojektem j klientami 7 2 3 24 - 25 : 30 31 * Podobnie jak w przypadku Project Fork.27 m 28 2 9 20 • 21 « 22 13 •.00 0. Strona główna rozszerzenia Project Fork przedstawia listę projektów. Total m e m b e r s 1 Total ł j i o u p s .00 + 000 0. większość funkcji rozszerzenia TimeWriter dostępna jest za pośrednictwem strony głównej.your éurrerrt workspace.B i l l a b l e H o u r s . Timesheet Report by Project (Przegląd kart pracy według projektów)'.00 0. możesz wykorzystać rozszerzenie TimeWriter. Dostępne są dwa sposoby prowadzenia rejestru: czas przeznaczony na klientów lub czas przeznaczony na projekty.00 0. rona Timesheet Calendar « Suit 39 5 40 12 41 19 42 26 43 Total Billable H o u r s : Total N o n .00 iOJO 0.00 0 00 + 0. do których dany <tkownik ma dostęp zszerzenie kart pracy Aby zarządzać czasem w projekcie (a szczególnie zliczać płatny czas). »It . który pozwala rejestrować czas pracy. a także wyświetlać karty pracy. zilustrowano na rysunku 4. ft will be set as.

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

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¡ . 0 Tak O Nie awartość strony Sercem każdej strony opartej na CMS jest jej zawartość.:1. avsater NW ER 24.18 pozwala ustawić dobór wyświetlanych przedmiotów. 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 í .A E 1M : P i Pd UB Ms : -I o S ui e M2 M4 P& P ER 45. Jego położenie. • Dodawanie i modyfikacja dostępnych rozszerzeń ¡unek 4. U ' Ocehiai 8 speccr« • Ryban pornobrile: a E te. 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 . wybierając moduł na liście opcji Moduły. a także pozostałe ustawienia możesz zmienić. kartki elektroniczne. Rozszerzenia przedstawione w tym podrozdziale pozwolą Ci wzbogacić typ treści zarządzanych za pomocą Joomla! o podcasty.55 18 m U i n ' J M 1 J Moduł My EBay Storę może zostać umieszczony w dowolnym panelu na stronie Joomla!. Istnieją nawet rozszerzenia potrafiące zmienić stronę Joomla! w rozszerzalny system wiki.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.» Tak ' ' Nie Tak ® Nie B>.17. Ekran parametrów przedstawiony na rysunku 4.00 32 min. mapy i inne.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. . 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.

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

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

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. jak i darmowych. 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. występuje w kilkudziesięciu językach. zarówno komercyjnych. Chociaż jest to oddzielna aplikacja PHP. Jeśli masz zamiar zarządzać dużą łiezbą zdjęć cyfrowych. może zostać połączona ze stroną Joomla! za pomocą specjalnej wtyczki Gallery 2 Bridge.» i . System kontroli dostępu. wielu typów multimediów (nie tylko zdjęć). 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. zintegrowany z systemem rejestracji użytkowników Joomla!. Według ostatnich wyliczeń wyszukiwanie Google prowadziło do 50 różnych rozszerzeń dodających galerie na stronach Joomla!. ImageMagick lub Netpbm) dostępna jest na Twoim serwerze PHP.. zawiera obsługę komentarzy. Dodatkową funkcję stanowi zarządzanie animacjami Flash!.126 Joomla!. Zanim zainstalujesz to rozszerzenie. czy chcesz przedstawić profesjonalne portfolio. Nie i v Tak Rysunek 4. . Funkcję galerii zdjęć może spełniać kilka różnych rozszerzeń. R a s h playei. upewnij się. Joomla! może być odpowiednim rozwiązaniem. sprawdź system Gallery2. c o d e . Jest to jedna z najpopularniejszy aplikacji do tworzenia galerii. Umożliwia profesjonalne zarządzanie galeriami i obrazkami. Profesjonalne tworzenie stron WN 1W K o n t kjtii i i c j a Pamięć p o d r ę c z n a . Rozszerzenie RSGallery2 jest najwyżej ocenianym wśród aplikacji przeznaczonych dla Joomla! i cechuje się bogactwem funkcji.20.ii e C o d e € z. zawiera wiele profesjonalnych funkcji.21) napisano z myślą o Joomla!. że przynajmniej jedna z popularnych bibliotek graficznych (GD2. Rozszerzenie RSGallery2 (zobacz rysunek 4. Tworzone pliki HTML i CSS są zgodne ze standardami. Automatycznie tworzy kanały RSS. a także działa nawet na popularnych (dużych) stronach internetowych. Posiada także kompletną obsługę Joomfish. przez co może działać w wybranym języku. czy tylko umieścić ujęcia pierwszych kroków Twojej córeczki.

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

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

ale może także okazać się trudny w promocji i jeszcze trudniejszy w zarządzaniu. Rozszerzenie to doskonale nadaje się do pomocy technicznej związanej ze stroną. Moderacja wymagałaby co prawda dodatkowej pracy. 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 . jest on uruchamiany tylko na specjalne okazje. spamu i treści obscenicznych na stronie. który pobiera losowy cytat z księgi gości. czat pozbawiony monitoringu i ograniczeń jest prostą receptą na katastrofę dla webmastera. który pozwala na komunikację jeden-do-jednego z odwiedzającymi Twoją stronę. znajdziesz więcej informacji na ten temat. musisz zainstalować dodatek odpowiedzialny za zbieranie opinii użytkowników. pozwala na alerty dźwiękowe i żądania sesji. Wykorzystuje technologię Ajax do dynamicznego uaktualniania okna rozmowy. obecność gościa. co może być najrozsądniejszym wyborem. • 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.Rozdział 4. wyrażoną słowami poprzednich użytkowników.22.22. W rozdziale 10. np. Większość stron WWW ogranicza dostęp do czatu. sunek 4. przedstawiony na rysunku 4. Joomla Live Chat. jest czatem administrator-użytkownik. Biorąc pod uwagę ilość drapieżników i ludzi z niejasnymi intencjami w sieci. Zanim napiszesz moduł. która za każdym razem wita odwiedzającego zachętą. aby zapobiec pojawianiu się reklam. :at na stronie Joomla! Czat może być doskonałym dodatkiem na stronie WWW. ale za to mielibyśmy stronę WWW.

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

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

co zilustrowano na rysunku 4. compliant. Jviit '. Dla wielu użytkowników mylący może być brak przycisku New Page (Nowa strona). Rysunek 4. inne pliki DocBook) mogą sprawiać problemy w systemie.25. I f p e r m i s s i o n s allow. Dlatego. 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.132 Joomla!. niektóre artykuły napisane w innych językach niż angielski (np. które należy wstawić w treść istniejącego artykułu. developer team3."•• Line 2: ===== Dokutfliki for Joomla! ===== -v. Profesjonalne tworzenie stron WN 1W Rysunek 4.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. które mogą sprawiać problemy operatorom adaptującym to rozszerzenie. aby dodać nową. simple to use [[wp>Wiki]]. workgroups and small companies. It is targeted at developer of any kind. 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.25. H 6 9 8 7 4 8 2 3 . mainly aimed at creating documentation mainly aimed at creating documentation of any kind. Ponieważ wszystkie strony muszą być ze sobą połączone. Ail data is stored in structured texts.24. 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. 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. musisz najpierw stworzyć odnośnik na istniejącej stronie. All data is stored in plain text files — no database is plain text files — no database is required. . niezależnie od zestawu znaków ustawionego w Joomla!. simple to use [[wp>Wiki]]./:'/ in. workgroups and small It has a simple but powerful companies. It is targeted at teams. required. 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 .'•'<f iv/'ii. s t a r t . Przykładowo nowe odwołanie. s. może wyglądać tak: [[joomlajumpstart]] Po kliknięciu odnośnika zostanie wyświetlony ekran tworzenia nowej strony.

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

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

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

Next Match Module (Następny mecz) — Wyświetla następny mecz dla wybranej lub ulubionej drużyny. Team Players Module (Gracze z drużyny) — Wyświetla listę graczy Twojej ulubionej drużyny według pozycji graczy. 15. Navigation Menu Module (Nawigacja) — Dostarcza dodatkowego menu nawigacyjnego. 1 0 . Profesjonalne tworzenie stron WN 1W Rysunek 4. . 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. które umożliwia szybki dostęp do zapisanych informacji. 2 0 0 8 19. (Ranking) Przedstawia aktualne zestawienie dla wybranego Results Module (Wyniki) — Przedstawia ostatnie wyniki dla wybranego projektu.11. Spieltag ( 1 5 . Następnie określane są drużyny i gracze. 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. 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.136 Joomla!. Ranking Module projektu. Random Player Module (Losowy gracz) — Wyświetla losowego gracza dla wybranego projektu i wybranej drużyny. co w praktyce opowiada danym ligom.29. Results Tab Module (Zakładki wyników) — Przedstawia ostatnie wyniki pogrupowane za pomocą JavaScriptu w trzy pojedyncze zakładki.2008) Spieltag auswählen: 04 • Home * Fussball-Forum Gruppe 1 Mittwoch. 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.

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

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

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

140 Joomla!. Profesjonalne tworzenie stron WN 1W .

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

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

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

a następnie uruchom opcję Rozszerzania/ Instalator. kiedy zmiana parametrów przekłada się na zmianę wyglądu lub funkcji. kliknij przycisk Wczytaj plik & Instaluj. Rysunek 5. Podczas tworzenia nowego modułu zmiany należy wprowadzać w plikach źródłowych w tym katalogu. to w pewnym sensie szablon. Moduł Hello World pojawił się na liście modułów Na liście Moduły pojawiają się egzemplarze modułów dostępnych w systemie. a następnie wybierając moduł konkretnego typu. na podstawie którego można dodawać jeden lub więcej egzemplarzy.1. Możesz tworzyć dodatkowe egzemplarze tego modułu i innych. Rozszerzenie stworzone przed chwiląjest właściwie typem modułu. aby dodać nowy moduł w systemie. Zmiana tych informacji wymaga bezpośredniej manipulacji w bazie danych MySQL lub ponownej instalacji modułu.1. Zastosowanie kilku egzemplarzy jednego modułu może mieć sens szczególnie wtedy. Otwórz zaplecze Joomla! w oknie przeglądarki. Po ukończeniu procesu instalacji kliknij opcję Rozszerzenia/Moduły. W folderze /modules strony Joomla! znajdziesz katalog zawierający zainstalowany moduł. 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). W prawej kolumnie pojawiają się informacje na temat typu modułu. klikając przycisk Nowy. ustawianego za pośrednictwem parametrów. jak to przedstawiono na rysunku 5. Przykładowo moduł modjnainmenu (Menu) wyświetla listę pozycji danego menu. 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. a na liście powinien pojawić się moduł zainstalowany przed chwilą. Wybierz archiwum ZIP zawierające moduł.144 Joomla!. nowy egzemplarz jest typu mod hel loworld.2\htdocs\modules\ .

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

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

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

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

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

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

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

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

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

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

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

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

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

158 Joomla!. Profesjonalne tworzenie stron WN 1W .

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

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

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

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

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

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

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

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

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

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

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

"</b>": HTML ENT_QUOTES): SrowMessage = htmlspecialchars($row->message. created_by. $_SERVER['REMOTE_ADDR'] . ż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. echo "<a href=index. 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. $db->getEscaped(JRequest::getVar( // Pobierz adres IP i przechowaj go z powodów bezpieczeństwa iuserlp = . : w instrukcji insert .created_by" . 0). ". u. "VALUES (" .php?option=com_guestbook>" . "". 'location' )) ." . intval($uid) ifldLocation $db->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" /> . aby można było ją umieścić .name" . ". // Wyświetl listę wpisów w księdze gości function displayGuestbookO { $db =& JFactory::getDB0(). // Upewnij się przed wyświetlaniem. SfldLocation = . itldMessage . irowMessage echo " . // Dodaj znaki unikowe SfldMessage = do treści wiadomości i lokacji. echo "<b>" . echo "<hl>Dziękujemy za dodanie wpisu!</hl>". guestbook AS a" . : iinsertFields = "INSERT INTO # _ g u e s t b o o k "(message.created DESC": $db->setQuery( $query. "Powrót do księgi gości </a>": . Profesjonalne tworzenie stron WN 1W SfldMessage = preg_replace("/[ A a-zA-ZąćęłóńśźżĄĆĘŁÓŃŚŹŻ0-9 $fldMessage). // Oddziel wpisy poziomymi liniami echo "<hr />". iuserlp . 0): . $db->setQuery( iinsertFields. ". ").170 Joomla!.id=a.message." .?!$()\'\"]/". $db->getEscaped($fldMessage) . " . userip) " . " LEFT JOIN # " ORDER BY a. ""'." . users AS u ON u. " . location.

php •jSj guestbook.php . Przykładowo w oknie Outline. a w miejsce minusa pojawi się plus (+). którego pola odpowiadają wartością wybranemu wpisowi.7. co przedstawiono na rysunku 6... Spowoduje to uruchomienie funkcji editEntryO prezentującej formularz. który umożliwia jego edycję.sql Cl i inin^tflll. Resource zęść administracyjna komponentu Części administracyjnej przypisano trzy scenariusze. kod funkcji zostanie ukryty. xml 0 install. break. usiinek 6.snl !. default : displayGuestbook() break. adz 1% « xs addEntry() displayGuestbook() itch( ¿Request case ' a d d ' : addEntry(). po prawej stronie workbencha wyświetlana jest lista wszystkich funkcji i metod zdefiniowanych w pliku. że po prawej stronie nagłówka funkcji znajduje się małe kółko ze znakiem minusa ( . co skutkuje wywołaniem funkcji updateEntry().) . Kliknięcie odnośnika powoduje ponowne wywołanie komponentu. Po wprowadzeniu zmian administrator klika przycisk Zapisz. Funkcja dl spl ayEntri es() wyświetli tabelę zawierającą listę wszystkich wpisów z tabeli księgi gości. Kliknij funkcję displayGuestbook(). zostaniesz przeniesiony do odpowiedniego miejsca w oknie z kodem źródłowym. .guestbook. Zwróć uwagę. Outline : 'Brak dostępu' ) . aby zapisać zmiany. tym razem jednak z parametrem task w ciągu żądania ustawionym na edit. 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.project IS* admin. która wprowadza zmiany w tabeli. Jeśli klikniesz je. Obok każdego wpisu pojawia się odnośnik.EasyEclipie for P P H H File Edit Navigate Search Project PHP/Apache Run Window Help . Możliwość ukrywania części kodu ułatwia zarządzanie dużymi plikami w Eclipse.guestbook.7. php x guestbook. • 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.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 . a środowisko zaktualizowane. a w oknie edytora zostanie podświetlona odpowiednia funkcja.Rozdział 6. więc jeśli klikniesz któryś z nich. • P P .

ifldLocation . $db->getEscaped(JRequest::getVar( w tabeli jos_guestbook 'id' )) . $db->getEscaped(JRequest::getVar( 'location' )) . : . break. iinsertFields = "UPDATE # _ g u e s t b o o k " . Profesjonalne tworzenie stron WN 1W Utwórz nowy plik PHP w środowisku Eclipse i nazwij go admin. " SET message= " . ifldLocation» SfldID = // Zapisz zmiany .php 5203 2007-06-15 02:45:14Z DanR $ * @copyright (C) 2007 Dan Rahmel. Wszystkie prawa zastrzeżone.172 Joomla!. 'addedit. 'addedit. " WHERE id = " . break: case 'update': updateEntry(): break. $db->getEscaped(JRequest: :getVar( 'message' )) . funkcję // Sprawdź wartość parametru task i wywołaj odpowiednią switch( JRequest::getVar( 'task' )) { case 'edit': editEntryi).png' ): . wprowadź poniższy kod: <?php /** * @version $Id: guestbook. $db->setQuery( iinsertFields.guestbook. ". } // Zapisz dane pobrane z formularza function updateEntry() { // Ustaw tytuł w interfejsie administratora JToolBarHelper::title( JText::_( 'Uaktualnianie wpisu w księdze gości' ).png' ). ""'. ifldlD . default: displayEntriesO.php. zawiera część administracyjną komponentu. * @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' ). " . echo "<a href='index. 0): $db->'query(). // Pobierz referencję do obiektu bazy danych $db =& JFactory::getDB0(): // Pobierz dane z formularza . SfldMessage . " location»" . SfldMessage = '"' .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' ). echo "<h3>Uaktualniono wpis!</h3>".

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

0" type="component"> <name>Guestbook</name> <author>Dan Rahmel</author> <versi on>l. wybierz File/New/File selection. jak i zaplecza. Następnie wprowadź poniższy kod: <?xml version="1. Plik deskryptora Plik deskryptora tego komponentu jest zdecydowanie bardziej skomplikowany niż ten dla modułu Hello World.sql</file> </sql> </uninstall> <administration> <menu>Guestbook</menu> charset="utf8">install. Ponieważ interfejs Eclipse nie zawiera opcji do tworzenia pliku XML. kod zostanie automatycznie przeanalizowany.sql</file> component="com_guestbook">guestbook.5. a w oknie Outline pojawi się rezultat.174 Joomla!.php</fi1ename> użytkowników.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 .xml jako nazwę pliku. Definicje umieszczone w pliku powodują instalację plików zarówno części frontowej. W oknie New File wprowadź guestbook. lista metod i funkcji.0. ?>' /> </p> <p> <input type="submit" name="Submit" value="Zapisz zmiany" /> </p> </form> <?php } } ?> Zapisz plik.</description> . 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.0" encoding="utf-8"?> <install version="1.

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

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

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

Około 200 znaków każdego wpisu wyświetlanych jest w postaci odnośnika.ik t i z y n t a ć ! . Profesjonalne tworzenie stron WN 1W Aby przetestować księgę gości.14. Teraz. aby przejść do eki. Kliknij go. a następnie kliknij przycisk Dodaj wpis.14.13.J a n Kowalski Formularz dodawania wpisu do księgi gości Wprowadź treść wiadomości. Jego kliknięcie spowoduje wyświetlenie formularza edycji wpisu — co zilustrowano na rysunku 6. otwórz stronę Joomla! w przeglądarce i kliknij odnośnik Moja księga gości. Rysunek 6. klikając przycisk Zapisz zmiany. Rysunek 6. Wprowadź wiadomość w formularzu księgi gości N. Wprowadź wiadomość. aby wyświetlić listę wpisów. Rysunek 6. co pokazano na rysunku 6.178 Joomla!. tylko formularz dodawania nowego. kiedy w tabeli # guestbook znajdują się już jakieś wpisy. możesz przejść do części administracyjnej. Wybierz pozycję Księga Gości z menu Komponenty.12. 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.13. cyfr i podstawowej interpunkcji. Ze względów bezpieczeństwa. są usuwane z wiadomości dodawanych przez użytkowników części . oprócz liter. podobnie jak zilustrowano to na rysunku 6. 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. aby zachować j ą w systemie. 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.i p e w n o tu j e s z c z e w i ó c e I .12.J a n Kowalski W s p a n i a ł a stroii. a także dla wygody praktycznie wszystkie znaki. Każdy wiersz tabeli odpowiada jednemu wpisowi w księdze gości.11111 edycji.it. Na ekranie nie pojawią się żadne wpisy.

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

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

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

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

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

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

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

php?option=com_productinfo&forrnat=r Wybrany produkt jest dostępny! | y Gotowe ^ Lokalny intranet . 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. ' 3 hitp://loealhost/joomla/index. Właśnie taka metoda jest stosowana na stronach korzystających z rozwiązań ajaksowych do wyświetlania informacji. Profesjonalne tworzenie stron WN 1W Aby zainstalować komponent. co przedstawiono na rysunku 7.php</filename> Info</menu> component="com_productinfo">productinfo. Wprowadź następujący kod i zapisz go w pliku o nazwieproductinfo.5.186 Joomla!. tylko zwykły tekst. i . zauważysz. Pomoc / wVszukai %J .php?option=com _productinfo&format=raw Jeśli komponent działa poprawnie.3. Rysunek 7.zip.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. a następnie zainstaluj je w części administracyjnej Joomla!. że nie ma tam żadnego kodu HTML.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 :.5. w oknie przeglądarki zostanie wyświetlona pojedyncza linia tekstu.3. zawierające oba te pliki.xml: <?xml version="1.php</filename> Utwórz archiwum o nazwie com_productinfo. Możesz przetestować działanie komponentu poprzez ręczne wpisanie adresu URL żądania w oknie przeglądarki: http://localhost/index. Jeśli zaglądniesz do źródła dokumentu. niezbędny jest także plik deskryptora XML.0" <install encoding="utf-8"?> type="component"> version="1.

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

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

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

SarticleNum . a następnie zainstaluj je w systemie Joomla!. cyframi lub znakami interpunkcji SarticleBody = preg_replace( "/[-ząćęłńóśżżA-ZĄĆĘŁŃÓŚŻŹO-9 . 200): // Zwróć tytuł i treść artykułu w formacie XML echo "<article><title>" SarticleBody . // Wykonaj zapytanie if "(Srows = $db->loadObjectList()) { // Odczytaj pierwszy zwrócony rekord $row = Srows[0].title. skróć go if(strlen(SarticleBody) > 200) { SarticleBody = J S t n n g : :substr(SarticleBody. 0. $db->setQuery( Squery. "</body></article>": } } ?> Po wprowadzeniu powyższego kodu zmień odpowiednio plik deskryptora.zip. Jeśli tego nie zrobisz. // Przypisz tytuł i treść artykułu do odpowiednich zmiennych SarticleTitle = Srow->title. * 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' )). aby pobrać tytuł i treść artykułu.php?opüon=com_articleinfo&format=raw&articlemm .id. title i text artykułu $query = "SELECT a.:getDB0(). Wartości pola ID poszczególnych artykułów wyświetlane są w kolumnie ID.introtext AS a \n" . Będąc w interfejsie administratora. // Usuń wszystkie znaczniki z treści artykułu SarticleBody = strip_tags($articleBody): // Usuń wszystkie znaki niebędące literami. // Jeśli artykuł jest dłuższy niż 200. // Domyślne wartości na wypadek błędu $articleTitle = "Błąd". " FROM # content " WHERE a. Profesjonalne tworzenie stron WN 1W * w zapytaniu. korzystając z opcji Rozszerzenia/Instalator. "\n". SarticleBody). a.190 Joomla!. SarticleTitle . Otwórz w przeglądarce poniższy adres: http://localhost/index. aby wskazywał nowy plik i nazwę komponentu. "</title><body>" . "". Nie zapomnij zmienić atrybutu component znacznika <fi 1 ename>. 0): \n" .?!S()\'\"]/". aby pobrać wartość pól id. zawierające te dwa pliki.id =" . SarticleBody = "Błąd": // Pobierz referencję obiektu bazy danych $db =& JFactory. . SarticleBody = $row->introtext. przejdź do listy artykułów i zanotuj ID istniejącego artykułu. // Utwórz zapytanie.a. to przy próbie instalacji zostanie wyświetlony komunikat że rozszerzenie zostało już zarejestrowane w systemie! Utwórz archiwum o nazwie com_articleinfo.

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

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

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

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

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

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

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

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

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

200 Joomla!. Profesjonalne tworzenie stron WN 1W .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

216 Joomla!. Profesjonalne tworzenie stron WN 1W .

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

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

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

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

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

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

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

ph Umieść w nim następujący kod: <?php * @version * @package */ $ld: plgHelloWorld. aby opublikować dane rozszerzenie (znajdziesz je pod nazwą Content— Hello World!). tak jak jej zadanie. aby nie zaśmiecała i nie spowalniała systemu. Nie było to wcale trudne. Domyślnie nowe wtyczki nie są aktywne. że między tytułem a treścią każdego artykułu zostało wstawione powitanie. prawda? Kolejna wtyczka będzie odrobinę bardziej skomplikowana. Ponieważ tworzymy prosty program wyświetlający powitanie. Wystąpienie tego zdarzenia skutkuje przekazaniem trzech parametrów umożliwiających odczytanie (ale nie zmianę) zawartości artykułu.224 Joomla!. Pierwsza zdefiniowana metoda nosi nazwę pokrywającą się z nazwą klasy. Utwórz archiwum zawierające plik XML i PHP (może być w formacie ZIP lub Tarball). W tym przypadku. $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. Przejdź teraz do opcji Dodatki i wyłącz wtyczkę Hello World!. uruchamia ona jedynie konstruktor klasy rodzica. Przejdź do ekranu Dodatki. powinieneś zauważyć. Jeśli otworzysz teraz stronę Joomla!.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. że nowa klasa o nazwie plgContentHell o EWorld dziedziczy klasę abstrakcyjną JPlugin. dla zachowania kompatybilności z PHP4. & iparams. Kod funkcji zawiera definicję łańcucha znaków "Hel lo World!". dla którego zostało wygenerowane zdarzenie. Za pomocą opcji Rozszerzenia/Instalator zainstaluj plik w systemie. 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. możesz spokojnie zignorować te parametry. To by było na tyle. Poniżej znajduje się definicja funkcji obsługującej zdarzenie onAfterDisplayTitle. co spowoduje jego aktywację. zauważysz. i z tego powodu gra rolę konstruktora. który następnie zwracany jest do funkcji wywołującej za pośrednictwem instrukcji return.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Umożliwia ona odwiedzającym umieszczanie komentarzy i komplementów odnośnie do treści na stronie. Ponieważ zarówno idea.). możliwe jest także powiadamianie administratora o próbie wysłania wiadomości zawierającej zabronione słowa. 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. oba rozszerzenia o f e r u j ą podobną funkcjonalność. asybook Pokazany na rysunku 10. 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. Dlatego możesz dowolnie mieszać i d o p a s o w y w a ć przedstawione aplikacje. Listę zabronionych słów można zdefiniować w interfejsie administratora.1 Easybook to doskonały. 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. Dodawanie wpisów można ograniczyć. jak i implementacja księgi gości jest całkiem prosta.1.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 . w przypadku braku potwierdzenia wiadomość zostanie zignorowana. prosty k o m p o n e n t księgi gości. W zależności od ustawień w e wpisach m o g ą się pojawiać także emotikony i inne obrazki. Twój wybór będzie prawdopodobnie zależeć głównie od tego. imię nazwisko Mającego) ub całkiem sporo iól (np.m a i l o w y m . Vpis w aplikacji 7. i taki też jest j e j efekt w p o b u d z a n i u społeczności. lumer ICQ. tzn. które rozszerzenie wizualnie lepiej pasuje do reszty strony. 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 . Dwa najpopularniejsze rozszerzenia księgi gości dla Joomla! to Easybook i Jambook.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. ysunek 10.Rozdział 10. Easybook pozwala na wysyłanie e-maili z podziękowaniem do u ż y t k o w n i k ó w dodających wpisy.).asybook może awierać kilka np.iboiił Joomla* FAO The News Web Links News Feetls fyloj. adres trony WWW). pochylanie itd. instalacja jednego nie kolidowała z innymi. . Easybook można również tak skonfigurować. e-mail. • Budowanie społeczności w Joomla! 249 stwierdzono konfliktów między rozszerzeniami. 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. 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. 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.

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

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

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

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

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

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

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

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

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

11. Integracja z systemem jest znacząca — zwłaszcza w zakresie wyglądu i uprawnień użytkowników. • • • • • • Możesz pobrać komponent Fireboard i p o w i ą z a n e moduły z poniższej strony: www. 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 . ! R e g u l a m i n i i Pomoc szukaj w forum Forum '' . obsługa systemów prywatnych wiadomości. bestofjoomla. obsługa wielu j ę z y k ó w . integracja z systemem profili u ż y t k o w n i k ó w C o m m u n i t y Buildera. przyklejone tematy i inne. tworzenie map stron Google. W s z e l k i e prawa zastrzeżone. 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. • Budowanie społeczności w Joomla! sunek 10. import danych Joomlaboard. org . 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. 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 .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 . . która pozwala na integrację z Joomap. własna architektura wtyczek. generowanie kanałów R S S i d o k u m e n t ó w w formacie P D F . obsługę Joom!Fish.«otispam integration b y JoorniaPi.F a o t o r y Wersja PL Zwiastun . system szablonów p o r ó w n y w a l n y z S M F . systemów komentarzy i innych. opcja wybierania własnych ulubionych w ą t k ó w przez u ż y t k o w n i k ó w . takich jak ClexusPM i Uddeim.12.Rozdział 10.oom T e a m Tenuity 1 Odpowiedzi Ost. najnowsze wątki. •ęść frontowa omlaboard 'korzystuje :tuainy ablon strony ) stworzenia idobnej ezentacji -Joomlaboard-Forum :atriie posty .Ttłli |)OST Pobieiz n a g l o w n ostatnich postów. 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. C o p y r i g h t © 2008 O p e n Source Matters.

M o ż l i w e jest także dodanie m o d u ł ó w oferujących takie funkcje. przedstawiony na rysunku 10. \ . lak korzystać z dostępnych narzędzi. 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. Następnie d o d a j w Menadżerze Menu pozycję łączącą z komponentem Fireboard. np.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.13. a n a s t ę p n i e w p r o w a d ź nazwę.260 Joomla!.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. zarządzania użytkownikami i wystanymi plikami oraz do administracji forum Fireboard . N a te stronie możesz prz egiądać statystyki forum. 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. ł ą za po lewej stronie umożliwią C i administrację wszystkimi as pektami forum. Profesjonalne tworzenie stron WN 1W Po pobraniu komponentu możesz zainstalować go w tradycyjny sposób. statystyki f o r u m i inne. k t ó r ą p r z e d c h w i l ą u t w o r z y ł e ś . za p o m o c ą opcji Rozszerzenia/Instalator. Rysunek 10. Panel kontrolny rozszerzenia Fireboard pozwala na dostęp do konfiguracji. 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. Jeśli j e d n a k wirtualna s p o ł e c z n o ś ć j e s t j u ż silna. pozwala na dostęp d o wszystkich funkcji rozszerzenia. Użytkownicy będą mogli teraz dodawać wiadomości na utworzonym forum. N i każdej stronie zn< jdziesz pomoc kontekstowi objaśniającą. Sondy Sondy m o g ą być doskonałym dodatkiem. które umożliwią u ż y t k o w n i k o m dostęp. jak wybór t e m a t ó w . 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. gdzie możesz d o d a w a ć n o w e kategorie. Zapisz kategorię i przejdź do tworzenia kolejnej. Tym r a z e m w y b i e r z z listy Item Level k a t e g o r i ę . Kliknięcie przycisku Forum Administration s p o w o d u j e wyświetlenie ekranu. 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 . aby zobaczyć wyniki sondy.13. Panel kontrolny Fireboard. . wyświetlanie najlepszego i ostatnio zarejestrowanego użytkownika. ikona szybkiego uruchomienia interfejsu administratora Fireboard. 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 ) . . jeśli wirtualna społeczność została uruchomiona. Kolejnym krokiem po zainstalowaniu komponentu jest dodanie kategorii i forów. a następnie wprowadź tytuł forum.

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.

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

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

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

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

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

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. 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.Rozdział 11. Opcja Analiza języka spowoduje wyświetlenie wszystkich tekstów.1 WHERE WWFTTF. w kolejnej grupie. to ta opcja pozwoli Ci określić.4). Druga sekcja odzwierciedla zużycie pamięci przez serwer Joomla!. 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. Jeśli pracujesz nad pakietem j ę z y k o w y m lub bierzesz udział w poprawianiu tłumaczenia Joomla!. Rysunek 11. jednocześnie umożliwia wgląd w funkcjonowanie systemu Joomla!.4.3. dla których nie znaleziono tłumaczeń •Wczytane pliki języka* •Frazy niepi zet luinac zone* . • 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ń.3. Rysunek 11. Poniżej. które pojawiły się na stronie i dla których nie znaleziono tłumaczeń (przedstawiono to na rysunku 11. 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. Opcja Analiza języka spowoduje wyświetlenie na stronie tekstów.

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

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

co zostanie z a n o t o w a n e w raporcie. 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. j e d e n lub więcej zadań. 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. 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 ) . selen iumhą. trzeba przenieść z a r ó w n o dane danych. że sumuje dwie liczby. p o n i e w a ż j e s t to szybka m e t o d a określenia. 2 i 2) i odczytaniu z w r ó c o n e j wartości. Dostępne jest za d a r m o na stronie: www. Testy jednostkowe okazały się j e d n ą z kluczowych technologii dla programowania grupowego. spowodowane przez wprowadzenie zmian. Test polega na wywołaniu funkcji dodaj z dwiema liczbami (np. z w y ł ą c z e n i e m tych najprostszych. Do testów j e d n o s t k o w y c h w PHP możesz wykorzystać narzędzie SimpleTest. co umożliwia zidentyfikowanie miejsc. test zakończy się wynikiem negatywnym. com/simple test. 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. b). 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. org Uruchamianie strony Po u k o ń c z e n i u f a z y t e s t ó w p r z y c h o d z i pora na p r z e n i e s i e n i e strony na s e r w e r ó w p r o d u k c y j n y c h . z których składa się system Joomla!. 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. Co więcej. Projektant może przypisywać poszczególnym programistom fragmenty aplikacji. p r o j e k t a n c i s ą w stanie nakreślić zarysy funkcji (ang. czy nowy kod nie w p ł y w a negatywnie na wcześniej działające funkcje. Komplet testów pozwala sprawdzać program po wprowadzeniu znaczących zmian. które należy przeprowadzić.282 Joomla!. ponieważ p r o c e s migracji. Jeśli w y n i k zgadza się z o c z e k i w a n y m (4 w tym przypadku). Jeśli zostanie zwrócony odmienny rezultat. stubs). która umożliwia zautomatyzowane testowanie stron W W W . wtedy f u n k c j a pozytywnie przeszła test j e d n o s t k o w y . jak i pliki. lastcraft. aby s t w o r z y ć kopię z a p a s o w ą . o której wiadomo. Jeśli przejdą one testy j e d n o s t k o w e . 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 . Powinieneś tworzyć testy jednostkowe i przeprowadzać automatyczne testowanie dla wszystkich t w o r z o n y c h rozszerzeń. 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 . 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ń. 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ę).php Możesz zastosować także aplikację Selenium. z o s t a j ą oznaczone j a k o gotowe do zintegrowania z resztą systemu. Z n a j d z i e s z j ą na stronie: h ttp ://selenium.

zależy od zmian w p r o w a d z a n y c h w systemie. Pamiętaj. niezbędną do p o p r a w n e g o uruchamiania aplikacji Joomla!. Plik configuration. Ponieważ wszystkie dane systemu przechowywane są w bazie danych M y S Q L . w ł ą c z a j ą c e bibliotekę gd2. które należy zarchiwizować.php Joomla! — Powinieneś z a w s z e tworzyć kopię z a p a s o w ą pliku c o n f i g u r a t i o n .ini z n a j d u j ą c y się na serwerze testowym zawiera prawdopodobnie zmiany ułatwiające programowanie. • Prowadzenie profesjonalnej strony 283 pozostałych e l e m e n t ó w . Pamiętaj. a często instalują także komponenty interfejsu administratora systemu Joomla!.Rozdział 11. aby d o p a s o w a ć wartość odpowiednich parametrów w pliku p o zakończeniu migracji.ini — Plik PHP. tak aby odpowiadały środowisku p r o d u k c y j n e m u .php). Dyrektywy PHP. Zazwyczaj pierwszą rzeczą wstawianą na stronę Joomla! jest nowe logo lub banner. • • • opia zapasowa Joomla! Serwer testowy zawiera p r a w d o p o d o b n i e sporo danych. np. Kolejnym krokiem są zmiany w szablonie i p o z o s t a ł y c h plikach. m o ż e s z dokładnie w y b r a ć . Liczba plików. P o d s t a w o w a lista elementów. Ręczne kopiowanie plików rozszerzeń nie jest z a z w y c z a j d o b r y m p o m y s ł e m . które chciałbyś przenieść na serwer produkcyjny. p h p na s e r w e r z e p r o d u k c y j n y m .php z serwera testowego na p r o d u k c y j n y j e s t d o p a s o w a n i e ustawień połączenia z b a z ą danych. większość zmian konfiguracji serwera Apache związana jest z a k t y w a c j ą modułów. j e d n a k w t e d y transfer musi się o d b y ć za p o m o c ą M y S Q L .conf— Podobnie j a k w przypadku PHP. w ł a ś c i w e g o dla środowiska testowego. . że wiele dyrektyw powinno mieć różne ustawienia w środowisku testowym i p r o d u k c y j n y m . a w przyszłości będzie m o ż n a szybko odtworzyć stronę z kopii. z a n i m p r z y s t ą p i s z do przenoszenia strony na serwer produkcyjny — uchroni Cię to przed utratą ustawień właściwych dla serwera produkcyjnego. Przykładowo jeśli tworzysz kopię z a p a s o w ą prostej strony — która od d o m y ś l n e j instalacji różni się wyłącznie dodanymi sekcjami. kategoriami i artykułami. np. które z nich s k o p i u j e s z . Rzadko jednak zdarzają się konfiguracje w swojej prostocie przypominające powyższy opis. g ł ó w n e ze w z g l ę d ó w b e z p i e c z e ń s t w a . p o n i e w a ż t w o r z ą o n e często w ł a s n e tabele. Ponieważ migracja między serwerami jest w głównej mierze przeprowadzana ręcznie. co ma zapewnić tę s a m ą f u n k c j o n a l n o ś ć w obu środowiskach. komponenty i dodatki wykorzystywane na serwerze testowym muszą zostać zainstalowane i skonfigurowane na serwerze produkcyjnym. aby nie p r z e o c z y ć któregoś z nich. a zmiany przeprowadzano z panelu administratora — wystarczy skopiować zawartość bazy danych i pojedynczy plik (configuration. warto mieć listę k l u c z o w y c h e t a p ó w . z m i e n i a j ą k o n f i g u r a c j ę . K l u c z o w ą z m i a n ą przy przenoszeniu pliku configuration. które należy przenieść: • Rozszerzenia — Wszystkie zainstalowane moduły. Dlatego w większości p r z y p a d k ó w stworzenie kopii zapasowej w y m a g a także skopiowania wszystkich plików. W większości p r z y p a d k ó w n i e z b ę d n e s ą z m i a n y wartości dyrektyw związanych z rozszerzeniami PHP. k o m p o n e n t ó w i niskiego p o z i o m u z a b e z p i e c z e ń . Dyrektywy Apache w httpd.

które p o z w a l a j ą m.com. tłum. kiedy p o t r z e b u j e s z j e d n ą w e r s j ę strony dla k l i e n t ó w ( w w w . Kliknij ikonę Backup w lewej części głównego okna programu.cnn. po tym. j Compatibility mod« ' A N S I Quotes S a v e Project * Complete INSERTS s s/\ Pnmmenl L. j a k zmieni się prawy panel. aby tworzyć kopię zapasową plików znajdujących się na serwerze produkcyjnym — nie wykorzystuj serwera testowego jako podstawy kopii. This option is necessary to cr consistent snapshot of your MylSAM tables This backup method is the same as InnoDB Online Backup but also logs the c position of the binlog if the option is activated for the server Each table will be backed up independently.disney. Chociaż środowisko testowe jest ważnym etapem. 1 Alternatywnym rozwiązaniem jest wykorzystanie jednej bazy danych z różnymi przedrostkami tabel poszczególnych instalacji Joomla! — p r z y p . c o m ) . Use this option if tables are added to schémas frequently Nr backup content table selection will be ignored.. This may lead to inconsistent bac and should be avoided if possible Backup all tables. i New Project Konfiguracja wirtualnych serwerów Apache Pojedynczy serwer Apache m o ż e obsługiwać wiele strony W W W . System kopii zapasowych zwiera wiele opcji (zobacz rysunek 11. Jeśli p r o w a d z i s z kilka stron J o o m l a ! na j e d n y m serwerze.ution Method The backup will be executed in a single transaction This option is necessary ti a consistent snapshot of your InnoDB tables All tables are locked with FLUSH READ LOCKS. tworzyć kopię z a p a s o w ą struktury i danych (włączając w to tworzenie i u s u w a n i e tabel). Profesjonalne tworzenie stron WN 1W Pamiętaj. d o s t a w c y przyklad. • InnoDE Online Backup Lock all tables Online with binlog pos Normal backup Complete backup Output File Options Backup Type: • No C R E A T E S Nn F X T F N D F n I N S F R T S | SQL Files • Type of generated backup file. p r z y k l a d .5). znajduje się na serwerze produkcyjnym. Serwer testowy odpowiada zazwyczaj pewnej fazie prac programistycznych i nie nadaje się do bezpośredniego przeniesienia na serwer produkcyjny. kliknij przycisk N e w Project. Rozbudowane ustawienia planowanych kopii zapasowych w programie MySQL Administrator Backup Project Advanced Options Schedule • A d v a n c e d Options * if* Specify detailed settings of how your backup should be performed Backup E . z której korzystają użytkownicy. . a następnie. Żądania przesyłane na dany adres IP p o w o d u j ą uruchomienie strony właściwej dla d a n e j d o m e n y . Przykładowo pojedynczy s e r w e r m ó g ł b y t e o r e t y c z n i e o b s ł u g i w a ć z a r ó w n o www. właściwa strona.. a d r u g ą dla d o s t a w c ó w ( w w w .com. A p l i k a c j a M y S Q L A d m i n i s t r a t o r p o z w a l a na o k r e s o w e t w o r z e n i e kopii z a p a s o w e j bazy danych.com). w y s t a r c z y zainstalować j e w oddzielnych katalogach i przypisać im oddzielne bazy danych 1 . jak i www. Jeśli ona zawiedzie. F u n k c j a obsługi wielu stron A p a c h e p o z w a l a przypisać n a z w y d o m e n do poszczególnych adresów IP.in. W i r t u a l n e s e r w e r y s ą d o s k o n a ł y m r o z w i ą z a n i e m w sytuacji.284 Joomla!.5. będzie Ci zależeć na przywróceniu jej w możliwie krótkim czasie. Rysunek 11.

exe -w -n "Apache2.com ServerAlias *. adresy IP przypisywane są wirtualnym serwerom działającym na j e d n e j maszynie. u r u c h o m i ć .3/vhosts/name-based.2\bin\httpd.apache.2" -k restart arządzanie wieloma serwerami Prawdopodobnie napotkasz w swojej pracy sytuację.przyklad. ontrola serwera Apache z wiersza poleceń Większość zadań administracyjnych serwera Apache przeprowadzanych jest z poziomu wiersza poleceń. • Prowadzenie profesjonalnej strony Przykładowy fragment konfiguracji A p a c h e dla kilku stron m ó g ł b y wyglądać tak: <VirtualHost xx.Rozdział 11. n a l e ż y wprowadzić k o m e n d ę p o d o b n ą do poniższej: C:\Program Files\Apache\Apache2. W momencie pisania tej książki nie istniało n a r z ę d z i e .com combined ScriptAlias /cgi-bin/ /home/przyklad/publicjitml/cgi-bin/ </Vi rtualHost> 285 W p o w y ż s z y m f r a g m e n c i e wirtualne serwery z a k ł a d a n e s ą na podstawie adresów IP. w p i s u j ą c o d p o w i e d n i e k o m e n d y .com ServerAlias innastrona.com DocumentRoot /home/przyklad/public_html BytesLog domlogs/przyklad.c> php_admin_value open_basedir "/home/przyklad:/usr/lib/php :/usr/1ocal/I ib/php:/tmp" </IfModule> <IfModule mod_php5.com/ ServerAdmi n webmaster@przyklad.com/ ServerAlias innyadres2.i nnyadres2.xx. P r z y k ł a d o w o aby u r u c h o m i ć p o n o w n i e s e r w e r .com ServerAl1 as http://www. Więcej informacji na temat wirtualnych serwerów korzystających z przekierowania na podstawie d o m e n y znajdziesz na stronie serwera Apache (http://httpd.org/docs/ 1. które p o z w a l a ł o z a r z ą d z a ć w i e l o m a s t r o n a m i J o o m l a ! z p o z i o m u . Alternatywnym rozwiązaniem są wirtualne serwery na podstawie domeny.com/ <IfModule mod_php4. zainstalowanych na różnych serwerach.i nnyadres. które pozwalają obsługiwać kilka stron w r ó ż n y c h d o m e n a c h na m a s z y n i e d y s p o n u j ą c e j j e d n y m a d r e s e m IP.przyklad. a także z a t r z y m a ć . S e r w e r uruchamia o d p o w i e d n i ą stronę na podstawie parametru hostname dostarczonego w żądaniu H T T P . u r u c h o m i ć p o n o w n i e .com ServerAli as http://www.html). innyadres2.xx. tzn.xxx> ServerAlias przyklad.innyadres.c> php_adm1n_value open_basedir "/home/przyklad:/usr/1 i b/php :/usr/1ocal/11b/php:/tmp" </IfModule> User przykład Group przykład CustomLog /usr/1ocal/apache/domlogs/przykl ad.com ServerAlias *. kiedy będziesz prowadzić kilka stron opartych na Joomla!.com ServerAlias *.com-bytesjog ServerName http://www. Serwer m o ż e s z w s t r z y m a ć .

możesz tak j e skonfigurować. które wykracza poza normalne warunki. Program Dieseltest m o ż n a znaleźć na stronie: http://sourceforge. Niezbędna zmiana w konfiguracji sprowadza się do ustawienia zmiennej $cfg['Servers' ]. Test obciążeniowy można przeprowadzić za p o m o c ą narzędzia open source o nazwie Dieseltest Load Testing Software. obciążenie generowane przez setki lub tysiące użytkowników. zatrzymać. MySQL Instance Manager M y S Q L Instance M a n a g e r jest n a r z ę d z i e m o b s ł u g i w a n y m z wiersza poleceń. dostępnym w wersji dla systemów uniksowych i Windows. które p o z w a l a j ą na analizę dzienników. Testy obciążeniowe Przed p r z e n i e s i e n i e m strony do ś r o d o w i s k a p r o d u k c y j n e g o w a r t o poddać system testowi obciążeniowemu (ang. k t ó r y c h rezultaty w y ś w i e t l a n e są na bieżąco. dzięki czemu można w y z n a c z y ć granicę poprawnego działania. Test tego typu polega na wytworzeniu sztucznego obciążenia serwera W W W (np. dzięki czemu można zebrać dodatkowe statystyki. np. PhpMyAdmin Jeśli do zarządzania serwerem M y S Q L wykorzystujesz narzędzie phpMyAdmin. Szczególnie użyteczne jest sprawdzanie systemu przy obciążeniu. Za p o m o c ą programu można symulować różne scenariusze. — p r z y p . kontrolować m o ż n a też serwery zdalne. a także u r u c h o m i ć p o n o w n i e . Profesjonalne tworzenie stron WN 1W p o j e d y n c z e g o i n t e r f e j s u . które u ł a t w i a j ą zarządzanie p o z o s t a ł y m i s e r w e r a m i . P r z y k ł a d o w o dla M y S Q L m o ż e s z s k o r z y s t a ć z p r o g r a m u . w ten sposób uzyskujesz dostęp z j e d n e g o miejsca do kilku baz danych Joomla!. która umożliwia wprowadzenie identycznych ustawień na wszystkich serwerach. który z o s t a n i e a u t o m a t y c z n i e u r u c h o m i o n y p o n o w n i e przez narzędzie M y S Q L Instance Manager w przypadku wystąpienia błędu. 1 dla drugiego itd. Pakiet zawiera także narzędzia. u r u c h o m i ć go. które przedstawiono na rysunku 11. O b e c n i e d o s t ę p n e s ą r o z w i ą z a n i a . pole $cfg[ 'Servers'] '-»•[Si][ 'host' ]2 p o w i n n o zawierać n a z w ę danego serwera. M o ż l i w e j e s t z a p i s y w a n i e i o d t w a r z a n i e s c e n a r i u s z y . load testing). aby działało z w i e l o m a serwerami M y S Q L .6. guarded) serwer. M o ż e s z także wybrać chroniony (ang. Pozwala sprawdzić stan dowolnego z zestawu s e r w e r ó w . Kontrolowane serwery nie muszą znajdować się w jednej sieci lokalnej.net/projects/dieseltest W miejsce $ należy wstawić 0 dla pierwszego serwera. liitm. który pozwala zarządzać wieloma serwerami. Program ma funkcję ujednoliconej konfiguracji.286 Joomla!. 1 . wysyłanie setki żądań w bardzo krótkim czasie) i monitorowaniu rezultatu.

Wiele informacji..stickyminds. • Prowadzenie profesjonalnej strony sunek 11. Stworzenie skutecznego profilu obciążenia ma w sobie elementy sztuki i nauki. Po przeniesieniu do środowiska .net/projects/dbmonster Narzędzie D B M o n s t e r tworzy n a j p i e r w l o s o w e dane. którą znajdziesz na stronie: http://sourceforge.asp ?F=S3116_A R T_2). równoważenie obciążenia Bliźniaczym zagadnieniem dla testów pod obciążeniem jest r ó w n o w a ż e n i e obciążenia.sourcefbrge. aby określić. które z o s t a n ą u m i e s z c z o n e w bazie danych. stosując aplikację D B Monster. strona nadal będzie dostępna).6. PHP i bazę danych). Aby sprawdzić konfigurację M y S Q L i ogólną wydajność serwera.. działa zazwyczaj w sieci lokalnej ( L A N ) i w y k o n u j e wszystkie usługi ( W W W . net Każda z w y m i e n i o n y c h aplikacji p o z w a l a stworzyć profil obciążenia. możesz wykorzystać pakiet Database Opensource Test Suite for Linux Test Project.tst Timeout (sec) Use recorded think time ¡60 (¡7 User ramp-up time (sec) [Î Create New Script. z których część m o ż e służyć j a k o z a b e z p i e c z e n i e (nawet jeśli j e d n a z m a s z y n z a w i e d z i e . a reszta m o ż e obsługiwać p r z e k a z y w a n e żądania (rozsyłane między identyczne serwery. p r a w d o p o d o b n i e b ę d z i e d z i a ł a ć na kilku s e r w e r a c h . Scripts in this test (Double-click a script below to edit). na ile zostały one zoptymalizowane i jak skutecznie działają w przypadku dużej ilości danych. dostępny na stronie: http. Scripts not in this test Testy pod o b c i ą ż e n i e m dla serwera M y S Q L m o ż n a p r z e p r o w a d z i ć . W środowisku testowym możliwości równoważenia obciążenia są z reguły niewielkie.com/ s. tworząc profil obciążenia.V/ltp. tzn. w s k a z ó w e k i zagadnień. które warto r o z w a ż y ć . Jeśli strona zyska o g r o m n ą p o p u l a r n o ś ć . j a k i e operacje będą przeprowadzane na serwerze w czasie testów. ilikacja Dieseltest muluje działania •ytkowników ) przeprowadzenia stu )ciążeniowego irwera 287 Current Test: Victual Users Run time (min:sec) Use recorded host NewTesll.Rozdział 11. określić. z n a j d z i e s z w artykule autorstwa S t e v e ' a Splaine'a „Modeling the Real World for Load Testing W e b Sites" (www. aby zapewnić lepszą w y d a j n o ś ć całej witryny). Serwer testowy dysponuje ograniczonymi zasobami. Po wstawieniu danych możesz wykorzystać program do analizy zapytań.

a każdy z nich będzie dysponował znaczącą ilością pamięci i miejscem na dysku twardym.8 z a k ł a d a z a p i s y w a n i e ich w postaci c i ą g ó w o różnej długości. ISO 8859-2 i CP1250. tłum. a także tekstów pisanych od p r a w e j d o lewej. Narzędzie do r ó w n o w a ż e n i a obciążenia o nazwie phpLoadBalancer znajdziesz na stronie: http://sourceforge.net/projects/phploadbalancer W przypadku większych systemów warto rozważyć aplikację X L B HTTP Load Balancer (XLB) (http://sourceforge. Profesjonalne tworzenie stron WN 1W p r o d u k c y j n e g o w i ę k s z o ś ć s y s t e m ó w J o o m l a ! b ę d z i e d o s t ę p n a w internecie. P o d s t a w o w e techniki r ó w n o w a ż e n i a obciążenia można zastosować na serwerze testowym. a r o z m i a r w i ę k s z o ś c i t e k s t ó w nie w z r a s t a z n a c z ą c o . teksty w j ę z y k a c h z a c h o d n i o e u r o p e j s k i c h (a także niektórych ś r o d k o w o e u r o p e j s k i c h . Wymienione programy umożliwiają równoważenie obciążenia na poziomie serwera. . który polega na zapisywaniu k a ż d e g o z n a k u w postaci d w ó c h b a j t ó w . Jeden znak (np. sprawdź czy Joomla! i serwer M y S Q L zostały odpowiednio skonfigurowane.5 aplikacja Joomla! została napisana od podstaw. podczas gdy inny (rzadki chiński p i k t o g r a m ) n a w e t trzy b a j t y . p o l s k i m ) m a j ą rozmiar p o r ó w n y w a l n y z tekstami zakodowanymi systemami j e d n o b a j t o w y m i \ przy czym tekst zapisany w ten sposób nie jest ograniczony do j e d n e g o j ę z y k a . Wszystkie n o w e w y d a n i a Joomla! z a w i e r a j ą pełną obsługę wielu j ę z y k ó w .288 Joomla!. Np. Z a a w a n s o w a n e r ó w n o w a ż e n i e obciążenia w y m a g a jednak w a r u n k ó w o d p o w i a d a j ą c y c h środowisku p r o d u k c y j n e m u . na j e d n y m lub kilku serwerach. głównie pod kątem obsługi stron w j ę z y k a c h innych niż angielski.8 p o z w a l a na bogatszy zestaw z n a k ó w . np. Jeśli p l a n u j e s z obsługę z n a k ó w spoza alfabetu łacińskiego. Umiędzynaradawianie Podczas tworzenia wersji 1. co skutk u j e lepszą skalowalnością rozwiązań. N a p r a w d ę rzadkie znaki w y m a g a j ą zużycia czterech bajtów. K o d o w a n i e U T F .linuxvirtualserver. aby korzystać z kodowania UTF-8. aby określić j e g o słabe punkty.org). litera z łacińskiego alfabetu) m o ż e z a j m o w a ć j e d e n bajt. S c h e m a t k o d o w a n i a z n a k ó w U T F . J e d n y m z największych w y z w a ń tego procesu było wprowadzenie kodowania tekstu w standardzie UTF-8.net/projects/xlb) lub Linux Virtual Server (www. co pozwala na skuteczną Obsługę wielu j ę z y k ó w . P o n i e w a ż litery łacińskie k o d o w a n e są w postaci j e d n e g o bajta. Powyższy schemat ma sporą przewagę nad standardem Unicode. dwoma popularnymi systemami kodowania znaków na polskich stronach internetowych przed rozpowszechnieniem UTF-8 — przyp.

Dlatego optymalizacja M y S Q L p o w i n n a p r z e b i e g a ć d w u t o r o w o : z j e d n e j strony n a l e ż y o d p o w i e d n i o dobrać ustawienia serwera. a z drugiej zoptymalizować aplikację i strukturę bazy danych. Ponieważ wszystkie materiały Joomla! pobierane są z bazy danych M y S Q L . Jeśli korzystasz z rozszerzeń. p r z e c h o w u j ą c dane na innym dysku niż system operacyjny. Odbieranie i zapisywanie informacji p o w i n n o przebiegać szybciej.girlsgonedumb. które wykonują zapytania do bazy danych. z a p o b i e g n ą u r a ż e n i u pozostałych odwiedzających. . m o ż e s z zwiększyć w y d a j n o ś ć . W y b r a n e słowa z o s t a n ą zastąpione g w i a z d k ą (*). Warto zainteresować się także r o z s z e r z e n i e m Foul Filter. sposób pracy z bazą danych i ogólna konstrukcja zapytań. warto zastosować narzędzia. Jeśli korzystasz z serwera na platformie W i n d o w s .41/ lostrajanie wydajności MySQL Chociaż o d p o w i e d n i e ustawienia m o g ą z n a c z ą c o p r z y s p i e s z y ć działanie P H P . które u k r y w a w s z y s t k i e słowa z listy określanej przez administratora. Dostrajanie wydajności MySQL wykracza poza zmianę konfiguracji. Zmiany b ę d ą widoczne natychmiast po wprowadzeniu. • Prowadzenie profesjonalnej strony 289 utomatyczne cenzurowanie treści Jeśli strona pozwala na publikowanie treści napisanych przez użytkowników. dostrojenie w y d a j n o ś c i M y S Q L m o ż e przynieść znaczącą poprawę szybkości działania strony W W W — zwłaszcza jeśli działa ona pod d u ż y m obciążeniem.Rozdział 11. co optymalna konfiguracja. U k r y w a n i e m o ż e o d b y w a ć się dla tekstów użytkowników z danych grup lub dla wszystkich. z a n i m zostanie p r z e s ł a n y d o p r z e g l ą d a r k i . jest format tabel.com/component/option. które u s u w a j ą c w u l g a r y z m y i inne n i e p o ż ą d a n e treści. równie znaczący. Wtyczka nie zmienia treści a r t y k u ł ó w . Rozszerzenie Foul Filter można znaleźć na stronie: www. d o d a n i e n o w y c h słów do listy cenzurowanych lub rehabilitacja dotychczasowych). istawianie dysku przechowującego dane Serwer M y S Q L pozwala określić miejsce przechowywania danych. funcjileinfo/id. 1 comremos i torv/ltemid. (w tym księgi gości) m a w b u d o w a n e f u n k c j e automatycznej cenzury niepożądanych słów. tylko p r z e c h w y t u j e i z m i e n i a tekst. Wiele z narzędzi opisanych w rozdziale 10. a także na z m i a n ę zasad (np. T a k i e r o z w i ą z a n i e p o z w a l a na p o z o s t a w i e n i e o r y g i n a l n y c h materiałów w stanie n i e n a r u s z o n y m . p r a w d z i w y potencjał drzemie w konfiguracji serwera M y S Q L .

na k t ó r y m u r u c h o m i o n o kilka usług. p r z e d s t a w i o n y na r y s u n k u 11. Nie zmieniaj domyślnych ustawień. umożliwia wybór jednego ze standardowych zadań. Ustawienie Server Machine dostosuje MySQL do warunków serwera. . Dedicated MySQL Server Machine ( \ J! • This machine is dedicated to run the MySQL Database Server. wykorzystanie dysku twardego i pamięci podręcznej pod kątem środowiska MySQL Server Instance Configuration Wizard MySQL Server Instance Configuration Choose the configuration for the server instance. N i e p o w i n i e n e ś w p r o w a d z a ć z m i a n na ekranie wyboru domyślnego zestawu znaków (zobacz rysunek 11.290 Joomla!. MySQL will utilize up to all available memory. chyba że ze względu na zaporę sieciową musisz z m i e n i ć n u m e r portu M y S Q L . Choose this option for web/application servers. MySQL Server should only use a minimal amount of memory. such as a web or mail server. Dla większości instalacji Joomla! ustawienie Decision Support (DSS)/OLAP będzie dobrym wyborem. dla której spójność transakcji ma najwyższe znaczenie. O p c j ę Dedicated MySQL Server Machine stosuje się w przypadku m a s z y n obsługujących wyłącznie serwer baz danych. will be run. disk and CPU usage. Ekran ustawień połączeń. • Developer Machine: | gggâgf f This is a development machine. Uruchom program i wybierz opcję Reconfigure Instance. This will influence memory. by dopasować j ą do roli systemu. przedstawiony na rysunku 11.8. Profesjonalne tworzenie stron WN 1W Wybór typu serwera A p l i k a c j a M y S Q L p o z w a l a a u t o m a t y c z n i e dobrać ustawienia. aby uzyskać maksymalną wydajność dla danego zastosowania. a następnie Detailed Configuration. Rysunek 11. który w y m a g a zachowania spójności transakcji. Pozwala ono zmienić konfigurację. MySQL will have medium memory usage. aby instalator odpowiednio dopasował procedury składowania w bazie danych. z i l u s t r o w a n e na r y s u n k u 11. pozwala określić oczekiwaną liczbę jednoczesnych połączeń. and many other applications will be run on it. No other servers. chyba że planujesz ponowną instalację Joomla!. Jeśli prowadzisz stronę e-commerce.7. Wybór typu serwera dopasuje ustawienia pamięci. najlepszym w y b o r e m będzie p r a w d o p o d o b n i e Transactional Database Only. trybem strict i innymi. U s t a w i e n i a w y k o r z y s t a n i a s e r w e r a baz d a n y c h .10). Wybór opcji Online Transaction Processing (OLTP) spowoduje zużycie większej części zasobów. która nie musi o b s ł u g i w a ć d u ż e j ilości danych w p r o w a d z a n y c h przez u ż y t k o w n i k ó w lub sklep internetowy. Server Machine s J| Several server applications will be running on this machine.7. Jeśli j e d n a k p r o w a d z i s z stronę. Please select a server type. opcja Non-Transactional Database Only zwiększy w y d a j n o ś ć serwera. Oczywistym wyborem na serwerze testowym jest Developer Machine. które m a spełniać serwer M y S Q L . ponieważ zostaną zarezerwowane na wypadek w y ż s z e g o obciążenia. R a z e m z serwerem instalowane jest narzędzie o nazwie M y S Q L Server Instance Configuration Wizard. Kolejne ekrany p o z w a l a j ą dostawać opcje związane z protokołem sieciowym.9. Ekran Server Type. powinny w s k a z y w a ć w p r z y p a d k u większości s y s t e m ó w Joomla! d o m y ś l n ą o p c j ę Multifunctional Database. Zestaw z n a k ó w bazy danych powinien zostać ustawiony przed instalacją Joomla!.

Manual Selected Default Character Set / Collation 4T ? j Please specify the character set to use. sz wyłącznie Usługujących ansakcje i baz ez obsługi ansakcji MySQL Server Instance Configuration Choose the configuration for the server instance.ionSupport(DSS)/OLAP: a jjk m$r Select this option for database applications that will not require a high number of concurrent connections. monitoring or logging applications as well as analysis programs. This character set is suited for M k t . A number of 20 connections will be assumed. Transactional Database Only Optimized for application servers and transactional web applications. Character Set: utf8 < Back j I Next > | Cancel . Please select the default character set. Manual Setting "îr'i Please enter the approximate number of concurrent connections. This will make InnoDB the main storage engine. Online Transaction Processing (OLTP) j* / jk Choose this option for highly concurrent applications that may have at any one time up to 500 active connections such as heavily loaded web servers.Rozdział 11. E n g l i s h and other West European languages. Standard Character Set fHeio!) Makes Latin 1 the default charset.8. C Multifunctional Database General purpose databases. • Prowadzenie profesjonalnej strony 291 sunek 11. 1stawienia ołączeń serwerem ptymalizują lySQL pod kątem czekiwanego bciążenia MySQL Server Instance Configuration Wizard MySQL Server Instance Configuration Choose the configuration for the server instance.10. . Note that the My 15AM engine can still be used. Concurrent connections: d ysunek 11. Vybierz opcję lest Support for Aultilingualism UTF8). Please select the database usage. * fSon-Transactional Database Only! Suited for simple web applications.9. This will optimize the server for the use of the fast transactional InnoDB storage engine and the high speed MylSAM storage engine. jeśli ilanujesz obsługę nnych języków liż angielski MySQL Server instance Configuration W i z a r d MySQL Server Instance Configuration Choose the configuration for the server instance. Decis. ożna ograniczyć py baz danych -) wielofunkcyjnyc baz danych. This is the recommended character set for storing text in many different languages. Ksunek 11. Please set the approximate number of concurrent connections to the server. Only the non-transactional MylSAM storage engine will be activated. • Best Support For Multilingualismi M a ke UTF8 the default character set.

które zaczynają się na literę „B". Optymalizacja indeksów Jednym z głównych obszarów odpowiedzialnych za problemy z wydajnością są indeksy tabel w y k o r z y s t y w a n e p r z e z s e r w e r b a z d a n y c h ( w ł a ś n i e m a n i p u l a c j a indeksami jest źródłem n a j w i ę k s z y c h z y s k ó w w y d a j n o ś c i ) . W r a z z danymi na serwerze zapisywany jest także indeks. tj. Na dodatek tabele. ponieważ w y m a g a j ą zapisywania d o d a t k o w y c h danych przy wstawianiu n o w y c h lub m o d y f i k o w a n i u istniejących rekordów. Profesjonalne tworzenie stron WN 1W P o z o s t a ł e u s t a w i e n i a to k w e s t i a o s o b i s t y c h p r e f e r e n c j i . Indeksy tego typu noszą n a z w ę indeksów kompozytowych. W naszym przykładzie zapytanie spowodowałoby odwołanie się do indeksu dla pola nazwisko. Jeśli jednak zmienisz hasło dostępu do serwera baz danych. Istnieją także indeksy. Wręcz przeciwnie — m o g ą spowolnić pracę serwera. które tworzysz na potrzeby własnych rozszerzeń.292 Joomla!. Indeksy r z a d k o u ż y w a n e (lub n i g d y n i e u ż y w a n e ) nie p r z e ł o ż ą się na znaczący wzrost wydajności. nie m a j ą o n e d u ż e g o znaczenia dla konfiguracji Joomla!. listę o d w o ł a ń d o r e k o r d ó w p o s o r t o w a n ą w p e w i e n s p o s ó b . Źródło problemów Baza danych Joomla! została zaprojektowana pod kątem ogólnego wykorzystania. catid. n a z w i s k a i imienia. Indeksy należy utworzyć dla wszystkich pól (lub ich kombinacji) często wykorzystywanych w z a p y t a n i a c h . s e r w e r baz d a n y c h w y k o r z y s t u j e i n d e k s y . P r z y k ł a d o w o tabela jos content posiada siedem powiązanych indeksów. n a z w i s k a . Zastosowanie indeksów kompozytowych P r o s t e i n d e k s y o d w o ł u j ą się w y ł ą c z n i e d o j e d n e g o p o l a — np. N a r y s u n k u 11. N a przykład dla tabeli p r z e c h o w u j ą c e j dane o kontaktach rekord dla nazwiska „Zieliński" m o ż e zostać zapisany j a k o pierwszy. które o d w o ł u j ą się d o kilku pól. D a n e w b a z i e d a n y c h p r z e c h o w y w a n e są w luźnym p o r z ą d k u (są n i e p o s o r t o w a n e ) . U t w o r z e n i e p o s o r t o w a n e j listy wszystkich nazwisk. takich j a k access. co umożliwia szybkie sortowanie danych po wartości pól. wymagałoby poświęcenia dużej części zasobów i czasu procesora. A b y p r z y s p i e s z y ć f u n k c j e w y s z u k i w a n i a i s o r t o w a n i a . np. także m o ż n a zoptymalizować. P r z y k ł a d o w o i n d e k s o n a z w i e nazwisko_imie m ó g ł b y w s k a z y w a ć na d w a pola — nazwiska i imienia.11 z i l u s t r o w a n o f u n k c j ę p r o g r a m u M y S Q L Administrator. aby poprzez zmianę j e j struktury uzyskać w y ż s z ą wydajność. aby a p l i k a c j a m o g ł a p o p r a w n i e łączyć się z serwerem baz danych. section itd. . a rekord dla nazwiska „ A d a m c z y k " na s a m y m końcu. Kiepski dobór indeksów jest jednym z głównych powodów problemów z wydajnością.php. dlatego istnieją sposoby. Indeks w bazie danych gra taką rolę jak skorowidz w książce — p o z w a l a s z y b k o o d n a l e ź ć o d p o w i e d n i ą stroną (lub rekordy — w przypadku bazy danych). musisz o d p o w i e d n i o z m i e n i ć plik configuration. która p r z e d s t a w i a listę i n d e k s ó w bazy danych J o o m l a ! .

czy w a r t o ś ć pola wojewodztwo jest odpowiednia. które niweczą zysk wydajności. aby zoptymalizować w y k o n y w a n e zapytanie. • Prowadzenie profesjonalnej strony ysunek 11. sprawdzić. natomiast zapytanie o d w o ł u j ą c e się wyłącznie do pola imienia nie zyska na zastosowaniu indeksu. Nie jest to prawdą. że zastosowanie indeksów zawsze przynosi wzrost wydajności. W takiej sytuacji zastosowanie indeksu kompozytowego (np. jest porządek pól tworzonego indeksu. czy zapytanie zostanie przetworzone z w y k o r z y s t a n i e m indeksów. czy zastosować indeks. a serwer o p e r u j e b e z p o ś r e d n i o na d a n y c h z b a z y . Z tego p o w o d u w y s z u k i w a n i e rekordów w e d ł u g nazwiska będzie korzystać z tego indeksu. w y s t a r c z y ł o b y p o b r a ć rekord. czy nie.11. Serwer baz danych musiałby w tym przypadku sprawdzić indeks. a następnie w e d ł u g imienia. p o n i e w a ż serwer baz d a n y c h p r z e p r o w a d z a a u t o m a t y c z n i e w i e l e operacji. są automatycznie ignorowane. dla indeksu nazwisko_imie wpisy sortowane są najpierw w e d ł u g nazwiska.Rozdział 11. wybrać pasujące rekordy. . czy więcej niż 30 procent i n d e k s o w a n y c h pól m a u n i k a t o w e wartości. Dlatego indeksy pól lub kolumn. nlkatowe wartości indeksowanego pola M o ż e się w y d a w a ć . zastosowanie indeksu podczas wykonywania zapytania wywołałoby skutek odwrotny do zamierzonego. ponieważ nieoczekiwany wynik zapytania nie p o k r y w a się z założeniami indeksu w bazie danych. J e d n y m z etapów procesu optymalizacji jest określenie. i zwrócić dane j a k o wynik. Jeśli 90 procent osób wprowadzonych w bazie danych mieszka w Zachodniopomorskiem. tzn. ista indeksów 'tworzonych IIa bazy danych oomla! / programie /lySQL idministrator Schema Tables Schema Indices Views Sloied procedures 293 * ¡ODiiila15 All loomlal 5 indices Table Name jos_contact_details ios_fb_messages ~ ~ jos_newsfeeds jos_sb_categories ~ ï | jos_sb_messages ~ jos_sb_moderation jos_weblinks ~J| jos_sb_categories Fin! ¡os_categories ¡osjnenu jos_comment jos_users jos_users i° s _'h_users Type BTREE BTREE BTREE BTREE BTREE BTREE BTREE BTREE BTREE BTREE BTREE BTREE BTREE BTREE BTREE BTREE UNIQUE NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL UNIQUE Unique Not Nu« NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL Index Name > 3 csl«f • j catid * » Ü > 3 > 3 • • łi catid catid catid catid ^ catid catpaient • M ca. Jedną z metod określenia. wczytać j e i w końcu pobrać w ł a ś c i w e dane. wojewodztwo_nazwisko) mogłoby spowodować znaczący wzrost wydajności zapytań w y m a g a j ą c y c h obu tych informacji. których unikatowość rekordów wynosi mniej niż 30 procent. Jeśli j e d n a k indeks zostałby z i g n o r o w a n y . P r z y k ł a d o w o baza k o n t a k t ó w m o ż e z a w i e r a ć pole wojewodztwo. jest sprawdzenie.-idx • ¿ y components • " 3 com_contentid • 3 email • j j gid_block • ¿¡J groupJd • 3 group_id_aro_id_groups_ar ~ y jos_core_acl_gtoups_aro_r « BTREE ~ 3 jos_fb_messages jos_sb_messages • " 3 hold time < > Jednym i najczęstszych z błędów. Podczas tworzenia indeksu odwołania sortowane są w e d ł u g kolejnych pól.

poza tym nie warto także przejmować się bliżej nieokreślonymi trudnościami. a także informacjami o miejscu z a j m o w a n y m w bazie danych. D l a t e g o z a w s z e s p r a w d z a j . tabela zawiera pole typu CHAR o określonej długości 200. W y o b r a ź sobie stratę 2 b a j t ó w na polu. j e j pożytek staje się j a s n y w w i ę k s z e j skali. A to p r z e c i e ż strata tylko dwóch b a j t ó w dla j e d n e g o pola. Chociaż taka oszczędność może w y d a w a ć się z n i k o m a . Pierwszym krokiem podczas usuwania nadmiarowości jest sprawdzenie. co mogło stanowić szczególny problem przy przejściu do nowego tysiąclecia). ale którego zapis z a j m u j e dwa razy tyle miejsca). Przykładowo jeśli masz zamiar zapisywać n u m e r dnia w danym roku. Pomijając to. ponieważ M y S Q L wykorzysta indeks kompozytowy podczas wyszukiwania danego pola. który odpowiada danej sytuacji. że o g r a n i c z e n i e r o z m i a r u d a n y c h m a z a z w y c z a j p o z y t y w n y w p ł y w na wydajność. ile niepotrzebn y c h d a n y c h z o s t a ł o p r z e t w o r z o n y c h w bazie d a n y c h . Jeśli przykładowo dla tabeli utworzono indeks nazwiskojmie. Projektanci baz danych często u l e g a j ą pokusie przeprojektowywania tabel. pomóż to przez 8 pól. czy proste indeksy nie p o k r y w a j ą się z indeksami k o m p o z y t o w y m i . Zawartość tabeli powinna być p o m o c n a w określaniu n a j m n i e j s z e g o typu danych. czy b a z a d a n y c h nie zawiera nadmiarowych indeksów. Usuwanie nadmiarowych indeksów Każdy dodatkowy indeks wydłuża czas potrzebny na zapisanie rekordu w tabeli. zastosuj typ SMALLINT ( k t ó r e g o z a k r e s sięga o k o ł o 32 0 0 0 ) z a m i a s t s t a n d a r d o w e g o INT ( k t ó r e g o z a k r e s sięga 2 miliardów. k t ó r y c h f u n k c j e się p o k r y w a j ą . indeks nazwisko jest całkowicie zbędny. Zwłaszcza podczas pracy g r u p o w e j m o ż e zdarzyć się sytuacja. W tabeli 11. aby ich posortowanie odpowiadało porządkowi danych. Eliminacja ich m o ż e poprawić w y d a j n o ś ć . strategie indeksowania pól należy regularnie rewidować i sprawdzać. w a r t o p a m i ę t a ć .294 Joomla!. Wyobraź sobie teraz najgorszy możliwy scenariusz. pomnóż to przez 2 0 0 0 odwiedzających w ciągu godziny i zobacz. że zostaną dodane indeksy. powinieneś zwrócić szczególną u w a g ę na d o b ó r w ł a ś c i w y c h t y p ó w d a n y c h dla pól lub k o l u m n . Dlatego nadmiarowe indeksy przyc z y n i a j ą się d o spowolnienia systemu. jakie nakładają. zamiast pola typu VARCHAR. szczególnie po doświadczeniach związ a n y c h z z a p i s e m roku 2 0 0 0 (rok p r z e c h o w y w a n y był w bazach d a n y c h w postaci dwóch cyfr. które można wykorzystać w M y S Q L . które m o g ł y b y wystąpić w przyszłości. Wykorzystuj najmniejszy możliwy typ danych Konstruując tabele dla rozszerzenia.1 umieszczono listę typów danych. Profesjonalne tworzenie stron WN 1W Ponieważ dla większości baz danych charakterystyka zawartości zmienia się wraz z rozwojem bazy.c o m m e r c e z d u ż ą l i c z b ą transakcji lub p o p u l a r n e f o r u m może w y m a g a ć usunięcia niepotrzebnych opóźnień. czy wcześniejsze założenia nadal m a j ą pokrycie w praktyce. Ilość zmarnowanego miejsca i przesyłanych danych będzie stale wzrastać. Chociaż nie musi to być p r o b l e m e m dla tradycyjnej strony J o o m l a ! . . strona e . wraz z ograniczeniami. nad którym pracujesz. Podobnie indeks nazwisko_imie_drugieimie wyklucza konieczność stosowania indeksu nazwiskojmie. znacząco ograniczając wydajność systemu. pomnóż to przez 30 u ż y t k o w n i k ó w podczas jednej sesji. Po dodaniu nowych lub zmodyfikowaniu istniejących rekordów trzeba przebudować wszystkie indeksy.

/ + 8.295) Zmienna (do 65.967. ./ + 32.147.372. do 255 Zmienna (do 65.607 Liczba całkowita z zakresu . tłum.216) ' Zmienna (do 4.967.647 Liczba całkowita z zakresu .854.535) Zmienna (do 16.535) Zmienna (do 16.535) Zmienna (do 65. jedną lub więcej TIMESTAMP YEAR ENUM SET Opisywanym także jako yyyy-mm-dd.036. Tabela Typy danych MySQL yp danych INYINT MALL I NT EDIUMINT NT IGINT 295 Opis Liczba całkowita z zakresu .295) 3 3 8 4 1 1 lub 2 od 1 do 8 LOAT DOUBLE DECIMAL ./ + 9.777. tłum.HAR /ARCHAR rEXT •1EDIUMTEXT _0NGTEXT 3L0B 1EDIUMBL0B _0NGBL0B DATE TIME 1ATETIME Czas zapisany zgodnie ze standardem ISO 8601 3 Łączony zapis daty i czasu w formacie yyyy-ddmmhh:mm:ss Łączony zapis daty i czasu w postaci liczby sekund od 1 stycznia 1970 roku Rok w formacie YYYY Lista predefiniowanych wartości. z której można wybrać zero.216) Zmienna (do 4. • Prowadzenie profesjonalnej strony bela 11.777.294.807 Liczba zmiennoprzecinkowa o pojedynczej precyzji Liczba zmiennoprzecinkowa o podwójnej precyzji Liczba zmiennoprzecinkowa o dokładności określanej przez użytkownika Ciąg znaków o określonej długości Ciąg znaków o zmiennej długości z narzuconym limitem Tekst o zmiennej długości Tekst o zmiennej długości Tekst o zmiennej długości Dane binarne Dane binarne Dane binarne Data zapisana zgodnie ze standardem ISO 8601 4 Liczba bajtów i 2 3 4 8 4 8 Zmienna Określona długość.775. 23:59:59 — p r z y p .294.388.483.223./ + 2.767 Liczba całkowita z zakresu .1. zapis 2008-12-11 odpowiada zapisowi 11 grudnia 2008 roku — przyp. Oznaczanym także jako hh:mm:ss./ + 127 Liczba całkowita z zakresu .Rozdział 11. np. z której można wybrać jedną Lista predefiniowanych wartości. np.

o z n a c z a . telephone FROM jos_contact_details P o d c z a s k o n s t r u o w a n i a z a p y t a ń p o b i e r a j t y l k o n i e z b ę d n e d a n e . Pobieraj wyłącznie to. że pola w y k o r z y s t y w a n e w klauzuli WHERE nie m u s z ą b y ć d o ł ą c z a n e d o z w r a c a n y c h w y n i k ó w .296 Joomla!. Uncacheable Subquery i Derived w s k a z u j e podzapytanie. Dependent Urn on i Union Result o d w o ł u j ą się d o z a p y t a ń z o p e r a t o r e m UNION. że z a p y t a n i e nie z a w i e r a ł o p o d z a p y t a ń ani o p e r a t o r a UNION. które m o g ł y b y zostać w y k o r z y s t a n e podczas uruchamiania zapytania. Wartość all oznacza. Kolumna possi bl e_keys — Lista p o t e n c j a l n y c h i n d e k s ó w . czas przesyłania danych zostanie znacząco ograniczony: SELECT name. z pominięciem indeksów. ref. Kolumna type — Opisuje. Profesjonalne tworzenie stron WN 1W P a m i ę t a j . range i index. D l a t e g o utworzenie i n d e k s u k o l u m n y . czego potrzebujesz Wielu początkujących programistów wykorzystuje zapytania p o d o b n e do poniższych: SELECT * FROM joc_contact_details Dzięki d o k ł a d n e m u określeniu. że m o ż e s z zoptymalizować zapytanie j e s z c z e bardziej: SELECT name. index_merge. index_subquery. w jaki sposób wykonywane są zapytania łączone. • • • . Primary oznacza główne zapytanie (jeśli zastosowano podzapytania). Wartości system i const odpowiadają wyszukiwaniu najwyżej po jednym kluczu. Kolumna key — W s k a z u j e n a z w ę indeksu M y S Q L . Subquery. Union. który został wykorzystany podczas uruchamiania zapytania. Dependent Subquery. że kiedy t w o r z y s z indeks. że k a ż d y indeks będzie zawierał d o d a t k o w o 200 b a j t ó w dla każdego rekordu. N i e z a p o m i n a j . Umieszczenie komendy EXPLAIN przed właściwym zapytaniem spowoduje zwrócenie informacji o zapytaniu zamiast właściwych danych: EXPLAIN SELECT * FROM jos_contact_detan1s Poniżej umieszczono listę k o l u m n zwracanych po w y k o n a n i u instrukcji EXPLAIN: • Kolumna select type — Określa typ w y k o n a n e g o zapytania. telephone FROM jos_contact_details WHERE postcode = '92107' Stosowanie komendy EXPLAIN Jednym z najefektywniejszych sposobów optymalizacji zapytania jest analiza wyniku instrukcji EXPLAIN. k t ó r e j typ u s t a w i o n o na char(200). ref_or_nul1. p r z e c h o w y w a n e s ą nie tylko o d w o ł a n i a do wybran y c h k o l u m n — z a p i s y w a n e są t a k ż e a k t u a l n e d a n e tych k o l u m n . że podczas wykonywania zapytania dane z tabeli w y k o r z y s t a n o bezpośrednio. A b y oszczędzać miejsce i ograniczać p r z e t w a r z a n i e i n d e k s ó w . które pola w y m a g a n e są przez aplikacje. W a r t o ś ć simple o z n a c z a . O z n a c z a to. Inne możliwe wartości to eq_ref. staraj się u n i k a ć i n d e k s o w a n i a k o l u m n z a w i e r a j ą c y c h większe porcje danych. unique_subquery.

ptymalizacia istniejącego systemu Po uruchomieniu strony Joomla! nie kończy się praca związana z j e j optymalizacją.12. ysunek 11. d o s t r a j a n i e na p o d s t a w i e o b s e r w a c j i p r a w d z i w e g o s y s t e m u d a j e d u ż o lepsze rezultaty niż optymalizacja oparta na założeniach. Profilowanie jest j e d n ą z metod diagnozowania działającego systemu i określania jego słabych p u n k t ó w .-1og-siow-querles=joomlaSlowQLog . Zwróć szczególną uwagę na kolumnę type. Komenda E X P L A I N to najpotężniejsze i najużyteczniejsze narzędzie do optymalizacji zapytań. u r u c h a m i a j ą c M y S Q L komendą: mysqld . • • • • Option File: c:\xampp\mysql\bin\my. a w pole tekstowe obok w p r o w a d ź nazwę pliku. Aby nowe ustawienia zaczęły obowiązywać. • Prowadzenie profesjonalnej strony 297 Szczególnie polecam zapoznanie się z sekcją „ Optimizing Queries with EXPLAIN" w podręczniku MySQL (frttp://dev.log. musisz ponownie uruchomić serwer M y S Q L . W systemie M y S Q L badanie w y d a j n o ś c i i określanie słabych punktów jest szczególnie proste. slow queries log). ponieważ jej wartość najczęściej podpowiada. Funkcję rejestrowania powolnych zapytań można uaktualnić dzięki opcji Startup Variables aplikacji M y S Q L Administrator. D z i e n n i k ten p r z e c h o w u j e w s z y s t k i e z a p y t a n i a S Q L .com/doc/refman/5. W zakładce Log files w ł ą c z o p c j ę Slow Queries Log.0/en). i w pole tekstowe vprowadz nazwę Iziennika InnoDB Parameter Security Performance Advanced langes will have no effect until you restait the server. k t ó r y c h uruchamianie trwało dłużej niż wartość parametru long_query_tlme. Vlącz opcję Slow Queries Log.mysql. W r ę c z o d w r o t n i e . • • • 0 Slow Queries Log: : >< .12. jakie działania należy podjąć.cnf Apply changes j j Discard changes [ R e j e s t r o w a n i e z a p y t a ń m o ż n a w ł ą c z y ć także z p o z i o m u w i e r s z a p o l e c e ń . dziennik zostanie zapisany w pliku host_name-slow. " J w u l " . Domyślnie wartość tej zmiennej ustawiona jest na 10 sekund.Rozdział 11. J e d n y m z d o s k o n a ł y c h n a r z ę d z i d o t e g o celu j e s t dziennik powolnych zapytań (ang. Jeśli nie wprowadzisz żadnej nazwy. l • Enter a name for (he slow query log Otherwise a default name will be used. j a k przedstawiono to na rysunku 11.

aby określić. Administracja Dzięki J o o m l a ! a d m i n i s t r a c j a stała się b a r d z o prosta. jak i poprzez bezpośrednią manipulację bazy danych Joomla! za p o m o c ą narzędzi M y S Q L . CMS. co pozwala globalnie zarządzać kontami użytkowników.htm). W i ę k s z o ś ć zadań z w i ą z a n y c h z z a r z ą d z a n i e m . czy spełnia ono Twoje potrzeby. Ale istnieją metody radzenia sobie z tymi problemami. J e d n a k ż e w r a z z r o z r o s t e m strony z a r z ą d z a n i e materiałami i u w i e r z y t e l n i a n i e m u ż y t k o w n i k ó w oraz p o r z ą d k o w a n i e systemu w celu usunięcia nieaktualnych danych staje się uciążliwym zadaniem. Powinieneś nie tylko o b s e r w o w a ć w y d a j n o ś ć zapytań M y S Q L . można zastosować centralną autoryzację za p o m o c ą katalogu L D A P . FTP. poczty itd. Zarządzać menu. P r z y k ł a d o w o s e r w e r L D A P m ó g ł b y zawierać informacje o uwierzytelnianiu niezbędne dla serwera W W W .298 Joomla!. M o ż l i w e j e s t o b s e r w o w a n i e lokalnych i zdalnych serwerów. m o ż n a w y k o n a ć bez drogich i złożonych narzędzi. jednak odnosi się do monitorowania wątków i o g ó l n e j w y d a j n o ś c i serwera M y S Q L .help wyświetli listę parametrów k o m e n d y dump. Oznacza to. który umożliwia uwierzytelnianie użytk o w n i k a w d o w o l n y m systemie. że pojedyncze konto użytkownika przechowywane na centralnym serwerze LDAP pozwala na dostęp do wszystkich pozostałych serwerów. Narzędzie MyTop (http://jeremy. Linux i MacOS. uruchamiając z wiersza poleceń instrukcję: mysql dumpsl ow <ści eżka-do-pli ków-dzienni ka-MySQL>/joomlaSlowQLog Przełącznik . Program dostępny jest dla systemów W i n d o w s . Dlatego najpierw warto zapoznać się z informacjami na stronie domowej programu (http://jfontain. Uwierzytelnianie LDAP L D A P jest standardem.fr/myshow/myshow. .free. Profesjonalne tworzenie stron WN 1W Po zarejestrowaniu zapytań w dzienniku możesz wygenerować podsumowanie. w głównej mierze dzięki zastosowaniu otwartych standard ó w w systemie Joomla! i kompatybilności z wieloma technologiami. Zamiast oddzielnego konta w k a ż d y m systemie.com/mysql/mytop) przypomina funkcjonalnością program Top w systemie Linux. P r z y k ł a d o w o uwierzytelnianie m o ż n a u s p r a w n i ć dzięki z a s t o s o w a n i u LDAP (Lightwieght Directory Access Protocol). który określa sposoby scentralizowanej autoryzacji dostępu. jak i uruchamiania. także stosując moduł myshow. Dane na temat wydajności zapytań MySQL możesz uzyskać.zawodny. ale także analizować ogólną wydajność systemu. zarówno w zakresie konfiguracji. Nie jest to łatwe narządzie. z którego korzysta użytkownik. n a w e t w p r z y p a d k u dużych stron Joomla!. u ż y t k o w n i k a m i i starymi materiałami m o ż n a z a r ó w n o z poziomu interfejsu administratora.

W ł a ś c i w e rozszerzenie nosi n a z w ę Authentication — LDAP. która obsługuje uwierzytelnianie L D A P . które pola na serwerze L D A P b ę d ą zawierać dane niezbędna dla systemu logowania Joomla!. P r z y k ł a d o w o w a r t o ś ć uid=[search] s p o w o d u j e w y s z u k a n i e n a z w y u ż y t k o w n i k a w k o l u m n i e uid. co chroni przesyłane dane przed przechwyceniem. Pole DN użytkownika wykorzystywane jest w y ł ą c z n i e przy b e z p o ś r e d n i c h p o w i ą z a n i a c h . lista powinna zostać rozdzielona średnikami ( : ) . A d m i n i s t r a t o r itd. Parametry m a j ą c e w n a z w i e w y r a z M a p u j p o z w a l a j ą określić. np. O M i * « * n i "LE2SLS ® « „ O O T. uid=[username]. p o n i e w a ż d o m y ś l n i e dodatek jest wyłączony. ustaw wartość parametru Negocjacja TSL na Tak.13. • Prowadzenie profesjonalnej strony 299 Na szczęście do Joomla! dołączona jest wtyczka. aby wyświetlić listę parametrów. To spowoduje szyfrowanie połączenia z serwerem LDAP. Pola Użytkownik połączenia i Hasło połączenia powinny pozostać puste. R e d a k t o r .) na serwerze L D A P . Kliknij jego nazwę. C h o c i a ż nie da się z a p i s a ć p r z y n a l e ż n o ś c i d o g r u p y (np. P a r a m e t r o w i Szukaj wyrażenia n a l e ż y p r z y p i s a ć ciąg s t o s o w a n y przy w y s z u k i w a n i u n a z w y u ż y t k o w n i k a .Rozdział 11.dc=mojafi rma:dc=com. odateK LDAP A b y włączyć f u n k c j o n a l n o ś ć L D A P w systemie Joomla!. u r u c h o m o p c j ę Dodatki z m e n u Rozszerzenia w panelu administratora. U s t a w wartość parametru Opublikowany na Tak. W pole oznaczone Podstawowa DN wprowadź nazwę wyróżniającą serwer L D A P (powinna być n i e p o w t a r z a l n a ) . o ile dostęp do serwera jest a n o n i m o w y . j e g o u s t a w i e n i e s k u t k u j e w y s ł a n i e m d o d a t k o w y c h danych podczas logowania. 'aramei/y iodatku LDAP imożliwiają iokłaćłną (onfigurację iostępu 1o serwera LDAP Jodatek: pmien] yt Pi efet elicie Ustawienia dodntku y' O l J Tvp authentication © NI. . można p r z e c h o w y w a ć tam n a z w ę użytkownika i hasło.13. jak przedstawiono to na rysunk u 11. n i* (Lekki protokół dostęp Jeśli dany serwer L D A P obsługuje opcję s z y f r o w a n y c h połączeń. ysunek 11.

sprawdź koniecznie.300 Joomla!. Jeśli korzystasz z systemu Windows. czy w katalogu rozszerzeń Joomla! ('extensions. m o ż e zniweczyć wysiłki podczas instalacji systemu. W y s t a r c z y w p r o w a d z i ć prefix / d a p w m i e j s c e t r a d y c y j n e g o http. aby n i e p u b l i k o w a n e artykuły przytłaczały system lub konta nieaktywnych użytk o w n i k ó w zachęcały hakerów. aplikację możesz pobrać ze strony ILEX (http://download.sourceforge. m o ż e s z w y k o r z y s t a ć aplikację O p e n L D A P . p o n i e w a ż n a l e ż y w y r y w a ć c h w a s t y . nowoczesną przeglądarkę. nieużywanych menu. jeśli j e s t p r z e p r o w a d z a n y c h z panelu administratora. Możesz pobrać go za darmo na stronie d o m o w e j (http://luma.joomla. Zanim zabierzesz się do ręcznego czyszczenia systemu.us/ openldap). bezpośrednio manipulując b a z ą M y S Q L . umich. który jest narzędziem do przeglądania i testowania LDAP. Dopuszczenie d o tego. itd. w p i s u j ą c adres podobny d o poniższego: ldap://ldap. e k s t e r m i n o w a ć s z k o d n i k i i p r z y c i n a ć nawet najwspanialsze kwiaty. C z ę ś ć z nich można w y k o n a ć szybko. jak właściwa instalacja. Konfiguracja serwera LDAP nie należy do zadań prostych.net).org) istnieje rozszerzenie. Sporo zadań związanych z czyszczeniem s y s t e m u z a j m u j e z b y t w i e l e c z a s u . o p e n l d a p . m o ż n a go pobrać ze strony d o m o w e j ( w w w . nieaktywnych kont użytkownika itd. to powinieneś zapoznać się z jedną z wielu doskonałych publikacji opisujących tę technologię. Dzięki utrzymywaniu systemu w dobrym stanie zachowasz dobrą wydajność. W celu przetestowania serwera LDAP możesz zastosować dowolną. Profesjonalne tworzenie stron WN 1W OpenLDAP Jeśli chcesz u r u c h o m i ć w ł a s n y serwer L D A P . darmową implementację standardu LDAP. Rozszerzenia pozwalają obejść wiele ograniczeń .bergmans. C M S w wielu aspektach przypomina o g r ó d . edit Jeśli wykonujesz wiele czynności związanych z L D A P . Czyszczenie systemu Baza danych Joomla! m o ż e z czasem ulec zaśmieceniu z p o w o d u ilości niepublikowanych artykułów. Program dostępny jest dla systemów Linux. Czyszczenie systemu można rozpocząć w interfejsie administratora Joomla!. UNIX. M a c O S i BeOS. że większość sieci opartych na platformie Windows wykorzystuje usługę Active Directory. które wykonuje dane zadanie. Dlatego jeżeli nie masz doświadczenia z LDAP. Obsługa Obsługa strony jest równie ważna. Wiele cennych informacji znajdziesz w książce Marka Wilcoksa Implementing LDAP. o r g ) . Zwróć uwagę. która wspiera standard L D A P . warto rozważyć instalację programu Luma.

Dzięki temu w p r o w a d z o n e zmiany b ę d ą miały wpływ na sieć odnośników wewnątrz strony. Badanie listy niepublikowanych artykułów p o w i n n o być p r z e p r o w a d z a n e regularnie (np. która pozwala ograniczyć wyświetlane artykuły do niepublikowanych pozycji. możesz posłużyć się rozszerzeniem. p o w i n i e n e ś w p r o w a d z a ć wszelkie z m i a n y lub u s u w a ć treści w y ł ą c z n i e z poziomu interfejsu administratora Joomla!. jeśli w ł ą c z y s z rejestrowanie zapytań wyszukiwania. M o ż l i w e jest także (chociaż nie j e s t to zalecana opcja) ręczne w y c z y s z c z e n i e b a z y d a n y c h . które m o g ą w y s t ą p i ć w s k u t e k danej akcji. które w y m a g a j ą u s u n i ę c i a p l i k ó w ) p o w i n n y b y ć p r z e p r o w a d z a n e w y ł ą c z n i e z poziomu interfejsu administratora. jeśli nie rozumiesz w pełni wprowadzanych zmian. W opcji Artykuły w panelu administratora znajduje się lista wyboru. można przeprowadzić wyłącznie za p o m o c ą M y S Q L . zwłaszcza te dotyczące dużej liczby wpisów lub usunięcia poszczególnych tabel. Na ekranie pozostaną wyłącznie te artykuły. wybierz pozycję Niepublikowany. raz na sześć miesięcy). aby przed wprowadzeniem dowolnych zmian zrobić kopię zapasową całej bazy. N i e k t ó r e z a d a n i a ( s z c z e g ó l n i e te z w i ą z a n e z u s u w a n i e m rozszerzeń. Pamiętaj. jak przedstawiono to na rysunku 11.14. Aby wygenerować listę.Rozdział 11. a następnie kategorię. Na przykład Joomla! uniemożliwia usunięcie kategorii. Jeśli masz wątpliwości związane z daną modyfikacją — nie przeprowadzaj jej. które wykona to automatycznie. dopóki wszystkie przypisane do niej artykuły nie zostaną usunięte. że baza danych nie jest zaśmiecona niepotrzebnymi treściami.14. Zamiast ręcznie usuwać wszystkie artykuły. 301 Wykorzystywanie opcji Artykuły do znalezienia niepublikowanych artykułów O ile to możliwe. Inne zmiany. wskutek s p a d k u w y d a j n o ś c i . które nie zostały opublikowane. m o ż e s z także bezpośrednio m a n i p u l o w a ć materiałami. np. Wybierz pozycję Niepublikowany z rozwijalnej listy po prawej stronie ekranu Bezpośredni dostęp do MySQL Ponieważ wszystkie dane p r z e c h o w y w a n e są w bazie M y S Q L . Zostaniesz także powiadomiony o problemach. . W przypadku katastrofalnej pomyłki będziesz w stanie przywrócić bazę i ponownie uruchomić stronę. • Prowadzenie profesjonalnej strony systemu. Bezpośrednie modyfikowanie bazy danych Joomla! może być bardzo niebezpieczne. Rysunek 11. w t e d y m o ż n a mieć pewność.

Dzięki temu m o ż e s z w p r o w a d z i ć zmiany w ich treści albo usunąć j e ze strony. Proste zapytanie M y S Q L pozwoli Ci stworzyć listę artykułów. ponieważ nie w i a d o m o . Profesjonalne tworzenie stron WN 1W Wyszukiwanie starych materiałów Lista artykułów posortowana według dat ostatnich modyfikacji pozwala zlokalizować artykuły. aby zwiększyć wydajność. po to. dla których nie ustawiono metadanych. czy nie b ę d ą p o t r z e b n e w przyszłości. Jednym z najlepszych sposobów zagospodarowania tej listy jest wysłanie e-maili w celu przypomnienia im o stronie i zaproszenia do powrotu na nią. Po u p ł y w i e p e w n e g o czasu element (czy to menu. W tym momencie najlepiej usunąć go z bazy danych. Listę nieaktywnych u ż y t k o w n i k ó w możesz w y g e n e r o w a ć . u r u c h a m i a j ą c poniższe zapytanie S Q L i zmieniając datę w klauzuli WHERE: SELECT * FROM jos_content WHERE modified < '2007-01-01' Wyszukiwanie nieaktywnych użytkowników W systemie Joomla! p r z e c h o w y w a n a jest data ostatniego logowania wszystkich zarejestrowanych użytkowników. Aby wygenerować listę artykułów. czy artykuł) prawdopodobnie nie będzie już wykorzystywany. które d a w n o nie były uaktualniane. dla których nie ustawiono metadanych. D w a z nich (opis artykułu i słowa k l u c z o w e ) s ą n a j w a ż n i e j s z e dla r o b o t ó w internetowych. uruchamiając poniższe zapytanie S Q L i zmieniając datę w klauzuli WHERE: SELECT * FROM jos_users WHERE lastvisitDate < '2007-01-01' Wyszukiwanie pustych metadanych J e d n y m z istotnych e l e m e n t ó w w p ł y w a j ą c y c h na p o z y c j ę T w o j e j strony w r a n k i n g a c h w y s z u k i w a r e k i n t e r n e t o w y c h s ą pola z a w i e r a j ą c e m e t a d a n e .302 Joomla!. Odpowiednie zapytanie względem tabeli użytkowników wygeneruje listę u ż y t k o w n i k ó w . którzy od p e w n e g o czasu nie odwiedzali strony. M o ż e s z znaleźć niepublikowane elementy. uruchom poniższe zapytanie SQL: SELECT * FROM jos_content WHERE metakey = " or metadesc = '' Wyszukiwanie niepublikowanych artykułów i menu Śledzenie niepublikowanych elementów może stanowić spore wyzwanie na dużej. Często artykuły u s t a w i a n e są j a k o niepublikowane. uruchamiając poniższe zapytania SQL: SELECT * FROM jos_content WHERE state = 0 SELECT * FROM josjnenu WHERE published = 0 SELECT * FROM jos_plugins WHERE published = 0 . by naprawić problem. M o ż e s z w y s z u k a ć stare artykuły. popularnej i d o j r z a ł e j stronie Joomla!.

Rozdział 11. że T w o j e działania powinny odpowiadać założeniom przedsięwzięcia.sectionid = jos_sections. • Prowadzenie profesjonalnej strony SELECT * FROM jos_components WHERE enabled = O SELECT * FROM jos_modules WHERE published = 0 303 Wyszukiwanie najnowszych głosów w sondzie Istnieje grupa zapytań. aby określić niedawną działalność użytkowników na stronie. w zależności od typu instalacji Joomla!. W y k o n a n i e tego zapytania w MySQL nie jest trudne. INTERVAL 10 DAY) <= date: Wyszukiwanie pustych sekcji i kategorii Badając organizację strony.id WHERE jos_content. W tym rozdziale opisano sposoby konfiguracji i instalacji Joomla!. Podstawy tworzenia i przywracania kopii zapasowych systemu Joomla!. Najpierw musisz znaleźć interesujący rekord w tabeli pol Is i zanotować jego id: SELECT * FROM jos_polls Poniższe zapytanie spowoduje wyświetlenie głosów wysłanych w ciągu ostatnich 10 dni: SELECT * FROM jos_poll_date WHERE DATE_SUB(CURDATE(). Następnie można j e usunąć lub połączyć z innymi. Tworzenie wirtualnych serwerów w aplikacji Apache.catid IS NULL and jos_categories. a w szczególności: • • • • Testowanie fragmentów kodu za pomocą interfejsu tekstowego PHP. aby stwierdzić.catid = jos_category. czy n a j n o w s z a sonda jest popularna. musisz pamiętać. Możesz znaleźć nieużywane sekcje.published=l Podsumowanie Zarządzając profesjonalną stroną Joomla!. uruchom: SELECT * FROM jos_categories LEFT JOIN jos_content ON jos_content. . Dostrajanie MySQL w celu najlepszej wydajności.id WHERE jos_content. uruchamiając poniższe zapytanie SQL: SELECT * FROM jos_sections LEFT JOIN jos_content ON jos_content. Przykładowo możesz chcieć zobaczyć głosy nadesłane w ciągu ostatnich 10 dni.sectionid IS NULL and jos_sections.published=l Aby znaleźć puste kategorie. którą możesz wykorzystać. dobrze jest określić. które sekcje i kategorie są niewykorzystywane. aby poprawić organizację strony.

Profesjonalne tworzenie stron WN 1W • Stosowanie uwierzytelniania LDAP dla łącznego zarządzania kontem użytkownika dla różnych usług (np. starych materiałów. nieaktywnych użytkowników. W rozdziale 12. poczta). Joomla! zawiera jednak także funkcje łączące z zewnętrznymi zasobami. Uruchamianie zapytań M y S Q L w celu wygenerowania listy niepublikowanych artykułów. • Głównym punktem tego rozdziału było zarządzanie materiałami na stronie. . nieustawionych metadanych itd.304 Joomla!. po screen scraping. opisano sposoby łączenia i pozyskiwania treści zewnętrznych — od kanałów RSS.

U ż y t k o w n i k o d w i e d z a j ą c y d a n ą stronę (np. a także j a k u t w o r z y ć w ł a s n y k a n a ł R S S . łącząc j e z zewnętrznymi materiałami i k a n a ł a m i R S S na i n n y c h s t r o n a c h . które służą do wykorzystania zewnętrznych zasobów. Jeśli nie możesz znaleźć rozszerzenia. j a k u z u p e ł n i ć J o o m l a ! . która w n a j w i ę k s z y m s t o p n i u w p ł y n ę ł a na a u t o m a t y z a c j ę w y m i a n y i n f o r m a c j i . co s p o w o d u j e p o b i e r a n i e podobnych treści. Pobieranie zewnętrznych materiałów Możesz wzbogacić treść własnych artykułów na stronie Joomla!. Kanały RSS J e d n ą z technologii. a także napiszesz prosty program typu screen scraper. wykorzystując nabyte umiejętności programistyczne.12 Łączenie z zasobami zewnętrznymi Ż a d n a strona W W W nie p o w i n n a być s a m o t n ą w y s p ą . które wykorzystują dostępne API (implementacja Google Maps) lub interfejs oparty na formacie X M L (usługa wyszukiwania k o d ó w zip USPS). www. . pobierając dane w formacie X M L . za pośrednictwem technologii EDI (Electronic Data Interchange) czy bazami danych. Dzięki J o o m l a ! szczególnie łatwo możesz połączyć witrynę z zewnętrznymi zasobami. transakcjami e C o m merce. jak skonfigurować stronę Joomla!. stworzysz własne rozszerzenia. Jeśli na stronie dostępny jest kanał RSS. platforma programistyczna Joomla! ułatwia stworzenie własnej aplikacji. W końcu. o programy partnerskie. które m a wymagane możliwości komunikacyjne. o ile j e s t p o d ł ą c z o n y d o internetu. I n f o r m a c j e p o j a w i a j ą c e się w k a n a ł a c h automatycznie uzupełniają artykuły na T w o j e j stronie. dzięki zastosowaniu rozszerzeń. są kanały RSS. Stworzono dosłownie dziesiątki rozszerzeń.CNN. np. którego zadaniem będzie pobranie danych umieszczonych na innej stronie w formacie H T M L . aby pobierać treści zewnętrzne. lub musisz skorzystać z niestandardowego protokołu. D o w i e s z się. W tym rozdziale dowiesz się.com) m o ż e p r z e g l ą d a ć d o s t ę p n e m a t e r i a ł y . kanałami RSS. o d w i e d z a j ą c y m o ż e s u b s k r y b o w a ć go.

pl .pl Plik 4 artykuły Widok Thunderbird Wiadomość Narzędzia Pomoc H H K 3 3 D . Jeśli na stronie.pl a r t y k u ł y Gazeta..1.a r t y k u ł y .rss. W tej sytuacji wystarczy kliknąć ikonę i w y b r a ć opcję subskrypcji za p o m o c ą dynamicznych zakładek.pl artykuły - R f | Kosz + fi^y L o k a l n e f o l d e r y Witamy w Thunderbirdz •śpm f te fev- Program p o c z t o w y Mozilla Thunderbird ma więcej możliwości niż kiedykolwiek wcześniej. Aby dodać nowy kanał R S S . T r u d n e w a r u n k i na drogac. . . P r o g r a m o w i p r z e k a z y w a n y j e s t adres w s k a z u j ą c y na plik w f o r m a c i e X M L . klient poczty Mozilla Thunderbird ma funkcje agregatora. / Napisz Adresy « • t' y Temat F r a n c j a p o t ę p i a d e c y z j ę Iz. Oprócz nagłówków mogą znajdować się w n i m f r a g m e n t y lub całe a r t y k u ł y . a nowe wpisy b ę d ą pobierane automatycznie.a r t y k u ł y Gazeta.. d o k t ó r e g o m o ż e s z d o d a w a ć k a n a ł y R S S . ' S t r o n a z p o r n o g r a f i ą zami. P r o g r a m m a kilka p a r a m e t r ó w w p ł y w a j ą c y c h na obsługę kanałów (częstotliwość uaktualnień.).a r t y k u ł y Gazeta.306 Joomla!. Przez długi czas popularność obu formatów była porównywalna. U Putin i Miedwiediew poszli.xml (np. O b a f o r m a t y o p a r t e s ą na X M L . kanały RSS wyświetlane są w podobny sposób jak konta e-mailowe. w y b i e r z Plik/Nowy/Konto. X Edycja Przejdź Pobierz .pl . dostępny jest kanał RSS. Teraz jeszcze łatwiej jest zarządzać wiadomościami w w y g o d n y i bezpieczny sposób. że kanały R S S stały się d o m i n u j ą c y m r o z w i ą z a n i e m . Format kanałów RSS Istnieją dwa popularne standardy kanałów na stronach W W W : RSS (Really Simple Syndication) i A t o m .. który gra rolę spisu artykułów umieszczonych na stronie.. a wiele stron obsługujących oba f o r m a t y porzuciło kanały Atom.pl .. „ R S S X M L " lub „Atom Feed") zostaje uruchomiona aplikacja na komputerze użytkownika.pl . Z o s t a n i e d o d a n y n o w y f o l d e r . k a n a ł y A t o m m a j ą rozszerzenie . dlatego można przejrzeć j ą później. L Usuń Data 03:27 03:27 03:27 03:27 03:27 03:27 Wszystkie foldery + Poczta A k t u a l n o ś c i i błogi ¿S Nadawca Gazeta. W z a l e ż n o ś c i od u s t a w i e ń agregatora m o ż e on a u t o m a t y c z n i e pobierać n o w e materiały.. Gazeta. P r e z y d e n c j a UE: O p e r a c j a I. atom. Jak przedstawiono na rysunku 12. Ostatecznie jednak okazało się. która nosi nazwę agregator.2).1.. sposób prezentacji itd..a r t y k u ł y Gazeta. Rysunek 12. n o s z ą c y n a z w ę Aktualności i błogi. Profesjonalne tworzenie stron WN 1W Po kliknięciu o d p o w i e d n i e g o o d n o ś n i k a ( c z ę s t o o p i s a n y j a k o „ R S S F e e d " . Klient poczty Thunderbird wyświetla kanały RSS iv formie przypominającej przeglądanie listów elektronicznych 4* Gazeia.. którą odwiedzasz. x B 2¡ p r MB Nieprzeczytane: 8 Razem: 8 SL8TR [IDLE] T a k ż e przeglądarka Mozilla Firefox zawiera p e w n e e l e m e n t y agregatora.. a p o u r u c h o m i e n i u Kreatora Kont z a z n a c z o p c j ę RSS: Aktualności i błogi.. I z r a e l s k i e w o j s k a w Strefie.u .xml lub . Treść kanału jest z a p i s y w a n a na dysku twardym komputera. a kanały RSS m o g ą mieć rozszerzenie .xml).. na pasku adresu zostanie wyświetlona symbolizująca to ikona (co zilustrowano na rysunku 12.

w h y do ! need Joomla? • 2.Bi esi adowali _w_ekskluzy wnej_restauracji_i_nie_zaplaci1 i. której kliknięcie uruchamia opcję subskrypcji 307 Plik Edycja - Widok ¿ê? Historia .gazeta.6063047.pl /rss/0.1/">pl</dc:1anguage> <dc:rights xml ns:dc="http://purl. ' R E A D MORE.6063047.gazeta.#169: Agora SA All rights reserved]]></copyright> <dc:1anguage xmlns:dc="http://purl.through the q u i c k a n d simple process of installation a n d c o n f i g u r a t i o n o f a i ^ j ^ ^ j ^ c o m p o n e n t .org/dc/el ements/1. na pasku adresu w przeglądarce Firefox zostanie wyświetlona ikona.Extensions Part 2: Installing Components » i .O/modules/taxonomy/" «channel> <title>Gazeta. 14 gru 2008 20:46:00 GMT</pubDate> <guid>http://wi adomosci.pl .0" encoding="utf-8"?> <rss xmlns:taxo="http://purl .pl /Wi adomosci/1.gazeta."'! Zakładki $ Narzędzia Pomot http://ioomiajumpstart. Components a r e the d o m i n a n t t y p e of extension a n d form the backbone of m u c h of t h e extensible f u n c t i o n a l i t y a v a i l a b l e to t h e Joomla CMS.54825.Diqg This! Probing the Joomla! *• O © Poniżej umieszczono przykładowy adres kanału R S S dla w i a d o m o ś c i w portalu Gazeta. SeiectaMinor MAIN MENU Joomla Tutorial .gazeta.]]></description> <pubDate>N.html</guid> <dc:date </item> xmlns:dc="http://purl..xml Nagłówek i kilka przykładowych wpisów kanału RSS w y g l ą d a j ą tak: <?xml version="1.html</li nk> <description>Najnowsze artykuły z Gazeta.pl: http://rss.2. Part 2 will t a k e y o u .'..pl/i mg/w/l/gazeta.org/rss/l.3686466.pl /Wiadomosci/1.html?skad=rss</li nk> <description><![CDATA[Dwudziestu studentów biesiadowało w jednej z najbardziej ekskluzywnych restauracji w Wenecji.gazeta. a następnie po zakończonym przyjęciu opuściło lokal nie zapłaciwszy rachunku w wysokości ponad 2000 euro.com/ > - ¡¡g-.pl</description> <1anguage>pl</1anguage> <copyright><![CDATA[Copyright &amp.1/">2008-12-14T20:46:00Z</dc:date> . • Łączenie z zasobami zewnętrznymi Rysunek 12.artykuły</title> version="2.gazeta.gi f</url> <11nk>http://www.. Joomla Extensions -.org/dc/elements/1.Joomla! Presentation . F r e q u e n t l y Asked Questions (FAQs) • B e g i n n i n g Joomla! < Zakończono \ In F a r t l .pl</łi nk> </image> <item> <title><![CDATA[Biesiadowali w ekskluzywnej restauracji i nie zapłacili]]></title> <1 i nk>http://wiadomosci.#169: Agora SA All rights reserved]]></dc:rights> <image> <title>Gazeta. Jeśli na stronie dostępny jest kanał RSS.Bi esi adowali_w_ekskluzy wnej_restauracji_i_ni e_zapl aci 1 i..80277.Rozdział 12. How is Joomla! organised? .pl/pub/rss/wiaclomosci. 3.1/"><![CDATA[Copyright &amp.org/dc/elements/1.pl</title> <url>http://www. y o u installed a m o d u l e to the Joornla s y s t e m .0"> <1 i nk>http: //serwi sy.80277. »iySQl :.

Linie lotnicze odmówiły rodzinie przebukowania biletów mimo że agenci FBI uznali sprawę za nieporozumienie. pomorskim. zderzył się z samochodem osobowym w woj. ¡Times firmy Apple) wykonują dokładnie te same operacje (np.6063045. Profesjonalne tworzenie stron WN 1W <item> <title><![CDATA[Obfite opady śniegu we Francji. html </gui d> <dc:date </i tem> xmlns:dc="http://purl. R y s u n e k 12. Muzułmańska r odzina została wyproszona z samolotu po tym jak współpasażerowie usłyszeli ich rozmowę o najbezpieczniejszym miejscu na pokładzie . html ?skad=rss</1 i nk> <description><![CDATA[Obfite opady śniegu i deszczu w centrum i na południowym wschodzie Francji pozbawiły dziś prądu ponad 110. który mógłby liczyć na 12-procentowe poparcie.3 przedstawia m o d u ł z a t y t u ł o w a n y N a j n o w s z e w i a d o m o ś c i . PO zdobyłaby 52 proc. Whether you want a brochure site or you are building a large online community. Wstawienie na stronie modułu Feed powoduje automatyczne wyświetlanie nowych pozycji natychmiast po dodaniu ich do kanału RSS Joomla! makes it easy to launch a Web site of any kind. Z a każdym razem. z e w n ę t r z n y plik k a n a ł u R S S j e s t p o b i e r a n y . gazeta.]]></description> <pubDate>N.. głosów . Ostatecznie wewnątrz elementu <item> s ą informacje o artykułach. kiedy użytkownik wchodzi na stronę zawierającą m o d u ł Feed. którym jechały cztery osoby w tym dziecko.80277. I I i i I 1 • J o o m l a Home • Joomla! Forums * J o o m U : Heiß Welcome to the Frontpage . Moduł subskrypcji kanałów RSS w Joomla! M o d u ł Feed u m o ż l i w i a wstawienie zawartości kanału RSS bezpośrednio na T w o j e j stronie J o o m l a ! . Moduł wyświetla listę n a j n o w s z y c h wiadomości opublikowanych na portalu Gazeta.^t ranni Bus.i: Featuie: ll«M$ The Community Najnowsze wiadomości • Horn« • Joomla? L i t e » • M o i e about Jooml. • Bus zderzył «¡ę 7 . osiem zostało rannych. p r z e t w a r z a n y . Poniżej jest sekcja zawierająca banner reprezentujący kanał RSS.ośnie też poparcie dla SLD. Popularne agregatory multimedialne (np. pobieranie nowych materiałów).6063045. pl /Wi adomosci /1. Dwie ofiary śmiertelne]]></ti11 e> <1 i nk>http ://wi adomosci.l/">2008-12-14T20:45:00Z</dc:date> Na początku pliku z n a j d u j ą się informacje n a g ł ó w k o w e dotyczące kanału RSS. a następnie w y ś w i e t l a n y w o d p o w i e d n i m miejscu.1'Rh -k"j!->a o--.308 Joomla!. na stronie głównej witryny Joomla!. które wykonują standardowe czytniki kanałów RSS. . 14 gru 2008 20:45:00 GMT</pubDate> <guid>http: //wi adomosci. Francja_obfi te_opady_ dwi e_ofi ary_smi ertel n e _ d o m y .informuje CNN. pl /Wi adomosci /1.wynika z sondażu TNS OBOP dla programu Forum w TYP Info F.000 domostw i przyczyniły się do śmierci dwóch osób: turysty i automobil istki. gazeta.pl. Francja_obfite_opady_ dwi e_of i ary_smi ertel n e _ d o m y .org/dc/elements/l. Kanały RSS stają się coraz bardziej zaawansowane. Joomla! allows you to deploy a new site tn minutes and add extra functionality as you need it The hundreds of available Extensions will help to expand your site and allow you to deliver n e w services that extend your reach into the Internet A b o u t Jooml. które wyświetlane są w agregatorze.ot-a zętinęłA.80277. Jedna osoba zginęła. Rysunek 12. Popular » Wyprosili muzułmanów z samolotu Tylko rozmawiał. sprawdzanie kanału pod kątem nowych treści. Podcasty (kanały RSS dla plików audio) i vodcasty (kanały RSS dla plików wideo) wykorzystują praktycznie identyczne pliki jak standardowe kanały.3.i! • FAO • The Hews • Web Link« • Hews Feeds * Sondaż: 52 proc cila K ' i wzrost poparcia dia SL.D Gdyby wybory odbyty się dziś.

Listę n a j p o p u l a r n i e j s z y c h k a t a l o g ó w z n a j d z i e s z na stronie R S S Specifications (www. u m i e s z c z o n e w p a n e l u Parametry modułu. m o d u ł e t a b l e ) . jednak w przypadku niewielkich.mt I O O T * ® »i.4. Odnośniki do różnych kanałów m o ż e s z z n a l e ź ć w k a t a l o g u RSS. D o d a t k o w e u s t a w i e n i a . Z m i e ń p o z y c j ę m o d u ł u . Możesz wybrać pozycję right.. W tym przykładzie została ustawiona pozycja userl. http /Ass gazeta pl/pub/rssA«jiac K«. Kolejny parametr pozwala wprowadzić adres kanału RSS.V„ik.htm). że na stronie pojawią się niepożądane treści. ctóry kanał RSS iraz w jaki iposób będzie wyświetlany M Podgląd ' O Modul: [Zmień] V*1 Zapitz Pi efei erwje V Zastosuj Zamknij Q Typ. jakim jest Gazeta. Zostaną wyświetlone aktualne ustawienia m o d u ł u — przedstawiono to na rysunku 12.rss-specijications. aby nagłówki były wyświetlane w górnej ś r o d k o w e j części strony. Z n a j d ź pozycję oznaczoną Feed Display i kliknij ją. W t y m p r z y k ł a d z i e u s t a w i o n y został tytuł Najnowsze wiadomości.*tuł Najnowsi Pokaż tytuł Wazony O Nie (?) Q ^ 0 P. > ar:V'. nie powinieneś martwić się.4.Rozdział 12. Odpowiadają one za wyświetlanie informacji dołączonych przez publikującego kanał. w ten sposób m o ż e s z wpłynąć na wygląd modułu niezależnie od reszty strony. . Pi ¿ypisjiiie menu ©Wszystkie O Biak C : PiM ¿»metr yriozsz«) zoite Konfigurację modułu należy rozpocząć od ustawienia tytułu modułu. niekomercyjnych kanałów RSS (pomimo ciekawych materiałów) ryzykujesz pojawienie się na stronie obraźliwych komunikatów. otwórz panel administratora i wybierz opcję Moduły. Tak i ? Ni.(. W pole oznaczone Adres kanału w p r o w a d ź dowolny.. który będzie pojawiać się nad listą w p i s ó w . O Tak ® Ni. W przypadku kanału dużego portalu. nie m a p o t r z e b y w ł ą c z a n i a opcji Kanał RTL (right-to-left — od prawej do lewej). modułu: mod_Feecł T. p o p r a w n y adres URL. Tak Nie E S B S S Zastrzelony Specjalny . który w s k a z u j e kanał w formacie R S S lub Atom. aby nie p o j a w i a ł się w l e w e j k o l u m n i e . aby wpisy pojawiały się w prawej kolumnie. lysunek 12. • Łączenie z zasobami zewnętrznymi 309 Aby aktywować moduł Feed. O p c j o n a l n y p a r a m e t r Przyrostek klasy modułu p o z w a l a ustawić przyrostek dla stylów CSS (dodawanych np. przez co nie masz nad nimi kontroli. . O Ni.com/rss-directory. że opcja Tytuł nie w p ł y w a na wyświetlanie tytułu modułu (na którego treść m a s z wpływ). Wyłącz opcje Tytuł i Wprowadzenie. Ponieważ p r z y k ł a d o w y w ą t e k z a w i e r a w p i s y w j ę z y k u p o l s k i m . p o d i n n y m i m o d u ł a m i .. która jest przydatna dla kanałów w językach takich jak mandaryński.pl. Jstawienia riodułu określają. Z w r ó ć uwagę. p o z w a l a j ą w p ł y w a ć na wyświetlanie kanału.«<uneliy modułu Przyrostek klasy modułu . do t a b l e .

Opcja Wstępy pozwala określić. który p o j a w i się przy ikonie k a n a ł u R S S — p r z e d s t a w i o n o to na r y s u n k u 12. aby po umieszczeniu kanału RSS na stronie zarejestrować go przynajmniej w j e d n y m katalogu (lista na http://www. Moduł publikacji kanałów RSS System Joomla! zawiera łlinkcję.0. czy wyświetlane b ę d ą wyłącznie nagłówki.com/rss-directory.6. i z tego powodu zajmuje cenne miejsce na stronie. W przeciwieństwie do wyszukiwarek takich jak Google. że strona zawiera kanał R S S . należało ukryć moduł Lastest News. Pamiętaj.5. na stronie pojawią się najnowsze wpisy z ustawionego kanału RSS wraz z odnośnikami do właściwych artykułów (w zależności od ustawień m o g ą pojawić się też wstępy). Najnowsze przypisany T o by było na tyle! Z a każdym razem. co m o ż e wzbudzić wątpliwości u niektórych odwiedzających T w o j ą stronę. Dlatego jeśli chcesz skrócić czas wyświetlania modułu Feed. Poza tym niektóre kanały RSS obsługiwane są przez powolne serwery. że m o d u ł został o p u b l i k o w a n y i przypisany do lewej kolumny. Ustawienie Ilość słów pozwala ograniczyć wyświetlaną liczbę słów ze wstępu. Jak pokazano na rysunku 12. c h o c i a ż zalecane jest p o z o s t a w i e n i e d o m y ś l n e g o ustawienia RSS 2. katalogi kanałów RSS w y ś w i e t l a j ą n o w e informacje dla tych stron.htm). W p a n e l u p a r a m e t r ó w w p r o w a d ź w p o l e Tekst krótki opis. ponieważ często powoduje wyświetlenie logo autora kanału. Profesjonalne tworzenie stron WN 1W M o ż e s z także wybrać. wyłącz to ustawienie. w przeglądarce Firefox i n f o r m a c j a o tym. Aby jedynym modułem wyświetlanym w centralnej części strony byl moduł wiadomości. W tym wypadku. M o ż e s z także w y b r a ć f o r m a t kanału. ponieważ jest on domyślnie do pozycji userl. skrócona treść artykułu). zauważysz. czy także krótki opis (np. Po uruchomieniu opcji Moduły wybierz pozycję opisaną Syndication.rss-specifications. że cały wstęp zostanie umieszczony pod nagłówkiem.310 Joomla!. U p e w n i j się. Z a p o m o c ą Joomla! możesz udostępnić własny kanał. kiedy użytkownik otworzy stronę główną. Kanał RSS ma odnośniki do artykułów przypisanych do strony głównej. Parametr ilość wiadomości pozwala określić liczbę wyświetlanych pozycji. aby na stronie pojawiał się obrazek symbolizujący kanał. Zapisz ustawienia modułu. O d tego m o m e n t u T w o j a strona zawiera kanał RSS! Jeśli przejdziesz teraz na stronę główną. które w y s z u k u j ą nowe treści pojawiające się na stronie. czy chcesz. Domyślne ustawienie (0 — zero) oznacza. uporządkowanych w e d ł u g daty ( n a j n o w s z e wpisy p o j a w i a j ą się j a k o pierwsze). Funkcjonalność związana z kanałami RSS w Joomla! nie jest ograniczona wyłącznie do odczytywania kanałów. która pozwala Ci udostępnić własny kanał RSS. liczbę ograniczono do trzech. że pojawiła się na niej ikona symbolizująca kanał RSS wraz z odnośnikiem. p o n i e w a ż lista m a być wyświetlana w centralnej części strony głównej. W ten sposób u ż y t k o w n i c y m o g ą być powiadamiani o dodaniu nowych materiałów. w y ś w i e t l a n a jest także na pasku adresu. co wydłuża czas wyświetlania Twojej strony. aby wyświetlić aktualne ustawienia. W większości przypadków opcja Grafika pozostanie wyłączona. które wcześniej zostały .

czy strona zyskuje na pozycji w rankingach wyszukiwarek dzięki umieszczeniu treści pochodzących z kanałów RSS. którym jechały cztery osoby w tym dziecko. Rośnie też poparcie dla SLD. you can add what you need » site grows Don"! wait. Wielu ekspertów od SEO (search engine optimizatiori) twierdzi. Rozszerzenie Auto Articles 3000 Kwestię sporną stanowi pytanie. look throughittle Joomla! Extensions library today. pojawia się także na pasku adresu O Wełcome lo the Frontpage . ponflHffdm. że roboty internetowe rozpoznają treści pobierane z kanałów RSS i ignorują je.ię z auch Jedna o-:-oba zginęła. które są regularnie uaktualniane. ^tedna osoba zgjnpjp.Rozdział 12. ¿4 Jo0mla! About Joomla! The Community Najnowsze wiadomości » Sondaż: 52 proc. który mógłby liczyć na 12-procentowe poparcie • Bus zderzył -.ak Wszystl<le Zaznaczone Rysunek 12. Jeśli jest to prawda.da PO i wzrósł popaicia dla SLD Gdyby wybory odbyt/ się dziś.wynika z sondażu TNS OBOP dla programu Forum w TVP Info. PO zdobyłaby 52 proc. inni użytkownicy szybko się o tym dowiedzą. Zanim jednak umieścisz stronę w katalogu. . m ht:/oahs/oma/ tp/lclotjol2 With a library of hundreds of free Exteoiflorrs. Pi zypisAiiie m e n u menu' (*) Wszystkie { ) B. Ikona symbolizująca kanał RSS wyświetlana jest przez moduł Syndication. dlatego jeśli Twój kanał będzie kiepski. głosów . parametry modułu Syndication wpływają na kanał RSS 311 TiliriilllHMiaiÜiiMi 38 P d l d * ogą 0 ii Modul: [Zmień] »referencje Typ modułu.-:j Kanal RSS {*} Nie O Tak * > Parametry n o t iu td l V Q Wązn Q łcoy Nje ® Tak 36 Wyświetla graficzne odnośniki do generatorów kanału informacyjnego RSS Twojej witryny.6. Większość katalogów pozwala użytkownikom oceniać kanały RSS. mod_syndicate Ty!ul r-:ia twtoi -. yflpnych. Umożliwia pobieranie i wyświetlanie na innych stronach nagłówków wiadomości z Twojej uuitryny. są ranni Bus. upewnij się.. to wpisy pochodzące z kanałów RSS nie są traktowane jako część strony. a w konsekwencji nie są indeksowane przez roboty internetowe. Popular 0 # zarejestrowane. zderzył się z samochodem osobowym w yyoi. .5. • Łączenie z zasobami zewnętrznymi lysunek 12.Mozilla Firefox i pi £ y j W d k ysoi Zkak N r ę z a Pomoc lk d c a i o itra ałdi a z d i . że kanał zawiera przyzwoitą ilość materiałów.

jak zwykłe artykuły. Rozszerzenie Auto Articles 3000 możesz pobrać na stronie: www. com Możesz określić tematykę pobieranych artykułów. Podstawowa instalacja powoduje wprowadzenie 230 artykułów do bazy danych Joomla!. który dynamicznie pobiera zewnętrzne materiały. Rozszerzenie to pobiera artykuły na dane tematy z archiwum artykułów ezine (electonic magctzine — elektroniczny magazyn). żeby odpowiednio dopasować wartość niektórych pól.7. Kopiowanie artykułów można wykonać. Public Relations and the Internet CCMP / BSCI Exam Tutorial: IP Version 6 Zero Compression Cisco CCNACCMP Home Lab Tutorial: Cabli g Your Access Server Site P r o m o t i o n more. Musisz tylko pamiętać. wyszukiwania). SEO 1 . takich jak ID sekcji i kategorii (odpowiednio sectionid i catid). że j e d n ą z cudownych cech open source jest jego otwartość! Masz pełny dostęp do kodu źródłowego i danych większości rozszerzeń.0/en/insert-select. Rozszerzenie Auto Articles 3000 wyświetla pobrane artykuły. Profesjonalne tworzenie stron WN 1W Jednym ze sposobów uzupełnienia treści strony (i zdobycia lepszej pozycji w rankingach wyszukiwarek) jest zastosowanie rozszerzenia o nazwie Auto Article 3000. Rysunek 12. articles3000.3 for Dummies Using Your Rotator Site as an Online Secrets ry increase Your Traffic For Free W i iting more Dedicated Server Is Better Than Shared Server Finally. W tym przypadku oznacza to. w bazie danych Joomla!. Niestety. j Auto Articles 3000 to pakiet komponentów (jeden dla części frontowej. html . Oznacza to.. Calling a Lawyer Should Be a Private Home Sellers First Move The Lemon Law In Florida . jak skonstruować odpowiednie zapytanie. którego działanie zilustrowano na rysunku 12.Stating The Law As It Affects Consumers The Motion Picture Association Of America And Copyrights Wei) Development more. w tabeli jos_content.2.8. com/doc/refman/5. drugi dla panelu administratora) oferowany jako darmowa usługa firmy Elerion. Nowe są automatycznie pobierane w regularnych odstępach czasu (domyślnie jest to 30 minut). Building A Rock Solid Query Letter Publishers Are Standing In Line To Publish Yc u What Is In An Article That Makes It Good Powered by : Free Eïine Aticles Search:: | s e a r c h now.7. korzystając z odpowiedniej opcji w panelu administratora. aby artykuły zostały odpowiednio zapisane. Ltd.. że możesz ręcznie skopiować artykuły pobrane przez komponent Auto Articles 3000 do tabeli jos_content zawierającej normalne artykuły Joomla!. Informacje. a następnie umieszcza je w Twojej bazie danych Joomla!. Pamiętaj jednak. znajdziesz na stronie: http: //dev. jak to przedstawiono na rysunku 12. artykuły pobrane za pomocą komponentu nie są przechowywane w ten sam sposób. a także uaktualniane. Rozszerzenie przechowuje pobrane artykuły w tabeli jos_a3000_articles. Someone Made The Web Design Process Easy To Understand The Power of Effective Brochures more. W przeciwieństwie do wątku. przechowywane w bazie danych Joomla! C o m p u t e r s and T h e Internet L e g a l Mattel s more. a także innych rozszerzeń (np.312 Joomla!. że nowe materiały są niedostępne dla większości funkcji Joomla! (np. mysql. artykuły pobrane za pomocą Auto Article 3000 zapisywane są na Twoim serwerze. stosując instrukcję MySQL INSERT INTO. jeśli zostanie znaleziona nowsza wersja. tych odpowiedzialnych za tworzenie mapy strony).

Webmaster podpisuje umowę z daną firmą. a na końcu wybrać miejsce na stronie. ustawić jego parametry. Joomla! może obsługiwać większość popularnych programów partnerskich za p o m o c ą rozszerzeń. Google lub Amazon. wystarczy zainstalować odpowiednie rozszerzenie. gdzie powinny pojawiać się reklamy. Programy tego typu są na tyle dochodowe. Zmiana tego typu wymaga ingerencji w kod źródłowy. np. że duże strony zarabiają dosłownie tysiące dolarów miesięcznie wyłącznie z programów partnerskich. N części administracyjnej •ozszerzenia vożna wybrać "ematykę pobieranych artykułów Categories manager j Category A u t o and Trucks Business and Finance : Computers and T h e Ir Education Family Fùod and Drink Gadgets and Oremos Health Current Status J R e q u i r e d status • 313 O Q Q 0 O 9 • 0 • Q Q • • • • • • 0 • Leg3i Matte Marketing U Q • Kolejnym sposobem ingerencji w funkcjonalność rozszerzenia jest zmiana częstotliwości pobierania artykułów. więc wartość 1800 odpowiada 30 minutom. Aby uruchomić na stronie dany program partnerski. Otwórz plik zawierający kod komponentu w edytorze tekstu.$last_checked > 1800) { Wartość parametru time zwracana jest w sekundach. aby odpowiadały usłudze. • Łączenie z zasobami zewnętrznymi lysunek 12. Urządzanie programami partnerskimi Programy partnerskie to najpopularniejszy sposób zarabiania na prowadzeniu strony W W W . które wstawiają niezbędny kod (HTML. Możesz tak j ą ustawić.Rozdział 12. Zmień tę liczbę według upodobań. często także JavaScript) w treści strony. kiedy odwiedzający kliknie reklamę lub kupi jakiś przedmiot. która przypomina poniższą: if ( t i m e O . Nie jest to możliwe z poziomu interfejsu administratora. .php Poszukaj w pliku linii. webmaster otrzymuje wynagrodzenie.8. Za każdym razem. przez co zgadza się na wyświetlanie reklam na swojej stronie. możesz go znaleźć (względem głównego katalogu Joomla!) w: 1 components \com_a3000\a3000. aby artykuły były pobierane częściej niż co 30 minut.

Za każdym razem. Po potwierdzeniu zgodności z warunkami umowy (brak pornografii..9). com/adsense Po pierwszym uruchomieniu konta Google będą wyświetlane wyłącznie społeczne ogłoszenia (zobacz rysunek 12. łączyć materiały w oddzielne „kanały". który wyświetla reklamy powiązane z treścią strony.50 View payment history View 1 Today >j Page im ressions A d S e n s e for C o n t e n t • top channels .G e t started Total Earnings $4527. Not only Is the book full of Hollywood techniques. jeśli strona jest wyjątkowo popularna lub reklamy związane z tematyką strony są szczególnie drogie.50 . Zanim treść strony zostanie zweryfikowana przez pracowników Google. Zarządzanie kontem odbywa się z poziomu strony W W W .) zostaną wyświetlone płatne reklamy. co pozwala monitorować reklamy w różnych częściach strony. nielegalnych materiałów itd.google.iick$ Page Cid Page eCPM f?j Earnings 54325. właściciel strony dostaje pewną kwotę. będą wyświetlane wyłącznie ogłoszenia społeczne » m Today Help Rebuild Lives & Communities in Hurricated States Have you heard about the Nuts and Bolts Filmmaking book from Focal Press? This book opens the world of professional moviemaking to guerilla filmmakers everywhere. Rysunek 12.25 A d S e n s e for S e a r c h C Sicks Referrals • top products CTR Sign-tips Conversions [21 Earnings S200 50 A d S e n s e for M o b i l e C o n t e n t . Rysunek 12.9. musisz się najpierw zarejestro www. Ekran administracyjny Google AdSense przedstawia podsumowanie wyświetleń.314 Joomla!. Usługa polega na umieszczeniu na stronie kodu. dopóki pracownik Google nie zbada Twojej strony. przychodów i innych danych Today's Earnings: $4527. Aby skorzystać z reklam AdSense.10. kiedy użytkownik kliknie którąś reklamę. Click on the above link Program AdSense można także konfigurować. Profesjonalne tworzenie stron WN 1W Program partnerski Google AdSense Jednym z najpopularniejszych programów partnerskich w internecie jest AdSense firmy Google. co zilustrowano na rysunku 12. Łącznie może uzbierać się z tego spora suma. most of the equipment shown in the book can be constructed for under $30.10. np.

kliknij przycisk Dalej. korzystając z opcji Rozszerzenia/Moduły w panelu administratora — pokazano to na rysunku 12. GoogleOl. Właściwy kod wprowadź w pole HTML box. Od tego momentu konfiguracja przebiega identycznie jak we wcześniejszym przykładzie.Rozdział 12. Aby utworzyć kolejny egzemplarz modułu wyświetlającego reklamy Google. Domyślnie. który ostanie /yświetlony a stronie Ustaw tytuł modułu.11. Zaznacz HTML Module jako typ modułu (zobacz rysunek 12. Możesz zmienić jego ustawienia. Wreszcie kliknij przycisk Zapisz (w prawej górnej części ekranu). po zainstalowaniu modułu. Jest to fragment napisany w języku JavaScript. który powinieneś wstawić na stronę. włącz pokazywanie modułu na stronie i wybierz pozycję. google_ad_format = "728x90_as": google_ad_type = "textjmage": google_ad_channel //--></scnpt> <script type="text/javascr1pt" src="http://pagead2. aby odpowiadał treści (np. który pozwala wyświetlić dowolny kod HTML lub JavaScript na stronie Joomla!. kliknij przycisk Nowy na stronie Moduły. • Łączenie z zasobami zewnętrznymi 315 W panelu administratora AdSense możesz wygenerować kod. który przypomina poniższy: <script type="text/javascript"><!-google_ad_client = "pub-xxxxxxxxxx": google_ad_width = 728: google_ad_height = 90. kran edycji arametrów lodułu Mod ITML pozwala /prowadzić 'owolny kod ITML. tworzony jest jeden egzemplarz o nazwie Htm! Module. możesz wykorzystać rozszerzenie o nazwie Mod HTML (http://fijiwebdesign.12).com). ponieważ jest to pierwszy moduł zawierający reklamy google). Jest to nieskomplikowany moduł. ysunek 12. Wyłącz wyświetlanie tytułu. .googlesyndi cati on.com/pagead/show_ads.11. a reklamy Google automatycznie pojawią się w wybranym miejscu.js "> </script> ="xxxxxxxxxx": Aby wstawić kod wyświetlający reklamy AdSense na stronie Joomla!.

amazon.*. Amazon umożliwia wstawienie reklam różnego typu na stronie — od listy konkretnych produktów. W przeciwieństwie do Google Amazon płaci wyłącznie za te kliknięcia odnośników. Amazon również udostępnia program partnerski (.„ O Wpirijtz Program partnerski firmy Amazon Podobnie jak Google.http://affiliateprogram. Program Amazona pozwala wybrać z kilku typów reklam Link to a specific product on A m a z o n . • Earn referrals o f up t o 15% o f sales. T e x t and Image links.14) możesz znaleźć informacje na temat skuteczności reklam.. Tworząc nowy egzemplarz modułu.. o. c a and show some information about t h a t p r o d u c t . a zostanie wygenerowany mały fragment kodu JavaScript.. • Easy t o add.. • Use Product Previews t o e n h a n c e y o u r Product Links.. tzn.«. który następnie powinieneś wstawić na swoją stronę.13 przedstawiono kilka z nich.12. Na rysunku 12. • S h o w special graphics for special A m a z o n . OMU.13.316 Joomla!. wybierz typ HTML Module / c w u t l . a które nigdy nie są wybierane.. O 3*4.. • Y o u r links will include your A s s o c i a t e tag and y o u will be paid for qualifying revenues coming through this link. O NjjjEęściej tzsrłana O Ankieta Ol-«. liczy się. OoiaOu OtaMI O Saytk ttsyi ÖwhoVs Online Ota. czy kupiony zostanie akurat reklamowany przedmiot. c a promotions s u c h as Back to School or Mothers Day. które zakończyły się sprzedażą. Rysunek 12. Profesjonalne tworzenie stron WN 1W Rysunek 12. • Many standard banner sizes and shapes available. • A d d Banners N o w JÊ&M f amazonconi W panelu programu partnerskiego (zobacz rysunek 12. które z nich trafiają w zainteresowania odwiedzających. Nie ma znaczenia tutaj. Kliknij przycisk Add obok interesującego typu reklam.*. aby określić. ile kliknięć zakończyło się sprzedażą. • A d d Product Links n o w t amaxonmp3 Link to A m a z o n product c a t e g o r i e s and promotions using our stylish graphical banners. m hi.„ m Ścieżka pokotu O Wyswi e l ¿j t ^ ^ ^ ^ ^ Moduty O Reklama Owtasnykod HTML O Stopka ONajnowsze wiadomości OL. po reklamy kontekstowe. . a n d Image only links to A m a z o n p r o d u c t s . których kod można wygenerować w panelu programu partnerskiego. T h e Product Links tool lets y o u build customised T e x t Links.com/gp/associates/join). Warto zwrócić szczególną uwagę na listę produktów.. „. czy użytkownik przychodzący z danej strony dokona dowolnego zakupu.

Amazon.co.00% b y referring 7 more items) Jul! report . które zamierzasz umieścić na stronie. • Łączenie z zasobami zewnętrznymi ysunek 12.00 $0.com. który umożliwia wstawienie reklam z programu partnerskiego bezpośrednio w treści artykułu.14.15). dlatego musisz najpierw znaleźć wybrany przedmiot. Dzszerzenie Amazon Associates Rozszerzenie Amazon Associates jest dodatkiem.co. Rozszerzenie możesz pobrać z: http://extensions.uk.joomlaspan.00 $0. fait repoit j O r d e r e d items Clicks Conversion Glossary 0 0 N/A I Link T y p e R e p o r t Link Tvce (Glossary 1 P r o d u c t Links E n h a n c e d Display A. Możesz zdecydować się na Mod HTML. który zademonstrowano w ramach opisu programu Google AdSense. wprowadź w treść artykułu następujący tekst: {amazon id='B000W3QTBE' align='LEFT'} . Adres przedmiotu będzie przypominać poniższy (ID produktu zostało wyróżnione): http://www. np.uk/Sandisk-Player-Sansa-feature-incliided/dp/B000W3QTBE/ ref=sr_l _1 ? ie=UTF8&s—electronics&qid=1229625364&sr=8-1 Aby wstawić odnośnik do danego przedmiotu i określić. Inne z ustawień wpływają na wygląd prezentowanych reklam.00 $0.Rozdział 12. ID produktu można odczytać z jego adresu na stronie Amazona.de i Amazon. w jaki sposób będzie opływany przez tekst (opcjonalne. 0 4.fr.00% $0. Amazon. V panelu arządzania najdują się iformacje •a temat lopularności skuteczności eklam 317 Earnings S u m m a r y T o t a l items s h i p p e d Referral R a t e ( I n c r e a s e this t o Referral F e e s Gift C e r t i f i c a t e / C a r d Earnings Kindle S u b s c r i p t i o n E a r n i n g s Prime S u b s c r i p t i o n Earnings 6. Dodatek współpracuje poprawnie z większością wariantów językowych programu.00 Glossary Click here to view the referral rate tier chart.00% Do zarządzania reklamami Amazona możesz wykorzystać jedno z dostępnych rozszerzeń Joomla!. Musisz znać ID produktów. lub wybrać rozszerzenie stworzone specjalnie dla programu partnerskiego Amazona.html Po zakończeniu instalacji musisz wprowadzić numer ID programu partnerskiego w ustawieniach dodatku (zobacz rysunek 12. Amazon. Parametr Amazon ID jest kluczowy. możliwe ustawienia to L E F T i RIGHT). ponieważ na jego podstawie naliczane są zyski Twojej strony.amazon.com/view-document-details/159-amcizon-associates.iilH m m » 'Jä&zs&äj Conversion 0.

Amazon Products Feed Brigde Dużo potężniejszy. Amazon Products Feed Bridge to pakiet modułów.16 przedstawiono przykładową stronę Joomla! zawierającą funkcję wyszukiwania produktów i wyświetlającą książkę wraz z opisem. który pozwala Ci stworzyć wirtualny sklep Amazona na Twojej stronie. ale pamiętaj. a także dodatek. co doprowadza do błędów zapisu. spróbuj wyłączyć na chwilą edytor WYSIWYG.<br /><br /> The ui will look something l k this:<br !> http:/Awi*Ai. uk/demo/apf bridge . a następnie ponownie wprowadź kod odpowiedzialny za reklamy w treść artykułu. Umożliwia wyświetlanie aktualnych produktów Amazona na Twojej stronie. Konfiguracja rozszerzenia Amazon Associates © S'ryb Z! i Pdld ogą O O 1 włg yoi « .com ie /gp/produ ctf<fo nt co I o r r d > B00005RIY5 <Ho nt>/ief= p d_ka r_giAj_1 = e /002-5997680-7114400?%5 Fencoding=UT F8&v= g I a n ce&n= 130 < b r br /> The highligi 000 000 0000FF iwMi' jest «wolnym oprogramowaniem dostępnym na licenoji i l l U OPL Możesz wstawić dowolną liczbę odwołań. Na rysunku 12. komponentów.uk (United Kingdom) V. W praktyce oznacza to. połączona z API usług sieciowych Amazona. że działanie Twojej strony może zostać spowolnione. co. deanmarshałł.15. Za p o m o c ą rozszerzenia APF Brigde możesz połączyć system APF z Joomla!. ceną.318 Joomla!. od przedstawionego wcześniej rozszerzenia. stworzona z zastosowaniem biblioteki PERL. Aplikację APF możesz pobrać na stronie: www. jeśli pracuje ona na łączu o niskiej przepustowości lub serwer Amazona * jest przeciążony. Jest to aplikacja open source. jest pakiet Amazon Products Feed (APF). 0 Rerwszy V FFFFFF Use {amazon \i='itm#itiHtr aligns***'} where the id i the amaze s id of the product.' Dodatek: [zmień] com (United States) co. com/aws Pakiet APF Bridge dla Joomla! dostępny jest na stronie: www. Profesjonalne tworzenie stron WN 1W Rysunek 12.amazon. że każda reklama jest oddzielnie pobierana z serwerów Amazona.com for a product and looking at the uil. Jeśli produkt nie jest poprawnie wyświetlany. zdjęciem okładki i innymi informacjami. Niektóre edytory WYSIWYG niepoprawnie odczytują kod reklam. mrrat.<br/> You can find the id by searching amazon.

którą zastosowano do przesyłania plików. Za pomocą odpowiednich rozszerzeń możliwe jest zarządzanie takimi transakcjami w Joomla!.16. który pozwala wstawić poszczególne znaczniki APF Brigde. .coin's Pi ice: 112.35 (45%) Pricsi subject to change. • System APF napisano w Perlu w oparciu o biblioteką cURL. Dodatek mosAPF_button — Dodaje przycisk do edytora WYSIWYG Joomla!. Jeśli na Twoim serwerze nie zainstalowano biblioteki cURL. wspomniano. które odpowiadają za różne funkcje. W rozdziale 4. które umożliwia przeszukiwanie sklepu Amazon w danym kraju. mazon Products eed Brigde łączy tronę Joomla! ezpośrednio e sklepem mazon Message from Dean . Jednak większość transferowanych przez internet pieniędzy związana jest z transakcjami typu Business to Business (B2B).com Pakiet APF Brigde składa się z kilku rozszerzeń.b3 — We współpracy z komponentem przeszukuje treść artykułu i wstawia w miejsce znaczników APF informacje ze sklepu Amazon. Moduł modapfsearch — Wyświetla pole wyszukiwania. nie będziesz mógł uruchomić APF.If you notice any errors within this demo store please drop me a line 319 Books > Subjects > Science Fiction & Fantasy Ciment Store: US World Stole U K Store I Canadian Store I French Store I German Store Books : Categories Only within this Category v Search P i eakitKi D a w n tTtm 1 witttttit Saua. Transakcje warte miliardy dolarów przeprowadzane są za pośrednictwem sieci Web i związanych z nią technologii.64 V o n S a w : $10. Steahenie Meyer August 02. że system Joomla! można wzbogacić o funkcje eCommerce ukierunkowane na klientów. takie jak sklep internetowy. • Łączenie z zasobami zewnętrznymi ysunek 12. 2008 List Pt ice: Atn. 1 Buy from Amazon. Dodatek mosAPF_05.Rozdział 12. Stosowanie tego rozszerzenia oszczędza czas i zmniejsza ryzyko błędów spowodowanych niepoprawnym wprowadzeniem. [omunikacja biznesowa z zastosowaniem EDI Rozrost e-commerce w ciągu ostatniej dekady jest zaskakujący. Poszczególne rozszerzenia to: • • • Komponent APF Bridge — Łączy bibliotekę APF Perl z Joomla!.tzori. Book 41 by.May 8th 2007 ! a m currently testing out a new version of the APF Bridge Component .

statyczny adres IP serwera bazowego). dostępnym pod adresem: www.1. Standardy dla dokumentów X12 dla różnych branż pogrupowano w kategorie — przedstawia je (z odpowiednimi skrótami) tabela 12.aspx?tabid=486 Standardy EDI Istnieją dwa główne standardy EDI. Ze względu na głównym obszar zastosowania (B2B) większość implementacji EDI pozostaje „ukryta". przez FTP. np. wyniki badań laboratoryjnych itd. Opisy kilku standardów dokumentów EDI znajdziesz na stronie: http://rapidnet. Standardowy format dokumentów określono dla wielu branż. które zastępuje. które ograniczają ryzyko kompromitacji systemu. który narzuca model klient-serwer w komunikacji EDI. Dzięki odpowiednim rozszerzeniom możesz zmienić Joomla! w serwer EDI.). GXS i BT*EDINET. Korporacja Wal-Mart stosuje standard Applicability Statement 2 (AS2). W Europie stosowany jest standard United Nations/Electronic Data Interchange For Administration. Commerce. prywatnej sieci.org/Default. AS2. and Transport (UN/EDIFACT). Coraz częściej stanowi także warstwę zabezpieczeń w przypadku przesyłania danych przez internet. takich jak XML. Dokumenty EDI EDI stosowany jest często do automatyzacji realizacji transakcji. Mimo braku rozgłosu format ten jest głównym standardem wykorzystywanym przy większości ogólnoświatowych elektronicznych transakcji.).org/rfc/rfc4130. Value Added Network (VAN) to rodzaj zabezpieczonej. popierany przez ONZ. co zmniejsza koszty i daje większe możliwości przesyłu. takie jak INOVIS. np. transportu (faktury. Profesjonalne tworzenie stron WN 1W EDI (Electronic Data Interchange — elektroniczna wymiana danych) to zbiór standardów stosowanych przy elektronicznej wymianie informacji między organizacjami. Standard ANSI ASC Xl2 (najczęściej nazywany po prostu AT/2) jest główną implementacją wykorzystywaną w Stanach Zjednoczonych. Dokumenty EDI mogą być przesyłane w dowolny sposób. bezpośrednio połączony modem.). AS2 lub VAN. MIME. papierowym materiałom. Standard nakreśla listę wymagań (np. oferowanej przez firmy.320 Joomla!. w przeciwieństwie do spopularyzowanych formatów. zamówienia itd.ietf. przemysłu medycznego (dane o pacjentach. przemysłu maszynowego (plany konstrukcyjne. harmonogram pracy itd. Protokół AS2 opisano w dokumencie RFC 4130. . HTTP. txt Większość dokumentów EDI odpowiada treścią oryginalnym.

kolejności produkcji. zaświadczeń o stanie zatrudnienia. oświadczeń o uzyskanych dochodach. nakazów sądowych i egzekucyjnych. powiadomienia i potwierdzenia zwrotów. zawiadomień o zwrotach finansowych. planowania harmonogramu z uwzględnieniem możliwości wydania towarów. ich rozdziału i informacji oraz obsługi i statusu. informacji o stawkach podatkowych lub zwrocie podatku z tytułu ubezpieczenia od utraty pracy. wyciągów z konta/faktur dotyczących usług skonsolidowanych. reklamacją materiałów. powiadomień o upoważnieniach udzielonych pełnomocnikom. zamówieniami oraz odpowiedziami na oferty cenowe. bony producentów i wykup bonów. Definicje dotyczące analizy kont. Definicje dotyczące kont firmowych. faktury. Standardy związane z ewidencją zasobów. zapytaniami o artykuły. powiadomienia o bonach. oceny lub korekty należności podatkowych. sprawozdań związanych z opłatami licencyjnymi.1. Standardy dotyczące raportowania danych o kosztach związanych z wykonawcami. sprawozdań z wydatków operacyjnych. określenia jednolitych kodów handlowych oraz informacji o rejestracji wyborców. badaniem zobowiązań materiałowych. w tym porozumienia o współpracy reklamowej. charakterystyki kont. wniosków o przyznanie koncesji przez Federalną Komisję Łączności. zatwierdzaniem (lub wycofaniem zatwierdzenia) produktów prośbami o oferty cenowe. korekt po stronie „winien" i „ma". zatwierdzania obciążeń. powiadomienia 0 odbiorze przekazanego towaru do magazynu oraz powiadomienia o wysyłce towaru z magazyn li. powiadomienia o przewozach magazynowych. przydział funduszy rozwojowych. informacji statystycznych oraz wymiany informacji podatkowych. katalogi handlowe. Obsługa materiałów (MAT) Usługi podatkowe (TAX) Magazyny (WAR) Finanse (FIN) Urzędowe (GOV) Produkcja (MAN) . potwierdzeń lub korekt dostawy/zwrotu. powiadomienia o korektach stanu magazynowego. listy przewozowe oraz powiadomienia o wysyłce i zafakturowaniu. faktur. rekompensat okresowych. wniosków sądowych. raportowania sprzedaży komisowej. informacją o cenach. faktury/zlecenia kupna/zmiany zleceń kupna artykułów spożywczych. raporty z analiz dedukcyjnych. zapytań/informacji o towarach. zapisu bazowego dostaw/zwrotów. utrzymanie artykułów. raportów o statusie zamówień. depozytów. elektronicznej rejestracji potwierdzeń złożenia formularzy podatkowych. statusem i zatwierdzaniem cen. zlecenia zakupu i potwierdzenia tych zleceń. Standardy dotyczące podmiotów gospodarczych. raportów o odsprzedaży i transferze produktów. informowania o obciążeniach. odbioru potwierdzenia (akceptacji) certyfikatu oraz odpowiedzi w sprawie korekty zapisu transferu produktów. raportów finansowych. odpowiedzi na oferty przetargowe. danych na temat funkcjonowania produktów. rozliczeń dochodów i aktywów. • Łączenie z zasobami zewnętrznymi abela 12. informacji statystycznych. wniosków o unieważnienie płatności oraz zawiadomień o zleceniach zakupu 1 przelewach. zamówienia przewozu. elektronicznej rejestracji formularzy podatkowych i potwierdzeń ich złożenia. podsumowania działalności operacyjnej. Kategorie formatów dokumentów standardu Kategoria Zamówienia (ORD) Co zawiera X12 321 Standardy określające różne pozycje. Standardy określające sposób raportowania o odwiedzonych klientach. powiadomień o stawkach podatkowych. zapytań o statusie zamówienia.Rozdział 12. korygowania zapisu transferu produktów. faktur przewozowych. kontroli ogólnego obciążenia.

zgłoszenia ładunku (manifest przewozowy). informacji zbiorczych na temat bezpośrednich dostaw do sklepów. zmiany przydziałów zadań logistycznych. odpowiedzi lub potwierdzenia. raportu o dodatkowym zabezpieczeniu hipotecznym inwestora oraz przekazania dodatkowej pożyczki hipotecznej. utrzymania zamówień usługowych. prośby o status świadczeń zdrowotnych. potwierdzenia rezerwacji. usługi informacji ubezpieczeniowej oraz orzeczenia wypłaty. odpowiedzi od usługodawców logistycznych. raportowania harmonogramu projektu. inspekcji nieruchomości.1. śledzenie realizacji świadczeń. zawiadomienia/płatności dotyczące świadczeń zdrowotnych. informacje na temat usług medycznych. zapytania o warunki nabycia świadczeń. zaświadczenia o ubezpieczeniu przewożonego ładunku. raportów dotyczących zarządzania płatnościami wynikającymi z umowy. zachowania wymiarów produktów. Inżynieria zarządzania i umowy (ENG) Ubezpieczenia i zdrowie (INS) Pozostałe transakcje (MIS) Hipoteka (MOR) . powiadomienia o statusie świadczeń zdrowotnych. raporty dotyczące urazów ciała. informacji o zdolności kredytowej. chorób i wypadków losowych. treści części składowych. potwierdzenia funkcjonalne. statusu domyślnego pożyczki hipotecznej. propozycji cenowych w umowach. dane na temat agenta ubezpieczeniowego. zamówień na usługi logistyczne. statusu sfinalizowania umowy. zbiorczego zestawienia ładunku dla przewoźników. wniosków o ubezpieczenie hipoteczne. warunki i zakres przyznawania ich oraz informacje 0 ich wysokości. powiadamiania o zmianie zapisów dotyczących własności lub hipoteki. odpowiedzi na wniosek o ubezpieczenie hipoteczne. anulowanie ustaleń oraz komunikaty tekstowe. powiadomień o wysyłce i zafakturowaniu. dokumentacji zlecenia usługi transportowej. raporty o stanie roszczeń i śledzenie odpowiedzi na wnioski. świadczenia dotyczące utraty lub zniszczenia pojazdów samochodowych. dokumentowania tytułu do nieruchomości. charakterystyki partnerów handlowych. informacji o rozbieżnościach w dostawie wysłanego towaru. prośby o raport o nieruchomości. informacji wysyłkowych orazhannonogramu przewozu. Kategorie formatów dokumentów standardu X12 — ciąg dalszy Kategoria Dostawy (DEL) Co zawiera Standardy dotyczące przydziału zadań związanych z transportem. odpowiedzi na przydział zadań transportowych. rachunków i faktur przewozowych. raportów o kredycie hipotecznym. Standardy określające działalność rentową. informacje o dostawcy usług medycznych. raportowania kosztów projektu. status wniosków o ubezpieczenie/rentę. pobierane korzyści i świadczenia. świadczenia zdrowotne. opis systemu ubezpieczeń. wniosków o pożyczkę mieszkaniową. zakres i wysokość świadczeń. raportowania danych o kosztach kontrahentów. informacje o pacjentach. zamówienia usług ubezpieczenia tytułu do nieruchomości. instrukcji związanych z trasą i przewoźnikiem. śledzenie statusu danych. raporty o zniszczeniu mienia. zamówienia raportu o kredycie hipotecznym. specyfikacji (informacji technicznych). Standardy dotyczące wniosków o przyznanie świadczeń na podstawie ubezpieczeń hipotecznych.322 Joomla!. historii cen. informacji o spłacie nieruchomości. Profesjonalne tworzenie stron WN 1W Tabela 12. Definiuje komunikaty usług kryptograficznych. przeglądu wyników sprzedaży oraz innych informacji. powiadomień o zaopatrzeniu. wnioski o ubezpieczenie na życie i przyznanie renty inwalidzkiej. transfer plików. streszczeń umów. strukturę formularzy elektronicznych. wpisu do księgi wieczystej. listy adresowe. zgłaszanie wypadków medycznych. Standardy dotyczące klauzul i postanowień umownych. szczegóły przeglądu pojazdów samochodowych. raportu o nieruchomości. raportowanie wymogów ubezpieczeniowych. zapytania ogólne. zawiadomienia o stratach losowych 1 utracie mienia. pogłębiania komunikacji.

Europejski standard U N / E D I F A C T został z a a k c e p t o w a n y przez ISO j a k o standard 9735. wnioski o wydanie zaświadczeń z przebiegu studiów (wyciągi). Kategorie formatów dokumentów standardu X12 — ciąg dalszy Kategoria Serwisowanie produktów (PSS) Co zawiera Definicje dotyczące rejestracji produktu. uprawnienia do prowadzenia samochodów dostawczych. • Łączenie z zasobami zewnętrznymi abela 12. ewidencję kursów edukacyjnych. AUTHOR BANSTA BAPLIE BAPLTE BOPBNK BOPCUS BOPDIR BOPINF CALINF CASINT UN/EDIFACT Opis Znaczenie Błędy transmisji i potwierdzenia Bezpieczne uwierzytelnianie i potwierdzanie Autoryzacja Stan realizacji zleceń bankowych Plan rozmieszczenia ładunku i wolne miejsca Ogólna liczba towarów lub ilość ładunku Rozliczenia bankowe i zestawienie transakcji Zestawienie salda płatności klienta Deklaracja bezpośredniego salda płatności Informacja od klienta na temat salda płatniczego Informacja o przybyciu statku Prośba o wystąpienie na drogę sądową w postępowaniu cywilnym .1. roszczeń serwisowych. odpowiedzi na wnioski o wydanie zaświadczeń z przebiegu studiów (wyciągi) i poświadczenia. karty charakterystyk substancji niebezpiecznych.2. powiadomień o serwisowaniu produktu.Rozdział 12. nakaz zwrotu kredytu studenckiego oraz weryfikację statusu i spłaty kredytu studenckiego. informacji 0 pochodzeniu produktu. Zamiast tego d o k u m e n t y zdefiniowano w formacie wiadomości identyfikowanych przez skróty przedstawione w tabeli 12. ogłoszeń promocyjnych oraz zgłaszania i autoryzacji zwrotów handlowych. (SQQ) wymianę informacji na temat uprawnień do prowadzenia samochodów dostawczych oraz ich bezpieczeństwa. podania o stypendium i pomoc finansową. raporty z wynikami testów oraz żądania 1 raportowanie wyników testowych. odpowiedzi na roszczenia serwisowe. Informacje dla studentów (STU) Definiuje podania o przyjęcie do instytucji edukacyjnych. Nie uwzględniono w nim określonego zestawu kategorii jak w X l 2 .2. wnioski o kredyt studencki. poręczenia kredytów studenckich. Skróty Metoda Skrót APERAK AUTACK. protokoły niezgodności. abela 12. potwierdzenia przyjęcia na studia. 323 Jakość i bezpieczeństwo Standardy określające dane toksykologiczne z testów przeprowadzanych na zwierzętach.

Skróty UN/EDIFACT — ciąg dalszy Metoda CASRES CHAMAP COARRI CODECO CODENO COEDOR COHAOR COLADV COMDIS CONAPW CONDPV CONDRA CONDRO CONEST CON1TT CONPVA CONQVA CONRPW CONTEN CONTRL CONWQD COPARN COPINO COPRAR COREOR COSTCO COSTOR CREADV CREEXT CREMUL CURRAC CUSCAR Opis Wystąpienie na drogę sądową w postępowaniu cywilnym Tablica odwzorowań Raport o wyładowaniu (załadunku) kontenera Raport przyjęcia (odprawy) kontenera Powiadomienie o gotowości do klarowania statku/wygaśnięciu pozwolenia Raport o stanie kontenerów Zamówienie specjalnej obsługi kontenera Zawiadomienie o dokumentacji Spór handlowy Informacja o pracach do wykonania Oszacowanie płatności bezpośredniej Zarządzanie plikami planów projektowych Organizacja i struktura planów projektowych Określenie warunków kontraktu Zawiadomienie o przetargu Oszacowanie płatności Oszacowanie ilości Odpowiedź na powiadomienie o pracach do wykonania Oferta przetargowa Komunikat kontrolny Określenie liczby elementów roboczych Zgłoszenie kontenera Zawiadomienie o kontenerze Polecenie wyładowania (lub załadowania) kontenera Polecenie zwolnienia kontenera Potwierdzenie wyładowania (załadowania) zawartości kontenera Polecenie wyładowania (załadowania) zawartości kontenera Zawiadomienie o udzieleniu kredytu Szczegółowe zawiadomienie o udzieleniu kredytu Wielostronne zawiadomienie o udzieleniu kredytu Rachunek bieżący Zgłoszenie ładunku do odprawy celnej .324 Joomla!. Profesjonalne tworzenie stron WN 1W Tabela 12.2.

Skróty UN/EDIFACT — ciąg dalszy Opis Deklaracja celna Ekspresowa deklaracja celna Raport spedycji celnej Odpowiedź urzędu celnego Siedzenie danych Zawiadomienie o obciążeniu konta Wielostronne zawiadomienie o obciążeniu konta Harmonogram dostaw Precyzyjne określenie czasu dostawy Zawiadomienie o wysyłce Ocena zniszczeń wyposażenia i kosztów naprawy Polecenie zapłaty Definicja katalogu Zawiadomienie o akredytywie dokumentowej Zawiadomienie o zmianie w akredytywie dokumentowej Informacje o zmianie w akredytywie dokumentowej Prośba o zmianę w akredytywie dokumentowej Wniosek o akredytywę dokumentową Odpowiedź na zmianę w akredytywie dokumentowej Informacja o wystawieniu akredytywy dokumentowej Wycofanie operacji finansowej Wyciąg z konta bankowego Komunikat ogólny Informacje statystyczne Przygotowanie towaru do transportu Spedycja i konsolidacja Kalkulacja kosztów spedycji i transportu Powiadomienie o materiałach niebezpiecznych Koszty przewozu w transporcie międzynarodowym i inne opłaty Lista ładunków niebezpiecznych Powiadomienie o przybyciu przesyłki Potwierdzenie rezerwacji 325 .Rozdział 12.2. • Łączenie z zasobami zewnętrznymi Tabela 12.

2. Profesjonalne tworzenie stron WN 1W Tabela 12.326 Joomla!. Message implementation guide) Instrukcja rozmieszczenia i zamocowania ładunku Prośba o zmianę zamówienia . ang. Skróty UN/EDIFACT — ciąg dalszy Metoda ITFMBF IFTMBP IFTMCS 1FTMIN IFTMSC 1FTRIN IFTSAI 1FTSTA IFTSTQ IHCEBI INSPRE INVOIC INVRPT ITRGRP ITRRPT JAPRES JIBILL JINFDE JOBAPP JOBCON JOBMOD JOBOFF MEDADR MEDAUT MEDPID MEDREQ MEDRPT MESGEV MIGRPT MOVINS ORDCHG Opis Rezerwacja stała Rezerwacja tymczasowa Status wykonania instrukcji zawartych w umowie Instrukcja transportowa Spedycja i transport pojedynczej przesyłki Informacja o tempie spedycji i transportu Harmonogram spedycji i transportu oraz informacje o dostępności towaru Informacja o statusie międzynarodowego transportu multimodalnego Prośba o status międzynarodowego transportu multimodalnego Interaktywne zapytania i odpowiedzi na temat uprawnień i świadczeń z tytułu ubezpieczenia zdrowotnego Składka ubezpieczeniowa Faktura Raport magazynowy Przeładunek na trasie przewozu Szczegółowy raport o przeładunku na trasie przewozu Wyniki przeglądu podań o przyjęcie do pracy Sprawozdanie rozliczeniowe wspólnego udziału Prośba o informacje na temat pracy Przedstawienie ofert osób ubiegających się o przyjęcie do pracy Potwierdzenie zlecenia pracy Modyfikacja zlecenia pracy Zlecenie pracy Niepożądane działanie leku Wstępna autoryzacja medyczna Identyfikacja osoby Prośba o usługę medyczną Wyniki badania medycznego Wydarzenie towarzyskie Zgłoszenie instrukcji wdrażania wiadomości (MIG.

2. • Łączenie z zasobami zewnętrznymi abela 12.Rozdział 12. Skróty UN/EDIFACT — ciąg dalszy Opis Zamówienie Odpowiedź na zamówienie Informacja adresowa Lista pasażerów Zawiadomienie o potrąceniach płacowych Szczegółowe polecenie zapłaty Wielostronne polecenie zapłaty Polecenie zapłaty Raport o uszkodzeniach i utracie mienia Katalog lub cennik Dane o produkcie Uzgodnienie wymiany produktów Lista promocyjna Zaplata składki ubezpieczeniowej Dane jakościowe Oferta cenowa Raportowanie surowych danych Potwierdzenie reasekuracji Potwierdzenie dostawy Wyliczenia reasekuracyjne Ochrona kredytowa Roszczenia reasekuracyjne Awizo przekazu Składka reasekuracyjna Prośba o dokument Prośba o ofertę cenową Rozliczenie reasekuracyjne Rezerwacja Prośba o rezerwację — komunikat interaktywny Odpowiedź na rezerwację — komunikat interaktywny Reasekuracyjny rachunek techniczny 327 .

Skróty UN/EDIFACT — ciąg dalszy Metoda SAFHAZ SANCRT SCRIPT SKDACK SLSFCT SLSRPT SSCLDE SSDREQ SSIMOD SSRECH SSREGW STATAC SUPCOT SU PM AN SUPRES TANSTA TESTEX TESTIM TINREQ TINRSP TRADES TRADIN TRAILS TRALOC TRAREQ TRAVAK TRAVIN VATDEC VESDEP WKGRDC WKGRRE Opis Dane na temat bezpieczeństwa i materiałów niebezpiecznych Regulacje prawne dotyczące międzynarodowego przewozu towarów Zapytania i odpowiedzi dotyczące recept — komunikat interaktywny Potwierdzenia harmonogramu Prognoza sprzedaży Raport sprzedaży Decyzja w sprawie świadczenia z opieki społecznej Prośba o przesłanie danych dla opieki społecznej Zmiana danych identyfikacyjnych Historia ubezpieczeniowa pracownika Powiadomienie o zarejestrowaniu pracownika Wyciąg z konta Zawiadomienie o składkach na fundusz emerytalny Obsługa funduszu emerytalnego Odpowiedź dostawcy Raport o stanie zbiorników Komunikat testowy w trybie jawnym Komunikat testowy w trybie ukrytym Prośba o informacje turystyczne Odpowiedź na prośbę o informacje turystyczne Definicje opisu podróży i ruchu ulicznego Szczegółowe informacje na temat trasy podróży lub ruchu ulicznego dotyczące pojedynczego podróżującego Planowanie i wskazówki dotyczące trasy podróży i ruchu ulicznego Lokalizacja trasy lub położenia w ruchu ulicznym Prośba o informacje na temat trasy podróży lub ruchu ulicznego Potwierdzenie informacji na temat trasy podróży lub ruchu ulicznego Informacja o sytuacji na trasie podróży lub w ruchu ulicznym Podatek VAT Wypłynięcie statku Decyzja w sprawie dodatku pracowniczego Prośba o przyznanie dodatku pracowniczego .328 Joomla!. Profesjonalne tworzenie stron WN 1W Tabela 12.2.

Wybierz Skylark introduction aby zapoznać się ? przydatnymi informacjami wprowadzającymi SkylaikEDlit>a. Substantial changes have been made to drivers for ul this release. Please read the following notes. Rozszerzenie Skylark składa się z zestawu komponentów i modułów. przetwarzane są zarówno przychodzące. • Łączenie z zasobami zewnętrznymi 329 Rozszerzenie Skylark Za pomocą rozszerzenia Skylark możesz zmienić Joomla! w serwer EDI. Warto zapoznać się z jego treścią. Refer t the Skylaik EDI Developers Manual and the release notes for further information. il i s tity lc .17). Po ukończeniu instalacji zostanie wyświetlony odnośnik do wprowadzenia (zobacz rysunek 12. but f sit please read the section on updating Skylaik in the Administration Manual for f l instructions. ponieważ wyjaśnia podstawowe zasady działania komponentu. Honda. s I you are upgrading from a previous release then you will need to update your database schema.lllaIi<msircciissrtll " ® Skylark EDI: Welcome to Skylark EDI .Rozdział 12. FTP. An alpha release i a version of the software that i sil in development and probably has features. Features that are woiking may be changed without notice. np. be broken by a future release. procesami biznesowymi. Stihl. missing or not woiking. a także konwerterami formatów dokumentów. Briggs. or simply be removed. Update scripts are available to a s s you. In short.17. Nie ma ograniczeń odnośnie do typów obsługiwanych dokumentów. an alpha release i not suitable for a production environment. This can be a ltl involved and so you are strongly advised to read the Skylaik EDI Administration Manual for information on how ite ble by clicking on the "Help" menu i e t individual pages within Skylark EDI car This i the fourth alpha release of Skylark EDI. Rysunek 12. o The following shortcuts w l take you directly to specific pages in the help system ( t i not s r c l necessary to c i k on "Continue" at this point). s s s tl sometimes important features. I you have produced your own drivers for earlier releases of Skylark EDI then you w l need to amend them before they w l work f il il correctly with this release. jak i wychodzące dokumenty. Obsługuje poniższe translatory: • • • • • ARI. Obsługiwane są następujące transporty (protokoły komunikacyjne): • • • • Generic (ogólne. Skylark umożliwia zarządzanie partnerami handlowymi. Stihl (wykorzystuje HTTP). Honda (wykorzystuje IBM MQ). ARI (wykorzystuje HTTP). SMTP i POP3). GMI. Before Skylaik EDI can actually be used for anything you will need to i s a l and configure additional Skylaik ntl EDI modules. protokołami komunikacyjnymi.

korzystając z interfejsu internetowego zdalnego systemu (w tym wypadku jest to AP1 Map Google). a następnie filtruje je pod kątem pożądanych informacji. zaczęli wzbogacać aplikacje o okna. Dane pobrane w formacie HTML zostaną przefiltrowane. a interesujące informacje wyświetlone na stronie Joomla!. do popularyzacji danych w formie tekstowej. biorąc pod uwagę fakt. ale także tania w porównaniu z tworzeniem samodzielnej aplikacji internetowej. czego skutkiem była większa elastyczność w porównaniu z tekstowymi poprzednikami. w odpowiedzi na przesłane zapytanie zostaną zwrócone dane w formacie XML. a jest to szczególnie przydatne. Dostępność danych spowodowała ponowny rozrost popularności programów typu screen scraper. Z tego powodu komunikacja z sieciami zewnętrznymi w Joomla! jest nie tylko praktyczna. dzięki temu uda się sprostać realnym problemom. rozwijalne menu. W tym podrozdziale dowiesz się. które normalnie pojawiłyby się na ekranie (lub w oknie przeglądarki). Profesjonalne tworzenie stron WN 1W Komunikacja z sieciami zewnętrznymi W poprzednich rozdziałach miałeś okazję doświadczyć. Producenci oprogramowania. które łączą się z zewnętrznymi stronami.330 Joomla!. Komponent typu screen scraper System sieci World Wide Web przyczynił się. a także inne elementy. jak stworzyć rozszerzenia. Wszystkie zademonstrowane rozszerzenia można dopasować. Screen scraper pobiera dane. jak żaden inny. jak i prosty program pobierający wyłącznie tekst (w tym wypadku zostaną wyświetlone także znaczniki HTML). Przykładowo doświadczenia zdobyte w komunikacji za pośrednictwem interfejsu internetowego zdalnego systemu można wykorzystać przy programowaniu komunikacji z serwisem zewnętrznym. Drugie rozszerzenie doda nowe materiały na stronie. Ostatnie rozszerzenie to przykład interakcji ze zdalną bazą danych. że liczba usług posiadających internetowe AP1 stale rośnie. co pozwala Ci skupić się na szczegółach implementacji danej funkcji. . Prawie wszystkie strony dostępne w internecie można odwiedzić zarówno przez przeglądarkę. pola wyboru. Krótka historia screen scraperów Między latami siedemdziesiątymi XX wieku. prosta aplikacja zostanie zbudowana z zastosowaniem zawartych w PHP funkcji do pobierania danych z serwerów zewnętrznych. a erą przeglądarek internetowych XXI wieku miała miejsce era graficznych interfejsów użytkownika (GUI — Graphical User Interface). Pierwsza. Dzięki zastosowaniu platformy Joomla! większość elementów interfejsu użytkownika jest już gotowa. zachęceni sukcesem komputerów typu Macintosh. że stworzenie własnego. prostego komponentu dla systemu Joomla! nie wymaga dużych nakładów pracy. Tak uzyskane informacje mogą zostać zapisane lub ponownie sformatowane i wyświetlone. które cechowała popularność tekstowych aplikacji opartych na modelu mainframe-terminal.

niż ogrom pracy programistycznej. pracującą w tle. aby zapisać je lub wyświetlić w innym formacie. a właściwą aplikacją tekstową. Dane były odczytywane z wydruków programów tekstowych i przesyłane do aplikacji graficznych. Screen scraper był programem pośredniczącym między aplikacją tekstową a użytkownikiem lub bardziej zaawansowanym programem pobierającym dane. prawne i etyczne. Wady zastosowania screen scrapera Jeśli pobierasz materiały ze zdalnej strony i publikujesz je na swojej witrynie. Wszystkie informacje publikowane na stronach WWW. wycinania. tak aby korzystały z nowych paradygmatów GUI. Powinieneś je rozważyć. który pobiera kod HTML danej strony internetowej. kopiowania i wklejania (a także wielu innych). • Łączenie z zasobami zewnętrznymi 331 Rewolucyjny rozrost popularności aplikacji graficznych oznaczał spory problem dla organizacji. Implementacja takiego programu w postaci komponentu Joomla! nie sprawia większego problemu. Ponieważ PHP posiada wbudowane funkcje związane z obsługą HTTP. W ten sposób użytkownik mógł korzystać ze wszystkich nowoczesnych udogodnień. są dostępne także dla programów zbierających. który był częścią frontową systemu. które umożliwiały dużą elastyczność przechowywanych danych. była konwersja danych przechowywanych w tych specyficznych systemach. które przetwarzają pobrane dane. powstaje spora liczba problemów — techniczne.Rozdział 12. Niemalże z dnia na dzień udostępniono ocean danych w niezaszyfrowanym. stosunkowo prosto można napisać program. W ten sposób zmiana formatu danych stała się wielkim wyzwaniem. publicznym i łatwo dostępnym formacie. Wraz z wybuchem popularności HTML wszystko się zmieniło. screen scraper przesyłał dane do właściwej aplikacji tekstowej. Na scenie pojawiły się wtedy screen scrapery. dostępne dla przeglądarek internetowych. Większość organizacji wymieniła stare systemy na zgodne ze standardami serwery baz danych. Gdy użytkownik kliknął przycisk Zapisz. Zniknęła konieczność stosowania programów typu screen scraper. które zainwestowały ogromne ilości czasu i pieniędzy w tekstowe programy napisane z myślą o komputerach typu mainframe. symulując wprowadzanie danych z klawiatury. . Niezbędne okazało się przepisanie aplikacji. takich jak możliwość cofania. Częściej zadaniem screen scraperów było filtrowanie informacji z wydruków. W czasie projektowania tych systemów nie stosowano ogólnych standardów. Jeszcze większym wyzwaniem. np. Nie minęło dziesięć lat. Wraz z upływem czasu i spadkiem zastosowania aplikacji tekstowych screen scrapery traciły na znaczeniu i popularności. a aplikacje tekstowe z nowinek technologicznych zmieniły się w zabytek. W przypadku aplikacji graficznych screen scraper to warstwa pośrednia między interfejsem graficznym. a następnie wyszukuje na niej pożądane informacje. ponieważ nie były one jeszcze zdefiniowane. Otrzymywane dane były następnie przesyłane do nowego systemu. ponieważ zgodny ze standardami system przechowywania danych pozwalał na dostęp do nich za pośrednictwem aplikacji middleware dowolnego typu. zanim zastosujesz aplikację typu screen scraper. generowanych przez aplikacje tekstowe. systemu zarządzania bazą danych (DBMS).

Przykładowo Warunki korzystania z usług Google zawierają poniższy fragment. Ponowna publikacja w zmienionym formacie dodatkowo utrudnia cały proces. Mimo że bardzo łatwo można pobrać informacje udostępniane w Google. zużywa jego zasoby. Bez żadnych wątpliwości program. W przeciwieństwie do człowieka. Profesjonalne tworzenie stron WN 1W Problemem technicznym związanym z wykorzystaniem screen scrapera jest brak standardowego API. ponieważ pobierają informacje. Chociaż możesz być w stanie pobrać informacje i opublikować je na swojej witrynie bez konsekwencji prawnych. Działa tutaj ta sama zasada. chociaż informacje są publicznie dostępne. może być to działanie nieetyczne. .332 Joomla!. jest to działanie nielegalne. Pamiętaj. aby były one dostępne dla programu. Zastosowanie aplikacji tego typu wymaga ciągłego nadzoru. Często informacje te umieszczane są w trudno dostępnych miejscach lub są podane w tak niejasnej formie. może się okazać. a następnie ponownie wykorzystane w nieznanym celu. marnotrawiąc łącze internetowe i inne zasoby. dla których screen scraping jest szalenie użyteczną techniką. Można także założyć. a jutro nie działać wcale. które umożliwia dostęp do danych. komunikaty ministerstwa zdrowia). że dane pojawią się w określonym formacie. które są dostępne za darmo i do dowolnych zastosowań. Dodatkowo ich zastosowanie eliminuje potrzebę odwiedzenia strony. który jest w stanie odczytać informacje poprawnie. który wyklucza nieautoryzowane zastosowanie screen scrapera: Użytkownik zgadza się nie uzyskiwać dostępu do usług Google inaczej niż za pośrednictwem interfejsu oferowanego przez Google w celu uzyskiwania dostępu do usług Google z wyjątkiem przypadków wyraźnie dozwolonych w osobnej umowie na piśmie. które są źródłem zysku dla właściciela. na której pojawiły się materiały. Dodatkowym problemem natury prawnej mogą być warunki korzystania z danej strony. Biorąc pod uwagę problemy prawne. Z tego powodu screen scraper może dzisiaj działać bezbłędnie. jak przy kopiowaniu artykułów i twierdzeniu. że jest się ich autorem — to plagiat. zapobiegając np. Niektóre organizacje aktywnie zwalczają aplikacje tego typu. W praktyce oznacza to. czy wyświetlono je w trzech. o czym pisze w dokumencie „Warunki korzystania z serwisów spółki Google". co utrudnia ustalenie oryginalnego źródła. Obok tych niejednoznacznych sytuacji istnieje sporo zastosowań. Dla materiałów dostępnych w sieci kwestie związane z prawem autorskim są bardzo niejasne. Kolejny aspekt techniczny związany jest z działaniami dążącymi do zablokowania scrapera. który automatycznie pobiera dane z danego serwera WWW. że zwielokrotnianie informacji ze zdalnej strony na Twojej witrynie jest nielegalne. Google na przykład zabrania korzystania z aplikacji typu screen scraper. program musi kierować się ścisłymi regułami przy zbieraniu informacji. Wiele rządowych stron WWW zawiera informacje. ponieważ zakłada. Niektóre strony są kompilacją informacji z innych źródeł. że właściciel tej strony nie zamierzał opublikować informacji. że ponowna publikacja w zmienionym formacie może być zaklasyfikowana jako służąca dobru publicznemu. że każda zmiana na stronie zewnętrznej może spowodować. Ich powszechność finansowana jest z pieniędzy podatników (np. że Twój program przestanie działać. niezależnie od tego. że nawet publiczne bazy danych zawierają czasem ostrzeżenia przed automatycznym pobieraniem danych. czy czterech kolumnach. wyświetleniu reklam.

klikając przycisk Submit po zakończeniu wprowadzania danych. które tego zabraniają. przedstawiony komponent wyświetli dane w postaci tabeli HTML. powinieneś szanować wolę ich właścicieli i nie stosować aplikacji typu screen scraper w takich wypadkach. projekt komponentu musi uwzględniać cztery zadania: • Otrzymać żądanie lub zapytanie od użytkownika — Najczęściej zapytanie wprowadzane jest przez użytkownika w pole formularza HTML. Rysunek 12. Hemingway in his own country Category: book . jest to typowy element scrapera. Aby nie komplikować niepotrzebnie przykładu. Do pobrania danych w formacie HTML zostanie wykorzystana biblioteka PHP do obsługi gniazd sieciowych. które wypełniają to zadanie. •odstawowy kod źródłowy komponentu Aby skonstruować screen scrapera. • Łączenie z zasobami zewnętrznymi 333 Chociaż opisana w tym rozdziale technologia może służyć do pobierania informacji praktycznie z dowolnych stron. czyli także z tych. Kenneth Schuyler Published: 1987 Language: English Details » Check Availability » ] mmJ> 2. Hemingway Category: book By. Screen Scraper wyświetli na stronie sformatowane informacje oobrane z zewnętrznego źródła Oto wyniki Twojego zapytania Zapytanie Hemingway i 1. Użytkownik przesyła żądanie do komponentu.Rozdział 12. Przetworzyć pobrane dane — Dzięki potędze wyrażeń regularnych można łatwo przetworzyć ogromne ilości danych tekstowych. Nicholas Published: 1989 Series. Pobrać dane z zewnętrznej strony — To zadanie jest kluczowym punktem programu. Sformatować uzyskane informacje i zwróć je do użytkownika — W przypadku systemu Joomla! można zastosować jedną z kilku różnych metod. McDowell. który działa efektywnie w roli middleware'a. English Check Availability i 3. Hemingway Category: book By: Lynn.18. Life and works Language. aby uzyskać efekt przedstawiony na rysunku 12. który posłuży do formatowania. 3. wyświetlonego przez komponent. Często najlepszą metodą jest zapisanie danych w formacie X M L i wykorzystanie dokumentu XSLT.18. • • • Po wyszczególnieniu najważniejszych punktów komponentu możemy przejść do fazy konstrukcji. 2.

</copyright> <authorEmail>admin@joomlajumpstart. Wprowadź poniższy kod w edytorze tekstu i zapisz go pod nazwą comscrape.0" encoding="utf-8"?> type="component"> «install version="1.jooml a jumpstart. Z pobranych danych zostanie usunięty kod HTML.0</versi on> <description>Pobiera wartość pola z formularza. Wszystkie prawa zastrzeżone.334 Joomla!. będą przesiane do przeglądarki użytkownika odwiedzającego Twoją stronę.org</authorEmai1> <authorllrl >www." /> </params> </i nstal1> component="com_scrape">scrape.gov" label="Strona zewnętrzna" description="Adres strony. org</authorUrl > <versi on>l. * @package ScreenScrape * Pobiera wartość pola formularza.</description> Kod komponentu Scraper Zadaniem komponentu jest wyszukiwanie na zewnętrznym portalu książek.xml: <?xml version="1. Wprowadź poniższy kod i zapisz go pod nazw\scrape. po ponownym sformatowaniu. których tytuł zawiera podaną przez odwiedzającego frazę. Profesjonalne tworzenie stron WN 1W Plik deskryptora Plik deskryptora w tym przypadku jest prymitywny. wyszukuje na stronie zewnętrznej odpowiednie * i zwraca sformatowany wynik */ // Zablokuj definedt bezpośredni dostęp 'Brak dostępu' ) informacje '_JEXEC' ) or die( .php\ <?php /** * @version $Id: scrape.php</filename> component="com_scrape">scrape. a uzyskane informacje. służy wyłącznie do zarejestrowania komponentu w systemie. Wszystkie prawa zastrzeżone.0.0" <name>Scrape</name> <author>Dan Rahmel</author> <creationDate>July 2007</creationDate> <copyright>(C) 2007 Dan Rahmel. z której zostaną pobrane informacje. wykonuje zapytanie na zdalnej stronie i zwraca odczytane <fi les> <filename </files> <admini stration> <menu>Scrape</menu> <fi les> <fi lename </files> </admini stration> <params> <param name="url" type="text" default»".php 5203 2007-06-15 02:45:14Z DanR $ * @copyright Copyright (C) 2007 Dart Rahmel.5.php</filename> informacje.

= SmyAgent . SmyGet = "": SmyAgent = "User-Agent: Mozilla/5. 'task' )) { 335 } // Przetwórz dane przestane w formularzu function doExecuteQueryt) { // Pobierz wartość pola query SfldQuery = JRequest::getVar('query') : // Usuń wszystko. Spattern = "/<ol class=\"result\">(. co mogłoby być kodem HTML itp. SqueryStr . } else { Sout = "GET " . • Łączenie z zasobami zewnętrznymi // Sprawdź wartość parametru task i uruchom właściwą funkcję switch( JRequest::getVar( case 'query': doExecuteQueryt). "\r\n". Sout .org".chipublib. "/". Sout).Rozdział 12. SerrNum. SmyApp = "Content-Type: appl ication/x-www-form-urlencoded".= "Host: ". SmyPath .= "Connection: Close\r\n\r\n". Smatches): return SmatchesEO]: } } // Wyświetl formularz function displayQueryEntryO { ?> <hl class="contentheading">Formularz zapytania</hl> .0 (Windows.8. "". fwrite($fp. function doScrape(SqueryStr) { Smyllrl = "www.<br />\n". echo "<a href=index. "Wróć do Scrape</a>". SfldQuery): //" SmyData = doScrapeiSfldQuery). 30): if (!Sfp) { return "Błąd #". "przy pobieraniu strony.= fgets(Sfp. SfldQuery = preg replace("/f^ąćęłńóśźża-zĄĆĘŁŃÓŚŹŻA-ZO-9 . break.0\r\n": Sout . SfldQuery . Serrstr. Sfp = fsockopen(SmyUrl. SmyApp . break. echo "<hl>0to wyniki Twojego zapytania</hl>".?!$()V\"]/".1) Gecko/20061010 Firefox/2. 80. default: displayQueryEntryO. SmyGet. echo "<hr />". Windows NT 5. U. } fclose(Sfp). Sout . echo SmyData. "\r\n". SmyPath = "/search/results/terms/" .php?option=com_scrape>" . echo "<p>Zapytanie: " . SmyUrl .0\r\n". "<p>". " HTTP/1. while (!feof($fp)) { SmyGet .1:" " en-US: rv:1.*)<\/ol>/s": preg_match(Spattern. 128). SerrNum .

zip i zainstaluj komponent w systemie Joomla!. Kompletną listę funkcji API (wraz z przykładowym kodem) znajdziesz na: www. zawiera odpowiednie znaki wodne. W przypadku zmiany strony musisz dopasować wyrażenie regularne przekazywane funkcji preg_match(). Wprowadź adres w pole adresu komponentu Joomlamap Formularz wyszukiwania mapy Wprowadź adres Gryf ino| ViVswlGt lokalizację Gdy użytkownik kliknie przycisk Wyświetl lokalizację. który łączy API Map Google z systemem Joomla!. Chociaż dostępny jest już komponent. samodzielna implementacja takiego rozszerzenia ma wysoką wartość dydaktyczną. za pomocą którego Twój program może pobierać mapy z serwerów Google.google. komponent zostanie przeładowany. że usługa jest darmowa. ale także dodatkowe dane. Komponent Joomlamap Google udostępnia darmową usługę. Jest to rekompensata dla Google za to. jak przedstawiono to na rysunku 12.19. Profesjonalne tworzenie stron WN 1W <form id="forml" name="forml" method="post" acti on="i ndex. API Map Google Google udostępnia bardzo dobre i darmowe API. jak przedstawiono to na rysunku 12. Interfejs komponentu pozwoli użytkownikowi wprowadzić adres w pole tekstowe.php?opti on=com_scrape&task=query "> <p>Wprowadź poszukiwany tytuł:<br /> <textarea name="query" cols="60" rows="l" </p> <p> id="query"></textarea> <input type="submit" name="Submit" value="Wyświetl wyniki" /> </p> </form> <?php } ?> Umieść oba pliki w archiwum o nazwie com_scrape. Komponent odczyta wartość z formularza.20. która pozwala webmasterom wstawić na swoich stronach zdjęcie satelitarne lub mapę (lub oba elementy jednocześnie) danej okolicy.com/apis/maps . tym razem wartość parametru task będzie ustawiona na goto. pozwala Ci zrozumieć. jak funkcjonuje komunikacja ze zdalnym API. Ponieważ mapa pobierana jest z serwera Google (informuje o tym stosowny komunikat). aby pobierany był właściwy fragment kodu HTML. Zadaniem tego kodu jest po prostu wycięcie fragmentu zawierającego wyniki i wstawienie go na Twojej stronie. Rysunek 12. za pomocą procedury geokodowania przetłumaczy podany adres na długość oraz szerokość geograficzną i wywoła API Map Google w celu wyświetlenia odpowiedniej mapy.336 Joomla!.19.

mapa nie zostanie zwrócona. który można manipulować za pomocą kodu JavaScriptu. Aby zdobyć klucz.</copyright> <authorEmai1>admi n@joomlajumpstart. musisz zarejestrować się na poniższej stronie: www.przyklad.0" type="component"> <name>Joomlamap</name> <author>Dan Rahmel</author> <creationDate>July 2007</creationDate> <copyright>(C) 2007 Dan Rahmel. Wprowadź poniższy kod w edytorze tekstu i zapisz go pod nazwą com Joomlamap. Component oomlamap przedstawiający sidok satelitarny siatką ulic 337 Twoja lokalizacja Lokalizacja Gryfino • El ] i C i i O L ^ ^ a r t o ś ć mapy ©2008 PPWK Tete Atlas * Wróć do Joomlamap Copyright© 2009 Open Source Matters Wszelkie prawa zastrzeżone. typ widoku (widok ulic. • Łączenie z zasobami zewnętrznymi ysunek 12. Dodatkowo system Google rozróżnia wielkość liter w adresie.0</versi on> <description>Komponent wyświetla mapę odpowiadającą adresowi wprowadzonemu w pole tekstowe</descri pti on> <files> <fi1ename </files> component="com_joomlamap">joomlamap. służy wyłącznie do zarejestrowania komponentu w systemie. jak lokalizacja. ejestracja w systemie Każda strona. satelitarny. zbliżenie. Oznacza to. że musisz mieć oddzielny klucz dla serwera testowego i serwera produkcyjnego. aby ustawić takie parametry.com/mapa nie zadziała na stronie www.google. dlatego klucz przypisany stronie www.5. musi mieć przypisany unikatowy klucz.0. hybrydowy) i inne. która korzysta z API Map Google. Joornlal jest wolnym oprogramowaniem dostępnym na licencii GNU GPL. Jeśli klucz wysłany wraz z żądaniem mapy będzie niewłaściwy.20.0" encoding="utf-8"?> <instal1 version="1.org</authorllrl> <versi on>l. com/apis/maps/signup.php</fi1ename> .przyklad. Wszystkie prawa zastrzeżone.com/Mapa. Aplikacja internetowa Mapy Google tworzy obiekt map.org</authorEmai1> <authorUrl>www.xml: <?xml version="1.Rozdział 12. joomlajumpstart .html lik deskryptora Plik deskryptora w tym przypadku jest prymitywny.

338 Joomla!. SfldQuery)- <script src="http://maps. * @package Joomlamap * Komponent łączący z usługą Map Google.key=" iuserKey . Profesjonalne tworzenie stron WN 1W <admini stration> <menu>Joomlamap</menu> <files> <fi 1 enarne component="com_jooml amap">jooml amap. "<p>": echo "<p>Lokalizacja: " . " type="text/javascript"></script> <scri pt type="text/javascript"> . $fldQuery = preg_replace("/[^ąćęłńóśźża-zĄĆĘŁŃÓŚŹŻA-Z0-9 //" echo "<hl>Twoja ?> lokalizacja</hl>": . // Przetwórz dane przesłane w { formularzu function gotoLocation() SuserKey = $params->get('key'. Wszystkie prawa zastrzeżone.php 5203 2007-06-15 02:45:14Z DanR $ * @copyright Copyright (C) 2007 Dan Rahmel. // Pobierz wartość poła location z formularza IfldLocation = JRequest::getVar('location') : // Usuń wszystko. SfldLocation . break: default: } displayAddressEntryO." /> </params> </i nstal1> Kod komponentu Joomlamap Zadaniem komponentu jest wyświetlenie na stronie dwóch elementów: skryptu wyświetlającego i znacznika rezerwującego miejsce dla mapy. "".php-. co mogłoby być kodem HTML itp. php</fi 1 ename> </fi 1es> </admini stration> <params> <param name="key" type="text" default»"" label="Klucz Map Google" description="Wprowadź klucz zarejestrowany dla tej strony. wyświetla mapę dla wprowadzonego */ adresu // Zablokuj defined( // Sprawdź bezpośredni dostęp '_JEXEC' ) or die( Brak dostępu' ): wartość parametru task i uruchom 'task' )) { właściwą funkcję switch( JRequest::getVar( case 'goto': gotoLocation().com/maps?fi1e=api&amp:v=2&amp.google. . break. 0). Wprowadź poniższy kod w edytorze tekstu i zapisz go pod nazwajoomlamap.?!$()\'\"]/". /** <?php * @version $Id: joomlamap.

addOverlay(marker).php?opti on=com_joomlamap&task=goto"> <p>Wprowadź adres:<br /> <textarea name="location" cols="60" rows="l" </p> <p> <input type="submit" name="Submit" value="Wyświetl lokalizację" /> id="location"></textarea> </p> </form> <?php } ?> . var marker = new GMarker(point). 13).php?option=com_joomlamap>" .openlnfoWindowHtml(address). map.getLatLng( address. marker. -122. 13): geocoder = new GC1ientGeocoder(): 339 } } function showAddresstaddress) { if (geocoder) { geocoder. • Łączenie z zasobami zewnętrznymi //<![CDATA[ var map = nul 1: var geocoder = nul 1: function l o a d O { if (GBrowserlsCompatibleO) { map = new GMap2(document.setCenter(new GLatLng(37. map.1419). function(point) { if (!point) { alertiaddress + " not found"): } else { map. map.getElementById("map")).addControl (new GSmalIZoomControl O): } ).Rozdział 12. showAddress('<?php echo ifldLocation. "Wróć do Joomlamap</a>": ?>'): } // Wyświetl formularz do wprowadzania adresu function displayAddressEntryO { ?> <hl class="contentheading">Formularz wyszukiwania mapy</hl> <form id="forml" name="forml" method="post" acti on="i ndex. } } i //]]> loadO.4419.setCenter(point. </script> <?php echo "<a href=index.

Rejestracja odbywa się pod adresem: https://secure. korzystając z opcji Rozszerzenia/Instalator.21.shippingapis. ID użytkownika.shippingapis. Informacje zwracane są w formacie X M L i zawierają adres oraz kod ZIP. dane na temat państw europejskich są niedostępne—przyp. 1 Narzędzie USPS pozwala wyszukiwać adresy na terenie Stanów Zjednoczonych. Intencją USPS jest dopuszczanie do głównej bazy wyłącznie dokładnie przetestowanych aplikacji.com/ShippingAPlTest. Wyszukiwanie adresów z zastosowaniem XML USPS (U. Postal Service) udostępnia darmową usługę pozwalającą na zautomatyzowane pobieranie danych adresowych 1 . Zanim rozpoczniesz. znajdzie się także adres serwera testowego. którzy będzie zawierać Twoje ID użytkownika.com/registration/ Formularz rejestracyjny wymaga wprowadzenia podstawowych informacji. jeśli diagnostyka byłaby przeprowadzana z użyciem głównego serwera. . Adres ten może przyjąć postać http://testing. Tym sposobem oszczędzane są zasoby USPS.S. którą otrzymasz. Konstrukcja rozszerzenia. które zostałyby zmarnowane.dll (adresy mogą się różnić).shippingapis. Po przejściu do ustawień komponentu możesz ustawić klucz dostępu do Map Google.21. Rysunek 12. musisz założyć konto na stronie USPS. Formularz rejestracyjny na stronie USPS wymaga wprowadzenia danych osobowych Kim POSTAL SERVICE UNITED STATES aby uzyskać unikatowe Registration for USPS W e b Tools Please fill in the followiiifj infoi motion (^Required fields) * First Name * Last Name * Company Name * Address 1 Address 2 * City * State Select One Urbanization * ZIP Code * Country UNITED STATES * Email Address * Business Phone What is the Web site address (URL) of the site that will be hosting the USPS Web Tools? How will you be using the USPS Web Tools? Exclusively on my Web site ((Puerto Rico Only) W wiadomości e-mailowej. jest doskonałym przykładem interakcji z zastosowaniem protokołu XML. tłum.com. Profesjonalne tworzenie stron WN 1W Utwórz archiwum zawierające oba pliki pod nazwą comjoomlamap. które łączy się z aplikacją tego typu. niezbędne do korzystania z usługi. Po wypełnieniu i przesłaniu formularza otrzymasz e-mail.dU lub https://secure. co przedstawiono na rysunku 12.zip i zainstaluj w systemie Joomla!.com/ShippingAPITest.340 Joomla!.

aby łatwiej było go odczytać. Poniżej znajduje się (wzięty z podręcznika na stronie USPS) adres służący do testów: http: //NAZHASERWERA/ShippingAPITest. Zawsze zalecam ten krok pośredni w przypadku implementacji zewnętrznego interfejsu.22). . nplementacja strony testowej w PHP Po upewnieniu się. ponieważ pochodzi z serwera testowego pełnego dostępu do systemu — właściwe informacje pobierane są z głównej bazy danych po tym. a następnie przekształcenie go we właściwe rozszerzenie. PHP 5 ma ustandaryzowane funkcje do odczytywania i przetwarzania formatu XML. tłum. możesz samodzielnie sprawdzić działanie serwera i przekonać się. czy wprowadziłeś poprawną nazwę serwera i ID użytkownika.Rozdział 12. obrane lformacje zostaną yświetlone ' przeglądarce ' postaci rzewa XML <?xml version="1.0" ?> • <ZipCodeLookupResponse> «Address ID="0"> <Address2>6406 IVY LIM</Address2> <City>GREENBELT</City> <State>MD</State> <Zip4>HBk/Zip4> </Address> </ZipCodeLookupResponse> W przypadku błędu pobierania informacji upewnij się. irsunek 12. Joomla! to złożony system. jak aktywujesz w pełni swoje konto'. że przy wprowadzaniu musisz podać cały ciąg jako jedną linię. pamiętaj jednak. Po wprowadzeniu adresu i naciśnięciu klawisza Enter Twoja przeglądarka powinna pobrać informacje i wyświetlić j e w postaci drzewa X M L (zobacz rysunek 12. czy Twoja przeglądarka wyświetli pobrane dane. nadeszła pora na stworzenie próbnego kodu PHP. Jeśli błąd nadal występuje. dl 1 ?API=Z1pCodeLookup&XML= <Zi pCodeLookupRequest%20USERID="IDUZYTKOUNIKA"> <Address ID="0"><Addressl></Addressl> <Address2>6406 Ivy Lane</Address2> <City>Greenbelt</City><State>MD</State> </Address></ZipCodeLookupRequest> Adres został zapisany w kilku wierszach. zainstalowane na serwerze. że dysponujesz poprawnym ID użytkownika. możesz zainstalować obsługę XML w postaci modułu PHP. że zwrócony kod ZIP został zamaskowany. Zauważ. Do poprawnego działania rozszerzenia wymagane jest PHP 5. dlatego dużo prościej jest sprawdzić działanie połączenia poza systemem. Nie zapomnij także wstawić w miejsce NAZWASERWERA i ID U ŻYTKO WNIKA informacje.22. ponieważ format adresu mógł się zmienić. Są one niezbędne do poprawnej obsługi systemu USPS. Jeśli Twoja strona działa na serwerze z PHP 4. które otrzymałeś w wiadomości potwierdzającej rejestrację. E-mail wysyłany po rejestracji w systemie zawiera dokładne informacje. jakie kroki należy podjąć. • Łączenie z zasobami zewnętrznymi 341 amodzielne testy Jeśli dysponujesz już ID użytkownika. aby uzyskać dostęp do głównej bazy danych — przyp. poszukaj informacji w podręczniku na stronie USPS.

try { @Sdoc = DOMDocument::load($myUrl). SmyCity . Sparam ->textContent .'<br>': // getAttrlbuteC'ID') } } Sparams = Sdoc->getElementsByTagName('Zip4'): foreach (Sparams as Sparam) { echo "Zip 4=".shippingapis. charset=utf-8"><body> . <hl>Test Wyszukiwarki kodów ZIP</hl> <?php $myWTID= "MOJE ID": SmyAddress = "6406 Ivy Lane": SmyCity = "Greenbelt": SmyState = "MD": SmyUrl = "http://testing.</h2> </body> </html> . } catch(DOMException $e) { echo '<p>': printr(Se): echo '</p>': USERID='" . } foreach (Sparams as Sparam) { echo "ID=" . . SmyWTID . "</State>" . Sparams = Sdoc->getElementsByTagName(* Zi p5'): foreach (Sparams as Sparam) { echo "Zip 5=". "<City>" . SmyAddress .com/ShippingAPITest. SmyState . // Wyświetl pobrane dane na stronie echo html special chars($doc->saveXML()): echo "<hr />". "</Address2>" .'">" . echo "<hr />".'<br>': // getAttributet'ID') } ?> <h2>Gotowe.php w głównym katalogu serwera testowego: <html><meta http-equiv="Content-Type" content="text/html. Profesjonalne tworzenie stron WN 1W Wprowadź poniższy kod i zapisz go pod nazwą ziptest. Sparam ->textContent . Sparam ->getAttribute('ID'). "</City><State>" "</Address></Zi pCodeLookupRequest>": echo SmyUrl: echo "<hr />".'<br>'.342 Joomla!. Sparams = Sdoc->getElementsByTagName('Address'). "<Address2>" .dll?" "API=ZipCodeLookup&XML=<ZipCodeLookupRequest "<Address ID='0'><Addressl></Addressl>" .

23.xmt <?xml version="1. powinna zostać wyświetlona strona podobna do tej. org</authorllrl> <version>1. jooml ajumpstart.php — przyp. ysunek 12.0. wpisując przykładowo http://loca!host/ziptest. a następnie wyniki przeszukiwania drzewa XML — trzy wartości.php 'obiera z serwera ISPS kod ZIP 'la ustalonego •dresu Test Wyszukiwarki kodów ZIP http//testing.shlppifigapis com/SbippingAPITest dU?. . która jest przedstawiona na rysunku 12.0" type="component"> <name>zi pfi nder</name> <author>Dan Rahmel</author> <creationDate>July 2007</creationDate> <copyright>(C) 2007 Dan Rahmel.php</fi 1ename> </files> </administration> Plik należy uruchomić za pośrednictwem serwera WWW. W kolejnym kroku pojawia się pełna odpowiedź serwera (format XML).0</version> <description>Pobiera dane w formacie XML z wykorzystaniem parametru.23./LPI=ZipCodeLookup&XML= 6406 Ivy LaneGreenbeltMD c?xral version—'10"?> <ZipCodeLookupResponse><AddressIB=''0''><Address2>6406 IVY LN</Address2> <City>GREENBELT</Crty><Statc>MD</State><Zip53^BH</Zip5><Zip4>1440</Zip4></Address> </ZipCodeLookupResponse> ID=0 Zip • • Zip 4=1440 Gotowe.</description> <fi les> <fi 1ename component="com_zi pfi nder">zi pfi nder. Jeśli otworzysz ten plik w przeglądarce 3 . w dolnej części powinieneś znaleźć odpowiednie wartości Zip 5 i Zip 4. aby znaleźć różnice.org</authorEmai1 > <authorllrl>www. Wszystkie prawa zastrzeżone.5. W przypadku błędu możesz porównać otrzymany wydruk z poprawnym. Test rozpoczyna się od wyświetlenia adresu serwera wraz z przesłanym żądaniem.Rozdział 12. zilustrowanym na rysunku 12. gdzie występuje problem. lik deskryptora Plik deskryptora jest bardzo prosty i służy do instalacji komponentu w systemie. • Łączenie z zasobami zewnętrznymi 343 Nie zapomnij przypisać zmiennej $myWTID właściwego ID użytkownika.23.php</fi 1ename> </files> <administration> <menu>Zip Finder</menu> <files> <fi1ename component="com_zi pfi nder">zi pfi nder. Jeśli test zakończy się niepowodzeniem.</copyright> <authorEmail>admi n@joomlajumpstart. ikrypt ziptest. to dzięki komunikatom na ekranie powinieneś wiedzieć w przybliżeniu. Jeśli próba zakończyła się powodzeniem.0" encoding="utf-8"?> <install version="1. Wprowadź poniższy kod w edytorze tekstu i zapisz go pod nazwą comzipfinder. tłum.

ifldState = JRequest::getVar('state') : // Usuń poniższe 3 linie po zakończeniu testów ifldAddress = "6406 Ivy Lane". ". następnie wysyła żądanie do zdalnego * pobiera i wyświetla sformatowany wynik */ // zablokuj defined( bezpośredni dostęp 'Brak dostępu' ). ." .344 Joomla!. ifldAddress ." /> </params> </install> Kod komponentu Komponent Zipfinder wyświetli formularz pozwalający wprowadzić adres. ifldState . "". ifldAddress). "</h2>". ""." . ifldCity. ifldCity = "Greenbelt": ifldState = "MD".?!i()\'\"]/". imyData . * @package ZipFinder * Odczytuje wartość parametru. funkcję serwera. "</p> echo "<h2>Zip+4: " .php\ <?php /** * @version SId: zipfinder. ifldState = preg_replace("/[ A a-zA-Z0-9 . // Usuń wszystkie niepożądane znaki ifldAddress = preg_replace("/ra-zA-Z0-9 . "Powrót do wyszukiwarki</a>". ifldState): imyData = getZIp($fldAddress. Wartości tych pól umieszczane są w żądaniu wysyłanym do serwera USPS. "". ifldState). który zwraca wyniki w formacie XML. Profesjonalne tworzenie stron WN 1W <params> <param name="accessid" type="text" default="" label="ID użytkownika USPS" description="Wprowadź ID użytkownika. ". aby skorzystać z usługi UPSP.?!i()\'\"]/". miasto i stan. echo "<hl>Znaleziony kod ZIP</hl>": echo "<p>Dla adresu: " . '_JEXEC' ) or dieC // W zależności od parametru task wywołaj właściwą switch( JRequest::getVar( 'task' j) { case 'query': doExecuteQuery(). ifldCity). break: default: displayQueryEntryO: break: } // Przetwórz dane pobrane z formularza function doExecuteQuery() { // Pobierz przesiane dane ifldAddress = JRequest::getVar('address') : ifldCity = JRequest::getVar('city') . ifldCity = preg_replace("/ra-zA-Z0-9 . echo "<a href=index.php 5203 2007-06-15 02:45:141 DanR $ * @copyright Copyright (C) 2007 Dan Rahmet.?!$()\'\"]/". ifldCity . Wprowadź poniższy kod w edytorze tekstu i zapisz go pod nazw\zipfinder. AU rights reserved.php?option=com_zipfinder>" .

Szip4. zainstaluj komponent w systemie. SmyCity.dll?" "API=ZipCodeLookup&XML=<ZipCodeLookupRequest USERID='" "<Address ID='0'><Addressl></Addressl>" .'">" . który należy wypełnić.= Sparam ->textContent: } Sparams = Sdoc->getElementsByTagName('Zi p4'): foreach (Sparams as Sparam) { if (strlen(Szip4) > 0) Szip4 . • Łączenie z zasobami zewnętrznymi function getZip(SmyAddress. "<City>" . ": Szip5 .com/ShippingAPITest. "</State>" .Rozdział 12. print_r(Se) . } // Wyświetl formularz wyszukiwania function displayQueryEntry() { ?> <hl class="contentheading">Formularz wyszukiwania kodu ZIP</hl> <form id="forml" name="forml" method="post" acti on="i ndex. wprowadzając poprawny . Szip4 = "": Sparams = Sdoc->getElementsByTagName('Zi p5'). "</Address2>" . SmyState . SmyCity .shippingapis. SmyState) { SmyWTID= "MYID": SmyUrl = "http://testing. Uruchomienie komponentu spowoduje wyświetlenie formularza. foreach (Sparams as Sparam) { if (strlen(Szip5) > 0) Szip5 . SmyAddress . 345 . "</City><State>" "</Address></Zi pCodelookupRequest>". . ". . w panelu administratora. SmyWTID . Szip4 .= ". '</p>'. } Szip5 = "".= Sparam ->textContent : } return Szip5 . "<Address2>" .php?opti on=com_zi pfi nder&task=query"> <p>Wprowadź adres: <INPUT type="text" name="address" size="80" ><BR> <p>Wprowadź miasto: <INPUT type="text" name="city" size="30" ><BR> <p>Wprowadź skróconą nazwę stanu: <INPUT type="text" name="state" size="2" ><BR> </p> <p> <input type="submit" name="Submit" value="Znajdź kod ZIP" /> </p> </form> <?php } ?> Utwórz archiwum zawierające oba pliki i korzystając z opcji Rozszerzenia/Instalator.= ". "-" . try { @Sdoc = DOMDocument::load(SmyUrl): } catch(DOMException Se) { echo '<p>' .

Otrzymany adres ZIP wyświetlany jest na stronie. W rozdziale 13. . przetwarzana. Adaptowanie rozszerzenia Skylark EDI w celu umożliwienia komunikacji zgodnej z EDI ze stroną Joomla! w roli serwera. jak to pokazano na rysunku 12.346 Joomla!. aby dodać funkcjonalność usług zewnętrznych na stronie Joomla!. a odczytane informacje wyświetlane są na stronie. W tym rozdziale opisano sposoby interakcji z sieciami zewnętrznymi. Komunikacja z zasobami zewnętrznymi może rozszerzyć zakres funkcji Twojej witryny. Rysunek 12. Publikowanie materiałów na stronie w postaci kanałów RSS lub Atom.Gieenbelt. zamiast tego wykorzystywany jest adres wprowadzony na stałe w kodzie źródłowym. W zaprezentowanej wersji adres jest ignorowany. które pomogą Ci zoptymalizować stronę pod kątem jak najlepszej pozycji w wynikach wyszukiwania. opisano kilka innych rozwiązań. Komponent Zipfinder wyświetla kod ZIP dla przykładowego adresu i Znaleziony kod ZIP Dla adresu: 6406 Ivy Lane. co może przełożyć się na wzrost popularności.24. które pobiera dane tekstowe z zewnętrznej strony WWW. Podsumowanie Dostęp do zasobów zewnętrznych z poziomu strony Joomla! rozszerza możliwe zastosowania systemu. w formacie XML. a żądanie wysyłane jest do serwera testowego. Implementowanie obsługi programów partnerskich Google i Amazon w celu zarabiania na prowadzeniu strony.MD Zi p+4 : H K i i i i S l l Powrót do wyszukiwarki Po przeprowadzeniu pełnej aktywacji i uzyskaniu dostępu do głównego serwera USPS powinieneś dopasować adres serwera. a także usunąć trzy linie kodu narzucające wyszukiwany adres. Odpowiedź. jest pobierana. Programowanie własnego rozszerzenia typu screen scraper. Profesjonalne tworzenie stron WN 1W adres. Stosowanie kanałów RSS wraz z analizą użytego formatu. Tworzenie komponentu wysyłającego żądanie w formacie XML do zewnętrznego serwera (w tym przypadku jest to USPS). Wykorzystywanie internetowego API (takiego jak AP1 Map Google) w kodzie komponentu po to. Oba te czynniki wpływają na pozycję Twojej strony na stronach wyników różnych wyszukiwarek internetowych. dostępnych dla odwiedzających. a w szczególności: • • • • • • • • Pobieranie zewnętrznych materiałów przez kanały RSS i za pomocą rozszerzenia Auto Articles 3000.24.

W tym rozdziale przedstawiono pokrótce także aspekty marketingu w wyszukiwarkach internetowych (SEM — Search Engine Marketing). której potencjalni użytkownicy nie mogą znaleźć. The Search Agency). Techniki SEM są bezpośrednio związane z SEO. by była zauważalna w wyszukiwarkach internetowych. że Twoja strona będzie znajdować się wyżej w rankingach wyszukiwarek internetowych. Sprawienie. Wbudowane funkcje ułatwiają robotom internetowym indeksowanie strony. komercyjne organizacje zatrudniają najczęściej firmy od SEM (np. Dlatego nawet jeśli w przyszłości stracą one na znaczeniu. które pozytywnie wpływają na ranking. ze względu na niski (lub zerowy) koszt implementacji. jest jednym z najważniejszych aspektów skutecznego zarządzania nią. Pamiętaj. jednak duże. które o ile stosowane są konsekwentnie. które dzisiaj windują ranking strony. Z drugiej strony. które wpływają na wzrost ruchu na Twojej stronie. Ponieważ większość stron Joomla! jest średniej lub małej wielkości. w rozdziale przedstawiono głównie techniki SEO. ciągle warto będzie je stosować. jutro mogą znacząco stracić na znaczeniu. Istnieje także grupa ogólnych technik. że techniki związane z pozycjonowaniem stron ulegają ciągłym zmianom. W tym rozdziale opisano różne aspekty pozycjonowania stron związane bezpośrednio z Joomla!. System Joomla! zawiera kilka funkcji. które zajmują się wszystkimi kwestiami związanymi z wyszukiwarkami internetowymi. wspomagają pozycjonowanie. płatnych reklam.13 Pozycjonowanie i marketing w wyszukiwarkach internetowych Nie ma większego sensu utrzymywać strony. Techniki SEO (Search Engine Optimization) sprawią. małe i niekomercyjne strony kładą większy nacisk na SEO. co przekłada się na lepsze odzwierciedlenie jej zawartości. Jednak żadna z opisanych w tym rozdziale technik nie wpłynie negatywnie na pozycję strony. . Działania.

które parametry odnoszą się do ustawień użytkownika. także domyślna konfiguracja adresów w systemie Joomla! bardzo negatywnie wpływa na pozycję strony. Przykładowy adres strony. a które wpływają na wybór prezentowanych materiałów. Przykładowo standardowy adres artykułu wygląda tak: http://www. wpłyniesz na pozycję strony w wynikach wyszukiwania. które pozytywnie wpływają na ranking. Na szczęście istnieje rozwiązanie tego problemu — ustawienie Proste adresy.php/tytid-artykidu Powyższy przykład dokładnie spełnia wymagania. Łańcuch żądania z reguły służy do przechowywania parametrów — ustawionych przez odwiedzającego — związanych z wyświetlaniem pewnych treści. Jest to nowa technika wprowadzona w Joomla! 1. Jeśli poświęcisz odrobinę czasu na dostrojenie konfiguracji systemu. Robot internetowy (program. mógłby wyglądać tak: http://www. Dlatego system ten zawiera kilka usprawnień. które można znaleźć na ekranie trzy opcje związane z prostymi adresami: Proste adresy. który indeksuje strony WWW) nie rozpoznaje zbyt dobrze sensu parametrów podanych z łańcuchu żądania. W ten sposób powstaje trudność w rozróżnianiu. . pozwalając robotowi internetowemu poprawnie zaindeksować stronę WWW.php). adres danego artykułu w systemie Joomla! będzie przypominać poniższy: http://www. właściwa strona.com/index. Z tego powodu parametry łańcucha żądania są często ignorowane przez roboty internetowe.php — w nim znajduje się kod odczytujący cały adres.index.przyklad. Rozwiązanie to działa zarówno w przypadku serwera Apache. a nowe materiały będziesz dodawać ze starannością i dbałością o szczegóły. menu lub artykuł wybierane są za pomocą parametrów w łańcuchu żądania. która wykorzystuje łańcuch żądania do tego celu. to korzystając z wbudowanych funkcji Joomla!.przykład.przyklad. jak i IIS. Powyższy adres powoduje uruchomienie pliku index. ącznie kilku kliknięć Proste adresy Domyślnie wszystkie odnośniki w ramach witryny Joomla! odwołują się do jednego pliku (. na podstawie którego zwracana jest odpowiednia strona.php?Itemid=27&option=com_content .com/index. Korzystaj z modrewrite i Adresy z przyrostkiem. Jeśli aktywujesz opcję Proste adresy. com ?userid=98239992107& viewsetting=A TVPDKIKXODER Robot internetowy nie powinien zapisywać wartości tych parametrów. Zmiana kilku globalnych opcji ma natychmiastowy wp Z tego powodu implementacja pożytecznych funkcj w interfejsie administratora. Profesjonalne tworzenie stron WN 1W Ustawienia Joomla! Programiści Joomla! zdają sobie sprawę ze znaczenia pozycjonowania strony.5.348 Joomla!. Taka strategia jest bardzo myląca dla robota internetowego.

Org/docs/2. zostanie wyświetlony komunikat o błędzie.«.apache.htaccess wywoływane są odpowiednie pliki. Jeśli powyższa dyrektywa została wyłączona (niektórzy dostawcy usług internetowych wybierają taką konfigurację).htaccess. że odpowiednie opcje należy włączyć. Jeśli korzystasz z systemu Windows i spróbujesz przeprowadzić tę operację za p o m o c ą Eksploratora. statycznej wersji strony. Jego działanie polega na tłumaczeniu adresów. • Pozycjonowanie i marketing w wyszukiwarkach internetowych fsunek 13.„. OpenSEF) zamiast wbudowanych funkcji Joomla!.0 o\śn«l»» Fowiwlifai* 2 V 0 w a o o c RS5 . pod jakim adresem będą dostępne poszczególne artykuły i kategorie.html. ® T k . . że cały proces konwersji będzie niezauważalny dla robotów internetowych. zanim zarejestrujesz stronę w wyszukiwarkach internetowych. tzn. dlatego wszystkie odnośniki według starego schematu spowodują wystąpienie błędu 404 — strona nieznaleziona. który interpretuje przekazany adres) ustawienie Korzystaj z mod rewrite opiera się na funkcjonalności modułu serwera Apache o nazwie mod_rewrite.com/home/44-pierwszy-artykul-w-joomla W przeciwieństwie do poprzedniej opcji (wywołanie pliku index.—y*>y=k- O t m l z c a d a wyszukiwarek pyaiaj l »»«W O » . Jeśli przenosisz materiały ze statycznej witryny do systemu Joomla!. Jeśli dotychczas korzystałeś ze starszej wersji Joomla! z włączonym rozszerzeniem SEF.5 różni się pewnie od tego stosowanego przez stare rozszerzenie.php. ponieważ zaindeksowane wcześniej adresy nie s ą j u ż dostępne. O Tk i i •»»». Rozwiązaniem tego problemu jest użycie komendy ren z wiersza poleceń. Inne rozszerzenia pozwalają Ci samodzielnie określić.txt. na podstawie reguł zdefiniowanych w pliku .Rozdział 13.ra v/itr-ny P o e s o a Joomla! rfsinl On»l*w«< Editor-TinyMCE2. która powoduje tworzenie odnośników w postaci: http://www. i ® Ni... wykorzystaj jedno z rozszerzeń do tworzenia prostych adresów (np.0 V idmśi V Jedynym wymaganiem do poprawnego działania tej funkcji na serwerze Apache jest włączona (ustawienie On) dyrektywa AcceptPathlnfo. O «». Więcej informacji na temat tej dyrektywy możesz znaleźć na stronie dokumentacji Apache: http://httpd. pozostaje Ci aktywacja opcji Korzystaj z mod rewrite. / Joomla ostępne są a ekranie onfiguracji ''iobainej trzy stawienia wiązane prostymi dresami 349 Konfiguracja globalna X " « • " t .1. a to z kolei sprawi. strona może stracić w rankingu.przyklad. Schemat tworzenia adresów w Joomla! 1. Do poprawnego działania tej funkcji niezbędna jest zmiana nazwy pliku htaccess.1 " » « > > a— :••• \ «*»"» 'S N. która służy do zmiany nazwy pliku. upewnij się. który znajduje się w głównym katalogu Joomla! na .» © „ 0Tlk „ Nar. co ma bardzo destrukcyjny wpływ na pozycję danej witryny. jak na innych stronach pojawiły się już odnośniki do Twojej witryny). Pamiętaj. Możesz w ten sposób stworzyć także taki zestaw reguł dzięki któremu nowe adresy będą odpowiadały strukturze starej.0/mod/core. że po uaktualnieniu korzystasz z tego samego dodatku. a wcześniejsza wersja strony została już zarejestrowana przez roboty internetowe. Jeśli aktywujesz nowe funkcje po zaindeksowaniu strony (lub po tym.

Odpowiednie ustawienie tych danych jest ważne.. ponieważ dostarcza ogólnych informacji na temat całej strony. . prokuratura. które najlepiej odpowiadają treści strony. odczytywane są jednak przez roboty internetowe. Znaczniki z atrybutem name ustawionym na GENERATOR i ProgID zawierają informacje o programie wykorzystanym do tworzenia strony (bardzo rzadko wykorzystywane przez roboty internetowe). które pozostają niewidoczne dla odwiedzających. ł H . | . wymiar sprawiedliwości. judiciary. Profesjonalne tworzenie stron WN 1W Metadane Jednym z najważniejszych i niewidocznych aspektów SEO są odpowiednie metadane. system '.no. -. charset=utf-8" /> <meta name="description" content="Ministerstwo Sprawiedliwości . które zawierają informacje o danej stronie. c r .dynamiczny system portalowy i zarz. prokuratura rejonowa.-. czyli informacje o informacjach. Ramka Metadane. która nie wyświetla artykułu.dz«>i. Znacznik z atrybutem name ustawionym keywords zawiera listę słów kluczowych. W przypadku stron W W W metadane zawierają opis artykułu. Te informacje pojawiają się na każdej stronie. Centralny Zarząd Służby Więziennej. sąd apelacyjny. O Nfe ® Tak Me ® Tak .f i 10 v Opis tttyt 1 y Joomla ! . Wszystkie te dane zapisywane są przez robota internetowego podczas indeksowania i wykorzystywane w różnym stopniu do wyliczenia pozycji danej strony.urząd administracji powołany przez Prezesa Rady Ministrów w celu obsługi urzędującego Ministra Sprawiedliwości. radcy prawni. Rysunek 13. sąd rejonowy. przedstawiona na rysunku 13. Prokurator Generalny.. to w części nagłówkowej znajdziesz znaczniki przypominające poniższe: <meta http-equiv="Content-Type" content="text/html. komornicy.Document"> W kodzie HTML umieszczono znaczniki metadanych.350 Joomla!. zwalczanie przestępczości. adwokatura. Znacznik z atrybutem name ustawionym na description zawiera krótki opis strony. Krajowy Rejestr Sądowy. adwokaci. sprawiedliwość. Prokurator Krajowy.Editor. Prokuratura Krajowa. notariat..•. pozwala ustawić wartość pól description i keywords. prokuratura okręgowa. rejestr zastawów. sądownictwo.2. przestępczość. Polskie Centrum Joomla! Tytuły » i m t a b w e l l a. Metadane dla całej strony Metadane dla całej witryny można ustawić na ekranie Konfiguracji globalnej. listę słów kluczowych i informacje o stronie. » I M * ! « * * . prawa ofiary" /> <meta name="ProgId" content="FrontPage. Krajowy Rejestr Karny.j o o m l a .t. notariusze.2. prokuratura apelacyjna. zastaw rejestrowy. sąd okręgowy. sądy. Jeśli otworzysz stronę w edytorze tekstu." /> <meta name="GENERATOR" content="Microsoft FrontPage 4. Minister Sprawiedliwości. i c i .0"> <meta name="keywords" content="Ministerstwo Sprawiedliwości. Ekran Konfiguracji Globalnej zawiera ramkę z opcjami metadanych Wt>HIOHKKif. więziennictwo. justice.

Dlatego zawartość pola description można traktować j a k o dodatkową zachętę dla odwiedzających. I . >ur walet arK! to a i d new functionality w o j d probably mean taking out •ited something addhgl »dels rbr content management software For a start. Breadcrumbs) ułatwia odwiedzającym poruszanie się po stronie i zapoznanie się z jej hierarchiczną strukturą. że aktualnie wiele robotów internetowych zupełnie ignoruje metadane. Często ta informacja wykorzystywana jest j a k o krótki opis strony w wynikach wyszukiwania. H^d y o y I • iri a mainstream. Dodatkowym atutem tej techniki jest ułatwienie zadania robotom internetowym. a r up. ariel Metadane. Zostaną one umieszczone w sekcji <head> wygenerowanego dokumentu HTML dla danego artykułu. stawień robotów iternetowych informacji autorze II Opublikowane Strona startowa Kategoria ID aitykuhi: Status 19 Opublikowane Odsłony 146 Wyczyść Postawiony 13 razy l l t w o i z o n y poniedziałek. o prawej stronie dytora artykułów. Jak przedstawiono na rysunku 13. Najważniejszym polem dla każdego artykułu jest Opis. Roboty (robot) i Autor (author).5. Przykładowo wspomniane wcześniej metadane są dla Google opisem strony (zobacz rysunek 13. Niektóre wyszukiwarki nadal jednak zapisują te informacje. Słowa kluczowe (keywords).0. It's r for everybody. Chociaż znaczenie pola keywords (Słowa kluczowe) spadło. free. które można ustawić w panelu Metadane przy wprowadzaniu treści artykułu (zobacz rysunek 13.Rozdział 13. listopad 2007 16:50 P a r a m e t r y : artykuł P a r a m « î r y : ro. tsunek 13.Foi mat - âc f t * ystem cj t? jood news! 3oomlal 1. który automatycznie wyświetla nawigację okruszkową na każdej stronie. • Pozycjonowanie i marketing w wyszukiwarkach internetowych 351 etadane artykułu W systemie Joomla! każdy artykuł ma własne metadane. Każdy szablon. . software s u .3). ponieważ słowa kluczowe służyły robotom internetowym do kategoryzowania stron. Zmieniło się to. nawigacja okruszkowa pozwoli mu dotrzeć do wyższych poziomów. kty wacja modułu Breadcrumbs Nawigacja okmszkowa (ang. umożliwia wstawienie nawigacji okruszkowej na stronie Joomla!. commercial alternative. możliwia prowadzenie pisu. 04. 09 październik 2006 07 4 Poprawiony niedziela. system Joomla! zawiera moduł Breadcrumbs. większość wyszukiwarek nadal respektuje opis strony.4). and Apache W przeszłości tekst zawarty w sekcji keywords miał bardzo duże znaczenie. ponieważ spamerzy nadużywali tej funkcji tak intensywnie.v . MySQL. który ma odpowiednie odwołanie.3. dlatego warto poświecić odrobinę czasu i uzupełnić odpowiednie pola. It Is released under an Open Source s v 2. ponieważ uwydatnia ona strukturę strony. Dostępne pola to Opis (description). Metad systemu z i t r e ś c i ą Joomla 1 ruchu open soui S Mes . Jeśli użytkownik wejdzie na stronę z pominięciem strony głównej. słów luczowych.5 ¡s free. and ¿«lybody can develop It further.

book description.Filtr Filmmaking . the book.5. Nuts and Bolts Filmmaking • Practical Techniques .[ •. możliwość ustawienia Znaku rozdzielającego. Bteadcrumbs Pokaż tytuł: Wtoczony: Pozycja: Kolejność: Poziom dostępu: [Zmień] Preferencje • Parametry modułu Pokaż element startowy O Nie Ta O O Nie 'S' Tak v Tekst elementu startowego Home Znak rozdzielający Pt zyr ostek klasy modułu Parametry: rozssersone Nie €> Tak breadcrumb 0::Breadcrumbs v Zastizeżony Specjalny ID: 35 Opis: Wyświetla ścieżkę powrotu.budget filmmakers.hopi* . .. ] : Main page containing Nuts and Bolts Filmmakimj book information i n c h i n g tableof-contents. Popular iKiffl I • Home I I » Joomla! Extensions i Joomla! License Guidelines 1 Welcome to Joomla! 1 What's New in 1. u<l i ' i r iiiin t i r l t o'. shooting tips. In future. .08 sek. Profesjonalne tworzenie stron WN 1W Rysunek 13. went out on strii more R A M and better CPUs. Joomla! ma wbudowaną funkcję nawigacji okruszkowej. np.Podobne ¿irony . 3D rendering.6. and additional resources. (Znaleziono w 0.1 0 spośród okoto 46..36k . Metaznacznik description wykorzystywany jest przez wyszukiwarki przy wyświetlaniu opisu strony na liście wyników wyszukiwania Grafika Wiadomości Wideo Grupy dyskusyjne Gmaii wiece) ' Zlgi aou Nuts and Bolls Filmmaktng 0 Szukaj w Internecie O Szukaj Szukaj na stronach kategorii język polski Wyniki 1 . która wpływa na pozycję strony ¿ 4 J o o m l a ! Joomla! Overview Yesterday all servers iri the U.. www • .4.F'odobne stiony . > www cvisual.com/ .200 dla zapytania Nnts alul Bolls Fllmmaking... Rysunek 13.) Filmmaking is a site focused on Nuts . buses will be told to slow down i motherboards.else--ier.Filtr Writers Store. Możesz zmienić ustawienia modułu Breadcrumbs w interfejsie administratora Moduł: Szczegóły ł y p modułu: mod_bi e... film technology.Elsevier Nuts <m<l Bolts Filmmaking.352 Joomla!.31k . Przypisanie m e n u Pozycje menu: Pożycie wybrane: Wszystkie O Brak O Zaznaczone A .mil Bolts Filiiim<ikiiitj including storytelling ..p • 9k • Kopia • Podc • Nuts and Bolts Filmmaking .idcrumbs Tytuł.6. News T h e Community Szukaj.. Moduł ma kilka ustawień. motion graphics.S.[ Hum Rysunek 13. Domyślnie symbol rozdzielający stanowią dwa znaki większości ( » ) .f-opm . an ideal book for the rapidly growing number of low.Nuts arid Bolts arid Guerilla. provides how-to information on the day-to-day techniques . Ekran ustawień tego modułu zilustrowano na rysunku 13.standard and special Send us your inquiries The producers will contact you Nuts and Bolts Filmmaking. wybierając z menu w interfejsie administratora opcję Rozszerzenia/Moduły. your source for Nuts and in-II'Mii ] Linki sponsorowane Nuts. www. A spokes person sa for better R A M was due to some fool increasing t speed. by Dan Pahrnel .5? 1 Overview Moduł Breadcrumbs znajdziesz.com/vvps/product/cvvs_hom8/702196 .

se * f Lr \ i Joomap tworzy mapę strony. Mapa strony stanowi narzędzie.7. Cechą rozszerzenia jest korzystanie z arkusza stylów odpowiedniego dla aktualnie ustawionego szablonu.com/webmasters/tools/sitemaps . a nawet listę kategorii Virtuemart (o ile zainstalowano to rozszerzenie). Rejestracja w tym systemie poprawia indeksowanie strony przez robota Google. jak i użytkownikom odnaleźć wszystkie materiały na stronie.google.joomla. . ioogle Sitemaps Google udostępnia internetową usługę. Rozszerzenie loomap wyświetla napę strony. Gallery2. które pozwala zarówno wyszukiwarkom. Istnieją także wtyczki dla Joomap. Więcej informacji na temat usługi znajdziesz na stronie: https://www. dlatego wygląd mapy strony odpowiada reszcie witryny. które automatycznie generują mapy strony w Joomla!. tym lepszą pozycję będzie miała witryna w rankingach wyszukiwarek. którego wymaga usługa Google. która polega na automatycznym tworzeniu mapy strony i zarządzaniu nią. listę sekcji i kategorii.org) najpopularniejsze i najczęściej stosowane jest rozszerzenie Joomap.7. jak pokazano to na rysunku 13. ozszerzenie Joomap Spośród wielu rozszerzeń do generowania mapy strony (poszukaj na extensions. Mapę strony można traktować jak główny spis treści. które pozwalają na indeksowanie elementów innych aplikacji internetowych. lysunek 13. • Pozycjonowanie i marketing w wyszukiwarkach internetowych 353 Kapa strony Im bardziej elementy nawigacyjne ułatwiają poruszanie się po stronie. Większość komponentów (także Joomap) wykorzystuje API Google do połączenia z usługą Google Sitemaps. korzystając ' arkusza stylów istawionego szablonu Site Map About SASSussex Membe i p Oontaet Ur . która zawiera normalną strukturę menu. np.Rozdział 13. Na szczęście istnieje spora liczba rozszerzeń. odnośnik do niej znajduje się zazwyczaj jako jedna z ostatnich pozycji w menu nawigacyjnym. Dodatkową funkcją jest tworzenie mapy strony w formacie XML.

aby w wynikach wyszukiwania nie pojawiały się strony. wprowadzając po prostu inny adres. wartościowej i solidnej. bardzo trudno byłoby wyłonić dominujący program. W czasie. że Twoim celem jest odwieść wyszukiwarkę od spełnienia jej głównego zadania— bezstronnego przedstawiania informacji. Jeśli jutro pojawiłaby się wyszukiwarka XYZ. . za kilka lat mogłaby opanować rynek. Pamiętaj. że największy wzrost pozycji związany jest ze zdobywaniem odnośników z innych. Od zakończenia prac nad tą książką do dnia. Dlatego powinieneś poświęcić najwięcej czasu na zdobywanie linków zewnętrznych. która dzięki unikatowej technologii byłaby lepsza od dzisiejszy rozwiązań. kiedy pisałem tę książkę. że nowa technologia mogłaby łatwo zdeklasować rozwiązanie firmy Google. że Google dysponuje efektywną technologią wyszukiwania. gdy zostaną upublicznione. Cofając się jeszcze o kilka lat. warto poszczególnym wyszukiwarkom poświęcić czas proporcjonalny do ich udziału w rynku. np. mimo wielu wysiłków firm takich ¡ák Yahoo!. w którym Ty ją czytasz. popularnych stron. sytuacja mogła już się zmienić. użytkownicy mogą zmienić wyszukiwarkę. Wiele z opisanych sposobów wiąże się z modyfikacją kodu HTML strony. celem SEO jest przedstawienie Twojej witryny jako porządnej. Główne wyszukiwarki W czasie. Oprócz podstawowych technik. Pamiętaj jednak. głównymi wyszukiwarkami (według znaczenia) były: Google. Wyszukiwarki internetowe tworzone są w taki sposób. gdy pisałem tę książkę. Techniki związane z pozycjonowaniem stron mogą stać się nieaktualne tuż po tym. Yahoo!. Dlatego programiści wyszukiwarek starają się „ wyprzedzić " specjalistów stosujących techniki SEO. Kilka lat wcześniej tę pozycję zajmował produkt Yahoo!. jednak nie będzie miała dramatycznego wpływu na jej pozycję.354 Joomla!. które nie są związane z danym zapytaniem. które można zastosować na każdej stronie (nie tylko tych opartych na Joomla!) w celu poprawienia pozycji w wynikach wyszukiwania. która poprawiłaby jej pozycję. ustawiania właściwych tytułów stron. poszczególne produkty mogły uplasować się na innych miejscach. Obecnie wydaje się. Natura wyszukiwarek internetowych sprawia. których typową cechą są trudności przy zmianie aplikacji (głównie z powodu danych przechowywanych w formacie danego programu). którą trudno powielić. największą i najpopularniejszą wyszukiwarką było narzędzie firmy Google. Profesjonalne tworzenie stron WN 1W Ogólne techniki Aktywacja kilku funkcji Joomla! poprawi indeksowanie strony przez roboty internetowe. MSN i Ask Jeeves. W przeciwieństwie do typowych programów komputerowych. Aby uzyskać jak najlepsze wyniki technik SEO. Celem wyszukiwarki jest dostarczenie Ci pożądanych informacji. aby jak najlepiej odpowiadały zapytaniu użytkownika i dostarczały najwartościowszych wyników. Ale istnieje grupa technik.

darmowego Good Keywords (www. a także w konsekwencji prawdopodobieństwo. które najlepiej odpowiadają treści strony. musisz od czegoś zacząć. pomoc duchowa.wikipedia. iarzędzie do wyszukiwania słów kluczowych Po utworzeniu wstępnej listy słów kluczowych powinieneś skorzystać z odpowiedniego narzędzia. Przed rozpoczęciem badań poświęć 10 minut na utworzenie listy pojęć i terminów.com/select/KeywordToolExternal) lub normalnego programu. od czego zacząć wyszukiwanie. spróbuj znaleźć dany temat w encyklopedii. Może to być internetowa aplikacja. Każda strona umieszczona wysoko w wynikach zwiększa ruch na Twojej stronie. Google Adwords Tools (https://adwords. np. determinacja. których mogą użyć ludzie chcący odwiedzić Twoją stronę. Chociaż najważniejszy jest ukierunkowany dobór słów kluczowych dla strony głównej Twojej witryny. Przykładowo jeśli Twoja strona poświęcona jest samodoskonaleniu. grupa wsparcia. Wikipedii (http://pl. rozwój duchowy. warto przeprowadzić podobne zabiegi dla najważniejszych artykułów. np. rezultat większości Twoich działań zależeć będzie głównie od szczęścia. motywacja. google. . to czy ludzie poszukujący informacji tego typu wprowadzają samodoskonalenie w wyszukiwarce? Czy może wprowadzają raczej rozwój osobisty lub motywacja? Jeśli nie zdobędziesz takich informacji. np. że odwiedzający poszukają innych materiałów na Twojej stronie. • Pozycjonowanie i marketing w wyszukiwarkach internetowych 355 ladanie stów kluczowych Jednym z najlepszych sposobów inwestycji czasu podczas pozycjonowania strony jest określenie właściwych słów kluczowych. Pozostająca przy temacie samodoskonalenia lista mogłaby wyglądać tak: • • • • • • • • samodoskonalenie. produktywność.com).org/wiki/Strona_gl0wna). Istnieje spora szansa. Odpowiedni dobór słów kluczowych może znacząco podwyższyć pozycję witryny (nawet o kilka stron) w wynikach wyszukiwania. Aby znaleźć właściwe słowa kluczowe.Rozdział 13. Jeśli nie wiesz. że znajdziesz terminy związane z daną tematyką.goodkeywords. doskonałego. worzenie wstępnej listy słów kluczowych Pierwszym krokiem do uzyskania dobrej pozycji w wynikach wyszukiwania jest zapoznanie się z popularnymi słowami kluczowymi związanymi z tematyką Twojej strony. rozwój osobisty.

rozwój duchowy.1 liczba Konkurencja wyszukiwań: gindnia Przybliżona śi. Rysunek 13. Na pierwszym miejscu znajduje się motywacja. ponieważ inne strony. Możesz zmienić to ustawienie. motywacje. jeśli chce się efektywnie stosować strategię SEO. dla których porządek słów kluczowych byłby właściwy. Domyślnie wszystkie słowa kluczowe sortowane są w porządku alfabetycznym. ] 3500 2 400 40 500 Niewystarczające 3 600 2 400 40 500 880 Typ dopasowania: Zbliżone Dodaj Podai Doda) Doda ^ Dziesięć najpopularniejszych słów kluczowych to: • • • • • • • • • • motywacja.356 Joomla!. jesteś w stanie przyciągnąć w efekcie więcej odwiedzających. ~. Zauważ. liczba S ł o w a kluczowe leklamodawcy wyszukiwań S ł o w a kluczowe powiązane z w p r o w a d z o n y m i terminalni . Za pomocą narzędzia Google Adwords Tools możesz znaleźć listę podobnych słów kluczowych dla tych wprowadzonych wj. Profesjonalne tworzenie stron WN 1W Po wprowadzeniu wstępnej listy w odpowiednie pole narzędzia Google Adwords Tools otrzymasz pokrewną listę słów kluczowych (zobacz rysunek 13. które znalazły się na liście wyszukiwania. rozwój duchowy. produktywność. rozwój osobisty.8).' '-*) Opisowe słowa lub wyrażenia wprowauz pu jeunyrrrg wierszu: Samcdoskonałenie Rozwój osobisty Użyj synonimów • Filtrowanie wyników \ Propozycje stów kluczowych j Wybierz kolumny do wyświetlenia Pokaż/ukryj kolumny Pizyltliżoii. która na naszej liście jest dopiero na czwartej pozycji. Najpopularniejsze słowa kluczowe przyciągają najwięcej ludzi. które są mniej popularne.8. . klikając nagłówek odpowiedniej kolumny. i dodaj je do listy początkowej — zachowując wcześniejsze pozycje.posortowane według trafności grupa wsparcia Niewystarczające 2 m rozwój osobisty rozwój duchowy motywacja samodoskonalenie [. ale oznaczają także największą konkurencję. grupy wsparcia.im u i w o i z o n e propozycje srow Kluczowych. motywacja pracowników. . pomoc duchowa. uzyskałyby lepszy rezultat. Weź pierwszych 30 terminów. psychologia motywacji. Poprzez dobór słów kluczowych. Znajomość popularnych wariantów głównych słów kluczowych jest krytyczna. że początkowa lista słów kluczowych nie do końca odpowiada tym najpopularniejszym dla danej grupy docelowej. W praktyce oznaczałoby to znaczącą utratę pozycji.

Podglądanie konkurencji Imitacja i kopiowanie rozwiązań konkurencji mogą być jedną z najlepszych metod promowania własnej strony. Kolejnym krokiem jest określenie listy czynników. Jeśli duża liczba tematycznie związanych stron zawiera odpowiednie odniesienia. • Pozycjonowanie i marketing w wyszukiwarkach internetowych 357 Wynajdywanie najlepszych słów kluczowych Dla uproszczenia cała procedura zostanie przedstawiona w oparciu o wyszukiwarkę Google. a to spora konkurencja. jak zmienić to zachowanie. Niewiele ponad pół miliona stron dla hasła samodoskonalenie od razu wydaje się atrakcyjniejsze. Wyszukiwarki oceniają strony na podstawie powiązań z innymi witrynami. która ma wbudowaną funkcję podglądu źródła strony. Chociaż hasło samodoskonalenie zdaje się bardzo popularne. Pamiętaj. które wpływają na wysoką pozycję strony. Są to: • Duża liczba odnośników do danej strony — Jeżeli duża liczba stron związanych z danym tematem zawiera odnośniki prowadzące do tej strony. Jedną z najważniejszych pozycji na liście słów kluczowych było wyrażenie rozwój duchowy.net. Zacznij od wprowadzenia pierwszej pozycji z listy słów kluczowych. Przykładowo dla czwartej pozycji na liście motywacja Google zwraca 2 670 000 wyników. co ułatwia jego czytanie. Wprowadź wybrane słowo kluczowe i wybierz pierwszą stronę z listy wyników. a zostanie wyświetlone okno zawierające kod HTML. To właśnie tym hasłom należy podporządkować dalsze działania. że analiza kodu HTML jest bezbolesna. aby były interpretowane jako całość. Przeprowadź procedurę dla wszystkich pozycji z listy i zapisz odpowiadającą listę wyników. a pierwszą stroną spośród wyników wyszukiwania http://www. wpływa to pozytywnie na pozycję strony. Wynik wyszukiwania hasła samodoskonalenie zawiera informacje. aby grupy słów umieszczać w znakach cudzysłowu. Wyświetlany kodjest odpowiednio kolorowany i formatowany. warto przeanalizować kod HTML najpopularniejszych stron. wyszukiwarka zanotuje to jako oznakę popularności i użyteczności. że znaleziono 578 000 odpowiadających stron. . Alternatywną metodą jest skorzystanie z przeglądarki Mozilla Firefox. które wyszukiwane jest relatywnie często. Za pomocą narzędzia Google Toolbar możesz oszacować liczbę odnośników zwrotnych do danej strony. Instrukcje. a powoduje wygenerowanie niewielu wyników. można znaleźć w sieci (wymagane są zmiany w rejestrze systemowym). jak możesz osiągnąć najwyższą pozycję dla wybranych słów kluczowych. Stosowanie tego rozwiązania sprawia. Po uruchomieniu opcji Pokaż źródło strony pojawiło się okno zawierające kod źródłowy strony — zilustrowano to na rysunku 13.rozwojduchowy. inne słowa dająjeszcze więcej wyników. Domyślnie opcja Pokaż źródło strony w przeglądarce Internet Explorer powoduje wyświetlenie kodu HTML w Notatniku.Rozdział 13. ponieważ niektóre pozycje mogą być niezwiązane z grupą docelową Twojej witryny. Następie wybierz w przeglądarce opcję Pokaż źródło strony.9. Warto przejrzeć listę wyników. Aby stwierdzić. W pewnym momencie trafisz na hasło. Zapisz liczbę znalezionych stron dla danego wyrażenia.

świadomość.} a {color: #a06b00.e q u i v = " C o n t e n t . Kiedy skończysz. text-align:center. rozwojduchowy. tdDo {background-color: #FFFFE2. border-left: lpx so .358 Joomla!. margin: 3pt Ocm} . Pamiętaj jednak.jpg) n o-repea . W których miejscach się pojawiają? Po przeanalizowaniu kilku najpopularniejszych stron powinieneś dostrzec pewien wzorzec. margin-bottom:lOpx. duchowość. text-decoration: none. Jeśli pojawiają się dodatkowo w tytule strony.ogl-nr {display:table-cell.l a n g u a g e " c o n t e n t = " p l " > 1 <meta name="Des-ription" content="Dziesiątki artykułów o szeroko pojętym rozwoju duchowym . że roboty internetowe doskonalone są pod kątem zaśmiecania strony słowami kluczowymi w taki sposób. Słowa kluczowe na początku i na końcu artykułu — Jeśli słowa kluczowe pojawiają się zarówno na początku.stopka {background-color: #FFFFE2. • • • Zbadaj kod źródłowy strony pod kątem wymienionych aspektów. ezoteryka. huna. oznacza to. niż gdyby pojawiały się wyłącznie w tekście. pochylonym lub podkreślonym — Jeśli słowa kluczowe formatowane są w szczególny sposób.ogl-info {display:table-cell. Ile z nich możesz odnaleźć na stronie? Korzystając z funkcji Szukaj (uruchamianej w większości przypadków skrótem Ctrl+F). aby zastosować najskuteczniejsze strategie na Twojej stronic. • Słowa kluczowe w nagłówkach <H1> — Gdy słowa kluczowe pojawiają się w nagłówkach pierwszego rzędu (znacznik <H1>).tdGo_menu {background: #F3F7B7 url(http://www. jest to jeszcze bardziej premiowane. width:30px. border-bottom: lpx solid #DEDEDE.} div. tdGo {background: #F3F7B7 ur1(http://www. font-weight: bold. text-decoration: underline. Profesjonalne tworzenie stron WN 1W Rysunek 13.} P {text-indent: 0.ogl-ogol {width:100%.net/gfx/pasek gl. margin: Opx. wybranymi słowami kluczowymi. margin-top:lOpx. że m a j ą duże znaczenie dla treści strony. powinieneś mieć już solidne wyobrażenie.komentarze {border-bottom: lpx solid flEFEFEF. me dytacja i <meta name="Robots" content="index. h2 {margin: Opx. Takie działanie znacząco pogarsza pozycję strony.} div.} a:hover {color: #805500. font-size:llpx.Le> I <n»eta h t t p .jpg) no-rep .przycisk {padding: lpx. postrzegane są jako ważne. jak i na końcu strony.} div. . Powtórz ten proces z innymi.0cm. width: 200px} . color: #805500} hi {margin-top: 7px.9. że nie odnoszą się do jej treści.e q u i v = " C o n t e n t .} .} table {font-family: Verdana. charset=iso-8859-2"> I <meta h t t p . możesz określić liczbę wystąpień słowa kluczowego na danej stronie.net/ Edycja Widok Pomoc Mozilla Firefox Plik O D D a <html> <head> 1 <titXe>Droga Światła.} div. font-size: 13px.} div. border: lpx solid #DEDEDE. Funkcja Pokaż źródło strony powoduje wyświetlenie kodu HTML danej strony [ ^ Źródło: http://Www. font-weight: normal. strona oceniana jest wyżej. font-size:12px. Słowa kluczowe złożone pismem pogrubionym.rozwojduchowy.rozwojduchowy. text-align: center.t y p e " c o n t e n t = "text/html. padding: lpx. jej pozycja będzie wyższa. font-size: 16px. margin: 3pt Ocm} SbezAkapitu {text-indent: 0. jest to sygnał dla wyszukiwarki.7cm.follow"> I <style type="text/css"> body {background-color: #FEF8D0. co pomoże Ci zrozumieć. border-right: lpx solid #DEDEDE. dlaczego akurat te strony promowane są przez wyszukiwarkę.} < » i L m Słowa kluczowe w tytule strony — Jeśli słowa kluczowe pojawiają się w tytule.net/gfx/pasek menu.tdDo menu {background-color: #FFFFE2. Rozwój Duchowy</tit.ogl-tresc a {font-weight:bold. font-size: 13px.ogl-tresc {display:table-cell. font-size: 12px. jakie działania należy podjąć. Liczba wystąpień słów kluczowych — Jeśli słowa kluczowe pojawiają się na stronie wielokrotnie. width:370px. ezote i < r a e t a name-"Keywords" c o n t e n t = " r o z w ó j duchowy. border-left lpx s .

Rozdział 13. możesz zastosować poniższe wskazówki. „dla" itd. aby odpowiadał tematyce strony. Jego domyślna wartość to Welcome to Frontpage. że każdy artykuł ma przypisany tytuł. Ustawienie pola alt. co ma duże znaczenie dla osób niepełnosprawnych. Atrybut alt dla obrazów i innych multimediów Dla każdego elementu multimedialnego pojawiającego się na stronie powinieneś ustawić atrybut alt. tym większe znaczenie dla robota mają poszczególne słowa. aby zawierało wyjaśnienie np. „lub". „i". Tak ustaw ten parametr. które słowa powinny zostać wykorzystane do klasyfikacji strony. Zakładając. • • Najważniejszym tytułem jest ten pojawiający się na stronie głównej. Przykładowo „Rozwój duchowy i rozwój osobisty" lepiej byłoby zapisać w postaci „Rozwój duchowy i osobisty". Tytuł strony głównej zależy od pozycji Home w Main Menu. Łącz wyrażenia. a które pełnią funkcję opisową. jakiego typu materiały znajdują się na stronie. jego wartość możesz zobaczyć. co przedstawiono na rysunku 13. Dlatego im krótszy tytuł artykuły. Atrybut alt wykorzystywany jest głównie do wygodnego przeglądania strony w przeglądarkach tekstowych i głosowych. • Pozycjonowanie i marketing w wyszukiwarkach internetowych 359 ytuly stron Z punktu widzenia robota internetowego tytuł strony pozwala określić. dla danego obrazka. łącząc słowa pauzą (—). wiele stron nie mało tytułów lub były one sformułowane w taki sposób. Krótki. aby poprawić pozycję strony w wyszukiwarkach: • Zredukuj liczbę słów pojawiających się w tytule — Robot internetowy nie jest w stanie określić. . Zanim pojawiły się systemy CMS. aby zapobiec powtórzeniom — Dobrą praktyką jest unikanie powtórzeń w tytule. Zamiast „to i tamto" możesz napisać np. najeżdżając kursorem myszy np. opisowy tytuł jest doskonałym sposobem zwiększenia szansy.). „to — tamto". Pełni on funkcję tekstowego opisu danego materiału. że Twoja strona zostanie znaleziona. Podobnie jak inne aplikacje CMS. umożliwi robotowi internetowemu efektywne zaindeksowanie danego elementu.10. Panel Parametry: system zawiera pole tekstowe opisane Tytuł strony. Otwórz ekran edycji menu i wybierz pozycję Home (pierwszy element listy). proste słowa. Wyeliminuj dodatkowe słowa — Powinieneś usunąć krótkie. Pamiętaj. co nie służy pozycji Twojej strony. na obrazek. że robot internetowy przypomina przeglądarkę tekstową — nie jest w stanie odczytać elementów graficznych pojawiających się na stronie. że roboty internetowe nie mogły sklasyfikować treści. niezwiązane z danym tematem (np. ponieważ wtedy wszystkie słowa zostaną zapisane przez robota internetowego. Joomla! wymusza ustawienie tytułu dla każdego wprowadzanego artykułu.

technologia tworzenia aplikacji internetowych. w którym każde żądanie nowych danych wiąże się z przesłaniem całej strony HTML. co zilustrowano na rysunku 13. Jeśli jednak obrazek służy wyłącznie jako ozdobnik i nie jest bezpośrednio związany z treścią strony. Odpowiedni tekst należy wprowadzić w pole Image description. Jeśli dany obrazek to diagram procesu biznesowego. ŁoflowjMiie i lejestiMja 4' szukaj A Zobacz str onę gl A J A X (ang.12. kiedy zgodzisz się na zapisywanie odwiedzanych stron i wyszukiwanych haseł za pomocą narzędzia Google Toolbar. Wartość atrybutu alt wyświetlana jest po najechaniem kursorem myszy na dany obrazek 2. Pamiętaj.11. Ma to umożliwiać bardziej dynamiczną interakcję z użytkownikiem niż w tradycyjnym modelu.nhiekt timnżliwiaiary asvnrhrnnirvnp nr7p=:vłanip danvrh nr7P7 gjpr H7ipki W przypadku Joomla! możesz określić wartość atrybutu alt podczas wstawiania grafiki w treść artykułu. w której interakcja użytkownika z serwerem odbywa się bez przeładowywania całego dokumentu.10. poprawisz pozycję strony. w sposób asynchroniczny. możesz wykorzystać atrybut alt i wstawić słowa kluczowe. Jeśli będziesz korzystać z tej techniki z umiarem. że pasek PageRank zostanie wyświetlony tylko wtedy. I Przejdź | | Szukaj j * » » « Zgtoś błąd Częste pytania (FAQ) Kontakt z Wlkipedią Wspomóż Fundację 5 Zobacz też 6 Linki zewnętrzne dla edytorów • Ostatnie zmiany Podstawowe elementy A J A X Na technologię tę składa się parę elementów: — a "Ml HTTP . Profesjonalne tworzenie stron WN 1W Rysunek 13. Asynchroniczny JavaScript i XML) . Na każdej odwiedzonej stronie wyświetlany jest jej PageRank (w skali od 1 do 10).360 Joomla!. w oknie przeglądarki pojawił się mały pasek opisany j a k o PageRank.11. Rysunek 13. . Wartość atrybutu alt możesz określić w polu Image description w oknie Insert image łnsert/edit image Mozitta Firefox ' http://localhost/joomla2/pkjgins/editors/tinymce/jscripts/tiny_rnce/plugins/advirnage/ii General • r General Image URL Image description igrupa wsparcia Title ¡Grupa wsparcia Appearance Advanced o ' PageRank Google Jeśli zainstalowałeś narzędzie Google Toolbar. Spis treści [ukryj] 1 Podstawowe elementy AJAX 2 Wady i ograniczenia | 3 Przykład utworzenia nowego obiektu XMLHTTP : 4 Biblioteki AJAX 'J " T WiKJPEDlAł Wolna encyklopedia Asynchronous JavaScript and XML. jak przedstawiono to na rysunku 13. opisz go odpowiednio.

pierwszy trener Adama Małysza " m ' O # Analiza rankingu strony dostarcza wielu podstawowych informacji. Onet. • Pozycjonowanie i marketing w wyszukiwarkach internetowych iysunek 13. Nie jest to jednak na tyle kluczowy czynnik dla optymalizacji strony. na innych stronach pojawią się odnośniki prowadzące do Twojej strony.12. p l . to w zamian za to.pl/ v j G Wyszukaj * < . jak mogłoby się wydawać. Nie chcę się jednak wypowiadać na ten temat . aby strona była odnajdywana przez użytkowników zainteresowanych daną tematyką.pl) jest wart dużo więcej niż setki odnośników na mniej popularnych stronach.tvn24.onet. które ułatwiają nakreślenie właściwej strategii. Jednym z narzędzi. W ten sposób wszystkie wizyty będą rejestrowane na kilka sposobów. która wymaga umieszczenia małego fragmentu kodu JavaScript na Twojej stronie. Pojedynczy odnośnik na popularnej stronie z wysokim PageRank (np. Polski Portal i n t e r n e t w y Plik Edycja Widok Historia Zakładki Mozilla F i r c f o « Narzędzia Pomoc http://www. Jest to jeden z najważniejszych czynników wpływających na PageRank.pl. niż żeby cieszyła się ogólną popularnością. lat temu kometa "udusiła" Amerykę . Jest to darmowa usługa. jest usługa śledzenia odwiedzających Google Analytics.M * Zakładki' [ PageRank to opinia Ustawi strony (8/10) o n e t pl Onet poleca Nareszcie weekend! . Więcej informacji na ten temat możesz znaleźć w podrozdziale „Google Analytics". że umieścisz na swojej stronie odnośniki do witryn użytkowników systemu. że w letnich przygotowaniach coś za szwankował. 5ageRank odzwierciedla mpularność lanej strony v skali od 1 do 10 361 M O m t .pl: kobieta miała 6 promili alkoholu Kraków: kobiety zatruły się czadem Od początku sezonu widać. Więee Donald Tusk i Nicolas politykami roku 2 0 0 8 "Przebieg t e j masakry j e s t w w a s z y c h rękach" Ziobro zapłaci 30 t y s . Większość wyszukiwarek interpretuje tę liczbę jako wyznacznik jakości danej strony. ystem wymiany odnośników Najlepszą i najskuteczniejszą metodą na poprawę pozycji danej strony jest wzrost liczby prowadzących do niej odnośników. Nie wszystkie odnośniki są jednak traktowane równo. Ważniejsze jest. Garlickiemu Sikorski odznaczył Giertycha medalem Siły UE przepędziły somalijskich piratów Okrągły Stół podzieli Polaków Rodzina muzułmanów upokorzona w samolocie Bezdomna Polka urodziła w londyńskim metrze > 13 t y s . Umowy tego typu mogą bardzo pozytywnie wpływać na pozycję strony i ruch na niej. Jeśli skorzystasz z systemu wymiany odnośników.Rozdział 13. Jan Szturc.mówi w rozmowie z Onet. . o.

aby dane zwracane były w odpowiednim formacie. Kod JavaScript pobiera następnie dodatkowe informacje z serwera WWW i wyświetla je w oknie przeglądarki — często w postaci chmurki. także w postaci tradycyjnych plików HTML. dostępne są także w postaci zwykłej strony HTML. którzy zdecydują się na zastosowanie Ajaksa. Problemem związanym z zastosowaniem Ajaksa jest dosłowna niewidoczność dla wyszukiwarek. Oznacza to. gdzie należy szukać treści pobieranych dynamicznie. Unikanie stosowania Ajaksa i JavaScriptu do nawigacji — Gdy robot internetowy indeksuje daną wihynę. powinien zostać wkrótce opracowany sposób informowania robotów internetowych. Z tego powodu wymienione technologie nie powinny być stosowane do nawigacji. praktycznie wszystkie odnośniki wymagające uruchomienia go lub pobrania treści za pomocą Ajaksa będą niedostępne dla robota. • • Ponieważ Ajax szybko zyskuje na popularności. W ten sposób znika konieczność dublowania materiałów. Dlatego warto udostępniać wszystkie materiały osiągalne za pomocą aplikacji stworzonych we Fłashu. jednak z punktu widzenia SEO warto podjąć ten koszt. Za pomocą PHP jest to szczególnie proste. Może to wymagać zaprogramowania odpowiedniego komponentu. powinieneś z rozwagą implementować rozwiązania we Fłashu. Zastosowanie Ajaksa pozwala uaktualniać treści pojawiające się na stronie bez konieczności przeładowania całego dokumentu. ale jednocześnie sprawia. możesz przyjąć. Z tego samego powodu. uruchamianym przez przeglądarkę w reakcji na dane zdarzenie. mają w takiej sytuacji kilka opcji: • Dublowanie materiałów — Chociaż materiały dla użytkowników wyświetlane są głównie za pośrednictwem Ajaksa. Do tego momentu najlepszym sposobem unikania pogorszenia pozycji strony jest zastosowanie jednej z opisanych strategii. Ponieważ kod JavaScript nie jest uruchamiany przez roboty. jako dominujący sposób tworzenia interaktywnych stron. Materiały pobierane dynamiczne jako streszczenie właściwych in formacji — Zamiast tworzyć dodatkowe materiały.362 Joomla!. Profesjonalne tworzenie stron WN 1W Ajax a SEO Ajax to niesamowite połączenie technologii internetowych. że prezentowane materiały są niedostępne dla robotów internetowych. Obecnie nie istnieje rozwiązanie idealne. że materiały pobierane dynamicznie to streszczenie lub podsumowanie właściwych materiałów dostępnych w tradycyjny sposób. Roboty internetowe nie uruchamiają kodu JavaScript. że wszystkie materiały dostępne wyłącznie za pośrednictwem Ajaksa są niedostępne dla wyszukiwarek. które pozwalałoby na implementację Ajaksa bez negatywnego wpływu na pozycję strony. niedostępności dła robotów internetowych. aby zrealizować tę strategię w Joomla!. . ponieważ wystarczy przetworzyć plik HTML. które będą pobierane za pośrednictwem Ajaksa. tj. wykorzystuje wewnętrzne odnośniki. Technologia Ajax opiera się w głównej części na kodzie JavaScript. Powoduje to wzrost dynamiczności i atrakcyjności strony. Technologia ta doskonale wpływa na wrażenia odwiedzających. aby odnaleźć wszystkie strony. Projektanci. dzięki któremu interaktywność stron wzrasta do poziomu porównywalnego z tradycyjnymi aplikacjami (w rozdziale 7 dowiedziesz się więcej).

Ponieważ wiele organizacji uznaje te informacje za dane prywatne. iysunek 13. Możliwe jest przedstawianie informacji w różnej postaci. • Pozycjonowanie i marketing w wyszukiwarkach internetowych 363 ioogle flnalytics Darmowe narzędzie Google Analytics (www.Rozdział 13. diagramów. Narzędzie Google Analytics można połączyć z programami reklamowymi Adsense i Adwords. upewnij się. że każda strona zawiera użyteczne i czytelne informacje.13.google. robot internetowy oznaczy daną witrynę prawdopodobnie j a k o spam. Zwróć uwagę.com/analytics). że w momencie aktywowania narzędzia Analytics na Twojej stronie udostępniasz firmie Google informacje na temat osób odwiedzających T w o j ą stronę. ponieważ zawiera informacje na temat stron. że dużą częścią prezentowanych materiałów są słowa kluczowe). np. upewnij się. co znacznie obniży jej pozycję.13. dostarcza dokładnej analizy osób odwiedzających stronę. które możesz aktywować na swojej stronie. itd. za pośrednictwem których odwiedzający trafili na Twoją witrynę. Pamiętaj. Istnieje jednak spora liczba złych praktyk. Funkcja ta pozwala Ci także określić strony. Informacje o hasłach wprowadzanych w wyszukiwarce mogą mieć kluczowe znaczenie przy doborze słów promujących Twoją stronę. które przedstawiono na rysunku 13. Aby zapobiec takiej sytuacji. . że diagramy to wyłącznie namiastka dostępnych funkcji.. a także wyrażeń w wyszukiwarce. Diagramy na stronie Google Analytics odzwierciedlają 'iczbę osób odwiedzających na danej stronie Najważniejszym panelem z punktu widzenia SEO jest Traffic Sources. danych statystycznych. których zastosowanie pozytywnie wpływa na pozycję strony. Niektóre z nich to: • Spamowanie słowami kluczowymi — Jeśli współczynnik słów kluczowych do treści jest zbyt wysoki (co znaczy. na których reklama przynosi najwięcej dochodu. które zaniżają pozycję strony. ¡zego nie należy robić W tym rozdziale opisano wiele technik. System umożliwia także nakreślenie pewnych celów i monitorowanie postępów w dążeniu do nich. że nie są one zbierane w nieodpowiednich działach.

sprawdzaj! — Skuteczne hasło reklamowe przypomina grom z jasnego nieba. oszczędzasz 50%". jak i zakupu. Poniżej znajdziesz listę wskazówek. Jeśli zamierzasz nabyć taką książkę. sprawdzaj. Komponowanie skutecznego tekstu reklamowego Na temat tworzenia skutecznych tekstów reklamowych napisano wiele książek. Gliwice 2006 — przyp. Obecnie roboty internetowe wykrywają tę technikę i zaniżają pozycję strony. Kupując dzisiaj. wśród nich znajdziesz sporo doskonałych przewodników. Onepress. Zbyt dobre. red. Najwspanialszy tekst może okazać się nieskuteczny. ponieważ był niewidoczny). lub umieścić reklamy na swojej stronie. jak „Tylko TERAZ! Końcówka wyprzedaży. podczas gdy pozornie nieudana reklama najbardziej zainteresowała użytkowników. • John McWade. Profesjonalne tworzenie stron WN 1W • Farmy hiperłączy — Istnieją strony określane jako farmy hiperłączy (ang. czy dana reklama działa w praktyce. jednak tuż po odkryciu tracą na znaczeniu. Pobierz programy za darmo. które mają wpłynąć na wzrost popularności danej strony. • • Marketing w wyszukiwarkach internetowych (SEM) Obszar SEO obejmuje działania zmierzające do podwyższenia pozycji strony na liście wyników wyszukiwania. Niektóre z wykorzystywanych schematów rzeczywiście działają przez pewien okres. które są w zasadzie listami linków. Wykorzystuj krótkie. Zamiast pytać ekspertów. . SEM odnosi się do obu elementów związanych z reklamami — zarówno sprzedaży. a następnie wypełnianie go słowami kluczowymi. Marketing w wyszukiwarkach internetowych (SEM — Seareh Engine Marketing) to szersze pojęcie. oferując im nagły wzrost pozycji strony przy niewielkiej inwestycji — pieniężnej. Nie ma nic za darmo w internetowym świecie. link farm). które powinny pomóc Ci w komponowaniu skuteczniejsze reklamy: • Sprawdzaj. aby było prawdziwe — Wiele firm oszukuje swoich klientów. obejmujące techniki SEO. aby promować własną stronę. Jest tam mnóstwo informacji na temat pisania skutecznych tekstów reklamowych. Ukrywanie tekstu — Jedną z najstarszych metod oszukiwania robotów internetowych było ustawianie tła tekstu pokrywającego się z jego kolorem (w ten sposób spam nie mylił użytkownika. motywujące słowa — Pobudzaj użytkowników takimi hasłami.364 Joomla!. która j ą stosuje. a także płatne reklamy. Umieszczenie na takiej stronie zaszkodzi pozycji Twojej witryny. Możesz wykupić reklamy. aby zarabiać. powinieneś zapoznać się z tytułem Profesjonalne tworzenie materiałów reklamowych1. powinieneś zawsze sprawdzić.

Utwórz landing page dla każdej reklamy — Aby badać skuteczność reklamy. Słynny sprzedawca ujął to w słowach „sprzedawaj skwierczenie.google. czy zoptymalizowałeś stronę przed uruchomieniem programu Adsense. Polega on na wyświetlaniu reklam typu pay per click na Twojej stronie.com/adsense). landing pages dla każdej reklamy. 365 • • • • Upewnij się. Reklamy wyświetlane są na stronach bezpłatnie. Po prostu możesz umieścić reklamy na stronie i zarabiać na kliknięciach. Przykładowo producenci filmowi korzystają z systemów pay per view jako jednego z elementów kampanii promującej filmy wchodzące do kin. • Pozycjonowanie i marketing w wyszukiwarkach internetowych • Sprzedawaj korzyści. które nie podkreślają celu reklamy. nie dorównuje obecnie popularności pay per click. ay per click i pay per view Najczęstszą formą reklamy jest system pay per click (płatne za kliknięcie). Bądź zwięzły — Usuń wszystkie słowa. możesz utworzyć unikatowe tzw. że reklama zawiera kluczowe pojęcia — Stosuj słowa. Znaczące zyski z reklam pojawiają się. za darmo i inne. . sell the sizzle. niezależnie od tego. Dlatego upewnij się. które wzbudzają emocje i entuzjazm. Reklamy w tym systemie są płatne za każde wyświetlenie. którą promujesz. szczególnie popularna w czasie boomu dot-comów. oogle Adsense Jedną z metod zarabiania na prowadzeniu strony Joomla! jest program Google Adsense (więcej informacji na www. czy zostaną kliknięte. np. nowość. Pamiętaj o grupie docelowej — Nie staraj się zainteresować wszystkich swoją reklamę. głównie jeśli dana organizacja chce wypromować markę. służą one popularyzacji filmów — niekoniecznie ich stron internetowych. opłacane są wyłącznie kliknięcia reklam. Większość wyszukiwarek posiada własny program pay per click. Inna forma reklam — p a y per view. nie stek" (ang. a nie funkcje — Niezależnie od towaru lub usługi.Rozdział 13. musisz mieć możliwość dokładnego śledzenia generowanego przez nią ruchu. jeśli połączysz techniki SEO z doborem reklam. wyprzedaż. Algorytm dobierania reklam na podstawie słów kluczowych w Google Adsense przypomina ten stosowany przy określaniu pozycji strony w wynikach wyszukiwania. Korzystając z opcji nieprzypisanych artykułów (w ten sposób alternatywne wersje tej samej strony nie będą wyświetlane w danej sekcji lub kategorii). lecz tylko członków grupy docelowej. Więcej szczegółów znajdziesz w odpowiednich serwisach. no the steak). Mimo to pay per view nadal odgrywa znaczącą rolę. skup się na korzyściach płynących dla użytkownika.

. W tym rozdziale opisano sposoby optymalizacji strony Joomla!. Popularniejsze strony są atrakcyjnymi celami dla hakerów. opisano różne sposoby zabezpieczenia strony Joomla! i zapobiegania atakom. Odczytywanie PageRank strony jako wyznacznika jakości. W rozdziale 14. Większość działań nie wymaga znajomości genialnych lub tajnych sposobów. • • • • Korzystanie z atrybutu alt do opisu multimediów. która ułatwia indeksowanie strony przez roboty internetowe. ponieważ zawiera wszystkie niezbędne funkcje. Aktywację nawigacji okruszkowej. Stosowanie metadanych do opisu każdego artykułu. którzy chcieliby trafić na Twoją stroną. Adaptację strategii zapobiegającej pogorszeniu pozycji strony w przypadku implementacji technologii Ajax. Stosowanie technik SEM (Search Engine Marketing) zwiększających widoczność strony.366 Joomla!. Profesjonalne tworzenie stron WN 1W Podsumowanie System Joomla! ułatwia stosowanie technik SEO (Search Engine Optimizatioń). m Udoskonalanie tytułów stron pod kątem pozycji strony. Wstawianie mapy strony. a w szczególności: • • • • • Aktywację prostych adresów na stronie Joomla!. Przeprowadzanie analizy słów kluczowych w celu zwiększenia liczby odwiedzających. a raczej konsekwentnego stosowania prostych reguł. Wraz z powodzeniem technik SEO wzrośnie także ruch na stronie — a nie każda wizyta jest pożądana.

aby wyeliminować dostrzeżone luki. Pierwsze litery jej tytułu nawiązują do innego skrótu WWW — World Wide Web —przyp. dlatego wielu webmasterów niefrasobliwie podchodzi do kwestii wprowadzania odpowiednich zabezpieczeń. SQL Injection. byś miał stuprocentową pewność. MySQL i Apache są należycie zabezpieczone. włączając w to Joomla!. 1 Ang. żeby zapobiec naruszeniom bezpieczeństwa przez hakerów. Co prawda twórcy systemu Joomla! zrobili wszystko. Regularne aktualizowanie aplikacji zmniejszy podatność systemu na ataki. tłum. dlatego zamieszczenie ich kompletnej listy przekroczyłoby ramy tej publikacji. MySQL i Joomla!). aby zmniejszyć zagrożenia pochodzące z internetowego środowiska „Bardzo dzikiego zachodu"'.14 Bezpieczeństwo Joomla! Joomla! jest łatwy w instalacji i konfiguracji. Ponieważ Joomla! wykorzystuje cztery połączone technologie serwerowe (Apache. Nowe problemy z bezpieczeństwem pojawiają się cały czas. że Twój system Joomla! jest odporny na atak. Na przykład źle dobrane zabezpieczenia PHP mogą otworzyć system na ataki. musisz zapewnić bezpieczeństwo każdego ogniwa tego łańcucha. Istnieją pewne pospolite metody ataku (atakowanie haseł. komedia science fiction z 1999 roku. powinieneś regularnie uaktualniać oprogramowanie serwera. PHP. Każdy webmaster powinien mieć chociaż pobieżną wiedzę na ten temat.). które można zastosować. a deweloperzy przygotowują poprawki aplikacji. rypy ataków Napisano wiele książek na temat różnych aspektów ataków hakerskich. . cross-site scripting itd. które są nadzwyczaj rozpowszechnione. nawet jeśli Joomla!. Ważne jest. mimo to ważną umiejętnością każdego administratora stron WWW jest zrozumienie podstawowych zasad bezpieczeństwa. a także sposoby. W tym rozdziale omówiono poszczególne serwery pod kątem zapewnienia maksymalnego bezpieczeństwa. Aby zmniejszyć problemy z bezpieczeństwem. Wild Wild West.

Jedną z metod promowania wyboru bezpiecznych haseł jest zachęcanie użytkowników do przestrzegania poniższych wskazówek: • • • Należy tworzyć hasła o długości przynajmniej siedmiu znaków. Hasło powinno zawierać cyfry. co ma na celu sprawdzenie. Profesjonalne tworzenie stron WN 1W W następnych podrozdziałach dokonamy przeglądu strategii pospolicie wykorzystywanych przez hakerów w celu zdobycia kontroli nad serwerem lub uszkodzenia systemu.us-cert. Większość udanych ataków brute-force polegała na wykorzystaniu raczej nazw użytkowników niż haseł. Atak tego typu polega na próbie uruchomienia nieautoryzowanego kodu SQL poprzez wykorzystanie niedostatecznego filtrowania danych trafiających do zapytania SQL. jak wielu użytkowników wykorzystuje słowo „hasło" lub „1234" jako swoje hasło systemowe. . SQL Injection Jedną z najczęstszych i najefektywniejszych form internetowego ataku jest SQL Injection (dosłownie „zastrzyk SQL"). haker często próbuje zestawiać je z poszczególnymi nazwami użytkowników z listy. Ataki na hasta Istnieją programy. Jeśli chcesz zdobyć więcej szczegółów na ten temat. szansa powodzenia ataków słownikowych lub ataków brute-force jest prawie zerowa. Szkody spowodowane działaniem tak spreparowanego kodu mogą być ogromne — od ujawnienia poufnych informacji. system PHP i instalację Joomla!.. Użytkownicy powinni tworzyć hasła składające się z dwóch słów i liczby. Zawsze zadziwiające jest odkrycie. jak i zwykłych użytkowników. hakerzy " wykorzystują techniki takie jak metoda brute-force w celu włamania się na konto wybranego użytkownika. Jeśli jedno z tych słów nie jest słowem w języku angielskim (być może nawet „Joomla").. wiele informacji o bezpieczeństwie w intemecie udostępniono za pośrednictwem United States-Computer Emergency Readiness Team (US-CERT). Hasło powinno zawierać małe i wielkie litery.368 Joomla!. W dalszej części tego rozdziału dowiesz się. hasło ' 'jest tak często stosowane jako hasło. Ponieważ słowo . które próbują naruszyć bezpieczeństwo strony zautomatyzowanymi atakami typu „brute-force" („na siłę") na system haseł. żeby zmniejszyć prawdopodobieństwo penetracji z użyciem tych lub innych metod. jak skonfigurować serwer WWW. Dlatego zaleca się chronienie listy użytkowników przed ogólnym dostępem.gov) znajduje się wiele powszechnie dostępnych publikacji zarówno dla użytkowników posiadających wiedzę techniczną. prawdziwi hakerzy są dużo mniej wybredni. W filmach hollywoodzkich . czy ktokolwiek wykorzystał je jako hasło do swojego konta. Ataki te są najczęściej prowadzone z wykorzystaniem słowników często spotykanych fraz i haseł. Na stronie internetowej US-CERT (www. po uruchomienie destrukcyjnej procedury.

jak pokazano poniżej: dummytext'. tworzona z zastosowaniem lewego ukośnika (\). ponieważ apostrof nie jest już traktowany jako element wyrażenia SQL. Takie przetworzenie ciągu znakowego wprowadzonego przez użytkownika uniemożliwia atak ze wstrzyknięciem kodu. Prawdopodobnym rezultatem takiego zapytania byłoby zwrócenie komunikatu o błędzie. który zmienia rezultat zapytania. Jeśli kod PHP obsługujący dane zapytanie umieszczałby nazwisko w zmiennej $name i wykonywał zapytanie z wykorzystaniem tej zmiennej. umożliwia wykorzystanie w systemie MySQL znaków specjalnych. Podczas uruchomienia zapytania sprawdzanie ' a' = ' a' zwróciłoby wartość True dla każdego wiersza. następujący ciąg znaków: dummytext' or 'a' = 'a Kod SQL utworzony z użyciem tej wartości brzmiałby wtedy: $sql = "Select * From jos_users Where name = dummytext' or 'a' = 'a'. że wstrzyknięty może być każdy poprawny kod SQL. ibsługa pól tekstowych w Joomla! i PHP Joomla! zawiera procedury generujące znaki unikowe dla każdego znaku. kod dla tego zapytania mógłby wyglądać podobnie do poniższego: $sql = "Select * From jos_users Where name = "' . Praktyczną zasadą ochrony przed wstrzyknięciem kodu jest zagwarantowanie. nigdy nie ufasz danym dostarczonym przez proces zewnętrzny (nawet jeśli ten proces jest formularzem. który sam utworzyłeś). Na przykład apostrof ( ' ) nie może zostać użyty w standardowym wyrażeniu Insert. że pisząc program.Rozdział 14. Drop Table jos_users: Select * From jos_polls Where title =' Ten kod zniszczyłby całkowicie tabelę użytkowników Joomla!. "':": Haker mógłby po prostu wpisać. • Bezpieczeństwo Joomla! 369 Dzięki zachowaniu podstawowych środków ostrożności możesz ochronić się przez tym typem naruszenia zabezpieczeń. Podczas gdy zwykli użytkownicy wpisaliby w tym polu po prostu nazwisko. że pewien przykładowy formularz HTML zawiera pole do wprowadzenia nazwiska. zanim zostaną wykorzystane przez aplikację. . Jednakże sekwencja specjalna. którego nie można normalnie wykorzystać w zapytaniu do bazy danych. przez co efektem wykonania zapytania byłoby uzyskanie kompletnej listy użytkowników! Przerażające jest. Zamiast tego znak apostrofu (i dowolny kod. Przesłanie danych wejściowych z formularza do prostej procedury przetwarzającej wyeliminowałoby wszelkie niebezpieczeństwo płynące z ataków tego typu. ponieważ do tak przetworzonego kodu nie pasowałyby żadne rekordy. który miał być wstrzyknięty) jest po prostu zapisywany jako część ciągu znakowego. W ten sposób zastosowanie apostrofu poprzedzonego lewym ukośnikiem ( \ ' ) spowoduje zapisanie znaku apostrofu w polu bazy danych. Wszystkie dane akceptowane z zewnątrz powinny zostać przetworzone i sprawdzone. $name . zamiast nazwiska. liedostateczne filtrowanie pól tekstowych Przypuśćmy. haker może je wykorzystać do wstrzyknięcia kodu SQL.

dlatego lepiej jest ręcznie zaprogramować dodawanie znaków unikowych. niezależnie od wersji PHP zainstalowanej na serwerze. W ten sposób zapewnisz bezpieczne działanie swojego kodu bez modyfikacji. że dokonałeś typizacji w PHP. Profesjonalne tworzenie stron WN 1W W przypadku kodu PHP możesz wykorzystać metodę generowania znaków unikowych dla danej bazy danych. float itd. ". w przyszłości. w zapytaniu SQL zostałby użyty poniższy nieszkodliwy ciąg znaków: dummytext\ 1 or \'a\' = \'a Następny przykład wyglądałby tak: dummytextV : Drop Table jos_users: Select * From jos_polls Where title = V PHP udostępnia funkcję znaną jako magic quotes. który można wykorzystać niezależnie od docelowej bazy danych. Ciąg znakowy ze znakami unikowymi można uzyskać za pomocą obiektu JDatabase. Na przykład wartość id.). $name = $db->getEscaped($name): Gdyby spreparowany kod z pierwszego przykładu został poprawnie przytoczony. mógłbyś wykorzystać poniższy kod PHP: $id = intval(Sid): . W szóstej wersji PHP usunięto opcję magic quotes. które nie są typowane (np integer. kod napisany z wykorzystaniem metody dostępnej w Joomla!. Na przykład żeby odczytać $id jako wartość typu integer. jak przy ciągach znakowych bez znaków unikowych: 1. zamiast bezpośredniego kodu PHP.370 Joomla!. zwracającej ciąg znakowy ze znakami unikowymi. Brak typizacji pól Inną formą ataku poprzez wstrzyknięcie jest przekazanie bezpośrednio do silnika SQL wartości. która automatycznie dodaje lewe ukośniki do wszystkich danych wejściowych odebranych z źródeł zewnętrznych (takich jak przeglądarka WWW). jak pokazano wyżej. może zostać przekazana bezpośrednio do zapytania SQL za pomocą poniższej instrukcji: $sql = "Select * From jos_users Where id = " . jak to pokazano poniżej: $db =& JFactory::getDB0(). nadal będzie działać poprawnie. W tej sytuacji może zostać wykorzystany ten sam typ wstrzykiwanego kodu. Dla MySQL możesz posłużyć się funkcją PHP mysql_real_escape_string() do sformatowania ciągu znakowego: $name = mysql_rea1_escape_string($name). Mimo że aktualnie Joomla! zapewnia obsługę wyłącznie MySQL. upewnij się. pobrana z ciągu zapytania. kiedy zostaną dodane inne źródła danych. kiedy pobierasz wartości z ciągu zapytania lub z formularza. Joomla! dostarcza abstrakcyjnej metody zwanej getEscaped(). $ i d .". Drop Table jos_users: Dlatego zawsze.

powinno być dłuższe niż 50 znaków. początkowym etapie rozwoju technologii Ajax.Rozdział 14. ponieważ te funkcje zapewniają bezpieczny filtr dla wszystkich przychodzących danych. to nawet przeprowadzenie skutecznego ataku nie ujawniłoby więcej informacji. które powinieneś rozważyć na obecnym. • • To tylko kilka uwag. aby pobrać dane z formularza lub z ciągu zapytania. by możliwe było wykonywanie sekwencyjnych żądań do responderá Ajaksa i zebranie wszystkich informacji z bazy danych. powinna zostać przetworzona i typowana. Twój kod jest już zabezpieczony. aby zapobiec fałszywym wpisom. Podczas projektowania responderá należy zadać sobie następujące pytania: • Czy typowałem wszystkie dane żądania? — Każda porcja informacji. Czy powinienem ograniczyć zakres dostępnych danych? — Przykładowo komponent Ajaksa może oferować wyświetlacz Who-Is (kto to). że system stanie się podatny na ataki. przez co atak SQL Injection mógłby skutkować ujawnieniem informacji prywatnych. liestandardowe żądania—szczególnie przez fljaksa Ataki SQL Injection pochodzą nie tylko ze stron z formularzami. że gwałtowny wzrost popularności Ajaksa wiąże się z powstaniem różnorodnych potencjalnych punktów naruszenia zabezpieczeń. która pochodzi z zewnątrz. Jednakże zapytanie jest wykonywane na całej tabeli kontaktów. aby zapobiec wszystkim rodzajom błędów przepełnienia. Jeśli wykorzystujesz metody JRequest: :getVar() lub JRequest: :get(). które dostarczają odpowiedzi na zapytania Ajaksa. Może też spowodować wygenerowanie błędu. w przeciwnym razie konkurencja może wykorzystać Twoją własną bazę danych do zdobycia przewagi rynkowej. Jeśli dołączymy do widoku tylko dane. takich jak adres zamieszkania. Czy jest to informacja. Wszelkie dane uzyskane z pominięciem tych funkcji muszą zostać sformatowane i typizowane zawsze. Zapobiega to prawie każdej podstawowej formie ataku przez wstrzyknięcie. które umożliwiają filtrowanie danych z tabeli. który mógłby się pojawić w danym polu. Coraz większa liczba stron implementuje technologię Ajax. Należy narzucić limity dla przesyłanych danych. które mogłyby sprawić. • Bezpieczeństwo Joomla! 371 Typizacja zmiennych automatycznie unieszkodliwi każdy wstrzykiwany kod. Szczególna uwaga powinna zostać zatem poświęcona tym częściom systemu. Ta nowa technologia spowoduje prawdopodobnie kolosalną liczbę naruszeń . że dokładnie wiesz. dlatego warto przyciąć ciąg znakowy do tej wielkości. którą chcę dostarczyć przez Ajaksa? — Wiele firm udostępnia całe bazy danych lub katalogi poprzez żądania ajaksowe. Oznacza to. który pokazuje informację o kraju pochodzenia użytkownika. które są publicznie dostępne. Upewnij się. Żadne nazwisko nie. które są używane przez komponent ajaksowy. jeśli wybrane typy dla zmiennych są bez sensu. jakie dane będziesz udostępniać. MySQL zapewnia obsługę widoków. która tworzy w systemie żądania omijające większość zwyczajnych metod sprawdzania danych. Prosty program może jednakże zostać tak skonstruowany. kiedy to możliwe. niż te.

Profesjonalne tworzenie stron WN 1W zabezpieczeń. tłum. tłum. 3 Takie jak cudzysłowy. XML oraz PHP z przekazanego tekstu i zwróci surowy tekst. znaki większości itd. PHP ma kilka wbudowanych funkcji. którym udostępniono edytor HTML. W zależności od typu i konfiguracji serwera mogą być to pliki o innych nazwach — p r z y p . który jest bardzo niebezpieczny i należy się przed nim chronić. że zapoznałeś się z najaktualniejszą literaturą na temat bezpieczeństwa i rozumiesz najnowsze zagrożenia ze strony hakerów. aby zapobiec atakom tego rodzaju. które mogą Ci pomóc. W przeciwnym przypadku powinieneś wykorzystać BBCode. zanim wprowadzisz je na swoją stronę. aby usunąć z pól formularza wszystkie niepożądane znaki. jeśli katalog ten nie zawiera pliku o nazwie default. Taki kod może otworzyć ukryte okno w systemie użytkownika i zapisywać informacje. zanim jej słabości zostaną dostrzeżone i poprawione. które pozwalają na przesłanie kodu HTML (od ksiąg gości do forów). Może to być bardzo efektywnie użyte w Twojej aplikacji. 4 . takie jak nazwy użytkowników i hasła wpisywane w innych oknach przeglądarki.asp.2008] http://php.net/htmlentities — przyp.phpĄ. Upewnij się. W przypadku pola przeznaczonego na wpisanie nazwiska możesz wykorzystać poniższe wyrażenie: $myString = preg_replace("/["a-zA-Z \-0-9ąćęłńóśźżŁ]/". Cross-Site Scripting (XSS) Cross-site Scripting (XSS) jest metodą polegającą na wstawianiu kodu JavaScript lub referencji do obiektu w kodzie HTML przez użytkowników. Atakom tego typu przeprowadzanym z wykorzystaniem interfejsu użytkownika Joomla! można zapobiegać (zobacz podrozdział „Bezpieczeństwo Joomla!" dalej w tym rozdziale). PHP: htmlentlties — Manual [online] [dostęp 28. Funkcja PHP h t m l e n t i t i e s ( ) zamienia wszystkie znaki niebędące łacińskimi literami.08. Rozpowszechnienie dostępnych rozszerzeń. Możesz także wykorzystać wyrażenia regularne. "". Jej działaniu podlegają także znaki diakrytyczne — przyp. tłum. że wszystkie nowe rozszerzenia filtrują znaczniki wykorzystywane przez tę metodę ataku (przede wszystkim <object> i <script>). Umożliwienie przeglądania katalogów jest jawnym zaproszeniem hakerów do zdobycia 2 • • Istnieje możliwość zmiany zachowania względem cudzysłowów i apostrofów poprzez drugi parametr htmlentitiesO.html lub index. default. apostrofem 3 lub znakami odstępu 3 na encje HTML.htm. oznacza.0). jeśli nie przewidujesz formatowania tekstu przy wprowadzaniu danych. że musisz być czujny. Funkcja s t r i p t a g s O usunie wszystkie znaczniki HTML. W przypadku implementacji rozwiązania w technologii Ajax upewnij się. występuje podatność na atak XSS. Skanowanie katalogów Wiele serwerów sieci WWW udostępnia opcję przeglądania katalogów.372 Joomla!. index. Odkąd strony umożliwiają publikację treści nadesłanych przez użytkownika (kamień węgielny dynamicznej interakcji Web 2. cyframi. który pozostanie nienaruszony w wyniku działania tej funkcji. Odwiedzający może uzyskać dostęp przez połączenie HTTP z katalogiem i zobaczyć listę zawartych w nim plików. $myString).

więc jeśli zarządzasz serwerem. co powoduje niedostępność zasobów podczas procesu p o n o w n e g o u r u c h a m i a n i a . przez co maszyna nie jest w stanie o d p o w i a d a ć na ż ą d a n i a f a k t y c z n y c h u ż y t k o w n i k ó w . większość rozszerzeń i szablonów nie podejmuje działań prewencyjnych tego typu. uruchamiają atak typu DoS za pośrednictwem wirusa lub robaka. ponieważ rozpoznanie słabości systemu w y m a g a wykorzystania pełnej wiedzy. Więcej informacji na temat pf możesz znaleźć na www. którą ma zapora stanowa. Hakerzy. który rozprzestrzenia atakujący kod na komputery osób postronnych. może dowiedzieć się niemal wszystkiego. że masz dobry firewall. automatycznie rozpoznają różnicę między normalnym ruchem a ruchem w y g e n e r o w a n y m przez atak D o S i z a p o b i e g n ą przesłaniu nieprawidłowego ruchu do sieci. zanim trafią do miejsca przeznaczenia. atakujący wysyła kolejne żądania resetu i powtarza cały proces. O c z y w i ś c i e . p r z e c h o d z ą c przez różne komputery i routery.openbsd. upewnij się. a także by osiągnąć punkt krytyczny fałszywych żądań. który m a zapobiec m o ż l i w e m u wtargnięciu. Niestety. aby uniknąć wyśledzenia. 'odsłuchiwanie pakietów HTTP Natura komunikacji w sieci W W W polega na dzieleniu wysyłanych i odbieranych informacji na małe porcje danych z w a n e pakietami i przesyłanie ich przez internet. Blokując sfałszowany ruch. k i e d y restart s y s t e m u d o b i e g n i e k o ń c a . Stwarza to k o m p u t e r o w i . W określonym dniu i o określonej godzinie kod jest aktywowany i dotychczas niegroźne komputery jednocześnie a t a k u j ą cel. sprawdź. N a j c z ę s t s z ą f o r m ą tego ataku jest przeciążenie routera lub serwera wieloma żądaniami. stateful firewalls). Filtr pakietów w O p e n B S D .html. zwany pf.Rozdział 14. p o ogólne informacje o systemie. Większość ataków DoS można odeprzeć tylko na poziomie sprzętowym. Jako środek z a p o b i e g a w c z y J o o m l a ! u m i e s z c z a w k a ż d y m katalogu i p o d k a t a l o g u strony pusty plik index. Jest to znane j a k o distributed denial of service attack. zawiera funkcję synproxy. znane jako zapory stanowe (ang. Bardziej prawdopodobne jest. Jeśli haker posiada wiedzę na temat udostępnianych aplikacji i o systemie operacyjnym. która pośredniczy w ruchu między serwerem a internetem. W i ę k s z o ś ć s e r w e r ó w m a tę o p c j ę w y ł ą c z o n ą d o m y ś l n i e .org/faq/pf. Pakiety z n a j d u j ą s w o j ą drogę z komputera t r a n s m i t u j ą c e g o d o k o m p u t e r a d o c e l o w e g o . I n n ą c z ę s t ą f o r m ą a t a k u j e s t p r ó b a zmuszenia serwera lub routera do zresetowania. ma tę s a m ą rolę. że ta forma ataku zostanie przeprowadzona ręcznie przez hakera. od nazw plików konfiguracyjnych. dlatego powinieneś zrobić to samodzielnie z wszystkimi katalogami dodatków dla systemu Joomla!. czy odpowiednia dyrektywa została wyłączona. • Bezpieczeństwo Joomla! 373 sporej porcji informacji o Twoim systemie. tak Denial of Service (DoS) Atak denial of service ( o d m o w a usługi — DoS) jest p r ó b ą u n i e m o ż l i w i e n i a skorzystania z serwera lub innego zasobu autoryzowanym użytkownikom. Specjalne firewalle. Jeśli j e d n a k T w o j a strona j e s t przechowywana na starszym serwerze.

E f f e T e c h H T T P Sniffer) zbiera i d e k o d u j e pakiety zawierające informacje protokołu H T T P . Warto odwiedzić stronę Verisign (iwww. HTTP secure). W tych sytuacjach warto rozważyć zakup certyfikatu bezpieczeństwa SSL. z prywatnymi informacjami. s n i f f ) przesyłanych pakietów. musisz n a j p i e r w a k t y w o w a ć SSL na s e r w e r z e W W W . P r o g r a m p o d s ł u c h u j ą c y (np. Później program p r z e b u d o w u j e sesję H T T P i jest w stanie odtworzyć pliki oraz dane. j a k p r z e d s t a w i o n o to na rysunku 14. które zostały przechwycone. a m a ł a k ł ó d k a w i d o c z n a na dole o k n a przeglądarki będzie zamknięta. która p o z w a l a na przełączanie między z a b e z p i e c z o n ą i n i e z a b e z p i e c z o n ą wersją strony. u ż y w a n e g o do n o r m a l n e j komunikacji. taki j a k na r y s u n k u 14.2. która w y k o r z y s t u j e nieszyfrowane logowanie) program przechwytujący może potencjalnie podsłuchać informacje o haśle i nazwie użytkownika. jak pokazano to na rysunku 14. 5 W przypadku Apachc odpowiada za to dyrektywa ServerRoot—przyp. Ta opcja sprawi.com). jak działają certyfikaty i w jaki sposób zapewniają szyfrowanie danych. Po zainstalowaniu certyfikatu SSL na serwerze W W W powinieneś móc p o ł ą c z y ć się ze stroną. e-commerce lub może nawet interfejs administracyjny m o g ą wykorzystać szyfrowaną komunikację. żeby dowiedzieć się. tłum. Utwórz n o w ą pozycję menu. O d n o ś n i k musi być połączony z k o m p o n e n t e m Użytkownik/Logowanie. To tyle! Kiedy użytkownik kliknie odnośnik na stronie głównej. Profesjonalne tworzenie stron WN 1W z n a j d u j ą c e m u się gdzieś pomiędzy n a d a w c ą i odbiorcą możliwość skopiowania lub „wywęszenia" (ang. W p r z y p a d k u strony J o o m l a ! (lub k a ż d e j innej strony. że odnośnik w menu będzie zaczynać się od https://. A d r e s https:// o z n a c z a „ z a b e z p i e c z o n y H T T P " (ang.374 Joomla!. tak aby niezabezpieczone logowanie było niedostępne. żeby ktoś umieścił p r o g r a m m i ę d z y k o ń c a m i transmisji i przechwycił te i n f o r m a c j e . M o ż e s z także wykorzystać technologię przełączania J o o m l a ! . który umożliwia szyfrowanie ruchu między przeglądarką a serwerem W W W . W ten sposób strony logowania. N a s t ę p n i e musisz u k r y ć („Nie p u b l i k u j " ) moduł logowania. że s t r o n ą j e s t zabezpieczona. W p r z y p a d k u w d r o ż e n i a J o o m l a ! w internecie jest to mało p r a w d o p o d o b n e (i b a r d z o trudne).przvklad. Dane w sieci W W W są wysyłane i odbierane w formacie HTTP hermetyzowanym wewnątrz pakietów. t a k i e g o j a k https://www. k o r z y s t a j ą c z a d r e s u U R L . Jeśli chcesz zaszyfrować całą komunikację ze stroną musisz po prostu ustawić katalog Joomla! j a k o główny katalog serwera W W W 5 . . rejestracji.1. i n f o r m u j ą c .pl. D o m y ś l n y m portem w y k o r z y s t y w a n y m p r z e z https://jest 443 w m i e j s c e portu 80. zostanie wyświetlony ekran l o g o w a n i a . A b y w ł ą c z y ć b e z p i e c z n e l o g o w a n i e na stronie Joomla!. która utworzy o d n o ś n i k d o e k r a n u l o g o w a n i a z w y k o r z y s t a n i e m s z y f r o w a n i a SSL. Rozwiń ramkę Parametry: Systemu i u s t a w o p c j ę Połączenie SSL na Włączone.3.verisign. podczas gdy reszta komunikacji ze s t r o n ą j e s t nieszyfrowana. Po w y ś w i e t l e n i u ekranu edycji e l e m e n t u m e n u u s t a w Tytuł na Logowanie. W p r z y p a d k u u r u c h o m i e n i a J o o m l a ! w intranecie lub sieci lokalnej szanse i możliwości penetracji są dużo większe.

ląc:«: index.Rozdział 14.. worzenie nowego lementu menu ołączonego komponentem 'żytkownik/ ogowanie 375 U Pozycja menu: [utwórz] WytHt-r/ typ pozycji menu # gg Łącze wewnętrzne ysunek 14...1. Istawianie opcji dołączenie SSL i a Włączone U P o z y c j a m e n u : [ utwórz] yN . Komponent Użytkownik/Logo wanie zostanie wyświetlony na zabezpieczone i stronie N a z w a użytkownika Hasto Pamiętaj mnie i | Zaloguj | • Nie p a m i ę t a s z h a s t a ? * Nie p a m i ę t a s z n a z w y ? « Zarejestruj . Młin Menu » — Potączei«* S-M Wy+ączone Ignoiuj * Włączone Logowanie Koińjiiość Posiorn dostępu r Nowa pozycja menu z n ^ i ł r s i ę na końcu. ftodstawowe • P<itametry: «systemu P*k3Ż tytut sir co ¡i Nie * Tak T.2.*«».«. Kolejność B ^ g Specjalny W nowym ok me z pask lem nawigacyjnym W nowym oknie bez paska nawigacyjnego łysunek 14.. ./ Q I J Typ pozycji menu Zaloguj . • Bezpieczeństwo Joomla! tsunek 14.3.Wyloguj Wyświetla standardowe stiony Logowanie i Wylogowanie Szczegóły pozyc ji menu Parametry*.php?option=com_useriview=login W.

txt na . tylko przez oddzielną wtyczkę lub komponent. Pomimo to istnieje kilka punktów. serwery te s ą bardzo dobrze chronione i zbadane pod kątem możliwych błędów. w których możesz nieco poprawić bezpieczeństwo systemu. Ten problem możesz rozwiązać poprzez dodanie dyrektywy w pliku httpd. A b y go aktywować.txt. tuż po zainstalowaniu. a d r e s ó w (w rozdziale 13. dlatego bezpieczeństwo A p a c h e nie jest g ł ó w n y m problemem. Ze względu na potęgę tkwiącą w tym pliku A p a c h e zawiera ( d o m y ś l n i e ) o p c j e chroniące g o przed dostępem z zewnątrz przez przeglądarkę.htaccess. gdy T w ó j system j e s z c z e z niego nie korzysta. u ł a t w i a j ą c y c h p o z y c j o n o w a n i e . j a k i M i c r o s o f t ISS o b s ł u g u j ą dosłownie miliony stron internet o w y c h .conf. za pomocą Eksploratora Windows.htaccess).376 Joomla!. W systemie Windows. domyślna instalacja Apache spełni większość w y m o g ó w bezpieczeństwa. z n a j d u j e się więcej informacji na ten temat). zatem zostały przetestowane i sprawdzone w każdy możliwy sposób. D o t y c h c z a s u p u b l i c z n i o n o i n f o r m a c j e tylko o kilku włamaniach.htaccess z inną nazwą. Konfiguracja . A p a c h e jest d o m y ś l n i e b a r d z o d o b r z e z a b e z p i e c z o n y . zanim zmienisz którekolwiek z domyślnych ustawień. zmień po prostu nazwę pliku z htaccess.htaccess pod n a z w ą htaccess. jeśli nie w p r o w a d z o n o żadnych zmian w konfiguracji. . Plik . Możesz także otworzyć wiersz poleceń i wykorzystać komendę ren do zmiany nazwy pliku. niemożliwa jest zmiana nazwy pliku na samo rozszerzenie (tak dla systemu wygląda plik .htaccess. Dlatego też.Search Engine Friendly — SEF). Zaatakowanie serwera Apache jest j e s z c z e mniej prawdopodobne. Uprawnienia dostępu. a także inne ustawienia zabezpieczeń m o g ą zostać w nim określone.htaccess w y k o r z y s t y w a n y jest w systemie Joomla! głównie do ustalenia praw dostępu i korzystania z mod_rewrite do tworzenia „ p r z y j a z n y c h " (. Dzięki temu plikowi włączysz mod_rewrite w sytuacji. ochrona hasłem. Profesjonalne tworzenie stron WN 1W Bezpieczeństwo serwera WWW N a j n i ż s z y m p o z i o m e m ataku i najmniej p r a w d o p o d o b n y m m i e j s c e m penetracji jest serwer W W W . D l a t e g o też. W r a z z pakietem instalacyjnym Joomla! dostarczany jest gotowy do użycia plik .htaccess W przypadku serwera A p a c h e prawa dostępu do plików i katalogów m o g ą zostać zapisane w pliku zwanym . dobrze to przeanalizuj. Z a r ó w n o Apache. blokowanie PHP. jest bardzo dobrze zabezpieczony. która wymusza użycie pliku . Zabezpieczanie serwera Apache S e r w e r A p a c h e . ponieważ uruchamianie skryptów (takich jaki P H P lub Perl) nie jest obsługiwane przez serwer W W W . j e d n a k łatwo m o ż n a s p o w o d o w a ć — p r z e z n i e r o z w a ż n y d o b ó r opcji — że stanie się p o d a t n y na atak. Serwery tego r o d z a j u o b s ł u g u j ą d u ż ą część ś w i a t o w y c h s e r w e r ó w W W W . M i m o że takie r o z p o w s z e c h n i e n i e nie z a p o b i e g a w y s t ę p o w a n i u p r o b l e m ó w z bezpieczeństwem. Silniki uruchamiania skryptów są najbardziej bezpośrednio narażone na atak.

takich jak numer wersji. D o m y ś l n a k o n f i g u r a c j a w pliku httpd. dostarczając dodatkowych informacji. S ą to (w porządku malejącym): Fuli.deny Deny from all </FilesMatch> Kod ten p o w o d u j e o d m o w ę d o s t ę p u d o w s z y s t k i c h p l i k ó w . Powinieneś dodać następującą dyrektywę. D y r e k t y w a ServerTokens p o z w a l a Ci ustalić. — to nie leży w T w o i m interesie. z jakiego typu serwera korzystasz.htaccess. powinieneś natrafić na kod podobny do poniższego: <FilesMatch "\. k o m u n i k a t o błędzie). Dzięki w y k o r z y s t a n i u tej możliwości możesz zablokować dostęp z zewnątrz do plików. jest możliwość zablok o w a n i a d o s t ę p u p r z e z p r z e g l ą d a r k ę d o p l i k ó w d a n e g o typu. OS. Istnieje sześć m o ż l i w y c h u s t a w i e ń tej d y r e k t y w y .htaccess (a także p l i k ó w . Major i Prod. pliki .htpasswd). m o ż e s z s k o p i o w a ć poprzedni fragment i zamienić wyrażenie FilesMatch na poniższe: <Fi1esMatch .conf powinna zawierać wpis blokujący dostęp przeglądarki do pliku . więc raczej nie ułatwiaj m u sprawy. dostępną w Apache. spora część tych i n f o r m a c j i j e s t d o s t a r c z a n a p r z e z ServerSignature za k a ż d y m r a z e m . g d y z o s t a j e w y g e n e r o w a n a strona (np. tym p r e c y z y j n i e j s z y c h metod może użyć przeciwko T w o j e j stronie.ht"> Order allow. Minor.Rozdział 14. A b y z a b l o k o w a ć dostęp do p l i k ó w dziennika."\. Mi ni mai. Jeśli przejrzysz dokładnie plik konfiguracyjny. ile informacji będzie d o s t a r c z a n y c h w odpowiedzi na żądanie strony.conf wyłączy wyświetlanie sygnatury: ServerSignature off rrektywa ServerTokens Sporo informacji jest dostarczanych w sygnaturze zwracanej w odpowiedzi na każde żądanie strony. N i e s t e t y . nazwa systemu operacyjnego itd. która s p o w o d u j e dostarczanie najmniejszej ilości informacji: ServerTokens Prod Imowa dostępu do plików z danym rozszerzeniem Przydatną f u n k c j ą poprawiającą zabezpieczenia. Dodanie następującej dyrektywy do Twojego pliku httpd. • Bezpieczeństwo Joomla! 377 rrektywa ServerSignature Im więcej informacji z d o b ę d z i e haker na temat T w o j e g o systemu. które nie powinny być dostępne przez przeglądarkę (np.log).log$"> . On i tak wie (wie to także nawet początkujący haker).

SQL Injection " we wcześniejszej części tego rozdziału) sprawi. Bezpieczeństwo PHP P H P jest p r a w d o p o d o b n i e n a j w a ż n i e j s z ą technologią. Profesjonalne tworzenie stron WN 1W A b y zablokować dostęp do danego katalogu. Jeśli atakującemu uda się uruchomić skrypt z pominięciem nałożonych ograniczeń. magie quotes i safe mode). w jaki sposób m o ż n a dokonać włamania. jednakże niektóre programy i komponenty nie będą działały właściwie. Pomimo że system Joomla! może funkcjonować poprawnie bez z a s t o s o w a n i a p o n i ż s z y c h ś r o d k ó w ostrożności. musisz użyć elementu Di rectory: <Directory ~ "C:/Program Files/Apache Software Foundation/Apache2. Funkcja ta znakomicie n a d a j e się do badania systemu i określania opcji konfiguracyjnych. że intruz przejmie całkowitą kontrolę nad systemem. jeśli dopilnujesz bezpiecznej konfiguracji serwera Joomla!. skrypty m a j ą dostęp tylko d o katalogu ich w ł a s n e j witryny. zużycie pamięci i dostęp do niektórych funkcji systemowych (takich j a k execO. które mogą stworzyć luki w zabezpieczeniach. zatem może dostarczyć hakerowi dokładnych informacji o systemie PHP. Korzystanie z safe mode ogranicza także czas wykonywania skryptu. Dzięki temu nie będzie on obiecującym celem dla odwiedzającego hakera.2/htdocs/li brari es"> Order allow.. powinieneś ustawić kilka dyrektyw PHP. z a o s z c z ę d z i s z sobie wielu zmartwień. P i e r w s z y m k r o k i e m d o z m n i e j s z e n i a p o t e n c j a l n e g o n i e b e z p i e c z e ń s t w a dla s y s t e m u jest sprawdzenie. to istnieje wielkie niebezpieczeństwo. którą należy zabezpieczyć. Brak funkcji magic quotes (zobacz podrozdział . Z szóstej wersji PHP wyeliminowano trzy często używane funkcje (register globals. Dobrze jest mieć włączony safe mode w wielu sytuacjach. Po sprawdzeniu.378 Joomla!. . czy w żadnych plikach nie ma wywołań funkcji phpi nfo(). ponieważ jest najbardziej podatna na atak. PHP Safe Mode W sytuacji g d y safe mode (tryb b e z p i e c z n y ) j e s t w ł ą c z o n y . aby dodatkowo zabezpieczyć system. że początkujący programiści będą musieli bardziej uważać podczas pisania kodu. unlink O i copy O). kiedy ten tryb jest aktywny.deny Deny from al 1 </Directory> Jeśli użytkownik spróbuje za pośrednictwem przeglądarki pobrać pliki w katalogu 1 libraries lub w d o w o l n y m p o d k a t a l o g u (istniejącym lub nieistniejącym). Haker może wykorzystać j e jako wskazówki. T o u n i e m o ż l i w i a h a k e r o m na w s p ó ł d z i e l o n y m systemie wykorzystanie skryptów do czytania plików i informacji z katalogów nienależących do nich. czy nie są ujawniane informacje na temat serwera. zostanie zwrócona strona z błędem 403 Forbidden Page. Ma także d u ż ą liczbę opcji konfiguracyjnych.

przez co ograniczysz funkcjonalność całej strony. IP fl0C_P00l Dyrektywa doc_root p r z y j m u j e j a k o wartość ciąg z n a k ó w . dyrektywa disable_classes była mało użyteczna. Wprowadzane ograniczenia dawały fałszywe poczucie bezpieczeństwa. Z a n i m w p r o w a d z i s z j a k i e k o l w i e k z m i a n y w k o n f i g u r a c j i . stosowane dopóki programiści nie udostępnią odpowiednich opcji w serwerach WWW. proc_get_status. który określa g ł ó w n y katalog uruchamiania skryptów PHP. które w y w o ł u j ą tę funkcję — haker nie będzie mógł ich wykorzystać do zdobycia informacji dostarczanych przez phpi nfo(). Dzięki temu — j e ś l i istnieją jakieś pliki.popen. M o ż e s z z m i e n i ć u s t a w i e n i e tej dyrektywy w pliku php.proc_termi nate. Jeśli korzystasz z PHP na Microsoft IIS. IP disable _classes P o d o b n i e j a k di sabl e_functi ons. Dopóki uprawnienia u ż y t k o w n i k ó w są poprawnie ustawione. N a przykład dyrektywa disable_functions może zostać użyta do wyłączenia funkcji. Wstawienie następującej dyrektywy w pliku php.exec. Safe m o d e zostało usunięte z PHP z wersji szóstej i późniejszych. czy ten tryb jest włączony poprzez uruchomienie funkcji phpi nfoC) i sprawdzenie Configuration/PHP Core w p o s z u k i w a n i u d y r e k t y w y safejnode. u p e w n i j się. które mogłyby być nadużyte przez hakera. Funkcja ta uniemożliwia wykorzystanie określonych klas w kodzie PHP.shell_exec Na serwerze w d r o ż e n i o w y m warto rozważyć dodanie funkcji phpi nfo() do powyższej listy. miało być to prowizoryczne zabezpieczenie. di sabl e_cl asses p r z y j m u j e j a k o a r g u m e n t listę klas do wyłączenia. .system. podobnie j a k poniżej: doc_root = "C:\Program Files\Apache Software Foundation\Apache2. Kiedy pisałem tę książkę.ini wyłączy wypisane poniżej funkcje bez w p ł y w u na działanie Joomla!: di sable_functions = fi 1 e.ini.2" IP disablejunctions Z powodu porzucenia safe mode w PHP istnieje spora liczba innych opcji.unl i nk.Rozdział 14. W przeciwnym wypadku możesz wyłączyć f u n k c j ę w y k o r z y s t y w a n ą przez jedno z rozszerzeń. W przypadku włączonego safe mode żaden skrypt z n a j d u j ą c y się poza tym katalogiem nie będzie mógł być uruchomiony. które m o g ą zostać wykorzystane w celu zabezpieczenia poszczególnych e l e m e n t ó w PHP. Począwszy od wstępnej implementacji. Katalog powinien zostać ustawiony w pliku php.fopen. że r o z u m i e s z ich konsekwencje. Możesz sprawdzić. Większość serwerów zawiera już takie opcje. dostęp do informacji z innego konta nie jest możliwy.ini.proc_ni ce. nie musisz używać safe mode. oddzielonych przecinkami.proc_open.passthru. • Bezpieczeństwo Joomla! 379 Safe mode jest włączony na większości współdzielonych serwerów PHP.proc_close. ponieważ każdy serwer wirtualny m o ż e działać na innym koncie użytkownika.

czy nie. zmiennych i prawa dostępu. powinieneś wyłączyć j ą na serwerze p r o d u k c y j n y m . html . Domyślnie ta opcja jest włączona. ponieważ dzięki nim możesz szybko usunąć usterki. M o g ą one zostać wykorzystane do zdobycia nieautoryzowanego dostępu lub uszkodzenia strony. A b y wyłączyć klasę Di rectory. ustaw tę dyrektywę w pliku php. com/doc/refman/5. U p e w n i j się. które p r a w i e na p e w n o chcesz w ł ą c z y ć na serwerze testowym. które wystąpią podczas uruchamiania kodu PHP. potencjalny dostęp do prywatnych informacji użytkowników może być niepożądany. PHP expose_php W s p o m n i a n a w c z e ś n i e j d y r e k t y w a ServerTokens s e r w e r a A p a c h e p o w o d u j e wysyłanie i n f o r m a c j i p o k a ż d y m żądaniu strony. Aby wyłączyć dostarczanie informacji o serwerze PHP. W przeciwnym razie możesz dostarczyć hakerowi wielu informacji na temat serwera W W W . dołącz poniższą dyrektywę do pliku di sable_classes=Di rectory php. ta opcja okaże się bardzo użyteczna. a ich użycie zagrozi bezpieczeństwu. który m o ż n a znaleźć pod adresem: http://dev. prywatnych informacji. r a z e m z n a z w ą pliku i n u m e r e m linii. są przekaz y w a n e d o p r z e g l ą d a r k i . jednak aby poprawić zabezpieczenia. mysąl. O/en/security.ini: PHP display. błędy i ostrzeżenia są zapisywane do pliku error. Pomocne są także ostrzeżenia. że u s t a w i ł e ś p a r a m e t r display_errors na Off na s e r w e r z e w d r o ż e n i o w y m .ini: expose_php = Off Bezpieczeństwo MySQL Serwer baz danych M y S Q L może przechowywać dużą liczbę ważnych. które często trafiają tylko do dziennika błędów. katalogów. w której wystąpił błąd. n a z w y plików. Dlatego warto zapoznać się z krótkim (lecz znaczącym) przewodnikiem M y S Q L „General Security Issues". Bez w z g l ę d u na to. M o ż e s z włączyć tę opcję w pliku php. np. kiedy tworzysz kod. gdy p l a t f o r m y oparte na klasach ( w ł ą c z a j ą c w to p l a t f o r m ę Joomla!) staną się bardziej złożone. czy ta o p c j a j e s t w ł ą c z o n a . wszystkie błędy i ostrzeżenia. o ile tylko opcja log_errors pozostanie włączona (jest to d o m y ś l n e ustawienie).log w katalogu \logs serwera Apache. jest di spl ay_errors.380 Joomla!. Profesjonalne tworzenie stron WN 1W W przyszłości. Jeśli platforma Joomla! jest wykorzystywana do zarządzania kontaktami lub e-commerce.ini za p o m o c ą następującej dyrektywy: display_errors = On Informacje o błędach są przydatne. D y r e k t y w a expose_php dołącza do nich informacje na temat serwera. Kiedy to ustawienie jest włączone.errors U s t a w i e n i e m . a wolałbyś wyłączyć na serwerze wdrożeniowym.

org/content/view/39/132/—przyp. A b y się z a p i s a ć . p o n i e w a ż kod zostanie uznany za niebezpieczny. Podczas wprowadzania zmian wybierz opcję No Editor i w s t a w właściwy kod. których dotyczy problem. Aby do tego nie dopuścić. Wówczas będziesz o t r z y m y w a ł e . a Czyść przy starcie nie. którymi można poprawić kilka j e g o słabych punktów. tłum. p o s z u k a j w i n t e r n e c i e (w p r z y p a d k u z m i a n y a d r e s u ) lub odwiedź poniższy temat na forum: http://forum. Upewnij się. Zamiast w y ł ą c z a ć tę f u n k c j ę .Rozdział 14.08. kiedy f u n k c j a Czyść podczas zapisu z a p o b i e g n i e T w o i m c e l o w y m działaniom (np. Istnieje jednak spora liczba drobnych ustawień. W przypadku pozostawienia folderu 1 installation po zakończeniu instalacji Joomla! zablokuje działanie strony. istnieje prawdopodobieństwo. że nieoczyszczony kod znajduje się j u ż w bazie danych. . hakerzy w y n a j d u j ą n o w e metody omijania zabezpieczeń. Korzystając z Plugin Managera. Prawie zawsze możliwe jest ustawienie opcji.org/index.m a i l e z i n f o r m a c j a m i na temat b e z p i e c z e ń s t w a i w s z y s t k i e alerty. joomla.joomla. które w y m a g a j ą uwagi.4).php/topicJ2522L0.2008] http://help. wstawieniu do artykułu filmu z YouTube). czy pliki instalacyjne zostały usunięte z serwera W W W 6 . możesz ustawić parametry edytorów tekstu wykorzystywanych przez Joomla!. Za p o m o c ą T i n y M C E — dzięki opcjom Czyść podczas zapisu i Czyść przy starcie — można automatycznie usunąć niebezpieczne elementy z artykułów (zobacz rysunek 14. • Bezpieczeństwo Joomla! 381 ezpieczeństwo Joomla! System Joomla! został z b u d o w a n y tak. Domyślnie włączona jest tylko opcja Czyść podczas zapisu. możliwe byłoby całkowite usunięcie jej zawartości.html suwanie plików instalacyjnych Po u k o ń c z e n i u instalacji u p e w n i j się. Istnieje kilka sytuacji. Tę drugą potrzebujesz tylko w sytuacji. że ograniczyłeś możliwości edytorów. jak to opisano wcześniej w podrozdziale „Cross-Site Scripting (XSS)". p o p r a w ręcznie artykuły. aby zapewnić bezpieczeństwo bez zmian w konfiguracji. Najlepszym sposobem uzyskiwania bieżących informacji dotyczących p r o b l e m ó w bezpieczeństwa Joomla! jest zapisanie się do „Security Related Announcements". lytor HTML Joomla! Jeśli zezwalasz na umieszczanie na stronie treści nadesłanych przez u ż y t k o w n i k ó w . Korzystanie z aktualnej wersji Joomla! zmniejsza ryzyko włamania. Gdyby haker uruchomił p o n o w n i e proces instalacji na serwerze z działającą stroną. Joomla! Help Site — Browser Installation (the easy way)[online] [dostęp: 26. Cały czas pojawiają się n o w e zagrożenia. sprawdź. które są dostępne dla użytkowników. że ktoś spróbuje przeprowadzić atak X S S na system. dzięki którym niebezpieczne treści są automatyczne usuwanie z treści nadsyłanych przez u ż y t k o w n i k ó w . jeśli przypuszczasz. c z y u s u n ą ł e ś f o l d e r \installation i w s z y s t k i e pliki w nim zawarte.

które zostaną usunięte z wprowadzonego tekstu. że skrypt nie został uruchomiony w systemie Joomla!). Nawet p r y m i t y w n e testowe rozszerzenia p o w i n n y zawierać tę linię. O p c j a Zabronione elementy p o z w a l a Ci określić e l e m e n t y kodu H T M L . który s p r a w d z a . czy skrypt u r u c h a m i a n y jest przez Joomla!. Serwer testowy m o ż e być niedostatecznie zabezpieczony. powstrzyma to także użytk o w n i k ó w przed d o d a w a n i e m animacji Flash i innych dynamicznych treści. Rozwijanie i testowanie Jeśli p l a n u j e s z w d r o ż e n i e b e z p i e c z n e g o systemu Joomla!. applet. W celu poprawy zabezpieczeń powinieneś rozważyć wpisanie object.4. Oczywiście. Uruchamianie wewnątrz systemu Jeśli haker uruchomi plik PHP z pominięciem systemu.382 Joomla!. iframe na tę listę. G d y tworzysz n o w e rozszerzenia (moduły. Na początku pliku z kodem umieść poniższą linię: definecK '_JEXEC' ) or die ( 'Brak dostępu' ): Jeśli parametr _J EX EC nie został zdefiniowany (co oznacza. Domyślnie w tym polu znajduje się tylko element applet. które mogłyby zagrozić bezpieczeństwu N a liście p a r a m e t r ó w T i n y M C E z n a j d u j e się u s t a w i e n i e . które u m o ż l i w i a d u ż o większą k o n t r o l ę . na w y p a d e k gdyby zostały odnalezione i wykorzystane do ataku przez hakera. Dzięki opcji Czyść podczas zapisu z kodu zostaną usunięte niektóre elementy kodu HTML i znaczniki skryptów. p r z e t w a r z a n i e kodu z o s t a j e p r z e r w a n e . musisz być w stanie sprawdzić konfiguracje i rozszerzenia na bezpiecznym systemie. możliwe są szkody różnego rodzaju. Użytkownicy nie będą mogli wykorzystać żadnego elementu. Testy powinny odbywać się w całości na serwerze testowym. który mógłby zostać użyty do przeprowadzenia ataku takiego jak X S S . zawsze dodawaj kod. . zawierać roboczy kod i niesprawdzone rozszerzenia. komponenty lub wtyczki). Profesjonalne tworzenie stron WN 1W Rysunek 14.

Po zakończeniu tworzenia o p r o g r a m o w a n i a powinieneś przenieść w pełni s k o n f i g u r o w a n y system na serwer wdrożeniowy. j e d n a k e f e k t y w n a kontrola dostępu użytkowników wewnątrz systemu odgrywa nie mniej istotną rolę. Doprowadzi to do tworzenia lepszego oprogramowania dla Joomla! i solidniejszego kodu. Ataki są zazwyczaj wymierzane w najsłabszy punkt systemu. jest to obszar pewnych braków w systemie Joomla!. znajdź źródło problemu. który m o ż e stworzyć wiele możliwości dla hakera. że system staje się podatny na atak.Rozdział 14.ini do niebezpiecznych elementów PHP. w których systemowi temu brakuje możliwości dostępnych w C M S .ini i httpd. Nie powinieneś jednak przenosić plików konfiguracyjnych. bardziej restrykcyjnym środowisku (a stanie się to na pewno). które jak najlepiej z a p o b i e g n ą potencjalnym atakom. Poprawa konfiguracji zabezpieczeń serwera Apache. Jeśli niektóre elementy systemu przestaną działać w nowym. jakie musisz w y k o n a ć podczas tworzenia kodu. a system projektowy będzie miał ich wiele. Konfigurowanie parametrów Joomla!. dzięki której zapobiegnie się nieautoryzowanemu dostępowi do informacji.conf\ p o n i e w a ż serwer r o z w o j o w y p o w i n i e n mieć zupełnie inne ustawienia. na które może być narażony serwer W W W . w celu ograniczenia dostępu • Przyjęcie polityki bezpieczeństwa M y S Q L . . Niestety. W tym r o z d z i a l e d o k o n a n o p r z e g l ą d u sposobów postępowania w kwestiach bezpieczeństwa Joomla!: • • • Zrozumienie ataków. przedstawiono obszary. Doskonalenie konfiguracji w pliku php. • Bezpieczeństwo Joomla! 383 Serwer testowy jest j e s z c z e ważniejszy z punktu widzenia bezpieczeństwa. chyba że webmaster zrozumie istotę zagrożeń i z a s t o s u j e o d p o w i e d n i e środki p r z e c i w d z i a ł a n i a . • Z a b e z p i e c z e n i e s y s t e m u przed a t a k a m i z z e w n ą t r z j e s t b a r d z o w a ż n e . odsumowanie Joomla! jest faktycznie bardzo bezpiecznym systemem. Testowanie skryptów i przykładowych rozszerzeń to tylko dwie czynności. zamiast wyłączać ustawienie odpowiedzialne za jego występowanie.a c h w y ż s z e j klasy. W rozdziale 15. takich jak php. jeśli z a j m u j e s z się tworzeniem oprogramowania. Mimo to połączenie wielu technologii sprawia.

Profesjonalne tworzenie stron WN 1W .384 Joomla!.

dlatego czasami warto skorzystać z innych aplikacji C M S . poświęconej p o r ó w n y w a n i u aplikacji typu C M S . że k o n k u r e n c j a ma j u ż d r u g ą w e r s j ę f u n k c j i . Joomla! ma 124 ze 140 w y s z c z e g ó l n i o n y c h cech. że Joomla! to silna konkurencja dla systemów kosztujących setki. zaznaczana jest słabość Joomla! w tej dziedzinie. Jeśli istnieje szeroko stosowane rozszerzenie. Praktycznie w s z y s t k i e k o m e r c y j n e aplikacje C M S (a także w s z y s t k i e produkty wysokiej klasy p o r ó w n y w a l n e z Joomla!) z a w i e r a j ą f u n k c j ę kontroli wersji. to nie jest ona wymieniana jako ograniczenie systemu Joomla!. funkcjonalność eCommerce dzięki rozszerzeniu Virtuemart). Jeżeli jednak dostępne rozszerzenia dodają wyłącznie prymitywną implementację danej opcji (np. Pamiętaj jednak. Wielu zwolenników przytoczyłoby argument. kontroli wersji). (ontrola wersji dokumentów J e d n ą z najbardziej znaczących funkcji. kiedy czytasz tę książkę. c m s m a t r i x . które p o d k r e ś l a j ą braki tego systemu.15 Czego Joomla! nie potrafi Miałeś już okazję poznać fenomenalny system zarządzania treścią ( C M S ) Joomla!. Dlatego i n f o r m a c j e z a w a r t e w tym rozdziale. dlatego wynik p o r ó w n a n i a z k o n k u r e n c y j n y m i p r o d u k t a m i b ę d z i e w y g l ą d a ć p o d o b n i e t a k ż e w przyszłości. o r g ) . Wraz z r o z w o j e m oprogramowania wiele spośród brakujących funkcji zostanie dodanych. p o w i n n y o d z w i e r c i e d l a ć dystans dzielący system Joomla! od innych produktów. które o f e r u j ą bardziej z a a w a n s o w a n e i m p l e m e n t a c j e danych rozwiązań. a nawet tysiące dolarów. niezależnie od tego. O g r o m n a liczba f u n k c j i sprawia. które bezproblemowo rozbudowuje system o daną funkcję (np. W tym rozdziale opisano pokrótce niedostatki systemu Joomla! dostrzeżone w czasie pisania tej książki. że niedostatki Joomla! można uzupełnić dostępnymi rozszerzeniami. których brak w Joomla!. I s t n i e j ą j e d n a k pewne obszary. Kontrola wersji . N a stronie internetowej C M S Matrix ( w w w . że programiści innych aplikacji nie pozostają bezczynni. W p r o w a d z e n i e p i e r w s z e j wersji d a n e g o r o z w i ą z a n i a w Joomla! o z n a c z a ć będzie. jest kontrola wersji dokumentów.

N a d a l s z y m etapie prawnicy przeglądają treść artykułu pod kątem kontrowersyjnych wypowiedzi. Profesjonalne tworzenie stron WN 1W ma krytyczne znaczenie dla zarządzania treścią. Przedstawiony przebieg pracy internetowej gazety wymaga. wyjaśniającego zdania) lub korygująca (np. workflow) w internetowej gazecie. pozostają bezczynni. Często warto skorzystać z in) bardziej zaawansowane implementacje danych i Jiił:. wyświetlane obok siebie z różnicami zaznaczonymi kolorem.1. 1 . uwagi lub z m i e n i a j ą treść. wprowadzania z m i a n w oryginalnej treści. 1 str. a r t y k u ł p o p r a w i a n y j e s t p r z e z autora — a k c e p t u j e on z m i a n y .A 100% U J J J . zarys dodatkowego. Jest to także kluczowa cecha z punktu widzenia administratora. Joomla! po: Ogromna liczba funkcji czyni Joomla! silną ] setki. Hiałeś już okazję poznać fenomenalny system stronie internetowej CHS Hatrix (www. Artykuł publikowany po kilku korektach.1. Wraz z rozwojem oprogrs funkcji zostanie dodanych. Kolejny krok to sprawdzanie z g o d n o ś c i z faktami i sugestie zmian w artykule. Ogromna liczba funkcji czyni Joomla! silną J setki. jeśli nad materiałami pracuje kilku redaktorów i korektorów. * i Znaczniki pokazane w wersji końcowej • Pokaż* •*» Miałeś już okazję poznać fenomenalny system stronie internetowej CHS Hatrix (www. Wiele edytorów (np. Porównanie wersji artykułów wyświetlane w postaci dwóch sąsiadujących okien może być bardzo użyteczne l-4 J 2 . usunięcie akapitu). c Kontrola wersji dokumentow H]i3 I 1= E3 < sekcja ł H]a m 3 EP < sekcja 1 wrs 8 Kol. Istnieją je< braki Joomla!. A / 1• • Pula:* 'j . d o d a j ą sugestie. j E d i t i Microsoft Word) zawiera f u n k c j ę w y g o d n e g o porównywania wersji. wyobraź sobie przepływ pracy (ang. konstruktywna (np. Dlatego informacje zawai stanowić skuteczną podstawę oceny systemu J< Wielu zwolenników podniosło by argument. Często warto skorzystać z im bardziej zaawansowane implementacje danych i W tym rozdziale opisano pokrótce niedostatk: pisania tej książki. a nawet tysiące dolarów.cmsmat) porównywaniu aplikacji typu CHS. Rysunek 15.I j^I À . nie jest oi systemu Joomla! Jeśli jednak dostępne rozszt implementację danej opcji (np. wyświetlanych w d w ó c h sąsiadujących oknach — przedstawiono to na rysunku 15. W systemach C M S z kontrolą wersji każda zmiana p o w o d u j e zapisanie także poprzedniej wersji artykułu. na każdym etapie. Zn. Pamiętaj jednak. 1 str. Jeśli istnieje s: bezproblemowo rozbudowuje system o daną funl dzięki rozszerzeniu Virtuemart). K a ż d a z nich m o ż e być d e s t r u k t y w n a (np.Microsoft Word Plik Pomoc J ¡¿dycja Widok Wjtaw Format Narzędzia iaa Iabela Qkno > ~£S / .3L-riiłi p o d a n e : Zwykły tekst J j i > > r u kor« » "-i .. a nawet tysiące dolarów.. Jeśli n i e z b ę d n y j e s t p o w r ó t d o d a n e j wersji w celu p r z y w r ó c e n i a lub porównania. Następnie redaktorzy i korektorzy przeg l ą d a j ą artykuł.. Plik gdyqa Widok Wgtaw Format yarzęd2ia Iabela Okno X : Pomoc 9 artykull txt .cmsmati porównywaniu aplikacji typu CHS. Ostatecznie na krytykę. jest dopiero nieścisłości. że dostępnymi rozszerzeniami. dlatego porównanie z kc miało identyczny rezultat teraz i w przyszłe danego rozwiązania w Joomla1 oznaczać będzit wersję tej funkcji. Większość systemów pozwala porównać dwie wersje artykułu. o d p o w i a d a w p r o w a d z a p o p r a w k i i p r z e p i s u j e niektóre f r a g m e n t y . kontroli wer: w tej dziedzinie. Dziennikarz pisze artykuł i w p r o w a d z a j e g o p o c z ą t k o w ą wersję do systemu. Joomla! po. A b y zrozumieć znaczenie funkcji kontroli wersji w systemach zarządzania treścią. Jeśli p o j a w i ą się n o w e informacje lub dostrzeżone zostaną zmiany m o g ą zostać w p r o w a d z a n e także po publikacji. i t'. poprawa interpunkcji).386 Joomla!. Istnieją je< braki Joomla!. system umożliwia odczytanie archiwalnej kopii artykułu.

• Czego Joomla! nie potrafi 387 W systemie Joomla! brakuje kontroli wersji w j a k i e j k o l w i e k postaci. Popularnym źródłem materiałów na stronę są biblioteki istniejących plików zawierających treść artykułów. Jgraniczone funkcje zabezpieczeń i autoryzacji Model zabezpieczeń przyjęty w systemie Joomla! jest prymitywny w porównaniu z konkurencją. Komercyjne systemy CMS pozwalają na dynamiczny lub zautomatyzowany import dokumentów w wielu formatach. dlatego brak obsługi tego rozwiązania jest sporym przeoczeniem. Autor. elastyczność tego rozwiązania jest ograniczona. Uniemożliwia to implementację systemu przepływu pracy dla d o k u m e n t ó w . Microsoft Word. Operator. gdybyś chciał przyznać zarejestrowanym użytkownikom . TeX i BBCode. kiedy pisałem tę książkę. Oznacza to trudności w przypadku chęci przeniesienia danych ze strony Joomla! w inne miejsce. system nie będzie w stanie spełnić wymogów organizacji posiadających dużą bazę materiałów.Rozdział 15. Główny administrator). RTF itd. np. Równie znaczący jest brak funkcji eksportu materiałów. a także problemy podczas archiwizowania starych materiałów. mport. Po w p r o w a d z e n i u i zapisaniu zmian w artykule stara wersja jest nadpisywana i nie ma sposobu. PDF. jedyne rozszerzenie tego typu pozwalało na konwersję z formatu DocBook. które pozwala przywrócić ostatnią wersję dokumentu za p o m o c ą funkcji „ c o f n i j " . X S L T dla danych X M L . nie jest to j e d n a k skuteczny system kontroli wersji. które pozwalają określać grupy i role użytkowników. Redaktor.). zapisanych stron internetowych. Joomla! zawiera obsługę ośmiu grup użytkowników (Zastrzeżony. Administrator. Podobnie byłoby. Microsoft Outlook. W porównaniu z wieloma systemami bazodanowymi. J e d y n y m dostępnym rozwiązaniem jest rozszerzenie Versioning. Aplikacje C M S rodzaju Vignette Web Content Management pozwalają nawet na zautomatyzowany import plików graficznych. Microsoft Word. nie istnieje wbudowana w system Joomla! opcja eksportu artykułów lub innych danych. Chociaż możliwy jest bezpośredni dostęp do materiałów za pomocą narzędzi MySQL. jednak w czasie. jest to niemożliwe ze względu na szczegółowy charakter określonych uprawnień. aby j ą przywrócić. Zaplecze. konwersja i eksport plików Chociaż możliwości Joomla! związane z wprowadzaniem artykułów są imponujące. do których można przypisać użytkownika. Brakującą funkcjonalność można łatwo zaimplementować w postaci rozszerzenia. praktycznie nie istnieje funkcja importu. Przykładowo jeśli chcesz przyznać uprawnienia akceptowania i edycji artykułów w jednej kategorii asystentowi administratora. Wydawca. która pozwoliłaby wprowadzać artykuły zapisane w plikach zawierających tekst sformatowany (np. Nie istnieje także funkcja automatycznego importowania treści artykułów z zewnętrznych plików. Systemowi brakuje także opcji konwersji. Dopóki funkcje konwersji nie zostaną dodane do Joomla!. Microsoft Excel.

jeśli odpowiednie zmiany nie zostaną wprowadzone w kodzie aplikacji. Pamiętaj jednak. witryny eCommerce). Profesjonalne tworzenie stron WN 1W możliwość przeglądania wyłącznie dwóch sekcji. ponieważ pozwala na utworzenie dodatkowych grup z nałożonymi ograniczeniami w przeglądaniu materiałów. niektóre z nich opisano w rozdziale 11. Kompleksowe podejście do tego problemu jest systemowi Joomla! obce. System nie obsługuje także zaawansowanych metod uwierzytelniania. Zabezpieczenie tego typu warto stosować szczególnie w sytuacji. obsługa skórek Joomla! posiada d w a g ł ó w n e interfejsy użytkownika: część f r o n t o w ą i administracyjną. Windows NT Lan Manager (NTLM) lub Server Message Block (SMB). ponieważ domyślnie informacje. Oznacza to. choćby ze względów bezpieczeństwa. Równoważenie obciążania i replikacja danych Wiele aplikacji C M S zawiera funkcje równoważenia obciążenia powiązane z serwerem. przesyłane są w postaci zwykłego tekstu. s z y f r o w a n e połączenie.5. co pozwala na przechwycenie tych danych. Na szczęście. jest to także niemożliwe przy obecnej implementacji. Inne systemy C M S pozwalają na konstruowanie dodatkowych poziomów dopasowanych do uprawnień użytkownika. implementacja tego rozwiązania jest złym pomysłem. Dodatkowo system nie zawiera wbudowanej funkcjonalności pozwalającej na replikację danych. że opisane rozwiązania nie są w b u d o w a n e w Joomla!. Właściwa kontrola dostępu powinna być wbudowana w samą platformę. że w zależności od tego. dlatego nie jest możliwa skuteczna implementacja tej funkcji w postaci wtyczki. takie jak nazwa użytkownika i hasło. Ogranicza to bezpieczeństwo. wieloserwerowej instalacji Joomla! z równoważeniem obciążenia.388 Joomla!. jak w przypadku systemów ze zintegrowanym r ó w n o w a ż e n i e m obciążenia i replikacją danych. Joomla! zawiera wbudowaną obsługę SSL. w serwisie randkowym lub na stronie logowania. takich jak Kerberos. Istnieje kilka metod tworzenia rozproszonej. dlatego nie można liczyć na podobną pomoc techniczną. począwszy od wersji 1. Chociaż MySQL ma opcje replikacji danych. Network Information System (NIS). grupy lub danej roli. gdy przesyłane są poufne dane (np. Poziomy interfejsu użytkownika. ponieważ z założenia stosowane są w przypadku witryn o dużym natężeniu ruchu. które przechowują (i pozwalają na edycję) te same artykuły. Brakuje mu także sprawdzonej architektury obsługi serwerów klastrowych. Rozszerzenie JACLPlus umożliwia rozbudowanie kontroli dostępu w systemie Joomla!. Pozwala to na stronach logowania lub w aplikacjach e C o m m e r c e otworzyć między przeglądarką a serwerem W W W bezpieczne. kto .

M a ł e z m i a n y w p r o w a d z a n e w m e n u w o p a r c i u o grupę użytkownika nie m o g ą się równać z poziomami interfejsu użytkownika. d o k u m e n t ó w i konferencji). m a j ą możliwość wspólnej modyfikacji dostępnych materiałów. Przykładowo istnieje możliwość rezerwacji p o k o j u k o n f e r e n c y j n e g o lub w i r t u a l n e g o pokoju na czacie do cotygodniowych spotkań.. a wiadomości m o g ą zawierać odwołania do zasobów projektu (np. która u m o ż l i w i a s k u t e c z n ą k o m u n i k a c j ę . za pośrednictwem sieci. j e s t f o r u m d y s k u s y j n e . wyświetlany jest inny zestaw edytorów W Y S I W Y G . Publikacja nie oznacza jednak ogólnego. co pozwala na w s p ó l n ą (i bezkolizyjną) m o d y f i k a c j ę d o k u m e n t ó w . Namiastka personalizacji (głównie związana z profilem użytkownika) możliwa jest dzięki rozszerzeniu Community Builder. tylko na użytek w e w n ę t r z n y grupy p r a c u j ą c e j nad d a n y m z a d a n i e m .: • Publikacja w sieci — Jedną z najważniejszych opcji groupware jest publikowanie d o k u m e n t ó w i i n f o r m a c j i przez c z ł o n k ó w g r u p y lub d a n e g o projektu. w postaci czatu. włączając w to śledzenie projektów.in. N a j p o p u l a r n i e j s z y m p r z y k ł a d e m aplikacji z tej kategorii j e s t prawdopodobnie Lotus Notes. dodanych dokumentach. Dodatkowo wiele konkurencyjnych aplikacji typu C M S pozwala użytkownikom dopasować wygląd interfejsu za p o m o c ą j e d n e j z dostępnych skórek. dostępnego w innych systemach. że u ż y t k o w n i c y s p ę d z a j ą w systemie w i ę k s z o ś ć czasu pracy. p o n i e w a ż sporo r o z w i ą z a ń g r o u p w a r e s k o n s t r u o w a n y c h j e s t w taki s p o s ó b . Możliwe jest także skuteczne zarządzanie czasem. który służy do organizacji. • Czego Joomla! nie potrafi 389 zalogowany jest w systemie. wspólnej pracy grupy u ż y t k o w n i k ó w . W Joomla! wszyscy u ż y t k o w n i c y oglądają ten sam szablon. Forum — Komunikacja to niezbędny i kluczowy element współpracy grupowej. Kalendarz i zarządzanie czasem — Kalendarze wykorzystywane są do koordynacji zasobów zarówno fizycznych. Email i komunikatory internetowe — System wysyłania e-maili służy w aplikacjach groupware do powiadamiania u ż y t k o w n i k ó w o n o w y c h publikacjach. w s p ó l n e g o n a r z ę d z i a d o s z k i c o w a n i a lub innej a p l i k a c j i . P l a t f o r m ą . a także inne f u n k c j e przydatne przy zarządzaniu. które umożliwi dostosowywanie wyglądu strony do w y m a g a ń użytkowników. zarządzanie zasobami i ludźmi.Rozdział 15. Standardowa funkcjonalność groupware Groupware to oprogramowanie. wyznaczanie kamieni milowych i ścieżek krytycznych. publicznego dostępu do materiałów. wydarzeniach itd. Użytkownicy w s p ó ł p r a c u j ą w czasie rzeczywistym. Rozszerzenie to wymaga jednak dalszego dopasowania. F u n k c j a ta p o w i ą z a n a jest często z systemem kontroli wersji i możliwością wprowadzania komentarzy. arkuszy kalkulacyjnych. Konferencje — Konferencja może być przeprowadzana w formie wideo. audio. j a k i wirtualnych. Popularne f u n k c j e aplikacji groupware to m. formularzy i innych o g ó l n y c h e l e m e n t ó w i n t e r f e j s u . T e m a t y p o j a w i a j ą c e się na nim s ą b e z p o ś r e d n i o p o w i ą z a n e z p r o j e k t a m i . System zarządzania projektami — Niektóre aplikacje z a w i e r a j ą k o m p l e t n ą funkcjonalność zarządzania projektami. • • • • • .

Funkcjonalność portalu Strony oparte na rozwiązaniach C M S to najczęściej elektroniczna wersja gazety lub periodyku.2) m o g ą śledzić kursy akcji. m o ż e zostać opublikowany lub udostępniony w sieci zewnętrznej. prognozy pogody itd. n a j n o w s z y c h w i a d o m o ś c i . sprawdzać pocztę. Pojedyncze logowanie w systemie wystarcza do skorzystania z dostępnych usług. których brak w Joomla!. jak i finansowe) z n a j d u j ą się w e wspólnej bazie. ogłoszeń. Odwiedzający portale takie jak Wp. • • N i e k t ó r e s y s t e m y C M S w y b i e r a n e są g ł ó w n i e ze w z g l ę d u na f u n k c j o n a l n o ś ć groupware.390 Joomla!. Oto lista najczęstszych funkcji zintegrowanych w ramach portalu wraz z sugestiami. rozwiązań e C o m m e r c e (aukcji. W ramach tego systemu poszczególni użytkownicy sygnalizują o ukończeniu pewnych etapów. własnej strony internetowej.). przeglądać anonse towarzyskie itp.). p o n i e w a ż systemy g r o u p w a r e w y m a g a j ą b a r d z o z a a w a n s o w a n y c h opcji bezpieczeństwa.). zarządzania i dzielenia różnych form informacji. komunikacji wewnątrz systemu (np. Profesjonalne tworzenie stron WN 1W • System przepływu pracy — Systemy tego typu umożliwiają realizację projektów w przedsiębiorstwach opartych na wiedzy. Poszczególne funkcje aplikacji groupware dostępne są dla Joomla! w postaci indywidualnych rozszerzeń. System zarządzania wiedzą — Stosowane rozwiązanie służy do zbierania. jednak brak integracji tych narzędzi utrudnia stosowanie Joomla! jako narzędzia pracy grupowej. w których pracowników dzielą duże odległości) o d n o t o w u j ą znaczący wzrost produktywności dzięki zastosowaniu rozwiązań groupware. słuchać internetowych audycji radiowych. Z a z w y c z a j u ż y t k o w n i c y k o r z y s t a j ą c y z d a n e g o portalu s p ę d z a j ą na nim większość czasu poświęcanego na przeglądanie intemetu. a dokumenty lub informacje związane z projektem są automatycznie p r z e k a z y w a n e do ludzi odpowiedzialnych za kolejne etapy. a także śledzenia zmian wprowadzanych w materiałach umieszczonych w systemie. gdzie pojedyncza strona służy za p u n k t d o s t ę p u d o r ó ż n o r o d n y c h i n f o r m a c j i ( k u r s ó w akcji. galerii zdjęć itd. katalogów firm itd. Na dodatek wykorzystanie Joomla! w tej roli nie jest dobrym rozwiązaniem. poczty elektronicznej itd. który ukończono. za pomocą f o r u m .). aplikacji internetowych (poczty. Niektóre organizacje (szczególnie te. Aplikacje tego typu m o ż n a zastosować także w roli portalu. map. Koordynacja współpracy z systemami zewnętrznymi — Projekt. arkuszy kalkulacyjnych z zarysem budżetu lub prezentacji). p o n i e w a ż informacje o użytkowniku (zarówno dane osobiste. jak można uzupełnić Joomla! o brakujące możliwości: . organizowania.pl (zobacz rysunek 15. W tym wypadku oprogramowanie służy do udostępniania dokumentów (np. poza organizacją lub systemem. Przykładowo oprogramowanie groupware dla biur architektonicznych m o ż e automatycznie przesyłać ukończone plany konstrukcyjne do odpowiedniego wykonawcy.

G o o g l e m a p s .pl ma viele usług. że niejedna gwiazda miała okazię zaświecić mocniej. popularny Jobline. Osobista strona internetowa — Opcja bardzo popularna na stronach typu M y S p a c e i grono. Błogi Warszawa -^mJf DoCelu i WPmobi Aukcje wybierz miasto -» -mm* WPłv więcej as ja Najedź kursorem i rzuć kostką Ile wiesz o 'Tańcu z gwiazdami"? "Taniec z gwiazdami" sprawił.Rozdział 15.com/services). którymi można zarządzać w środowisku Joomla!.2.google. • Czego Joomla! nie potrafi iysunek 15. jednak większość witryn tego typu korzysta z rozwiązań oferowanych przez inne firmy. Mapy — Popularną f u n k c j ą wielu portali jest dostęp do elektronicznych m a p i planowania podróży. Izrael rozpoczął i n w a z » na Stretę Gazy 1 . np. • których można .com/apis/maps) lub zastosowaniu jednego z rozszerzeń integrujących Mapy Google w systemie Joomla! (w katalogu rozszerzeń z n a j d z i e s z np. M i m o istnienia wielu rozszerzeń. K o m p o n e n t 0 n a z w i e R a v e n s w o o d User H o m e P a g e s p o z w a l a u ż y t k o w n i k o m w i t r y n y na tworzenie własnych „ministron".korzystać bez opuszczania . ^ "Zginęły dziesiątki terrorystów" ofensywa iądowa rozpoczęta • Reakcje świata na ofensywę lądową Izraela •Rada Bezpieczeństwa przeanalizuje sytuację yi * Gazprom zaapelował do Ukrainy o powrót d o n • Silne trzęsienie ziemi w Indonezji spowodowało panikę • Wincenty Różański nie żyje • Funkcja przeszukiwania sieci — Najpopularniejsze portale. p o z w a l a j ą c e j na p r z e c h o w y w a n i e na stronie poczty i innych plików.UK-t Flrmv [ S ^'brazki Słowniki Ogłoszenia DoCelu Mi'-'* WIRTUALNAPOLSKA Reklama w Szukaj Katalog stron VWWV więcej» ¿yi PoaU Twoja Poczta Twoja Pogoda Prosto DoCelu Csal Ts. ile o nim wiesz* Zobacz t a k i e : • Czyj to dekolt? Następne. Opcja tego typu dostępna jest także dla systemu J o o m l a ! — za p o ś r e d n i c t w e m usługi G o o g l e C u s t o m Search E n g i n e (http://bizsolutions. c z y jesteś fanem show? Sprawdź. m o ż l i w o ś ć stworzenia w ł a s n e j strony w r a m a c h portalu.net. Google i M S N . np. Ogłoszenia i anonse towarzyskie — W katalogu Joomla! znajdziesz wiele rozszerzeń do zarządzania ogłoszeniami. m a j ą własne wyszukiwarki. zintegrowaną z w y g l ą d e m T w o j e j strony. G e o Visitors i Google Maps API).google. np. popularny A d s M a n a g e r . Z a p o m o c ą narzędzia firmy G o o g l e możesz wstawić funkcję przeszukiwania własnej strony i internetu. Konta Email — W i ę k s z o ś ć portali udostępnia u s ł u g ę poczty elektronicznej. • • • • • . Oferty pracy — W katalogu Joomla! znajdziesz wiele rozszerzeń do przeglądania 1 dodawania ofert pracy. 5ortal Wp. Własne rozwiązanie tego typu na stronie Joomla! m o ż l i w e jest dzięki połączeniu z API M a p Google (www. typu Prywatne wiadomości ( P M S — Private Message System). trony 391 lin. a nawet prymitywnej implementacji tej funkcji w domyślnej instalacji Joomla! praca w roli serwera poczty wykracza poza możliwości Joomla!.

systemy rezerwacji lotów. Prognoza pogody — Zarejestrowani użytkownicy portalu m o g ą często skorzystać z prostej p r o g n o z y p o g o d y d o p a s o w a n e j do m i e j s c a zamieszkania. Usługi tego typu ogromnie o b c i ą ż a j ą zasoby serwera i łącza internetowe. W i t r y n y tego typu stają się coraz częściej z a u f a n y m źródłem informacji podczas planowania podróży. Gty — Portale zawierają z reguły możliwość brania udziału w wieloosobowych grach internetowych pewnego typu. W J o o m l a ! b r a k u j e integracji między poszczególnymi działami.392 Joomla!. M i m o to m o ż e s z skorzystać z rozszerzania AllVideos. często różnica wynosi t y l k o 15 m i n u t . kluczowej dla uruchomienia i prowadzenia portalu. można wzbogacić Joomla! o większość funkcji portalowych. Innym rozwiązaniem jest zastosowanie jednego z wielu k o m p o n e n t ó w J o o m l a ! d o konstrukcji w ł a s n e g o katalogu żółtych stron (np. Informacje sportowe — Wyświetlanie wyników sportowych i aktualnych wydarzeń j e s t b a r d z o p o p u l a r n ą f u n k c j ą w i e l u portali. ponieważ oferują przewodniki. jeśli stanowią one grupę docelową T w o j e j strony. Informacje finansowe — Ceny akcji i inne informacje finansowe to podstawa portali dostarczających informacje w czasie bliskim rzeczywistemu. c o m skłonił właścicieli portali do udostępnienia f u n k c j i w s t a w i a n i a w ł a s n e j muzyki. portale z m i e r z a j ą w k i e r u n k u z a j ę c i a części rynku i n t e r n e t o w e j turystyki. Dla J o o m l a ! m o ż n a znaleźć wiele rozszerzeń zamieszczających wyniki sportowe. Rozszerzenie Joomledia pozwala na integrację systemu Joomla! z p r o g r a m e m partnerskim Expédia.whitepages.com). które generują zysk. R o z s z e r z e n i e P l a y g a m e s j e s t k o m p o n e n t e m J o o m l a ! ł ą c z ą c y m się z n i e m i e c k i m serwisem Play. Profesjonalne tworzenie stron WN 1W • Informacje turystyczne — M i m o istnienia wyspecjalizowanych stron. skuteczne zarządzanie portalem w y m a g a zintegrowanego i przemyślanego panelu administracyjnego.de. takich jak http://www.pl/. Wygląd strony powinien być spójny. W k a t a l o g u r o z s z e r z e ń J o o m l a ! m o ż n a z n a l e ź ć m o d u ł y . pakiety wakacyjnych i zniżki w wypożyczalniach samochodów. Wieloosobowe gry p o z b a w i o n e p r z e m o c y są także n i e z w y k l e p o p u l a r n e w grupie kobiet w w i e k u 18-39 lat. filmów i innych plików.wakacje. dlatego nie są zalecane na stronach Joomla!. Prezentacja ta m o ż l i w a j e s t w J o o m l a ! dzięki r o z s z e r z e n i o m J V T e m p o Easy W e a t h e r . Muzyka i inne media — O g r o m n y rozrost Y o u T u b e . Katalogi (białe i żółte strony) — Portale z w i e r a j ą często katalogi z informacjami k o n t a k t o w y m i w postaci k a t a l o g ó w białych i żółtych stron. które uzupełniają system o f u n k c j e tego typu. p o z w a l a j ą c y m na d a r m o w y dostęp do w i e l o o s o b o w y c h gier znanych z kasyna. dzięki rozszerzeniom. • • • • • • Chociaż. . na co warto zwrócić uwagę. Sigsiu Online Business Index lub JAddresses). które pozwala na zintegrowane zarządzanie materiałami audio i wideo udostępnianymi za p o m o c ą streamingu. specjalne wycieczek. W tym czasie m o g ą być wyświetlane bannery. a zmiana prezentacji poszczególnych działów nie p o w i n n a nastręczać trudności.com 0https://affiliates. Gry na stronach W W W nie z u ż y w a j ą wielu zasobów serwera. Białe strony m o ż n a w s t a w i ć na stronie za p o ś r e d n i c t w e m p r o g r a m u partnerskiego WhitePages. a s k ł a n i a j ą u ż y t k o w n i k ó w do spędzania wielu godzin na stronie. Weathermaster i Z Weather.

Praktyczny brak opcji importu. W tym rozdziale przedstawiono kilka braków systemu w następujących dziedzinach: • • • Brak systemu kontroli wersji i zarządzania przepływem pracy. W rozdziale 16. który umożliwia skuteczną współpracę przy średnich i dużych dokumentach. który sprawia. Brak zintegrowanej replikacji danych (możliwa jest odpowiednia konfiguracja MySQL. ponieważ pozwala zapoznać się z różnymi sposobami realizacji i doboru rozszerzeń. jak i administratorów.Rozdział 15. • • • • Dotychczas miałeś okazję zapoznać się prawie ze wszystkimi funkcjami Joomla!. Odwiedzenie tych stron może mieć dodatkowy walor edukacyjny. Ograniczone funkcje uwierzytelniania i niedostateczne zabezpieczenia. Funkcjonalność r ó w n o w a ż e n i a obciążenia i replikacji dostępna wyłącznie na poziomie serwera W W W (bez udziału Joomla!). eksportu i masowego przetwarzania dokumentów. które mimo możliwości rozbudowania za p o m o c ą rozszerzeń nie d a j ą wysokiego poziomu bezpieczeństwa. • Czego Joomla! nie potrafi 393 'odsumowanie Fenomen aplikacji Joomla! nie sprawia. że Joomla! jest nieodpowiednim wyborem dla witryn działających na wieloserwerowych klastrach. jego dopasowania do potrzeb użytkowników. że jest ona idealnym rozwiązaniem wszystkich potrzeb. niezależnie od aplikacji Joomla!). przedstawiono przegląd popularnych stron W W W działających dzięki temu systemowi. co utrudnia zarządzanie obciążeniem. Niewielka liczba możliwości portalu — takich jak prywatne strony W W W — które są dostępne w komercyjnych produktach. przez co internetowa współpraca jest trudna i nieatrakcyjna zarówno dla użytkowników. Znaczne ograniczenia pod względem możliwości interfejsu użytkownika. Minimalna integracja funkcji groupware. .

394 Joomla!. Profesjonalne tworzenie stron WN 1W .

16 Rzut okiem na popularne strony oparte na Joomla! Przykłady skutecznego z a s t o s o w a n i a systemu zarządzania treścią J o o m l a ! m o ż n a znaleźć w wielu różnych dziedzinach — od zarządzania nieruchomościami. a także wiele innych. po telewizję dla dzieci. listę f u n k c j i s p o ł e c z n o ś c i o w y c h . Z e względu na z r ó ż n i c o w a n i e społeczności J o o m l a ! m o ż e s z mieć kłopot z o d n a l e z i e n i e m stron p o d o b n y c h do T w o j e j . • • . dlatego „ w i t r y n y w i d m a " zostały w y k l u c z o n e . n a z w ę s z a b l o n u . strona nie powinna wyglądać nieatrakcyjnie. że wyszczególnione witryny b ę d ą nadal dostępne w przyszłości. które wzbogacają funkcjonalność strony — Wizyta na stronach tego typu pozwala przyjrzeć się realnemu zastosowaniu wielu rozszerzeń. Takie ograniczenie zwiększa szanse. Zastosowanie jednego lub więcej rozszerzeń Joomla!. które p o m o g ł y b y Ci p o p r z e z p o r ó w n a n i e udoskonalić s w o j ą witrynę.c o m m e r c e . Każda strona przedstawiona jest w kontekście zastosowania technologii Joomla! — znajdziesz tu listę rozszerzeń zainstalowanych na stronie. Przedstawione strony spełniają poniższe kryteria: • Znacząca pozycja w danej dziedzinie — Strona m u s i z a w i e r a ć p r z y z w o i t ą ilość materiałów. Profesjonalny wygląd strony i przejrzysta adaptacja interfejsu Joomla! — Biorąc pod uwagę powszechną dostępność darmowych i komercyjnych szablonów Joomla!. e . informacje o dostawcy usług internetowych. G ł ó w n ą m i a r ą dla t e g o k r y t e r i u m był PageRank w Google na m i n i m a l n y m poziomie 5. W t y m r o z d z i a l e w y s z c z e g ó l n i o n o w i e l e u d a n y c h . Zapoznanie się z nimi może pomóc Ci odnaleźć nowe pomysły na zmianę wyglądu i funkcjonalności T w o j e j witryny. Większość wymienionych stron dostępna jest w internecie co najmniej od dwóch lat. który o b s ł u g u j e stronę. które są p r z y n a j m n i e j co j a k i ś czas uaktualniane. p o p u l a r n y c h stron o p a r t y c h na aplikacji Joomla!.

w z b o g a c a j ą społeczność Joomla!.. Wraz z r o z s z e r z e n i e m z a s t o s o w a n i a Joomla! dobór stron stał się prawdziwym wyzwaniem.cat). J a n 6 ( 2 : 0 0 ) S C H 107 H u m a y r a Ali. dlatego opisanie stron w innych językach nie byłoby na zadowalającym poziomie. które oparto na technologii Joomla!.com. A multinucleate cell resulting f r o m fusion of infected endothelial cells. Lotest N e w s Kristina Sinsimer Receives Kirschstein A w a r d Postdoc B e e s o n Receives Kirschstein A w a r d m C o w l e s A w a r d e d Kirschstein Funding . Strona wydziału zawiera informacje dla studentów.396 Joomla!.joomlacatalog. Wydział Biologii Molekularnej Princeton Strona internetowa Wydziału Biologii Molekularnej Uniwersytetu Princeton (zobacz rysunek 16. Nie znaczy to. wykładowców i osób zainteresowanych biologią molekularną MOLECULAR About Faculty & Research Postdocs BIOLOGY I V£ Graduate Undergraduate Resources ri Molecular Biology • search Associated Programs Calendar U p c o m i n g Events lue. Profesjonalne tworzenie stron WN 1W P o w y ż s z e w a r u n k i p o z w o l i ł y o d r z u c i ć strony. które opisano w tym rozdziale. która zawiera wiele interesujących pozycji. oprócz wzorowego spełniania wymogów CMS. którzy p r o g r a m u j ą c rozszerzenia. a także popularność wśród różnych webmasterów. dlatego warto odwiedzić stronę www. które oprócz o l ś n i e w a j ą c e g o w y g l ą d u nie o f e r u j ą o d w i e d z a j ą c y m zbyt wiele. Shenk lab. Te. demonstrują wszechstronność systemu. jest promowanie oprogramowania open source na uniwersytetach. • My c h o i c e t o p u r s u e graduate work after y e a r s of w o r k i n g a s a 1 laboratory technician I w a s a difficult o n e . a także strony. Powodem takiego stanu rzeczy. W przeglądzie umieszczono wyłącznie strony w języku angielskim. że brakuje atrakcyjnych i popularnych witryn korzystających z Joomla! w innych językach (np. Studenci są j e d n ą z najaktywniejszych grup programistów.1) zawiera informacje w y k r a c z a j ą c e poza prosty zbiór pytań i odpowiedzi. k t ó r e m i m o s w o j e j p o p u l a r n o ś c i zostały k i e p s k o z a p r o j e k t o w a n e . umieszczane są tu także artykuły na tematy związane z biologią molekularną oraz informacje o przełomach w dziedzinie genetyki. ¡. PhD D e f e n s e Investigating Proteins that Stimulate Transcription from the Adenovirus Major Late Promoter G r a d u a t e Student Perspectives m" J**(| § if Jphfinjf «» <• -makm. T w o viral proteins have been detected by immunofluorescence (orange and m a g e n t a ) . ponieważ autor książki włada wyłącznie dwoma języka (tym drugim jedynie w podstawowymi zakresie)..1.ieam. Strony akademickie Istnieje spora liczba stron akademickich. Jorg Schroer. www. Rysunek 16.

Postdocs. home of t h e Museum of British Pewter. Strona z a j m u j e się także p r o m o c j ą dzieł S h a k e s p e a r e ' a na świecie. musisz koniecznie odwiedzić tę stronę.edu/ — 2004 397 — Uniwersytet Princeton Page Rank Google — 6/10 Programy partnerskie — Brak — com_expose.Rozdział 16. also care for H a r v a r d House. r e c o r d s of h i s t o r i c i n t e r e s t . google-analytics Zastosowane rozszerzenia Kanały RSS — Brak Szablon — W ł a s n y Adresy przyjazne Nawigacja robotom internetowym — Nie okruszkowa — Nie Główne sekcje — Faculty & Research. której celem jest opieka nad pięcioma domami Shakespeare'a (są jej własnością).2. his life. Jeśli z a m i e r z a s z u d a ć się do Stratford-upon-Avon. f o r w h i c h w e c a r e f o r t h e b e n e f i t of t h e n a t i o n . w o r k s a n d t i m e s IHIfflTOTfH F o r m e d i n 1847 w i t h t h e p u r c h a s e of S h a k e s p e a r e ' s the Trust has since acquired four other houses Birthplace. • Rzut okiem na popularne strony oparte na Joomla! • • • • • • • • • • • URL — Uruchomiona Właściciel http://www. F r o m t h i s p a g e y o u can: . Calendar Minimalna E-commerce szerokość — Nie — Nie — 800 • • • Funkcje społecznościowe me Shakespeare Birthplace Trust Strona T h e Shakespeare Birthplace Trust ( z o b a c z rysunek 16. Poll. Undergraduate. which < • t o p r o m o t e in t h e e v e r y p a r t of t h e w o r l d t h e a p p r e c i a t i o n a n d s t u d y of t h e p l a y s a n d of W i l l i a m S h a k e s p e a r e a n d g e n e r a l a d v a n c e m e n t s of S h a k e s p e a r i a n k n o w l e d g e • t o m a i n t a i n a n d p r e s e r v e t h e S h a k e s p e a r e B i r t h p l a c e p r o p e r t i e s f o r t h e b e n e f i t of t h e • t o p r o v i d e a n d m a i n t a i n f o r t h e b e n e f i t of t h e n a t i o n a m u s e u m a n d l i b r a r y of b o o k s . Shakespeare Birthplace Trust Mit.2) r e p r e z e n t u j e o r g a n i z a c j ę charytatywną. Resources.ot i n i o r i T h e Shakespeare Birthplace T r u s t world is nsidered the most significant Shakespeare ch W e have three core objectives. p i c t u r e s . p h o t o g r a p h s a n d o b j e c t s of a n t i q u i t y w i t h partic e x c l u s i v e r e f e r e n c e t o W i l l i a m S h a k e s p e a r e .princeton. Visit ShaKespeare Ho Viii>. relating to We S h a k e s p e a r e . Rysunek 16. Associated Programs. Graduate.nwlbio.

Każde wydanie publikacji ma przywilej bycia umieszczanym w katalogach bibliotek narodowych kilku krajów. M a m b o m a p rozszerzenia Brak — Własny robotom internetowym — Tak Adresy przyjazne Nawigacja okruszkowa — Tak Główne sekcje — W i l l i a m S h a k e s p e a r e . S h o p for G i f t s and B o o k s . Museums.jiia. JIIA News. Supporting U s Minimalna E-commerce szerokość—1024 — Tak — Nie • • • Funkcje społecznościowe Journal of Intercultural and Interdisciplinary Archaeology Jest to strona d o m o w a (zobacz rysunek 16.3) periodyku archeologicznego Journal of Intercultural and Interdisciplinary Archaeology (JIIA). Activities a n d Events. RSS. JIIA Versione 02. Education. PayPal rozszerzenia Kanały RSS — Tak Szablon — Rockettheme.uk/ — 2004 — Shakespeare Birthplace Trust educational charity Google — 6/10 partnerskie — Brak — Virtuemart. Events & Conferences. Profesjonalne tworzenie stron WN 1W • • • • • • • • • • • URL — Uruchomiona Właściciel PageRank Programy Zastosowane Kanały PSS Szablon http://www.398 Joomla!. JIIA Versione 01. it Uruchomiona Właściciel PageRank Programy Zastosowane — 2003 — Journal of Intercultural and Interdisciplinary Archaeology Google — 5/10 partnerskie — Google AdSense — Kontakt. • • • • • • • • • • • URL — www. JIIA Indici. JIIA Honour Committee.com Versatility II robotom internetowym — Nie Adresy przyjazne Nawigacja okruszkowa — Tak Główne sekcje — JIIA Repositories. JIIA Scientific Committee. JIIA Links . Library & Archive.shakespeare.org.

Graphic User Interactive Learning and Development (GUILD) G U I L D is a training ba. • Rzut okiem na popularne strony oparte na Joomla! Rysunek 16. Our motto is. multimedia organization dedicated to career development of students and industry professionals. « EUR Donate N o w . Statistics Members: ? News: 33 W e b Links: 44 Visitors: 207981 Minimalna E-commerce szerokość — Tak — 640 Funkcje spolecznościowe — Nie Graphic User Interactive Learning and Development (GUILD) Strona Graphic User Interactive Learning and Development (GUILD) (zobacz rysunek 16. latest additions.4. Training T o d a y with the Technology of Tomorrow. Rysunek 16. before and after the Roman Conquest (3rd century PC-3rd century AD).it Open Archaeology Open Knowledge Foundation JIIA E p r i n t s R e p o s i t o r y r l a t e s t a d d i t i o n s JIIA News Wi it?«» by A d m i t » » « stoi JIIA Eprints Repository. • JIIA D o n o r s and Friends ULRYCH University learn English On-line RocketTheme Template Club iMacoanici IOSA.3. Acta Terrae Septemcastrensis Joui iij l (ISSN 1583-1817).4) poświęcona jest kursom z zakresu multimediów dla studentów i osób pracujących. Proceedings of the 8th International Colloquium of Funerary Archaeology. VI q ) 2007. Journal of Intercultural and Interdisciplinary Archaeology Top Menu Home Contact Us About JIIA JIIA Latest N e w s P.Rozdział 16. . Funerary Practices In Europe.ealta virtuale per i Beni Culturali What is Open Knowledge? JIIA Eprints Best Practices JIIA Eprints Policies JIIA Eprints OAI Archive Popular Open Access Journals Open Access Repositories JIIA Eprints O A I Archive Open Access Policies JIIA Eprints Policies 399 Donate to JIIA! • JIIA Home » JIIA Repositories » JIIA Indici > JIIA Scientific Committee ' JIIA Honour Committee ' JIIA Versions 01 »• JIIA Versione 02 » JIIA News * JIIA Links Other M e n u » JIIA Newsflashes Er it et Amount.

. zawiera kalendarz wydarzeń. G a m i n g N e w s .H.5). Contact.400 Joomla!. Ministerstwo Edukacji na Wyspach Dziewiczych » EDUCATION AND UNIONS MEET T O W A R D DEVELOPING SCHEDULE FOR MAKE-UP DAYS n a New D o c u m e n t s * Adult Ed U i ab VIDE Information fi. In M y Opinion. >MAS IN D I ' .E N. A Ki!-. Interviews.d. a także artykuły na temat wszystkich zagadnień związanych z e d u k a c j ą (zobacz rysunek 16. Classes.lt®rnjte_Ą$£essm_( «P» L. Jobs. C o m m u n i t y N e w s .q Education officials and representatives of both the administrators and teachers unions met on Thursday to discuss the development of a readjusted school calendar and m a k e up d a y s which will facilitate the days missed following Hurricane O m a r and the recent p o w e r outage on St. A R T I S T .r.T.5. RSS.OF. AYP VIDE Report Cards 2007-2003) REVIVED RI5TMAS ' i ? A. Organizations. P VJDE Report Cards 2007-2008) §. wyniki badań. Artist Profiles.CONDITIONS AND THREAT OF TROPICAL STORM (VIDE Territorial Report Card ' J | 102708 CAREER AND TEC I EDUCATION PUBLIC FORUM IST. FvRij.2007-2008 SIX District. Zastosowane rozszerzenia Banners..200. Profesjonalne tworzenie stron WN 1W • U • • URL — Właściciel PageRank http://mguiIdonline.com — Graphic User Interactive Learning and Development Google — 3/10 — Ajax Shoutbox. com extcalendar.3 SJTJ District A'. T h o m a s . Technology N e w s Minimalna E-commerce Funkcje szerokość — Nie — Nie — 800 • • • społecznościowe Ministerstwo Edukacji na Wyspach Dziewiczych Strona Ministerstwa Edukacji na Wyspach Dziewiczych umożliwia komunikację rodziców z nauczycielami za pośrednictwem forum. T e a c h e r s G r o u p .2007•• . Q AEFLA Funding Announcement ? . Poll Kanały Szablon • • • • • RSS — T a k (RSS i A t o m ) — ddj005 robotom internetowym — Tak Adresy przyjazne Nawigacja okruszkowa — Nie Główne sekcje — Student Profiles.AVT or DFT LP I op AT IN WEATHER. Rysunek 16.

com_acajoom. hsq_sss_ssscom table. • • • • • URL — Uruchomiona Właściciel PageRank Programy www. Offices. Skutkiem niewielkich w y m a g a ń stawianych przed webmasterem było pojawienie się wielu stron poświęconych zdrowiu i rodzinie opartych na Joomla!. • Rzut okiem na popularne strony oparte na Joomla! • • • • • • URL— www.org — 1986 — SeniorNet Google — 6/10 partnerskie — Brak .doe. Schools. skoncentrowane głównie na przysposabianiu obsługi komputera. JCalPro.Rozdział 16. że jest to doskonały wybór dla ludzi. Resources.6) reprezentuje organizację zrzeszającą wolontariuszy promujących centra nauczania dla ludzi starszych. Contact Us. Zastosowane Fireboard rozszerzenia • • • • • Kanały RSS — Tak (RSS i A t o m ) Szablon — W ł a s n y Adresy przyjazne Nawigacja robotom internetowym — Tak okruszkowa — Nie Główne sekcje — Webmail. SeniorNet Witryna SeniorNet (zobacz rysunek 16.seniornet. Forum Minimalna E-commerce szerokość — Nie — Tak — 800 • • • Funkcje społecznościowe Strony poświęcone zdrowiu i rodzinie Prostota instalacji i konfiguracji systemu Joomla! sprawia.vi — 2004 401 Uruchomiona Właściciel PageRank Programy — Graphie User Interactive Learning and Development Google — 6/10 partnerskie — Brak — RSS. D o c u m e n t s . którzy nie d y s p o n u j ą d u ż ą w i e d z ą techniczną.

Partners. e n o m .7) to k a n a d y j s k i portal o f e r u j ą c y c h gry. Help Minimalna E-commerce Funkcje szerokość — N ie — Nie — 1024 • • • społecznościowe KidsCHANNEL K i d s C H A N N E L ( z o b a c z r y s u n e k 16.402 Joomla!. Enrichment. materiały edukacyjne. c o m ) Kanały RSS—Tak Szablon — Własny robotom internetowym — Nie (RSS i Atom) Adresy przyjazne Nawigacja okruszkowa — Tak Główne sekcje — Membership.. ( w w w . a także katalog ogłoszeń dla dzieci i ich rodziców.6. E-Learning. About Us. artykuły.. Inc. Profesjonalne tworzenie stron WN 1W Rysunek 16. IBM Reveals Five innovations That Will Change Our Lives in the Next Five Years _RS • • m • • • • Zastosowane rozszerzenia — RSS. 2nd January 2 0 09 6:40:23am Text Reader Only search .Harri OriuP« ^ ^ W t t f wisdom 3 a n < ) e n a t > 6 t h 6 m <0 S h a r ' ( C h e " k Friday. PPI 4 Getting Started Enrichment Centers 8»«ks & CmRhi a j Health Home Future Technology From One of Our Sponsors. Learning Centers. Contact ISP — e N o m . • U • • URL —http://kidschannel.. SeniorNet — centrum nauczania nowych technologii dla ludzi starszych Senior Net i Ś Sci $U| High-Speed N I e n w r M f ^ i CD-RW Drives J H ( " H 1 .ca — 2005 Uruchomiona Właściciel PageRank — Kids Channel Google — 4/10 .

: • t-iri. Futura Rewards. featured listings Tips e t c \ CAMPS M m resource guide iJS Categories Recently Updated An rut(tvtpw iMtr» fmwin M.7.M& "M Main M e n u ibsenŁ* to our newsletter f \ . historie i opowiadania czytane dzieciom na dobranoc (zobacz rysunek 16. Unfortunately. . • • • • • • • • • • rozszerzenia — m o d u \ f i s h e y e _ m e n u . essential fats.8). <idsCHANNEL l a E i 403 f! resource guit^ registerCre3te fecount Usemame Password Remember rne tost Pmk-mriS? . Helw» t . choosing healthy foods and interpreting wordy food labels often feels overwhelming uiith hart to interpret health claims and Yoga 4 Kids • Programy partnerskie Link E x c h a n g e Zastosowane — Google AdSense. • Rzut okiem na popularne strony oparte na Joomla! lysunek 16. która pozwala umieszczać i pobierać. Rejestracja na stronie umożliwia dostęp do f o r u m poświęconego historiom i opowiadaniom dla dzieci.i Login j fvivaneed Search 1 \ . - . RSS ISP — My Real EBiz Kanały RSS — Tak (RSS i Atom) Szablon — Własny Adresy przyjazne Nawigacja robotom internetowym — Tak okruszkowa — Nie Główne sekcje — Just for Kids. Feedpark..Rozdział 16. commtree. 1 - •>• ¡»„. More Just for Kids Minimalna E-commerce szerokość — Nie — Resource Guide — 800 Funkcje społecznościowe i Story for Bedtime Strona A Story for Bedtime (Opowiadanie na dobranoc) to witryna społecznościowa. zapisane w formacie M P 3 .Ciliar Aa fntetview «wtłfc I>imj I i« liimle* w i „ .

Top 10 Chait Latest C o n t i i h u t i o n s Melissa reads Being Lotte at the Park Melissa reads Being Lotte at the Beach Melissa reads Being Lotte at Home Chief Story Teller Launch of the Kiddiecast' Today marked the launch of the Kiddiecast. Simple Board. Discussion Forum. informacje prawne. If you register and log on (in the box to the top right) then you will be able to post in the discussion forums. z a w i e r a f o r u m . We listen to them (to check quality and so on) and add a short introduction to the front then publish your recording to the site for others to listen to. uploading and check back soon to see what new stories are being added If you want to know more about how to make recordings or burn CDs on your computer then check the Frequently Asked Questions section. .9). T o p 10 Chart Minimalna E-commerce Funkcje szerokość — Nie — Tak — 800 społecznościowe Second Wives Club S t r o n a p o ś w i ę c o n a „ s i o s t r z e ń s t w u m a c o c h " . You can download MP3 files of stories to play to the kids. ponown y m m a ł ż e ń s t w e m i r o z w o d e m (zobacz rysunek 16. we have nearly two hours of stories to enjoy already. These are not professionally produced audio books. a także więcej materiałów związanych z przybranymi rodzinami. perhaps burn them to CD or stick them on an MP3 player for the children. Profesjonalne tworzenie stron WN 1W Rysunek 16.8. a podcast channel of all our stories • • • • • URL — Uruchomiona PageRank Programy www. Not only can you download stories. Pony Gallery. Zastosowane rozszerzenia Poll. comment on stories and also submit new stories. but we need your help in filling it up with lots more Do take a good look round the site and feel free to download as many stories as you want.com — 2005 Google — 5/10 partnerskie — Google A d S e n s e — Remository. S k y p e • • • • • • • • Kanały RSS — Tak (Podcast) Szablon — Własny robotom internetowym — Nie Adresy przyjazne Nawigacja okruszkowa — Nie Główne sekcje — FAQs!.404 Joomla!.astoryforbedtime. c o t y g o d n i o w y newsletter. We hope you like the site. they are quite simply recordings of real people like you reading stories to real kids. A Story for Bedtime Jo s TOMŁ! So y Welcome to A Story For Bedtime Hello and welcome to A Story For Bedtime. or go straight to the books list and get downloading. Chat. Graphitory. songs and drawings so that everyone can share them Home FAQs! Click on the buttons in the top left box to browse the stories. or shout for help in the discussion foium. This is a community sharing site for parents and children. but you can also record your own stories and send them in to the site.

Parental Alienation.Si^'erhaod far stepmoms^ seconciwivesclub. . . Joomap.. Starting O v e r . advice. ' . R e m a r r i a g e . 405 I . personal accounts and advice from some of life's most interesting womenl Getting Started: • R e a d the short ': log in. mature. C o l l a b o r a t i v e L a w . blogs. Weddings. ' . . C u s t o d y . mod_smo_ajax_shoutbox_css. A l i m o n y . eCourses. Not Wicked Minimalna E-commerce szerokość — Tak — Tak — 800 • • • Funkcje społecznościowe . . - • k ?- ^ gmjmagBm Home P a g e Second W i v e s Club.com — 1997 — Secondwivesclub. Ex-Files.p a r e n t i n g . Visitation. W o n d e r f u l .php Kanały RSS — Tak (RSS i A t o m ) Szablon — Własny Adresy przyjazne Nawigacja robotom internetowym — Tak U • • • • okruszkowa — Nie Główne sekcje — And Baby M a k e s .secondwivesclub.com .Rozdział 16. Stress Management. child custody. • See o u r m about what you'll see when y o u to learn more about our community and its' subscribe m e I : G e t the latest articles. Christian S t e p f a m i l i e s . M o n e y . and step parenting discussed In a solutionoriented. com recommend. • Rzut okiem na popularne strony oparte na Joomla! M m'Mmk'^ . A g a i n . Divorced Dads. and gossip each week from S W C i y Receive H T M L ? • • • • • • URL — Uruchomiona Właściciel PageRank Programy www. Stepparenting.27 Second W i v e s Club is what women in blended families are looking for: Remarriage. D i v o r c e .. R e l a t i o n s h i p s . com magazine.. com weblinks. S t e p f a m i l i e s .com W e e k of A u g u s t 21 . articles and news written by thoughtprovoking experts and journalists. .com Google — 4/10 partnerskie — Google A d S e n s e Zastosowane rozszerzenia —pcajaxcommentjomcomment. Child Support. Contact. Family L a w . W i v e s O f Widowers. divorce. and intelligent way.. . Infidelity. Book Reviews. C o . " .

a t a k ż e m o ż l i w o ś ć z a m ó w i e n i a r ó ż n y c h p r o d u k t ó w m e d y c z n y c h dla ludzi cierpiących na cukrzycę (zobacz rysunek 16. Adresy przyjazne Nawigacja robotom menu autorstwa JoomlArt. Food for Thought.406 Joomla!.com — 2005 — BetterHealthHere Google — 4/10 partnerskie — Brak magazine. Contact.com internetowym — Tak okruszkowa — Tak Główne sekcje — Ali About Diabetes. M a n a g e Diabetes. J o o m a p Kanały RSS — Nie Szablon — mddigitalether. Poll.10. A k o F o r m s .betterheallhhere. Profesjonalne tworzenie stron WN 1W Better Health Here Strona poświęcona ludziom cierpiącym na cukrzycę. Rysunek 16. porady s p e c j a l i s t ó w . oferująca program zdrowotny. com com registration. Better Health Here URL — Uruchomiona Właściciel PageRank Programy www. Buy Diabetes Supplies. Lifestyle Minimalna E-commerce Funkcje szerokość — Tak — Tak — 800 spolecznościowe . C o m m u n i t y . Zastosowane rozszerzenia — Virtuemart.10). Tabnews.

Programy partnerskie 888 Casino Zastosowane • • • rozszerzenia — RSS.A. Shopzilla. lysunek 16. Joomap.11.uk.. które o d b ę d ą się w Republice Południowej A f r y k i (zobaczy rysunek 16. A/itryna poświęcona Mistrzostwom Świata 2010 N Republice °ołudniowej Ąfryki • H M M i t t i i i | f i m BMHwiilwIHrW Ć ' : "" ć ' P l a n B s h e l v e d . It DECEMBü* *0Ü3 F I F A P r e s i d e n t Sepp Blatter has c o n f i r m e d t h a t the W o r l d Cup will d e f i n i t e l y be held in S o u t h A f r i c a a f t e r F I F A r e c e i v e d a s s u r a n c e s t h a t all t h e c r i t e r i a w o u l d m e t in t i m e . Sobi2. że służy za p o d s t a w ę wielu p r o f e s j o n a l n y c h stron.Rozdział 16. Aistrzostwa Świata 2010 w Republice Południowej Afryki Strona poświęcona dostarczaniu informacji i wiadomości związanych z Mistrzostwami Świata 2010 w Piłce Nożnej. South Aflii fieiM|Jii|!5 Hotel.com — 2006 — World Cup 2010 South Africa Google — 5/10 — Google AdSense. Contact. Często uaktualniane materiały to informacje turystyczne i komunikaty o dostępności biletów. Poll Kanały RSS — Tak (RSS) Szablon —jwJnetgazette .11). Lie in bed and w a t c h the Whales Luxury accommodation Looking for the of website? * ! • • • • • • URL — Uruchomiona Właściciel PageRank www. c o m . • Rzut okiem na popularne strony oparte na Joomla! 407 'rofesjonalne strony Profesjonalne witryny poświęcone są przedsięwzięciom k o m e r c y j n y m i r o z w o j o w i kariery. C y b e r c a p e t o w n .worldcup20l0southajrica. które w y k r a c z a j ą poza obszar n o w y c h technologii. Charakterystyczne dla Joomla! j e s t to.co. W o r l d C u p is d e f i n i t e l y h a p p e n i n g in S o u t h A f r i c a in 2 0 1 0 lüESL.

event I affairsJ Most Recent O S Ä ' s » Should our association focus on recruiting * members onEtaWng them? « Subscribe to the U r n Best Association® Tips Ê-MewsWier » Association Governance a Board Oevefepmerrt .12). ggf Ask « Question Subscribe Remember Me « Forgot your URL — www. Conversely. Moreover. Profesjonalne tworzenie stron WN 1W • • • Adresy przyjazne Nawigacja robotom internetowym — Tak okruszkowa — Nie Główne sekcje — News. bestassociation. Burban. non-dues revenue. Johannesburg. getting "more of the same" tends to leverage the existing strengths of the association Here is a simple rule of thumb. dynamic element to the association. Rysunek 16. if you are closing in on the upper limit of a target audience. member benefits. Best Association Resources and Tools best association® Best Ass«el3ti»ii'S> . Directory Minimalna E-commerce Funkcje szerokość— — Nie — Nie 1024 • • • społecznościowe Best Association Resources and Tools Witryna społecznościowa p o ś w i ę c o n a materiałom z zakresu pobudzania i podtrzymywania a k t y w n o ś c i c z ł o n k ó w s t o w a r z y s z e ń oraz organizacji. Rustenburg. bringing in fresh blood can add a new. member retention. Pretoria. • How often do w e need to introduce new assodatioh membership benefits'? » !s our ¡association effectively utilising our membership data ? » H membership retention or recruitment more important to an association? • Are free {rial memberships an effective association marketing tool? Resourced Home Mwberghp'beveiotMilerÄ Member Benefits Non-Odes Revenues • Event Marketing Ever« Registration Meeting Planning Government Affairs " Ässociatiöft Jobs Ä Strategy Print-Strategy Best Association Books About Best Association . it can open new possibilities for the future direction of the association | On the other hand.408 Joomla!. World Cup Tickets. it may be time to consider expanding your association membership prospect base The rationale is fairly simple: it's easier to get more of the same Unless you've exhausted most of that audience.and then go after them . Bloemfontein. Atom) — Własny . you only have 15% of the possible candidates).Those who believe that you should determine who fits the profile of your current members . Stadiums (Cape Town. meeting planning. If you are only scratching the surface of your targeted association membership (e. World Cup 2006.Submit Vour Quei$ti<3n Ł W h o are our best association m e m b e r s h i p p r o s p e c t s ? There are t w o camps when it comes to identifying the best membership prospects foi ar< association: .and go after more of the same. Best Association ® membership development. Polokwane. Port Elizabeth. you shouldn't spread the association's resources too thinly by chasing too many groups pSF. Good arguments can be developed on both sides Certainly.Those who believe that you should determine who you are not appealing to . p r o m o w a n i a i organizacji wydarzeń oraz spotkań (zobacz rysunek 16.g. event marketing.RecotîimçiKSec) Books * Association Strategie Planning and Change f^ommerrdisef-Books * Association Legal issues & Ethics Recommended Books Featured Association Executive Questions Most P o p u l a r 0 8 Ä s • What is the test w a y to attract new members i our association? . Nelspruit. registration. Uruchomiona Właściciel PageRank Zastosowane Kanały Szablon — 2006 com — Best Association Resources Google — 6/10 rozszerzenia — Brak RSS — Tak (RSS. government association jobs and association books. you'll likely find better results by going after more of the same.12.

El Rama is a melting pot where Mestizo cattle traders meet Caribbean :aptains. in tact before about 2000 Rama was at the end of one of Nicaragua's most spinecrushing roads. • Rzut okiem na popularne strony oparte na Joomla! • • • Adresy przyjazne Nawigacja robotom internetowym — Nie 409 okruszkowa — Tak Główne sekcje — Resources Home. lysunek 16. Event Marketing. English speaking Atlantic Coast with the Spanish speaking. About Best Association. Event Registration. Print Strategy.13) poświęcona relacjom podróżniczym Randalla W o o d a . A t o m i O P M L ) . a iongtime riverine port and trader town.D u e s Revenues.days before the glistening. Meeting Planning. który obecnie współpracuje z National Geographic Society w Badaniu Światowego Dziedzictwa (której celem jest zanalizowanie i opisanie najcenniejszych kultur oraz środowisk świata). Best Association Books. paved highway linked It with Managua. In fact. lelacje lodróżrticze Randalla Wooda Rama. the Head of the River Rama's riot as far out of the way as it used to be iri the . Travel Writing • U • • • • • URL — Uruchomiona Właściciel PageRank Programy www. Member Benefits. Membership Development.therandymon. Government Affairs. Submit Y o u r Question Minimalna szerokość — 800 • • • E-commerce