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

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

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. 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. Rzut okiem na popularne strony oparte na Joomla! Strony akademickie Wydział Biologii Molekularnej Princeton The Shakespeare Birthplace Trust Journal of Intercultural and Interdisciplinary Archaeology Graphic User Interactive Learning and Development (GUILD) Ministerstwo Edukacji na Wyspach Dziewiczych Strony poświęcone zdrowiu i rodzinie SeniorNet KidsCHANNEL A Story for Bedtime Second Wives Club Better Health Here Profesjonalne strony Mistrzostwa Świata 2010 w Republice Południowej Afryki Best Association Resources and Tools Relacje podróżnicze Randalla Wooda Turbo Trade Sonetto John Avon Illustration 395 396 396 397 398 399 400 401 401 402 403 404 406 407 407 408 409 410 411 412 .10 Joomla!.

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

12 Joomla!. Profesjonalne tworzenie stron WWW .

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

Profesjonalne tworzenie stron WWW .14 Joomla!.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

30 Joomla!. Profesjonalne tworzenie stron WWW .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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'.joomla. 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! . 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'. Soffset = '0'. $lang_administrator = 'en-GB'. Scaching_page = '0'. SMetaAuthor = 'l'. Scaching_tmpl = 'O'. S e k c j a Locale Settings ( u s t a w i e n i a j ę z y k a ) : var var var var var var $lang_site = 'en-GB'. var $gzip = 'O': var ilifetime = '900': // Session timeout var $error_reporting = '-l': var Shelpurl = 'http://help. • 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 $log_path = '/var/logs'. SMetaTitle = 'l'. Slanguage = 'en-GB'. var $ftp_pass = " . var $ftp_root = '': var $ftp_enable = ''. .Rozdział 2.the dynamie portal engine': SMetaKeys = 'joomla.org': var $xmlrpc_server = 'O'. Joomla'. var Sftp_port = 'O'. var Sftp_user = ''. var $ftp_host = 'O'. Soffset user = '0'. = = = local host' S e k c j a Cache Settings ( u s t a w i e n i a p a m i ę c i p o d r ę c z n e j ) : var var var var Scaching = '0'.

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

wymaga posiadania uprawnień administratora lub roota. W obu przypadkach procedura jest podobna. dlatego wyszukałem wiersz. czyli także do tabeli jos users. w której umieszczone są skróty haseł.. Wprowadź teraz skrót MD5 nowego hasła. ysunek 2. 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. phpMyAdmin. naciśnij klawisz F2.5 kB OB 40 B Index len. dla którego pole username („nazwa użytkownika") odpowiadało wartości admin. tłum. Wybierz pole. jak zilustrowano to na rysunku 2. Przewiń zawartość okna w prawo.: 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. a następnie. aby zresetował Twoje hasło (jeśli zdarzyło Ci się je zapomnieć) lub nadal niezbędne uprawnienia.Rozdział 2. Po kliknięciu prawym przyciskiem pojawi się menu kontekstowe zawierające opcję Edit Table Data.14.1 kB 2. np. jeśli korzystasz z systemu Windows. • Szczegóły instalacji i konfiguracji 61 Uruchom aplikację M y S Q L Administrator lub inną aplikację online.8 kB 237 B 1. Jeśli nie masz wymaganych uprawnień. jak przedstawiono to na rysunku 2. 3 kB 1 kB 1 kB 1 kB 4 kB 2 kB 4 kB 3 kB 2 kB 3 kB 3 kB 1 kB 3 kB 5 kB 1 kB 3 kB 3 kB Update time 2088-10-23 23:22:42 2008-10-29 23:18:36 2008-10-29 23:16:36 2008-10-29 23:16:36 2008-10-29 23:22:42 2008-10-29 23:22:42 2008-10-29 23:22:42 2008-10-28 23:22:42 2808-10-29 23:22:42 2008-10-28 23:22:42 2008-10-28 23:22:42 2808-10-29 23:16:36 2808-10-28 23:22:42 2008-18-28 23:22:42 2008-18-28 23:16:36 2008-18-29 23:22:42 11 P 1 r M 1 i 1 rM 2008-18-29 23:22:42 v A Table Name ios_menuJypes jos_messages jos_messages_cfg |os_migration_backli. poproś administratora systemu.15.6 kB 60 B 320 B 275 B OB 400 B 1. W programie MySQL Administrator wybierz tabelę jos users w bazie Joomla!. |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!. dopóki nie pojawi się kolumna oznaczona password. którego wartość chcesz zmienić. W moim przypadku musiałem zresetować hasło administratora. Zwróć uwagę.14. 'o kliknięciu irawym przyciskiem os_users wybierz • menu opcję •dit Table Data Schema Tables Schema Indices Views Stored procedures . ios^modules jos_modules_menu jos_newsfeeds ios_plugins jos_polls jos_poll_data |os_poll_date ios_pollj"nenu jos_sections |os_session jos_stats_agents I i L — |os_templates_menu MylSAM 11 1 WI' TMBBF*1*1* .. że dostęp do poprawnie zabezpieczonej bazy danych.. Pisanemu bez polskich znaków! — p r z y p . .

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

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

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

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

Profesjonalne tworzenie stron WWW .66 Joomla!.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Profesjonalne tworzenie stron WN 1W .140 Joomla!.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

158 Joomla!. Profesjonalne tworzenie stron WN 1W .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

W rozdziale 7. . generowanie dokumentacji w oparciu o komentarze zawarte w kodzie źródłowym przetwarzanym przez program phpDocumentor.0. Profesjonalne tworzenie stron WN 1W • • uaktualnianie interfejsu administracyjnego w celu poprawienia integracji z platformą Joomla!. 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. nazywanym powszechnie Web 2. opisano tworzenie aplikacji Joomla!. Sercem nowego sposobu interakcji ze stronami WWW.182 Joomla!. jest połączenie kilku technologii pod nazwą Ajax.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Profesjonalne tworzenie stron WN 1W .200 Joomla!.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Profesjonalne tworzenie stron WN 1W .216 Joomla!.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Druga sekcja odzwierciedla zużycie pamięci przez serwer Joomla!.4.3. Rysunek 11. jednocześnie umożliwia wgląd w funkcjonowanie systemu Joomla!. które pojawiły się na stronie i dla których nie znaleziono tłumaczeń (przedstawiono to na rysunku 11.3. Jeśli pracujesz nad pakietem j ę z y k o w y m lub bierzesz udział w poprawianiu tłumaczenia Joomla!. to ta opcja pozwoli Ci określić. Opcja Analiza języka spowoduje wyświetlenie wszystkich tekstów.1 WHERE WWFTTF. W odpowiedniej sekcji wyświetlane są wszystkie wykonanie zapytania SQL •Informacje o wydajności* •Zużycie pamięci* Zapytań <lo bazy «lanych: 24* SELECT FKOM WHERE FKOM WHERE SELECT FKOM 1 . • 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ń. co zostało jeszcze do zrobienia. Poniżej. Rysunek 11. w kolejnej grupie. Opcja Analiza języka spowoduje wyświetlenie na stronie tekstów. 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. dla których nie znaleziono tłumaczeń •Wczytane pliki języka* •Frazy niepi zet luinac zone* .4). 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.Rozdział 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.

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

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

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

większość zmian konfiguracji serwera Apache związana jest z a k t y w a c j ą modułów. . P o d s t a w o w a lista elementów. kategoriami i artykułami. tak aby odpowiadały środowisku p r o d u k c y j n e m u . a często instalują także komponenty interfejsu administratora systemu Joomla!. 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. że wiele dyrektyw powinno mieć różne ustawienia w środowisku testowym i p r o d u k c y j n y m .ini — Plik PHP. Pamiętaj. 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. np. komponenty i dodatki wykorzystywane na serwerze testowym muszą zostać zainstalowane i skonfigurowane na serwerze produkcyjnym. Ponieważ migracja między serwerami jest w głównej mierze przeprowadzana ręcznie. Zazwyczaj pierwszą rzeczą wstawianą na stronę Joomla! jest nowe logo lub banner.ini z n a j d u j ą c y się na serwerze testowym zawiera prawdopodobnie zmiany ułatwiające programowanie. w ł a ś c i w e g o dla środowiska testowego.Rozdział 11. które z nich s k o p i u j e s z .conf— Podobnie j a k w przypadku PHP. g ł ó w n e ze w z g l ę d ó w b e z p i e c z e ń s t w a . a w przyszłości będzie m o ż n a szybko odtworzyć stronę z kopii. K l u c z o w ą z m i a n ą przy przenoszeniu pliku configuration. niezbędną do p o p r a w n e g o uruchamiania aplikacji Joomla!. 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 . 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 ć . Dyrektywy Apache w httpd. warto mieć listę k l u c z o w y c h e t a p ó w . Pamiętaj. p h p na s e r w e r z e p r o d u k c y j n y m . Dyrektywy PHP. 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. z m i e n i a j ą k o n f i g u r a c j ę . 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 ń . a zmiany przeprowadzano z panelu administratora — wystarczy skopiować zawartość bazy danych i pojedynczy plik (configuration. p o n i e w a ż t w o r z ą o n e często w ł a s n e tabele.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 . • Prowadzenie profesjonalnej strony 283 pozostałych e l e m e n t ó w . co ma zapewnić tę s a m ą f u n k c j o n a l n o ś ć w obu środowiskach. które należy zarchiwizować.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. które należy przenieść: • Rozszerzenia — Wszystkie zainstalowane moduły. np. w ł ą c z a j ą c e bibliotekę gd2. aby nie p r z e o c z y ć któregoś z nich. 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. które chciałbyś przenieść na serwer produkcyjny. 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 . zależy od zmian w p r o w a d z a n y c h w systemie. Ponieważ wszystkie dane systemu przechowywane są w bazie danych M y S Q L .php). Plik configuration. aby d o p a s o w a ć wartość odpowiednich parametrów w pliku p o zakończeniu migracji. Rzadko jednak zdarzają się konfiguracje w swojej prostocie przypominające powyższy opis. Liczba plików. • • • opia zapasowa Joomla! Serwer testowy zawiera p r a w d o p o d o b n i e sporo danych.

com. właściwa strona. 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 . 1 Alternatywnym rozwiązaniem jest wykorzystanie jednej bazy danych z różnymi przedrostkami tabel poszczególnych instalacji Joomla! — p r z y p . 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. d o s t a w c y przyklad. Żą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 .in.284 Joomla!.disney. 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. będzie Ci zależeć na przywróceniu jej w możliwie krótkim czasie. 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). 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. po tym. j Compatibility mod« ' A N S I Quotes S a v e Project * Complete INSERTS s s/\ Pnmmenl L. i New Project Konfiguracja wirtualnych serwerów Apache Pojedynczy serwer Apache m o ż e obsługiwać wiele strony W W W . Rysunek 11.5). które p o z w a l a j ą m. znajduje się na serwerze produkcyjnym.com. . kliknij przycisk N e w Project. p r z y k l a d . System kopii zapasowych zwiera wiele opcji (zobacz rysunek 11.cnn.5. • 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.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. w y s t a r c z y zainstalować j e w oddzielnych katalogach i przypisać im oddzielne bazy danych 1 .com). j a k zmieni się prawy panel. a d r u g ą dla d o s t a w c ó w ( w w w . c o m ) .. Jeśli ona zawiedzie. 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 . Use this option if tables are added to schémas frequently Nr backup content table selection will be ignored. Serwer testowy odpowiada zazwyczaj pewnej fazie prac programistycznych i nie nadaje się do bezpośredniego przeniesienia na serwer produkcyjny. tłum. Kliknij ikonę Backup w lewej części głównego okna programu. 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. z której korzystają użytkownicy.. Profesjonalne tworzenie stron WN 1W Pamiętaj. a następnie. This may lead to inconsistent bac and should be avoided if possible Backup all tables. jak i www. 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. Chociaż środowisko testowe jest ważnym etapem. aby tworzyć kopię zapasową plików znajdujących się na serwerze produkcyjnym — nie wykorzystuj serwera testowego jako podstawy kopii. 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.

com ServerAlias innastrona. W momencie pisania tej książki nie istniało n a r z ę d z i e .xx. a także z a t r z y m a ć .com-bytesjog ServerName http://www. adresy IP przypisywane są wirtualnym serwerom działającym na j e d n e j maszynie.xxx> ServerAlias przyklad.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. 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 . 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 . 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. 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.com/ <IfModule mod_php4. 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. 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 .2" -k restart arządzanie wieloma serwerami Prawdopodobnie napotkasz w swojej pracy sytuację. • 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.html). u r u c h o m i ć p o n o w n i e .com/ ServerAdmi n webmaster@przyklad. tzn.com ServerAli as http://www. ontrola serwera Apache z wiersza poleceń Większość zadań administracyjnych serwera Apache przeprowadzanych jest z poziomu wiersza poleceń. 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 .Rozdział 11.com ServerAlias *.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. innyadres2.xx. Serwer m o ż e s z w s t r z y m a ć .com ServerAlias *.3/vhosts/name-based.i nnyadres2.c> php_admin_value open_basedir "/home/przyklad:/usr/lib/php :/usr/1ocal/I ib/php:/tmp" </IfModule> <IfModule mod_php5.2\bin\httpd. zainstalowanych na różnych serwerach.exe -w -n "Apache2. kiedy będziesz prowadzić kilka stron opartych na Joomla!.i nnyadres.com ServerAlias *.przyklad. u r u c h o m i ć .com ServerAl1 as http://www. Alternatywnym rozwiązaniem są wirtualne serwery na podstawie domeny.com/ ServerAlias innyadres2.com DocumentRoot /home/przyklad/public_html BytesLog domlogs/przyklad.przyklad.apache.org/docs/ 1.innyadres.

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

Wiele informacji. 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 . 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. Po przeniesieniu do środowiska .6... stosując aplikację D B Monster. tworząc profil obciążenia. Serwer testowy dysponuje ograniczonymi zasobami.sourcefbrge. w s k a z ó w e k i zagadnień. PHP i bazę danych).stickyminds. Po wstawieniu danych możesz wykorzystać program do analizy zapytań.V/ltp. na ile zostały one zoptymalizowane i jak skutecznie działają w przypadku dużej ilości danych. określić. które warto r o z w a ż y ć . strona nadal będzie dostępna). • Prowadzenie profesjonalnej strony sunek 11. 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 ć .com/ s. 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. dostępny na stronie: http. 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.Rozdział 11. działa zazwyczaj w sieci lokalnej ( L A N ) i w y k o n u j e wszystkie usługi ( W W W .tst Timeout (sec) Use recorded think time ¡60 (¡7 User ramp-up time (sec) [Î Create New Script. Aby sprawdzić konfigurację M y S Q L i ogólną wydajność serwera. 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. 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 . możesz wykorzystać pakiet Database Opensource Test Suite for Linux Test Project. 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. tzn. W środowisku testowym możliwości równoważenia obciążenia są z reguły niewielkie. j a k i e operacje będą przeprowadzane na serwerze w czasie testów. którą znajdziesz na stronie: http://sourceforge. Stworzenie skutecznego profilu obciążenia ma w sobie elementy sztuki i nauki. które z o s t a n ą u m i e s z c z o n e w bazie danych. aby określić.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. aby zapewnić lepszą w y d a j n o ś ć całej witryny). Jeśli strona zyska o g r o m n ą p o p u l a r n o ś ć .asp ?F=S3116_A R T_2). Scripts in this test (Double-click a script below to edit).

linuxvirtualserver. na j e d n y m lub kilku serwerach. Np. a także tekstów pisanych od p r a w e j d o lewej. 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. dwoma popularnymi systemami kodowania znaków na polskich stronach internetowych przed rozpowszechnieniem UTF-8 — przyp. tłum. 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 . 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 . Umiędzynaradawianie Podczas tworzenia wersji 1. co pozwala na skuteczną Obsługę wielu j ę z y k ó w .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.288 Joomla!. ISO 8859-2 i CP1250. 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 . 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.net/projects/xlb) lub Linux Virtual Server (www. Powyższy schemat ma sporą przewagę nad standardem Unicode.5 aplikacja Joomla! została napisana od podstaw.org). 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 każdy z nich będzie dysponował znaczącą ilością pamięci i miejscem na dysku twardym. Wymienione programy umożliwiają równoważenie obciążenia na poziomie serwera. co skutk u j e lepszą skalowalnością rozwiązań. np. Narzędzie do r ó w n o w a ż e n i a obciążenia o nazwie phpLoadBalancer znajdziesz na stronie: http://sourceforge. 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 . 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. głównie pod kątem obsługi stron w j ę z y k a c h innych niż angielski.net/projects/phploadbalancer W przypadku większych systemów warto rozważyć aplikację X L B HTTP Load Balancer (XLB) (http://sourceforge. aby korzystać z kodowania UTF-8. N a p r a w d ę rzadkie znaki w y m a g a j ą zużycia czterech bajtów. sprawdź czy Joomla! i serwer M y S Q L zostały odpowiednio skonfigurowane. 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 . 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 . . K o d o w a n i e U T F .8 p o z w a l a na bogatszy zestaw z n a k ó w . Jeden znak (np. 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 . aby określić j e g o słabe punkty. 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 . Jeśli p l a n u j e s z obsługę z n a k ó w spoza alfabetu łacińskiego.

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. (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. • Prowadzenie profesjonalnej strony 289 utomatyczne cenzurowanie treści Jeśli strona pozwala na publikowanie treści napisanych przez użytkowników.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 .girlsgonedumb. m o ż e s z zwiększyć w y d a j n o ś ć . co optymalna konfiguracja. warto zastosować narzędzia. Zmiany b ę d ą widoczne natychmiast po wprowadzeniu. Ponieważ wszystkie materiały Joomla! pobierane są z bazy danych M y S Q L . Jeśli korzystasz z rozszerzeń. p r a w d z i w y potencjał drzemie w konfiguracji serwera M y S Q L . równie znaczący. 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. jest format tabel. . funcjileinfo/id.Rozdział 11. a z drugiej zoptymalizować aplikację i strukturę bazy danych. Rozszerzenie Foul Filter można znaleźć na stronie: www. istawianie dysku przechowującego dane Serwer M y S Q L pozwala określić miejsce przechowywania danych. 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 .com/component/option. Jeśli korzystasz z serwera na platformie W i n d o w s . 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. Wtyczka nie zmienia treści a r t y k u ł ó w . a także na z m i a n ę zasad (np. które wykonują zapytania do bazy danych. 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 . sposób pracy z bazą danych i ogólna konstrukcja zapytań. Dostrajanie wydajności MySQL wykracza poza zmianę konfiguracji. 1 comremos i torv/ltemid. 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. W y b r a n e słowa z o s t a n ą zastąpione g w i a z d k ą (*). tylko p r z e c h w y t u j e i z m i e n i a tekst. d o d a n i e n o w y c h słów do listy cenzurowanych lub rehabilitacja dotychczasowych). z a p o b i e g n ą u r a ż e n i u pozostałych odwiedzających. Warto zainteresować się także r o z s z e r z e n i e m Foul Filter. 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. 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. Wiele z narzędzi opisanych w rozdziale 10.

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

Please select the default character set. sz wyłącznie Usługujących ansakcje i baz ez obsługi ansakcji MySQL Server Instance Configuration Choose the configuration for the server instance. Manual Setting "îr'i Please enter the approximate number of concurrent connections. Manual Selected Default Character Set / Collation 4T ? j Please specify the character set to use. monitoring or logging applications as well as analysis programs. • Best Support For Multilingualismi M a ke UTF8 the default character set.9. This will optimize the server for the use of the fast transactional InnoDB storage engine and the high speed MylSAM 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. 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. Ksunek 11. Standard Character Set fHeio!) Makes Latin 1 the default charset.ionSupport(DSS)/OLAP: a jjk m$r Select this option for database applications that will not require a high number of concurrent connections. Please set the approximate number of concurrent connections to the server. This will make InnoDB the main storage engine. Please select the database usage. C Multifunctional Database General purpose databases. E n g l i s h and other West European languages. 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. Note that the My 15AM engine can still be used. .10. 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.8. ożna ograniczyć py baz danych -) wielofunkcyjnyc baz danych. This is the recommended character set for storing text in many different languages. Only the non-transactional MylSAM storage engine will be activated. Vybierz opcję lest Support for Aultilingualism UTF8). * fSon-Transactional Database Only! Suited for simple web applications. Concurrent connections: d ysunek 11. • Prowadzenie profesjonalnej strony 291 sunek 11.Rozdział 11. Character Set: utf8 < Back j I Next > | Cancel . Decis.

php. 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 . 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 . 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. a rekord dla nazwiska „ A d a m c z y k " na s a m y m końcu. Źródło problemów Baza danych Joomla! została zaprojektowana pod kątem ogólnego wykorzystania. takich j a k access. W naszym przykładzie zapytanie spowodowałoby odwołanie się do indeksu dla pola nazwisko. także m o ż n a zoptymalizować. W r a z z danymi na serwerze zapisywany jest także indeks. 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 . tj. 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. Indeksy tego typu noszą n a z w ę indeksów kompozytowych. section itd. które zaczynają się na literę „B". Na dodatek tabele. . aby poprzez zmianę j e j struktury uzyskać w y ż s z ą wydajność. wymagałoby poświęcenia dużej części zasobów i czasu procesora. 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 ) . 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 . 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). n a z w i s k a i imienia. n a z w i s k a . catid. N a r y s u n k u 11. co umożliwia szybkie sortowanie danych po wartości pól. 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. 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 ! . 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. P r z y k ł a d o w o tabela jos content posiada siedem powiązanych indeksów.292 Joomla!. dlatego istnieją sposoby. Wręcz przeciwnie — m o g ą spowolnić pracę serwera. musisz o d p o w i e d n i o z m i e n i ć plik configuration. 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. które o d w o ł u j ą się d o kilku pól. Kiepski dobór indeksów jest jednym z głównych powodów problemów z wydajnością. Istnieją także indeksy. np. 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 ) . nie m a j ą o n e d u ż e g o znaczenia dla konfiguracji Joomla!. 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. 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 .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. Jeśli jednak zmienisz hasło dostępu do serwera baz danych. 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. które tworzysz na potrzeby własnych rozszerzeń.

tzn. nlkatowe wartości indeksowanego pola M o ż e się w y d a w a ć . Jeśli 90 procent osób wprowadzonych w bazie danych mieszka w Zachodniopomorskiem. • Prowadzenie profesjonalnej strony ysunek 11. czy w a r t o ś ć pola wojewodztwo jest odpowiednia. których unikatowość rekordów wynosi mniej niż 30 procent. W takiej sytuacji zastosowanie indeksu kompozytowego (np. że zastosowanie indeksów zawsze przynosi wzrost wydajności. 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. czy zapytanie zostanie przetworzone z w y k o r z y s t a n i e m indeksów. 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. są automatycznie ignorowane. Podczas tworzenia indeksu odwołania sortowane są w e d ł u g kolejnych pól. które niweczą zysk wydajności. . ponieważ nieoczekiwany wynik zapytania nie p o k r y w a się z założeniami indeksu w bazie danych. w y s t a r c z y ł o b y p o b r a ć rekord. Nie jest to prawdą. 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.11. 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. a następnie w e d ł u g imienia. czy nie. wybrać pasujące rekordy. Dlatego indeksy pól lub kolumn. jest porządek pól tworzonego indeksu. czy zastosować indeks. sprawdzić. natomiast zapytanie o d w o ł u j ą c e się wyłącznie do pola imienia nie zyska na zastosowaniu indeksu. wczytać j e i w końcu pobrać w ł a ś c i w e dane. 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 .-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. 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. zastosowanie indeksu podczas wykonywania zapytania wywołałoby skutek odwrotny do zamierzonego. Jeśli j e d n a k indeks zostałby z i g n o r o w a n y . dla indeksu nazwisko_imie wpisy sortowane są najpierw w e d ł u g nazwiska. J e d n y m z etapów procesu optymalizacji jest określenie. 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. i zwrócić dane j a k o wynik.Rozdział 11. jest sprawdzenie. aby zoptymalizować w y k o n y w a n e zapytanie. Serwer baz danych musiałby w tym przypadku sprawdzić indeks.

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

z której można wybrać jedną Lista predefiniowanych wartości.767 Liczba całkowita z zakresu . • Prowadzenie profesjonalnej strony bela 11.223.147.1.535) Zmienna (do 16. Tabela Typy danych MySQL yp danych INYINT MALL I NT EDIUMINT NT IGINT 295 Opis Liczba całkowita z zakresu .535) Zmienna (do 16.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.535) Zmienna (do 65. tłum./ + 2.216) Zmienna (do 4. ./ + 8.372.294.967.854. np. Oznaczanym także jako hh:mm:ss./ + 127 Liczba całkowita z zakresu . np.Rozdział 11.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ść.388. do 255 Zmienna (do 65.777.607 Liczba całkowita z zakresu ./ + 9. 23:59:59 — p r z y p . zapis 2008-12-11 odpowiada zapisowi 11 grudnia 2008 roku — przyp./ + 32.295) 3 3 8 4 1 1 lub 2 od 1 do 8 LOAT DOUBLE DECIMAL .483.216) ' Zmienna (do 4.647 Liczba całkowita z zakresu . jedną lub więcej TIMESTAMP YEAR ENUM SET Opisywanym także jako yyyy-mm-dd. tłum.294.777.036.775. z której można wybrać zero.295) Zmienna (do 65.967.

w jaki sposób wykonywane są zapytania łączone. ref. 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. Wartości system i const odpowiadają wyszukiwaniu najwyżej po jednym kluczu. Pobieraj wyłącznie to. 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 . k t ó r e j typ u s t a w i o n o na char(200). Uncacheable Subquery i Derived w s k a z u j e podzapytanie. ż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. Dependent Subquery. index_merge. Kolumna key — W s k a z u j e n a z w ę indeksu M y S Q L . O z n a c z a to. 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 . ż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 . Union. N i e z a p o m i n a j . czas przesyłania danych zostanie znacząco ograniczony: SELECT name. Inne możliwe wartości to eq_ref. że m o ż e s z zoptymalizować zapytanie j e s z c z e bardziej: SELECT name. Profesjonalne tworzenie stron WN 1W P a m i ę t a j . 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. • • • . 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 .296 Joomla!. Subquery. 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. W a r t o ś ć simple o z n a c z a . 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 kiedy t w o r z y s z indeks. które pola w y m a g a n e są przez aplikacje. o z n a c z a . 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. że podczas wykonywania zapytania dane z tabeli w y k o r z y s t a n o bezpośrednio. ref_or_nul1. D l a t e g o utworzenie i n d e k s u k o l u m n y . Kolumna type — Opisuje. który został wykorzystany podczas uruchamiania zapytania. telephone FROM jos_contact_details WHERE postcode = '92107' Stosowanie komendy EXPLAIN Jednym z najefektywniejszych sposobów optymalizacji zapytania jest analiza wyniku instrukcji EXPLAIN. z pominięciem indeksów. index_subquery. 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. Primary oznacza główne zapytanie (jeśli zastosowano podzapytania). ż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. range i index. unique_subquery.

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

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

O M i * « * n i "LE2SLS ® « „ O O T. można p r z e c h o w y w a ć tam n a z w ę użytkownika i hasło. W ł a ś c i w e rozszerzenie nosi n a z w ę Authentication — LDAP. To spowoduje szyfrowanie połączenia z serwerem LDAP. R e d a k t o r . np. 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 .dc=mojafi rma:dc=com. 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. lista powinna zostać rozdzielona średnikami ( : ) . p o n i e w a ż d o m y ś l n i e dodatek jest wyłączony. 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 . 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 ) . co chroni przesyłane dane przed przechwyceniem.) na serwerze L D A P . C h o c i a ż nie da się z a p i s a ć p r z y n a l e ż n o ś c i d o g r u p y (np. ustaw wartość parametru Negocjacja TSL na Tak. 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. 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ć. uid=[username]. . A d m i n i s t r a t o r itd. o ile dostęp do serwera jest a n o n i m o w y . Pola Użytkownik połączenia i Hasło połączenia powinny pozostać puste. jak przedstawiono to na rysunk u 11.Rozdział 11. 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!. • Prowadzenie profesjonalnej strony 299 Na szczęście do Joomla! dołączona jest wtyczka. Kliknij jego nazwę. U s t a w wartość parametru Opublikowany na Tak.13.13. 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ń. które pola na serwerze L D A P b ę d ą zawierać dane niezbędna dla systemu logowania Joomla!. ysunek 11. u r u c h o m o p c j ę Dodatki z m e n u Rozszerzenia w panelu administratora. aby wyświetlić listę parametrów. która obsługuje uwierzytelnianie L D A P .

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

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

które d a w n o nie były uaktualniane. Profesjonalne tworzenie stron WN 1W Wyszukiwanie starych materiałów Lista artykułów posortowana według dat ostatnich modyfikacji pozwala zlokalizować artykuły. Listę nieaktywnych u ż y t k o w n i k ó w możesz w y g e n e r o w a ć . po to. M o ż e s z w y s z u k a ć stare artykuły. M o ż e s z znaleźć niepublikowane elementy. popularnej i d o j r z a ł e j stronie Joomla!. W tym momencie najlepiej usunąć go z bazy danych. 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. 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. 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 . Proste zapytanie M y S Q L pozwoli Ci stworzyć listę artykułów. 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. ponieważ nie w i a d o m o . czy nie b ę d ą p o t r z e b n e w przyszłości. 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 . czy artykuł) prawdopodobnie nie będzie już wykorzystywany. którzy od p e w n e g o czasu nie odwiedzali strony. Po u p ł y w i e p e w n e g o czasu element (czy to menu. 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. dla których nie ustawiono metadanych. Często artykuły u s t a w i a n e są j a k o niepublikowane. Odpowiednie zapytanie względem tabeli użytkowników wygeneruje listę u ż y t k o w n i k ó w . aby zwiększyć wydajność. Aby wygenerować listę artykułów. 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ą. dla których nie ustawiono metadanych. by naprawić problem.302 Joomla!.

sectionid IS NULL and jos_sections. uruchom: SELECT * FROM jos_categories LEFT JOIN jos_content ON jos_content.id WHERE jos_content.sectionid = jos_sections. W tym rozdziale opisano sposoby konfiguracji i instalacji Joomla!. Tworzenie wirtualnych serwerów w aplikacji Apache. 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. musisz pamiętać. Następnie można j e usunąć lub połączyć z innymi.catid IS NULL and jos_categories. czy n a j n o w s z a sonda jest popularna. w zależności od typu instalacji Joomla!. które sekcje i kategorie są niewykorzystywane. że T w o j e działania powinny odpowiadać założeniom przedsięwzięcia.id WHERE jos_content. 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(). uruchamiając poniższe zapytanie SQL: SELECT * FROM jos_sections LEFT JOIN jos_content ON jos_content. którą możesz wykorzystać. Możesz znaleźć nieużywane sekcje.catid = jos_category. dobrze jest określić.Rozdział 11.published=l Aby znaleźć puste kategorie. Podstawy tworzenia i przywracania kopii zapasowych systemu Joomla!. aby poprawić organizację strony. • 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ń. . a w szczególności: • • • • Testowanie fragmentów kodu za pomocą interfejsu tekstowego PHP. aby określić niedawną działalność użytkowników na stronie.published=l Podsumowanie Zarządzając profesjonalną stroną Joomla!. Przykładowo możesz chcieć zobaczyć głosy nadesłane w ciągu ostatnich 10 dni. aby stwierdzić. Dostrajanie MySQL w celu najlepszej wydajności.

starych materiałów. • Głównym punktem tego rozdziału było zarządzanie materiałami na stronie.304 Joomla!. opisano sposoby łączenia i pozyskiwania treści zewnętrznych — od kanałów RSS. 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. Profesjonalne tworzenie stron WN 1W • Stosowanie uwierzytelniania LDAP dla łącznego zarządzania kontem użytkownika dla różnych usług (np. W rozdziale 12. po screen scraping. . poczta). nieaktywnych użytkowników. nieustawionych metadanych itd.

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). np. Dzięki J o o m l a ! szczególnie łatwo możesz połączyć witrynę z zewnętrznymi zasobami. 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. jak skonfigurować stronę Joomla!. kanałami RSS. a także napiszesz prosty program typu screen scraper. Kanały RSS J e d n ą z technologii. 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. 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 ą . Jeśli na stronie dostępny jest kanał RSS. aby pobierać treści zewnętrzne. dzięki zastosowaniu rozszerzeń. o ile j e s t p o d ł ą c z o n y d o internetu. które m a wymagane możliwości komunikacyjne. są kanały RSS. W końcu. www. o programy partnerskie.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 . transakcjami e C o m merce. łą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 . lub musisz skorzystać z niestandardowego protokołu. 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. pobierając dane w formacie X M L . 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 . platforma programistyczna Joomla! ułatwia stworzenie własnej aplikacji.CNN. Stworzono dosłownie dziesiątki rozszerzeń. Pobieranie zewnętrznych materiałów Możesz wzbogacić treść własnych artykułów na stronie Joomla!. D o w i e s z się. co s p o w o d u j e p o b i e r a n i e podobnych treści. Jeśli nie możesz znaleźć rozszerzenia. j a k u z u p e ł n i ć J o o m l a ! . W tym rozdziale dowiesz się. którego zadaniem będzie pobranie danych umieszczonych na innej stronie w formacie H T M L . które służą do wykorzystania zewnętrznych zasobów. . 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 . stworzysz własne rozszerzenia. za pośrednictwem technologii EDI (Electronic Data Interchange) czy bazami danych.

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.). którą odwiedzasz. który gra rolę spisu artykułów umieszczonych na stronie. sposób prezentacji itd... Treść kanału jest z a p i s y w a n a na dysku twardym komputera.. O b a f o r m a t y o p a r t e s ą na X M L . ' S t r o n a z p o r n o g r a f i ą zami. dlatego można przejrzeć j ą później.rss.. Przez długi czas popularność obu formatów była porównywalna. . w y b i e r z Plik/Nowy/Konto. .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. a wiele stron obsługujących oba f o r m a t y porzuciło kanały Atom. W tej sytuacji wystarczy kliknąć ikonę i w y b r a ć opcję subskrypcji za p o m o c ą dynamicznych zakładek..pl Plik 4 artykuły Widok Thunderbird Wiadomość Narzędzia Pomoc H H K 3 3 D .a r t y k u ł y Gazeta.xml (np. Gazeta. 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 . kanały RSS wyświetlane są w podobny sposób jak konta e-mailowe. 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 ... / 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. „ R S S X M L " lub „Atom Feed") zostaje uruchomiona aplikacja na komputerze użytkownika. Jeśli na stronie.2).pl . 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. I z r a e l s k i e w o j s k a w Strefie... Z o s t a n i e d o d a n y n o w y f o l d e r .pl a r t y k u ł y Gazeta..a r t y k u ł y Gazeta.xml lub .1. atom. X Edycja Przejdź Pobierz . 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. 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ń.u .pl .1. n o s z ą c y n a z w ę Aktualności i błogi. która nosi nazwę agregator.pl .a r t y k u ł y .xml). a nowe wpisy b ę d ą pobierane automatycznie. T r u d n e w a r u n k i na drogac.a r t y k u ł y Gazeta.. Rysunek 12. Jak przedstawiono na rysunku 12.306 Joomla!. 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 . Format kanałów RSS Istnieją dwa popularne standardy kanałów na stronach W W W : RSS (Really Simple Syndication) i A t o m . dostępny jest kanał RSS. a kanały RSS m o g ą mieć rozszerzenie . 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 " . 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. ż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 . Teraz jeszcze łatwiej jest zarządzać wiadomościami w w y g o d n y i bezpieczny sposób.. Ostatecznie jednak okazało się. Klient poczty Thunderbird wyświetla kanały RSS iv formie przypominającej przeglądanie listów elektronicznych 4* Gazeia. U Putin i Miedwiediew poszli. k a n a ł y A t o m m a j ą rozszerzenie . klient poczty Mozilla Thunderbird ma funkcje agregatora. P r e z y d e n c j a UE: O p e r a c j a I. na pasku adresu zostanie wyświetlona symbolizująca to ikona (co zilustrowano na rysunku 12. Aby dodać nowy kanał R S S .pl .

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

3.informuje CNN. Moduł wyświetla listę n a j n o w s z y c h wiadomości opublikowanych na portalu Gazeta.80277. który mógłby liczyć na 12-procentowe poparcie.ośnie też poparcie dla SLD. 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 . PO zdobyłaby 52 proc. pobieranie nowych materiałów). Jedna osoba zginęła. • Bus zderzył «¡ę 7 . gazeta. R y s u n e k 12. p r z e t w a r z a n y . Z a każdym razem. Popularne agregatory multimedialne (np. Francja_obfite_opady_ dwi e_of i ary_smi ertel n e _ d o m y . Popular » Wyprosili muzułmanów z samolotu Tylko rozmawiał. 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. Dwie ofiary śmiertelne]]></ti11 e> <1 i nk>http ://wi adomosci.308 Joomla!. Rysunek 12.^t ranni Bus. Linie lotnicze odmówiły rodzinie przebukowania biletów mimo że agenci FBI uznali sprawę za nieporozumienie. gazeta. html </gui d> <dc:date </i tem> xmlns:dc="http://purl. 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 . pl /Wi adomosci /1. Kanały RSS stają się coraz bardziej zaawansowane. 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 . Whether you want a brochure site or you are building a large online community.6063045. Francja_obfi te_opady_ dwi e_ofi ary_smi ertel n e _ d o m y . pl /Wi adomosci /1. 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 ! . którym jechały cztery osoby w tym dziecko. sprawdzanie kanału pod kątem nowych treści.]]></description> <pubDate>N. 14 gru 2008 20:45:00 GMT</pubDate> <guid>http: //wi adomosci. . 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. Poniżej jest sekcja zawierająca banner reprezentujący kanał RSS. głosów .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 . 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. 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.D Gdyby wybory odbyty się dziś. kiedy użytkownik wchodzi na stronę zawierającą m o d u ł Feed.1'Rh -k"j!->a o--. osiem zostało rannych.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.6063045.80277.wynika z sondażu TNS OBOP dla programu Forum w TYP Info F. ¡Times firmy Apple) wykonują dokładnie te same operacje (np. na stronie głównej witryny Joomla!.i! • FAO • The Hews • Web Link« • Hews Feeds * Sondaż: 52 proc cila K ' i wzrost poparcia dia SL. które wyświetlane są w agregatorze.org/dc/elements/l. pomorskim. 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.i: Featuie: ll«M$ The Community Najnowsze wiadomości • Horn« • Joomla? L i t e » • M o i e about Jooml.ot-a zętinęłA.. Profesjonalne tworzenie stron WN 1W <item> <title><![CDATA[Obfite opady śniegu we Francji. zderzył się z samochodem osobowym w woj.pl. które wykonują standardowe czytniki kanałów RSS.000 domostw i przyczyniły się do śmierci dwóch osób: turysty i automobil istki. Ostatecznie wewnątrz elementu <item> s ą informacje o artykułach.

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

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

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

Oznacza to.Stating The Law As It Affects Consumers The Motion Picture Association Of America And Copyrights Wei) Development more. że nowe materiały są niedostępne dla większości funkcji Joomla! (np. takich jak ID sekcji i kategorii (odpowiednio sectionid i catid). 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!. Niestety. który dynamicznie pobiera zewnętrzne materiały. w tabeli jos_content. aby artykuły zostały odpowiednio zapisane. Podstawowa instalacja powoduje wprowadzenie 230 artykułów do bazy danych Joomla!. znajdziesz na stronie: http: //dev. Pamiętaj jednak. w bazie danych Joomla!.312 Joomla!. Someone Made The Web Design Process Easy To Understand The Power of Effective Brochures more. którego działanie zilustrowano na rysunku 12. żeby odpowiednio dopasować wartość niektórych pól.8.7. jeśli zostanie znaleziona nowsza wersja. articles3000. Kopiowanie artykułów można wykonać. a następnie umieszcza je w Twojej bazie danych Joomla!. 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. j Auto Articles 3000 to pakiet komponentów (jeden dla części frontowej. W tym przypadku oznacza to. artykuły pobrane za pomocą Auto Article 3000 zapisywane są na Twoim serwerze. stosując instrukcję MySQL INSERT INTO.2.. Rozszerzenie to pobiera artykuły na dane tematy z archiwum artykułów ezine (electonic magctzine — elektroniczny magazyn). SEO 1 .7. com Możesz określić tematykę pobieranych artykułów. a także innych rozszerzeń (np. Rysunek 12.. Rozszerzenie Auto Articles 3000 możesz pobrać na stronie: www. a także uaktualniane.0/en/insert-select. Rozszerzenie Auto Articles 3000 wyświetla pobrane artykuły. Nowe są automatycznie pobierane w regularnych odstępach czasu (domyślnie jest to 30 minut). Rozszerzenie przechowuje pobrane artykuły w tabeli jos_a3000_articles. html . tych odpowiedzialnych za tworzenie mapy strony). 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. artykuły pobrane za pomocą komponentu nie są przechowywane w ten sam sposób. wyszukiwania). ż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ń. korzystając z odpowiedniej opcji w panelu administratora.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. drugi dla panelu administratora) oferowany jako darmowa usługa firmy Elerion. com/doc/refman/5. W przeciwieństwie do wątku. 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. jak zwykłe artykuły. Calling a Lawyer Should Be a Private Home Sellers First Move The Lemon Law In Florida . Musisz tylko pamiętać. jak skonstruować odpowiednie zapytanie. mysql. Informacje. jak to przedstawiono na rysunku 12. 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.

a na końcu wybrać miejsce na stronie.Rozdział 12. więc wartość 1800 odpowiada 30 minutom. Za każdym razem. Zmień tę liczbę według upodobań. Nie jest to możliwe z poziomu interfejsu administratora. • Łączenie z zasobami zewnętrznymi lysunek 12. która przypomina poniższą: if ( t i m e O .php Poszukaj w pliku linii. często także JavaScript) w treści strony. Otwórz plik zawierający kod komponentu w edytorze tekstu. Zmiana tego typu wymaga ingerencji w kod źródłowy. ż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. Możesz tak j ą ustawić. aby odpowiadały usłudze. Programy tego typu są na tyle dochodowe. które wstawiają niezbędny kod (HTML.$last_checked > 1800) { Wartość parametru time zwracana jest w sekundach. Webmaster podpisuje umowę z daną firmą. kiedy odwiedzający kliknie reklamę lub kupi jakiś przedmiot. Urządzanie programami partnerskimi Programy partnerskie to najpopularniejszy sposób zarabiania na prowadzeniu strony W W W . Aby uruchomić na stronie dany program partnerski. ustawić jego parametry. możesz go znaleźć (względem głównego katalogu Joomla!) w: 1 components \com_a3000\a3000. webmaster otrzymuje wynagrodzenie. . przez co zgadza się na wyświetlanie reklam na swojej stronie. Joomla! może obsługiwać większość popularnych programów partnerskich za p o m o c ą rozszerzeń. wystarczy zainstalować odpowiednie rozszerzenie. Google lub Amazon. np. aby artykuły były pobierane częściej niż co 30 minut. gdzie powinny pojawiać się reklamy.8.

10.) zostaną wyświetlone płatne reklamy. Click on the above link Program AdSense można także konfigurować.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 . Za każdym razem. com/adsense Po pierwszym uruchomieniu konta Google będą wyświetlane wyłącznie społeczne ogłoszenia (zobacz rysunek 12. Aby skorzystać z reklam AdSense. 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.9).. np. przychodów i innych danych Today's Earnings: $4527. Po potwierdzeniu zgodności z warunkami umowy (brak pornografii. Ekran administracyjny Google AdSense przedstawia podsumowanie wyświetleń.G e t started Total Earnings $4527.iick$ Page Cid Page eCPM f?j Earnings 54325. właściciel strony dostaje pewną kwotę. jeśli strona jest wyjątkowo popularna lub reklamy związane z tematyką strony są szczególnie drogie. Łącznie może uzbierać się z tego spora suma.50 . łączyć materiały w oddzielne „kanały".google. Profesjonalne tworzenie stron WN 1W Program partnerski Google AdSense Jednym z najpopularniejszych programów partnerskich w internecie jest AdSense firmy Google. Usługa polega na umieszczeniu na stronie kodu. Zarządzanie kontem odbywa się z poziomu strony W W W . Rysunek 12. nielegalnych materiałów itd. Rysunek 12.9. kiedy użytkownik kliknie którąś reklamę. dopóki pracownik Google nie zbada Twojej strony. 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 . Zanim treść strony zostanie zweryfikowana przez pracowników Google.10. most of the equipment shown in the book can be constructed for under $30. co zilustrowano na rysunku 12. co pozwala monitorować reklamy w różnych częściach strony. Not only Is the book full of Hollywood techniques. musisz się najpierw zarejestro www.314 Joomla!.

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

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

który zademonstrowano w ramach opisu programu Google AdSense. wprowadź w treść artykułu następujący tekst: {amazon id='B000W3QTBE' align='LEFT'} . w jaki sposób będzie opływany przez tekst (opcjonalne.com/view-document-details/159-amcizon-associates.00 $0.de i 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.00% $0. możliwe ustawienia to L E F T i RIGHT). Amazon.uk. Możesz zdecydować się na Mod HTML. np.html Po zakończeniu instalacji musisz wprowadzić numer ID programu partnerskiego w ustawieniach dodatku (zobacz rysunek 12.co.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. które zamierzasz umieścić na stronie.co. Dodatek współpracuje poprawnie z większością wariantów językowych programu. który umożliwia wstawienie reklam z programu partnerskiego bezpośrednio w treści artykułu.com.15). dlatego musisz najpierw znaleźć wybrany przedmiot.joomlaspan. 0 4.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ć. ID produktu można odczytać z jego adresu na stronie Amazona. Amazon. • Łączenie z zasobami zewnętrznymi ysunek 12. ponieważ na jego podstawie naliczane są zyski Twojej strony.iilH m m » 'Jä&zs&äj Conversion 0. Musisz znać ID produktów.00 Glossary Click here to view the referral rate tier chart.00 $0.amazon. Rozszerzenie możesz pobrać z: http://extensions. Inne z ustawień wpływają na wygląd prezentowanych reklam. Dzszerzenie Amazon Associates Rozszerzenie Amazon Associates jest dodatkiem.00% b y referring 7 more items) Jul! report .Rozdział 12.fr.14. Amazon.00% Do zarządzania reklamami Amazona możesz wykorzystać jedno z dostępnych rozszerzeń Joomla!. lub wybrać rozszerzenie stworzone specjalnie dla programu partnerskiego Amazona. Adres przedmiotu będzie przypominać poniższy (ID produktu zostało wyróżnione): http://www. Parametr Amazon ID jest kluczowy.

Aplikację APF możesz pobrać na stronie: www. uk/demo/apf bridge .com for a product and looking at the uil. który pozwala Ci stworzyć wirtualny sklep Amazona na Twojej stronie. zdjęciem okładki i innymi informacjami. Niektóre edytory WYSIWYG niepoprawnie odczytują kod reklam. stworzona z zastosowaniem biblioteki PERL. deanmarshałł. że każda reklama jest oddzielnie pobierana z serwerów Amazona.<br /><br /> The ui will look something l k this:<br !> http:/Awi*Ai. Jeśli produkt nie jest poprawnie wyświetlany. Konfiguracja rozszerzenia Amazon Associates © S'ryb Z! i Pdld ogą O O 1 włg yoi « . że działanie Twojej strony może zostać spowolnione. połączona z API usług sieciowych Amazona. Amazon Products Feed Brigde Dużo potężniejszy.318 Joomla!. co doprowadza do błędów zapisu.16 przedstawiono przykładową stronę Joomla! zawierającą funkcję wyszukiwania produktów i wyświetlającą książkę wraz z opisem. Profesjonalne tworzenie stron WN 1W Rysunek 12. komponentów. W praktyce oznacza to.<br/> You can find the id by searching amazon. Amazon Products Feed Bridge to pakiet modułów. mrrat. a następnie ponownie wprowadź kod odpowiedzialny za reklamy w treść artykułu. ale pamiętaj. jest pakiet Amazon Products Feed (APF).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ń. jeśli pracuje ona na łączu o niskiej przepustowości lub serwer Amazona * jest przeciążony. Za p o m o c ą rozszerzenia APF Brigde możesz połączyć system APF z Joomla!. a także dodatek. 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. Na rysunku 12. Jest to aplikacja open source.amazon. Umożliwia wyświetlanie aktualnych produktów Amazona na Twojej stronie.uk (United Kingdom) V. ceną. od przedstawionego wcześniej rozszerzenia. co.15. spróbuj wyłączyć na chwilą edytor WYSIWYG.

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

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

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

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

protokoły niezgodności.2. poręczenia kredytów studenckich. abela 12. odpowiedzi na wnioski o wydanie zaświadczeń z przebiegu studiów (wyciągi) i poświadczenia. 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. raporty z wynikami testów oraz żądania 1 raportowanie wyników testowych.2. wnioski o wydanie zaświadczeń z przebiegu studiów (wyciągi). wnioski o kredyt studencki. Kategorie formatów dokumentów standardu X12 — ciąg dalszy Kategoria Serwisowanie produktów (PSS) Co zawiera Definicje dotyczące rejestracji produktu. ewidencję kursów edukacyjnych. uprawnienia do prowadzenia samochodów dostawczych.1. karty charakterystyk substancji niebezpiecznych. Skróty Metoda Skrót APERAK AUTACK. Nie uwzględniono w nim określonego zestawu kategorii jak w X l 2 .Rozdział 12. powiadomień o serwisowaniu produktu. Informacje dla studentów (STU) Definiuje podania o przyjęcie do instytucji edukacyjnych. (SQQ) wymianę informacji na temat uprawnień do prowadzenia samochodów dostawczych oraz ich bezpieczeństwa. 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. roszczeń serwisowych. • Łączenie z zasobami zewnętrznymi abela 12. 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 . ogłoszeń promocyjnych oraz zgłaszania i autoryzacji zwrotów handlowych. 323 Jakość i bezpieczeństwo Standardy określające dane toksykologiczne z testów przeprowadzanych na zwierzętach. nakaz zwrotu kredytu studenckiego oraz weryfikację statusu i spłaty kredytu studenckiego. potwierdzenia przyjęcia na studia. odpowiedzi na roszczenia serwisowe. podania o stypendium i pomoc finansową.

Profesjonalne tworzenie stron WN 1W Tabela 12. 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!.2.

• Łączenie z zasobami zewnętrznymi Tabela 12.Rozdział 12. 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 .2.

2.326 Joomla!. 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. Profesjonalne tworzenie stron WN 1W Tabela 12. ang. Message implementation guide) Instrukcja rozmieszczenia i zamocowania ładunku Prośba o zmianę zamówienia .

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 . • Łączenie z zasobami zewnętrznymi abela 12.2.Rozdział 12.

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!.2. Profesjonalne tworzenie stron WN 1W Tabela 12.

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

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

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

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

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

org</authorUrl > <versi on>l. Wprowadź poniższy kod w edytorze tekstu i zapisz go pod nazwą comscrape. Wprowadź poniższy kod i zapisz go pod nazw\scrape. służy wyłącznie do zarejestrowania komponentu w systemie.org</authorEmai1> <authorllrl >www. których tytuł zawiera podaną przez odwiedzającego frazę. 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. Wszystkie prawa zastrzeżone. Profesjonalne tworzenie stron WN 1W Plik deskryptora Plik deskryptora w tym przypadku jest prymitywny.0" <name>Scrape</name> <author>Dan Rahmel</author> <creationDate>July 2007</creationDate> <copyright>(C) 2007 Dan Rahmel. 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</filename> component="com_scrape">scrape.php 5203 2007-06-15 02:45:14Z DanR $ * @copyright Copyright (C) 2007 Dart Rahmel. * @package ScreenScrape * Pobiera wartość pola formularza. Z pobranych danych zostanie usunięty kod HTML. z której zostaną pobrane informacje. a uzyskane informacje.xml: <?xml version="1.5.</copyright> <authorEmail>admin@joomlajumpstart. po ponownym sformatowaniu.0</versi on> <description>Pobiera wartość pola z formularza.php</filename> informacje.gov" label="Strona zewnętrzna" description="Adres strony.</description> Kod komponentu Scraper Zadaniem komponentu jest wyszukiwanie na zewnętrznym portalu książek." /> </params> </i nstal1> component="com_scrape">scrape.0. Wszystkie prawa zastrzeżone.0" encoding="utf-8"?> type="component"> «install version="1.jooml a jumpstart.334 Joomla!. będą przesiane do przeglądarki użytkownika odwiedzającego Twoją stronę.

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

że usługa jest darmowa. pozwala Ci zrozumieć. który łączy API Map Google z systemem Joomla!. ale także dodatkowe dane.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.336 Joomla!. Komponent Joomlamap Google udostępnia darmową usługę. Jest to rekompensata dla Google za to. za pomocą którego Twój program może pobierać mapy z serwerów Google. 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. Ponieważ mapa pobierana jest z serwera Google (informuje o tym stosowny komunikat). Interfejs komponentu pozwoli użytkownikowi wprowadzić adres w pole tekstowe. jak przedstawiono to na rysunku 12. jak przedstawiono to na rysunku 12. Komponent odczyta wartość z formularza.com/apis/maps . komponent zostanie przeładowany.19. Wprowadź adres w pole adresu komponentu Joomlamap Formularz wyszukiwania mapy Wprowadź adres Gryf ino| ViVswlGt lokalizację Gdy użytkownik kliknie przycisk Wyświetl lokalizację.20. API Map Google Google udostępnia bardzo dobre i darmowe API.google.zip i zainstaluj komponent w systemie Joomla!. jak funkcjonuje komunikacja ze zdalnym API.19. tym razem wartość parametru task będzie ustawiona na goto. Kompletną listę funkcji API (wraz z przykładowym kodem) znajdziesz na: www. która pozwala webmasterom wstawić na swoich stronach zdjęcie satelitarne lub mapę (lub oba elementy jednocześnie) danej okolicy. samodzielna implementacja takiego rozszerzenia ma wysoką wartość dydaktyczną. 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. Rysunek 12. zawiera odpowiednie znaki wodne. W przypadku zmiany strony musisz dopasować wyrażenie regularne przekazywane funkcji preg_match(). Profesjonalne tworzenie stron WN 1W <form id="forml" name="forml" method="post" acti on="i ndex. Chociaż dostępny jest już komponent.

php</fi1ename> .</copyright> <authorEmai1>admi n@joomlajumpstart.5. Wprowadź poniższy kod w edytorze tekstu i zapisz go pod nazwą com Joomlamap. joomlajumpstart .0" type="component"> <name>Joomlamap</name> <author>Dan Rahmel</author> <creationDate>July 2007</creationDate> <copyright>(C) 2007 Dan Rahmel.org</authorEmai1> <authorUrl>www. która korzysta z API Map Google. Aplikacja internetowa Mapy Google tworzy obiekt map. Aby zdobyć klucz. musisz zarejestrować się na poniższej stronie: www. typ widoku (widok ulic. • Łączenie z zasobami zewnętrznymi ysunek 12. Joornlal jest wolnym oprogramowaniem dostępnym na licencii GNU GPL. dlatego klucz przypisany stronie www.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. aby ustawić takie parametry. Dodatkowo system Google rozróżnia wielkość liter w adresie. 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. hybrydowy) i inne. Wszystkie prawa zastrzeżone. ejestracja w systemie Każda strona. com/apis/maps/signup.przyklad.xml: <?xml version="1. służy wyłącznie do zarejestrowania komponentu w systemie.html lik deskryptora Plik deskryptora w tym przypadku jest prymitywny. jak lokalizacja. mapa nie zostanie zwrócona.20. Jeśli klucz wysłany wraz z żądaniem mapy będzie niewłaściwy.google. Oznacza to.com/mapa nie zadziała na stronie www. który można manipulować za pomocą kodu JavaScriptu. że musisz mieć oddzielny klucz dla serwera testowego i serwera produkcyjnego.przyklad. zbliżenie.Rozdział 12.0.0" encoding="utf-8"?> <instal1 version="1.org</authorllrl> <versi on>l. satelitarny.com/Mapa. musi mieć przypisany unikatowy klucz.

SfldQuery)- <script src="http://maps.com/maps?fi1e=api&amp:v=2&amp. Wszystkie prawa zastrzeżone. "<p>": echo "<p>Lokalizacja: " . // Pobierz wartość poła location z formularza IfldLocation = JRequest::getVar('location') : // Usuń wszystko. /** <?php * @version $Id: joomlamap." /> </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. .?!$()\'\"]/".338 Joomla!. 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(). Profesjonalne tworzenie stron WN 1W <admini stration> <menu>Joomlamap</menu> <files> <fi 1 enarne component="com_jooml amap">jooml amap.key=" iuserKey . Wprowadź poniższy kod w edytorze tekstu i zapisz go pod nazwajoomlamap. break: default: } displayAddressEntryO. $fldQuery = preg_replace("/[^ąćęłńóśźża-zĄĆĘŁŃÓŚŹŻA-Z0-9 //" echo "<hl>Twoja ?> lokalizacja</hl>": . 0).php-. 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. * @package Joomlamap * Komponent łączący z usługą Map Google.php 5203 2007-06-15 02:45:14Z DanR $ * @copyright Copyright (C) 2007 Dan Rahmel. break.google. " type="text/javascript"></script> <scri pt type="text/javascript"> . SfldLocation . "". // Przetwórz dane przesłane w { formularzu function gotoLocation() SuserKey = $params->get('key'. co mogłoby być kodem HTML itp.

1419). -122. 13): geocoder = new GC1ientGeocoder(): 339 } } function showAddresstaddress) { if (geocoder) { geocoder. "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. map. } } i //]]> loadO.getLatLng( address. 13). function(point) { if (!point) { alertiaddress + " not found"): } else { map.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 } ?> .getElementById("map")). marker.setCenter(new GLatLng(37.addControl (new GSmalIZoomControl O): } ). map.4419. map.Rozdział 12.setCenter(point.php?option=com_joomlamap>" . showAddress('<?php echo ifldLocation. </script> <?php echo "<a href=index. • Łą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.addOverlay(marker). var marker = new GMarker(point).openlnfoWindowHtml(address).

które zostałyby zmarnowane. Informacje zwracane są w formacie X M L i zawierają adres oraz kod ZIP. . znajdzie się także adres serwera testowego.shippingapis.dU lub https://secure. musisz założyć konto na stronie USPS. Intencją USPS jest dopuszczanie do głównej bazy wyłącznie dokładnie przetestowanych aplikacji.21. 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. korzystając z opcji Rozszerzenia/Instalator. co przedstawiono na rysunku 12. ID użytkownika. Wyszukiwanie adresów z zastosowaniem XML USPS (U. Postal Service) udostępnia darmową usługę pozwalającą na zautomatyzowane pobieranie danych adresowych 1 . tłum.com/registration/ Formularz rejestracyjny wymaga wprowadzenia podstawowych informacji. Po przejściu do ustawień komponentu możesz ustawić klucz dostępu do Map Google.com/ShippingAPITest. 1 Narzędzie USPS pozwala wyszukiwać adresy na terenie Stanów Zjednoczonych.340 Joomla!.shippingapis. niezbędne do korzystania z usługi. Po wypełnieniu i przesłaniu formularza otrzymasz e-mail. Adres ten może przyjąć postać http://testing.com/ShippingAPlTest. Rysunek 12. Rejestracja odbywa się pod adresem: https://secure. Tym sposobem oszczędzane są zasoby USPS. jest doskonałym przykładem interakcji z zastosowaniem protokołu XML. które łączy się z aplikacją tego typu.shippingapis.21. Profesjonalne tworzenie stron WN 1W Utwórz archiwum zawierające oba pliki pod nazwą comjoomlamap.zip i zainstaluj w systemie Joomla!.dll (adresy mogą się różnić). jeśli diagnostyka byłaby przeprowadzana z użyciem głównego serwera.com. Zanim rozpoczniesz. którą otrzymasz. dane na temat państw europejskich są niedostępne—przyp.S. którzy będzie zawierać Twoje ID użytkownika. Konstrukcja rozszerzenia.

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

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

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

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

SmyState) { SmyWTID= "MYID": SmyUrl = "http://testing. Szip4.= ".com/ShippingAPITest. "</Address2>" .= ". Uruchomienie komponentu spowoduje wyświetlenie formularza. try { @Sdoc = DOMDocument::load(SmyUrl): } catch(DOMException Se) { echo '<p>' . foreach (Sparams as Sparam) { if (strlen(Szip5) > 0) Szip5 . } // 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 . który należy wypełnić.dll?" "API=ZipCodeLookup&XML=<ZipCodeLookupRequest USERID='" "<Address ID='0'><Addressl></Addressl>" . "<City>" .= Sparam ->textContent : } return Szip5 . SmyWTID .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. SmyCity. ". } Szip5 = "". Szip4 . 345 . "<Address2>" . '</p>'.shippingapis. • Łączenie z zasobami zewnętrznymi function getZip(SmyAddress. . print_r(Se) . .Rozdział 12.= Sparam ->textContent: } Sparams = Sdoc->getElementsByTagName('Zi p4'): foreach (Sparams as Sparam) { if (strlen(Szip4) > 0) Szip4 . "</State>" . zainstaluj komponent w systemie.'">" . "-" . SmyAddress . w panelu administratora. SmyState . Szip4 = "": Sparams = Sdoc->getElementsByTagName('Zi p5'). SmyCity . "</City><State>" "</Address></Zi pCodelookupRequest>". ": Szip5 .

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

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

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

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

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

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

Możesz zmienić ustawienia modułu Breadcrumbs w interfejsie administratora Moduł: Szczegóły ł y p modułu: mod_bi e.200 dla zapytania Nnts alul Bolls Fllmmaking. provides how-to information on the day-to-day techniques .budget filmmakers. Popular iKiffl I • Home I I » Joomla! Extensions i Joomla! License Guidelines 1 Welcome to Joomla! 1 What's New in 1.5. the book.352 Joomla!.f-opm .31k . Profesjonalne tworzenie stron WN 1W Rysunek 13. Joomla! ma wbudowaną funkcję nawigacji okruszkowej.[ Hum Rysunek 13. your source for Nuts and in-II'Mii ] Linki sponsorowane Nuts. np.mil Bolts Filiiim<ikiiitj including storytelling .com/vvps/product/cvvs_hom8/702196 .hopi* . możliwość ustawienia Znaku rozdzielającego. 3D rendering. motion graphics. by Dan Pahrnel . Ekran ustawień tego modułu zilustrowano na rysunku 13..idcrumbs Tytuł.. u<l i ' i r iiiin t i r l t o'.Elsevier Nuts <m<l Bolts Filmmaking...Filtr Writers Store.[ •. film technology. A spokes person sa for better R A M was due to some fool increasing t speed. ] : Main page containing Nuts and Bolts Filmmakimj book information i n c h i n g tableof-contents.6. która wpływa na pozycję strony ¿ 4 J o o m l a ! Joomla! Overview Yesterday all servers iri the U..else--ier.36k . . www • . Nuts and Bolts Filmmaking • Practical Techniques . buses will be told to slow down i motherboards.. shooting tips. went out on strii more R A M and better CPUs. book description. wybierając z menu w interfejsie administratora opcję Rozszerzenia/Moduły. News T h e Community Szukaj..6. .) Filmmaking is a site focused on Nuts . an ideal book for the rapidly growing number of low. Rysunek 13.F'odobne stiony .S. (Znaleziono w 0.1 0 spośród okoto 46. Moduł ma kilka ustawień.08 sek. and additional resources.Filtr Filmmaking ..standard and special Send us your inquiries The producers will contact you Nuts and Bolts Filmmaking. > www cvisual. Domyślnie symbol rozdzielający stanowią dwa znaki większości ( » ) . 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..5? 1 Overview Moduł Breadcrumbs znajdziesz.com/ .p • 9k • Kopia • Podc • Nuts and Bolts Filmmaking . 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 . In future.4.Nuts arid Bolts arid Guerilla. Przypisanie m e n u Pozycje menu: Pożycie wybrane: Wszystkie O Brak O Zaznaczone A . www.Podobne ¿irony .

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

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

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

które są mniej popularne.' '-*) 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. .356 Joomla!. motywacje. która na naszej liście jest dopiero na czwartej pozycji. Poprzez dobór słów kluczowych. Domyślnie wszystkie słowa kluczowe sortowane są w porządku alfabetycznym. Zauważ. ] 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. Rysunek 13. klikając nagłówek odpowiedniej kolumny. Weź pierwszych 30 terminów. produktywność. rozwój osobisty. 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. rozwój duchowy. Najpopularniejsze słowa kluczowe przyciągają najwięcej ludzi. jesteś w stanie przyciągnąć w efekcie więcej odwiedzających. pomoc duchowa. rozwój duchowy. Znajomość popularnych wariantów głównych słów kluczowych jest krytyczna.im u i w o i z o n e propozycje srow Kluczowych.8). ponieważ inne strony. motywacja pracowników. uzyskałyby lepszy rezultat.1 liczba Konkurencja wyszukiwań: gindnia Przybliżona śi. grupy wsparcia. W praktyce oznaczałoby to znaczącą utratę pozycji.8. jeśli chce się efektywnie stosować strategię SEO. psychologia motywacji. Na pierwszym miejscu znajduje się motywacja. dla których porządek słów kluczowych byłby właściwy. że początkowa lista słów kluczowych nie do końca odpowiada tym najpopularniejszym dla danej grupy docelowej. i dodaj je do listy początkowej — zachowując wcześniejsze pozycje. . ale oznaczają także największą konkurencję.posortowane według trafności grupa wsparcia Niewystarczające 2 m rozwój osobisty rozwój duchowy motywacja samodoskonalenie [. Możesz zmienić to ustawienie. które znalazły się na liście wyszukiwania. 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.

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

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

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

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. Wartość atrybutu alt wyświetlana jest po najechaniem kursorem myszy na dany obrazek 2. Na każdej odwiedzonej stronie wyświetlany jest jej PageRank (w skali od 1 do 10). Jeśli jednak obrazek służy wyłącznie jako ozdobnik i nie jest bezpośrednio związany z treścią strony. Rysunek 13.12.technologia tworzenia aplikacji internetowych. Asynchroniczny JavaScript i XML) . w sposób asynchroniczny.11. 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. ż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 . ŁoflowjMiie i lejestiMja 4' szukaj A Zobacz str onę gl A J A X (ang. Profesjonalne tworzenie stron WN 1W Rysunek 13. możesz wykorzystać atrybut alt i wstawić słowa kluczowe. w oknie przeglądarki pojawił się mały pasek opisany j a k o PageRank. poprawisz pozycję strony. co zilustrowano na rysunku 13. . kiedy zgodzisz się na zapisywanie odwiedzanych stron i wyszukiwanych haseł za pomocą narzędzia Google Toolbar. opisz go odpowiednio.360 Joomla!. Odpowiedni tekst należy wprowadzić w pole Image description. Pamiętaj. Ma to umożliwiać bardziej dynamiczną interakcję z użytkownikiem niż w tradycyjnym modelu.11. 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. jak przedstawiono to na rysunku 13. Jeśli dany obrazek to diagram procesu biznesowego. w której interakcja użytkownika z serwerem odbywa się bez przeładowywania całego dokumentu. Jeśli będziesz korzystać z tej techniki z umiarem.10. w którym każde żądanie nowych danych wiąże się z przesłaniem całej strony HTML.

ystem wymiany odnośników Najlepszą i najskuteczniejszą metodą na poprawę pozycji danej strony jest wzrost liczby prowadzących do niej odnośników.Rozdział 13.pl: kobieta miała 6 promili alkoholu Kraków: kobiety zatruły się czadem Od początku sezonu widać. Jest to darmowa usługa.pl) jest wart dużo więcej niż setki odnośników na mniej popularnych stronach. że umieścisz na swojej stronie odnośniki do witryn użytkowników systemu.mówi w rozmowie z Onet. W ten sposób wszystkie wizyty będą rejestrowane na kilka sposobów. jest usługa śledzenia odwiedzających Google Analytics. która wymaga umieszczenia małego fragmentu kodu JavaScript na Twojej stronie. Onet. • Pozycjonowanie i marketing w wyszukiwarkach internetowych iysunek 13. Jeśli skorzystasz z systemu wymiany odnośników. 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. Większość wyszukiwarek interpretuje tę liczbę jako wyznacznik jakości danej strony. Jednym z narzędzi. Więcej informacji na ten temat możesz znaleźć w podrozdziale „Google Analytics". 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 . jak mogłoby się wydawać.12. 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 . Ważniejsze jest.tvn24. Jan Szturc. . na innych stronach pojawią się odnośniki prowadzące do Twojej strony. to w zamian za to. Nie chcę się jednak wypowiadać na ten temat . pierwszy trener Adama Małysza " m ' O # Analiza rankingu strony dostarcza wielu podstawowych informacji. 5ageRank odzwierciedla mpularność lanej strony v skali od 1 do 10 361 M O m t . Umowy tego typu mogą bardzo pozytywnie wpływać na pozycję strony i ruch na niej. niż żeby cieszyła się ogólną popularnością. aby strona była odnajdywana przez użytkowników zainteresowanych daną tematyką. że w letnich przygotowaniach coś za szwankował. p l . Nie wszystkie odnośniki są jednak traktowane równo. które ułatwiają nakreślenie właściwej strategii.pl/ v j G Wyszukaj * < .M * Zakładki' [ PageRank to opinia Ustawi strony (8/10) o n e t pl Onet poleca Nareszcie weekend! .onet. Pojedynczy odnośnik na popularnej stronie z wysokim PageRank (np. o. Nie jest to jednak na tyle kluczowy czynnik dla optymalizacji strony. lat temu kometa "udusiła" Amerykę . Jest to jeden z najważniejszych czynników wpływających na PageRank.pl.

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

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

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

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

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

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

Użytkownicy powinni tworzyć hasła składające się z dwóch słów i liczby. Jeśli chcesz zdobyć więcej szczegółów na ten temat. W dalszej części tego rozdziału dowiesz się.368 Joomla!. Większość udanych ataków brute-force polegała na wykorzystaniu raczej nazw użytkowników niż haseł. .. co ma na celu sprawdzenie. W filmach hollywoodzkich . hasło ' 'jest tak często stosowane jako hasło. Hasło powinno zawierać cyfry. jak i zwykłych użytkowników. wiele informacji o bezpieczeństwie w intemecie udostępniono za pośrednictwem United States-Computer Emergency Readiness Team (US-CERT). Ataki na hasta Istnieją programy.gov) znajduje się wiele powszechnie dostępnych publikacji zarówno dla użytkowników posiadających wiedzę techniczną.. 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"). które próbują naruszyć bezpieczeństwo strony zautomatyzowanymi atakami typu „brute-force" („na siłę") na system haseł. jak skonfigurować serwer WWW. Ponieważ słowo . 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. żeby zmniejszyć prawdopodobieństwo penetracji z użyciem tych lub innych metod. haker często próbuje zestawiać je z poszczególnymi nazwami użytkowników z listy. czy ktokolwiek wykorzystał je jako hasło do swojego konta. szansa powodzenia ataków słownikowych lub ataków brute-force jest prawie zerowa. Ataki te są najczęściej prowadzone z wykorzystaniem słowników często spotykanych fraz i haseł. Na stronie internetowej US-CERT (www. Atak tego typu polega na próbie uruchomienia nieautoryzowanego kodu SQL poprzez wykorzystanie niedostatecznego filtrowania danych trafiających do zapytania SQL. system PHP i instalację Joomla!.us-cert. SQL Injection Jedną z najczęstszych i najefektywniejszych form internetowego ataku jest SQL Injection (dosłownie „zastrzyk SQL"). Hasło powinno zawierać małe i wielkie litery. po uruchomienie destrukcyjnej procedury. Zawsze zadziwiające jest odkrycie. prawdziwi hakerzy są dużo mniej wybredni. 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. Dlatego zaleca się chronienie listy użytkowników przed ogólnym dostępem. jak wielu użytkowników wykorzystuje słowo „hasło" lub „1234" jako swoje hasło systemowe. Szkody spowodowane działaniem tak spreparowanego kodu mogą być ogromne — od ujawnienia poufnych informacji.

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

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

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

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

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.html. Więcej informacji na temat pf możesz znaleźć na www. • Bezpieczeństwo Joomla! 373 sporej porcji informacji o Twoim systemie. która pośredniczy w ruchu między serwerem a internetem. ponieważ rozpoznanie słabości systemu w y m a g a wykorzystania pełnej wiedzy. 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. Jeśli haker posiada wiedzę na temat udostępnianych aplikacji i o systemie operacyjnym. Blokując sfałszowany ruch. Jeśli j e d n a k T w o j a strona j e s t przechowywana na starszym serwerze. 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 . dlatego powinieneś zrobić to samodzielnie z wszystkimi katalogami dodatków dla systemu Joomla!. stateful firewalls). większość rozszerzeń i szablonów nie podejmuje działań prewencyjnych tego typu. od nazw plików konfiguracyjnych. który rozprzestrzenia atakujący kod na komputery osób postronnych. zanim trafią do miejsca przeznaczenia. uruchamiają atak typu DoS za pośrednictwem wirusa lub robaka. 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 . a także by osiągnąć punkt krytyczny fałszywych żądań. Jest to znane j a k o distributed denial of service attack. Stwarza to k o m p u t e r o w i . N a j c z ę s t s z ą f o r m ą tego ataku jest przeciążenie routera lub serwera wieloma żądaniami. zawiera funkcję synproxy. O c z y w i ś c i e . Bardziej prawdopodobne jest. aby uniknąć wyśledzenia. 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. Hakerzy. którą ma zapora stanowa. p r z e c h o d z ą c przez różne komputery i routery. który m a zapobiec m o ż l i w e m u wtargnięciu. czy odpowiednia dyrektywa została wyłączona.org/faq/pf. Filtr pakietów w O p e n B S D . 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 . '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. może dowiedzieć się niemal wszystkiego. że ta forma ataku zostanie przeprowadzona ręcznie przez hakera. zwany pf. Niestety. Większość ataków DoS można odeprzeć tylko na poziomie sprzętowym. 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. znane jako zapory stanowe (ang. sprawdź. upewnij się. p o ogólne informacje o systemie. 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 .Rozdział 14. Specjalne firewalle. 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. więc jeśli zarządzasz serwerem. atakujący wysyła kolejne żądania resetu i powtarza cały proces. 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 .openbsd. ma tę s a m ą rolę. że masz dobry firewall.

Dane w sieci W W W są wysyłane i odbierane w formacie HTTP hermetyzowanym wewnątrz pakietów. że s t r o n ą j e s t zabezpieczona. rejestracji.3. i n f o r m u j ą c . u ż y w a n e g o do n o r m a l n e j komunikacji. 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 .pl. N a s t ę p n i e musisz u k r y ć („Nie p u b l i k u j " ) moduł logowania. zostanie wyświetlony ekran l o g o w a n i a . k o r z y s t a j ą c z a d r e s u U R L . W tych sytuacjach warto rozważyć zakup certyfikatu bezpieczeństwa SSL. Rozwiń ramkę Parametry: Systemu i u s t a w o p c j ę Połączenie SSL na Włączone. e-commerce lub może nawet interfejs administracyjny m o g ą wykorzystać szyfrowaną komunikację. 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. taki j a k na r y s u n k u 14.2. Warto odwiedzić stronę Verisign (iwww. który umożliwia szyfrowanie ruchu między przeglądarką a serwerem W W W . 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). że odnośnik w menu będzie zaczynać się od https://. j a k p r z e d s t a w i o n o to na rysunku 14. jak pokazano to na rysunku 14. 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. s n i f f ) przesyłanych pakietów. 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!. . z prywatnymi informacjami. 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. jak działają certyfikaty i w jaki sposób zapewniają szyfrowanie danych. 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. 5 W przypadku Apachc odpowiada za to dyrektywa ServerRoot—przyp. 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. Po zainstalowaniu certyfikatu SSL na serwerze W W W powinieneś móc p o ł ą c z y ć się ze stroną. To tyle! Kiedy użytkownik kliknie odnośnik na stronie głównej. t a k i e g o j a k https://www. 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. 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. 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. 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 . które zostały przechwycone. M o ż e s z także wykorzystać technologię przełączania J o o m l a ! . P r o g r a m p o d s ł u c h u j ą c y (np.com). tak aby niezabezpieczone logowanie było niedostępne. 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. Ta opcja sprawi. Utwórz n o w ą pozycję menu.verisign. HTTP secure). ż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 . 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 . tłum.374 Joomla!.przvklad. żeby dowiedzieć się.1. 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. 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 ten sposób strony logowania. 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. podczas gdy reszta komunikacji ze s t r o n ą j e s t nieszyfrowana.

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.Rozdział 14.. .Wyloguj Wyświetla standardowe stiony Logowanie i Wylogowanie Szczegóły pozyc ji menu Parametry*.3.2. 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../ Q I J Typ pozycji menu Zaloguj . 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 .*«».php?option=com_useriview=login W. ftodstawowe • P<itametry: «systemu P*k3Ż tytut sir co ¡i Nie * Tak T. • Bezpieczeństwo Joomla! tsunek 14.1.«. ląc:«: index... Istawianie opcji dołączenie SSL i a Włączone U P o z y c j a m e n u : [ utwórz] yN . Kolejność B ^ g Specjalny W nowym ok me z pask lem nawigacyjnym W nowym oknie bez paska nawigacyjnego łysunek 14.

z n a j d u j e się więcej informacji na ten temat).376 Joomla!. która wymusza użycie pliku . 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. ponieważ uruchamianie skryptów (takich jaki P H P lub Perl) nie jest obsługiwane przez serwer W W W . 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 . dobrze to przeanalizuj. serwery te s ą bardzo dobrze chronione i zbadane pod kątem możliwych błędów. blokowanie PHP. Pomimo to istnieje kilka punktów. jeśli nie w p r o w a d z o n o żadnych zmian w konfiguracji. zanim zmienisz którekolwiek z domyślnych ustawień. 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.txt. domyślna instalacja Apache spełni większość w y m o g ó w bezpieczeństwa.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 " (. 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 . 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ę. Możesz także otworzyć wiersz poleceń i wykorzystać komendę ren do zmiany nazwy pliku. Uprawnienia dostępu. 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 . 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 .htaccess z inną nazwą. w których możesz nieco poprawić bezpieczeństwo systemu. tuż po zainstalowaniu.txt na . dlatego bezpieczeństwo A p a c h e nie jest g ł ó w n y m problemem. A b y go aktywować.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 . a d r e s ó w (w rozdziale 13.htaccess. Dlatego też. 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. Zabezpieczanie serwera Apache S e r w e r A p a c h e . gdy T w ó j system j e s z c z e z niego nie korzysta. Konfiguracja .conf. niemożliwa jest zmiana nazwy pliku na samo rozszerzenie (tak dla systemu wygląda plik . za pomocą Eksploratora Windows. Z a r ó w n o Apache. Silniki uruchamiania skryptów są najbardziej bezpośrednio narażone na atak. tylko przez oddzielną wtyczkę lub komponent. 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 . Dzięki temu plikowi włączysz mod_rewrite w sytuacji. a także inne ustawienia zabezpieczeń m o g ą zostać w nim określone. Ten problem możesz rozwiązać poprzez dodanie dyrektywy w pliku httpd. W r a z z pakietem instalacyjnym Joomla! dostarczany jest gotowy do użycia plik .Search Engine Friendly — SEF). W systemie Windows. zatem zostały przetestowane i sprawdzone w każdy możliwy sposób. jest bardzo dobrze zabezpieczony. Zaatakowanie serwera Apache jest j e s z c z e mniej prawdopodobne.htaccess).htaccess pod n a z w ą htaccess. zmień po prostu nazwę pliku z htaccess. Plik . ochrona hasłem.htaccess. . D l a t e g o też.

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 .htpasswd).conf wyłączy wyświetlanie sygnatury: ServerSignature off rrektywa ServerTokens Sporo informacji jest dostarczanych w sygnaturze zwracanej w odpowiedzi na każde żądanie strony.htaccess. m o ż e s z s k o p i o w a ć poprzedni fragment i zamienić wyrażenie FilesMatch na poniższe: <Fi1esMatch . które nie powinny być dostępne przez przeglądarkę (np. • 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. S ą to (w porządku malejącym): Fuli. 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 . powinieneś natrafić na kod podobny do poniższego: <FilesMatch "\. dostarczając dodatkowych informacji. ile informacji będzie d o s t a r c z a n y c h w odpowiedzi na żądanie strony. k o m u n i k a t o błędzie). 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. 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. nazwa systemu operacyjnego itd. 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 . N i e s t e t y . 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. Jeśli przejrzysz dokładnie plik konfiguracyjny.Rozdział 14. z jakiego typu serwera korzystasz. takich jak numer wersji. OS. więc raczej nie ułatwiaj m u sprawy. 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.conf powinna zawierać wpis blokujący dostęp przeglądarki do pliku .log). 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. Mi ni mai. dostępną w Apache. g d y z o s t a j e w y g e n e r o w a n a strona (np. On i tak wie (wie to także nawet początkujący haker).log$"> ."\. A b y z a b l o k o w a ć dostęp do p l i k ó w dziennika.htaccess (a także p l i k ó w . pliki . Minor. Powinieneś dodać następującą dyrektywę. Major i Prod. D o m y ś l n a k o n f i g u r a c j a w pliku httpd.

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

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

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

możesz ustawić parametry edytorów tekstu wykorzystywanych przez Joomla!.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. • Bezpieczeństwo Joomla! 381 ezpieczeństwo Joomla! System Joomla! został z b u d o w a n y tak. którymi można poprawić kilka j e g o słabych punktów. 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". które w y m a g a j ą uwagi. . hakerzy w y n a j d u j ą n o w e metody omijania zabezpieczeń.php/topicJ2522L0. 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. p o p r a w ręcznie artykuły. czy pliki instalacyjne zostały usunięte z serwera W W W 6 . A b y się z a p i s a ć . Zamiast w y ł ą c z a ć tę f u n k c j ę . Cały czas pojawiają się n o w e zagrożenia. Gdyby haker uruchomił p o n o w n i e proces instalacji na serwerze z działającą stroną.Rozdział 14. Prawie zawsze możliwe jest ustawienie opcji. Tę drugą potrzebujesz tylko w sytuacji. Istnieje kilka sytuacji. Wówczas będziesz o t r z y m y w a ł e . org/content/view/39/132/—przyp.html suwanie plików instalacyjnych Po u k o ń c z e n i u instalacji u p e w n i j się. że ktoś spróbuje przeprowadzić atak X S S na system. 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. istnieje prawdopodobieństwo. że nieoczyszczony kod znajduje się j u ż w bazie danych. które są dostępne dla użytkowników. 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.joomla. których dotyczy problem. że ograniczyłeś możliwości edytorów. sprawdź. Aby do tego nie dopuścić. 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 .org/index. p o n i e w a ż kod zostanie uznany za niebezpieczny. Korzystanie z aktualnej wersji Joomla! zmniejsza ryzyko włamania. 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. Podczas wprowadzania zmian wybierz opcję No Editor i w s t a w właściwy kod. tłum. Upewnij się. Korzystając z Plugin Managera. joomla. 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 . a Czyść przy starcie nie. jak to opisano wcześniej w podrozdziale „Cross-Site Scripting (XSS)".08. jeśli przypuszczasz. możliwe byłoby całkowite usunięcie jej zawartości. Istnieje jednak spora liczba drobnych ustawień. wstawieniu do artykułu filmu z YouTube). Domyślnie włączona jest tylko opcja Czyść podczas zapisu. aby zapewnić bezpieczeństwo bez zmian w konfiguracji. Joomla! Help Site — Browser Installation (the easy way)[online] [dostęp: 26.4). W przypadku pozostawienia folderu 1 installation po zakończeniu instalacji Joomla! zablokuje działanie strony.2008] http://help.

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 .382 Joomla!.4. które u m o ż l i w i a d u ż o większą k o n t r o l ę . 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 . 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. Testy powinny odbywać się w całości na serwerze testowym. Dzięki opcji Czyść podczas zapisu z kodu zostaną usunięte niektóre elementy kodu HTML i znaczniki skryptów. czy skrypt u r u c h a m i a n y jest przez Joomla!. Domyślnie w tym polu znajduje się tylko element applet. Nawet p r y m i t y w n e testowe rozszerzenia p o w i n n y zawierać tę linię. który mógłby zostać użyty do przeprowadzenia ataku takiego jak X S S . zawierać roboczy kod i niesprawdzone rozszerzenia. komponenty lub wtyczki). Serwer testowy m o ż e być niedostatecznie zabezpieczony. Profesjonalne tworzenie stron WN 1W Rysunek 14. applet. Użytkownicy nie będą mogli wykorzystać żadnego elementu. Oczywiście. W celu poprawy zabezpieczeń powinieneś rozważyć wpisanie object. które zostaną usunięte z wprowadzonego tekstu. na w y p a d e k gdyby zostały odnalezione i wykorzystane do ataku przez hakera. że skrypt nie został uruchomiony w systemie Joomla!). zawsze dodawaj kod. 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 . możliwe są szkody różnego rodzaju. Uruchamianie wewnątrz systemu Jeśli haker uruchomi plik PHP z pominięciem systemu. G d y tworzysz n o w e rozszerzenia (moduły. iframe na tę listę. 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!. . 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. musisz być w stanie sprawdzić konfiguracje i rozszerzenia na bezpiecznym systemie.

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

Profesjonalne tworzenie stron WN 1W .384 Joomla!.

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

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

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

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

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. w postaci czatu. • • • • • . • Czego Joomla! nie potrafi 389 zalogowany jest w systemie. Forum — Komunikacja to niezbędny i kluczowy element współpracy grupowej. arkuszy kalkulacyjnych. j e s t f o r u m d y s k u s y j n e . j a k i wirtualnych. włączając w to śledzenie projektów. Rozszerzenie to wymaga jednak dalszego dopasowania. Popularne f u n k c j e aplikacji groupware to m. wspólnej pracy grupy u ż y t k o w n i k ó w . m a j ą możliwość wspólnej modyfikacji dostępnych materiałów. 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. 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. P l a t f o r m ą . 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ń. audio. Publikacja nie oznacza jednak ogólnego. 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 . d o k u m e n t ó w i konferencji). 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. Standardowa funkcjonalność groupware Groupware to oprogramowanie. Użytkownicy w s p ó ł p r a c u j ą w czasie rzeczywistym. 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 . które umożliwi dostosowywanie wyglądu strony do w y m a g a ń użytkowników. 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 . 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. wyświetlany jest inny zestaw edytorów W Y S I W Y G . Konferencje — Konferencja może być przeprowadzana w formie wideo. za pośrednictwem sieci. wydarzeniach itd. dodanych dokumentach. Namiastka personalizacji (głównie związana z profilem użytkownika) możliwa jest dzięki rozszerzeniu Community Builder. Kalendarz i zarządzanie czasem — Kalendarze wykorzystywane są do koordynacji zasobów zarówno fizycznych.in.. a wiadomości m o g ą zawierać odwołania do zasobów projektu (np. 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 . W Joomla! wszyscy u ż y t k o w n i c y oglądają ten sam szablon. a także inne f u n k c j e przydatne przy zarządzaniu. 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. ż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. który służy do organizacji. 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 ę . dostępnego w innych systemach.: • 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. publicznego dostępu do materiałów. zarządzanie zasobami i ludźmi. 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 . wyznaczanie kamieni milowych i ścieżek krytycznych. 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.Rozdział 15.

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

5ortal Wp.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. typu Prywatne wiadomości ( P M S — Private Message System). • których można . a nawet prymitywnej implementacji tej funkcji w domyślnej instalacji Joomla! praca w roli serwera poczty wykracza poza możliwości Joomla!. np.google. np.pl ma viele usług. popularny Jobline. 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. G o o g l e m a p s . m o ż l i w o ś ć stworzenia w ł a s n e j strony w r a m a c h portalu. m a j ą własne wyszukiwarki.Rozdział 15. Izrael rozpoczął i n w a z » na Stretę Gazy 1 . 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. Oferty pracy — W katalogu Joomla! znajdziesz wiele rozszerzeń do przeglądania 1 dodawania ofert pracy. Mapy — Popularną f u n k c j ą wielu portali jest dostęp do elektronicznych m a p i planowania podróży. M i m o istnienia wielu rozszerzeń. c z y jesteś fanem show? Sprawdź. ile o nim wiesz* Zobacz t a k i e : • Czyj to dekolt? Następne. zintegrowaną z w y g l ą d e m T w o j e j strony.net. np. 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ł. Konta Email — W i ę k s z o ś ć portali udostępnia u s ł u g ę poczty elektronicznej. trony 391 lin. 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.com/services). • Czego Joomla! nie potrafi iysunek 15.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. • • • • • . Google i M S N .korzystać bez opuszczania .google. którymi można zarządzać w środowisku Joomla!. jednak większość witryn tego typu korzysta z rozwiązań oferowanych przez inne firmy.2. 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". popularny A d s M a n a g e r . 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. Ogłoszenia i anonse towarzyskie — W katalogu Joomla! znajdziesz wiele rozszerzeń do zarządzania ogłoszeniami. G e o Visitors i Google Maps API). że niejedna gwiazda miała okazię zaświecić mocniej. Osobista strona internetowa — Opcja bardzo popularna na stronach typu M y S p a c e i grono. ^ "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.

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 . 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. skuteczne zarządzanie portalem w y m a g a zintegrowanego i przemyślanego panelu administracyjnego. 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. 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. 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. ponieważ oferują przewodniki. Usługi tego typu ogromnie o b c i ą ż a j ą zasoby serwera i łącza internetowe.wakacje. 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. specjalne wycieczek. jeśli stanowią one grupę docelową T w o j e j strony. 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. 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. W J o o m l a ! b r a k u j e integracji między poszczególnymi działami. 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. Sigsiu Online Business Index lub JAddresses).392 Joomla!. Muzyka i inne media — O g r o m n y rozrost Y o u T u b e . kluczowej dla uruchomienia i prowadzenia portalu. pakiety wakacyjnych i zniżki w wypożyczalniach samochodów. Weathermaster i Z Weather. 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. które generują zysk. Wygląd strony powinien być spójny. na co warto zwrócić uwagę.de. . dlatego nie są zalecane na stronach Joomla!.com). Dla J o o m l a ! m o ż n a znaleźć wiele rozszerzeń zamieszczających wyniki sportowe. które uzupełniają system o f u n k c j e tego typu. a zmiana prezentacji poszczególnych działów nie p o w i n n a nastręczać trudności. Gty — Portale zawierają z reguły możliwość brania udziału w wieloosobowych grach internetowych pewnego 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. często różnica wynosi t y l k o 15 m i n u t . które pozwala na zintegrowane zarządzanie materiałami audio i wideo udostępnianymi za p o m o c ą streamingu. 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. W tym czasie m o g ą być wyświetlane bannery. 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 . M i m o to m o ż e s z skorzystać z rozszerzania AllVideos. takich jak http://www. • • • • • • Chociaż. dzięki rozszerzeniom. Gry na stronach W W W nie z u ż y w a j ą wielu zasobów serwera. można wzbogacić Joomla! o większość funkcji portalowych.pl/. Profesjonalne tworzenie stron WN 1W • Informacje turystyczne — M i m o istnienia wyspecjalizowanych stron. 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. filmów i innych plików. Rozszerzenie Joomledia pozwala na integrację systemu Joomla! z p r o g r a m e m partnerskim Expédia. systemy rezerwacji lotów.whitepages.com 0https://affiliates. Informacje finansowe — Ceny akcji i inne informacje finansowe to podstawa portali dostarczających informacje w czasie bliskim rzeczywistemu.

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

Profesjonalne tworzenie stron WN 1W .394 Joomla!.

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. a także wiele innych.c o m m e r c e . które wzbogacają funkcjonalność strony — Wizyta na stronach tego typu pozwala przyjrzeć się realnemu zastosowaniu wielu rozszerzeń. 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 . • • . 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. 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 . e . 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ę. p o p u l a r n y c h stron o p a r t y c h na aplikacji Joomla!. Każda strona przedstawiona jest w kontekście zastosowania technologii Joomla! — znajdziesz tu listę rozszerzeń zainstalowanych na stronie. 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ę. Zastosowanie jednego lub więcej rozszerzeń Joomla!. Takie ograniczenie zwiększa szanse.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. Profesjonalny wygląd strony i przejrzysta adaptacja interfejsu Joomla! — Biorąc pod uwagę powszechną dostępność darmowych i komercyjnych szablonów Joomla!. n a z w ę s z a b l o n u . 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. które są p r z y n a j m n i e j co j a k i ś czas uaktualniane. strona nie powinna wyglądać nieatrakcyjnie. że wyszczególnione witryny b ę d ą nadal dostępne w przyszłości. listę f u n k c j i s p o ł e c z n o ś c i o w y c h . 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 . po telewizję dla dzieci.

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

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 . p i c t u r e s . 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ę.Rozdział 16. • Rzut okiem na popularne strony oparte na Joomla! • • • • • • • • • • • URL — Uruchomiona Właściciel http://www. his life. której celem jest opieka nad pięcioma domami Shakespeare'a (są jej własnością). Poll. Resources. 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. 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. also care for H a r v a r d House.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. Shakespeare Birthplace Trust Mit.nwlbio. 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 .2) r e p r e z e n t u j e o r g a n i z a c j ę charytatywną. Undergraduate.2.princeton.edu/ — 2004 397 — Uniwersytet Princeton Page Rank Google — 6/10 Programy partnerskie — Brak — com_expose. Associated Programs. 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. Postdocs. F r o m t h i s p a g e y o u can: . Graduate. Jeśli z a m i e r z a s z u d a ć się do Stratford-upon-Avon. Rysunek 16. relating to We S h a k e s p e a r e . r e c o r d s of h i s t o r i c i n t e r e s t . 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 . Visit ShaKespeare Ho Viii>. home of t h e Museum of British Pewter.

RSS.398 Joomla!.uk/ — 2004 — Shakespeare Birthplace Trust educational charity Google — 6/10 partnerskie — Brak — Virtuemart. JIIA Versione 02.org. Profesjonalne tworzenie stron WN 1W • • • • • • • • • • • URL — Uruchomiona Właściciel PageRank Programy Zastosowane Kanały PSS Szablon http://www.shakespeare. it Uruchomiona Właściciel PageRank Programy Zastosowane — 2003 — Journal of Intercultural and Interdisciplinary Archaeology Google — 5/10 partnerskie — Google AdSense — Kontakt. JIIA Links . JIIA Honour Committee. JIIA Scientific Committee. Education. Activities a n d Events. PayPal rozszerzenia Kanały RSS — Tak Szablon — Rockettheme. Museums. JIIA Versione 01.com Versatility II robotom internetowym — Nie Adresy przyjazne Nawigacja okruszkowa — Tak Główne sekcje — JIIA Repositories. S h o p for G i f t s and B o o k s . Każde wydanie publikacji ma przywilej bycia umieszczanym w katalogach bibliotek narodowych kilku krajów.jiia.3) periodyku archeologicznego Journal of Intercultural and Interdisciplinary Archaeology (JIIA). Events & Conferences. JIIA News. Library & Archive. • • • • • • • • • • • URL — www. 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 . JIIA Indici. 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.

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. 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. « EUR Donate N o w . • JIIA D o n o r s and Friends ULRYCH University learn English On-line RocketTheme Template Club iMacoanici IOSA. • Rzut okiem na popularne strony oparte na Joomla! Rysunek 16.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. VI q ) 2007. multimedia organization dedicated to career development of students and industry professionals.3.Rozdział 16. Proceedings of the 8th International Colloquium of Funerary Archaeology.4) poświęcona jest kursom z zakresu multimediów dla studentów i osób pracujących. Our motto is. Journal of Intercultural and Interdisciplinary Archaeology Top Menu Home Contact Us About JIIA JIIA Latest N e w s P. latest additions. Acta Terrae Septemcastrensis Joui iij l (ISSN 1583-1817). Funerary Practices In Europe. Graphic User Interactive Learning and Development (GUILD) G U I L D is a training ba.4. Rysunek 16. Training T o d a y with the Technology of Tomorrow. before and after the Roman Conquest (3rd century PC-3rd century AD). .

200. Profesjonalne tworzenie stron WN 1W • U • • URL — Właściciel PageRank http://mguiIdonline.. 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. Rysunek 16.r. wyniki badań. FvRij. Q AEFLA Funding Announcement ? .AVT or DFT LP I op AT IN WEATHER. G a m i n g N e w s . zawiera kalendarz wydarzeń. C o m m u n i t y N e w s . RSS. Classes. A Ki!-.OF. 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.CONDITIONS AND THREAT OF TROPICAL STORM (VIDE Territorial Report Card ' J | 102708 CAREER AND TEC I EDUCATION PUBLIC FORUM IST. Jobs. T h o m a s .5.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.2007-2008 SIX District. In M y Opinion.5).d.400 Joomla!. com extcalendar. 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.lt®rnjte_Ą$£essm_( «P» L. >MAS IN D I ' .2007•• .E N. Contact. a także artykuły na temat wszystkich zagadnień związanych z e d u k a c j ą (zobacz rysunek 16. Artist Profiles. Organizations.H. P VJDE Report Cards 2007-2008) §. AYP VIDE Report Cards 2007-2003) REVIVED RI5TMAS ' i ? A.com — Graphic User Interactive Learning and Development Google — 3/10 — Ajax Shoutbox. Interviews.3 SJTJ District A'. Zastosowane rozszerzenia Banners. T e a c h e r s G r o u p ..T. A R T I S T .

Contact Us. • • • • • URL — Uruchomiona Właściciel PageRank Programy www. Schools.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 . Offices.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. • Rzut okiem na popularne strony oparte na Joomla! • • • • • • URL— www. com_acajoom.6) reprezentuje organizację zrzeszającą wolontariuszy promujących centra nauczania dla ludzi starszych. 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.org — 1986 — SeniorNet Google — 6/10 partnerskie — Brak .Rozdział 16. którzy nie d y s p o n u j ą d u ż ą w i e d z ą techniczną. JCalPro. 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!. Resources. hsq_sss_ssscom table. skoncentrowane głównie na przysposabianiu obsługi komputera. SeniorNet Witryna SeniorNet (zobacz rysunek 16. że jest to doskonały wybór dla ludzi.doe.

artykuły. ( w w w . 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. About Us.. E-Learning. e n o m . 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..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. a także katalog ogłoszeń dla dzieci i ich rodziców. Enrichment. Partners. 2nd January 2 0 09 6:40:23am Text Reader Only search . 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 .402 Joomla!.7) to k a n a d y j s k i portal o f e r u j ą c y c h gry.. Learning Centers. Contact ISP — e N o m . Profesjonalne tworzenie stron WN 1W Rysunek 16.6. IBM Reveals Five innovations That Will Change Our Lives in the Next Five Years _RS • • m • • • • Zastosowane rozszerzenia — RSS. materiały edukacyjne. • U • • URL —http://kidschannel.ca — 2005 Uruchomiona Właściciel PageRank — Kids Channel Google — 4/10 . Inc. PPI 4 Getting Started Enrichment Centers 8»«ks & CmRhi a j Health Home Future Technology From One of Our Sponsors.

która pozwala umieszczać i pobierać. Feedpark. Unfortunately. <idsCHANNEL l a E i 403 f! resource guit^ registerCre3te fecount Usemame Password Remember rne tost Pmk-mriS? . Futura Rewards. Rejestracja na stronie umożliwia dostęp do f o r u m poświęconego historiom i opowiadaniom dla dzieci. • Rzut okiem na popularne strony oparte na Joomla! lysunek 16. 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.7. featured listings Tips e t c \ CAMPS M m resource guide iJS Categories Recently Updated An rut(tvtpw iMtr» fmwin M. - .Rozdział 16.8). . 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.: • t-iri.i Login j fvivaneed Search 1 \ .Ciliar Aa fntetview «wtłfc I>imj I i« liimle* w i „ . 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. historie i opowiadania czytane dzieciom na dobranoc (zobacz rysunek 16. essential fats.M& "M Main M e n u ibsenŁ* to our newsletter f \ . commtree. zapisane w formacie M P 3 .. • • • • • • • • • • rozszerzenia — m o d u \ f i s h e y e _ m e n u .

z a w i e r a f o r u m . c o t y g o d n i o w y newsletter. or shout for help in the discussion foium. informacje prawne. Simple Board. a podcast channel of all our stories • • • • • URL — Uruchomiona PageRank Programy www. We hope you like the site. comment on stories and also submit new stories.astoryforbedtime.9). 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. perhaps burn them to CD or stick them on an MP3 player for the children. songs and drawings so that everyone can share them Home FAQs! Click on the buttons in the top left box to browse the stories. 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. a także więcej materiałów związanych z przybranymi rodzinami. Profesjonalne tworzenie stron WN 1W Rysunek 16. Zastosowane rozszerzenia Poll. A Story for Bedtime Jo s TOMŁ! So y Welcome to A Story For Bedtime Hello and welcome to A Story For Bedtime. but you can also record your own stories and send them in to the site.8. 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. Graphitory. or go straight to the books list and get downloading.com — 2005 Google — 5/10 partnerskie — Google A d S e n s e — Remository. Pony Gallery. 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. 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 " . . ponown y m m a ł ż e ń s t w e m i r o z w o d e m (zobacz rysunek 16.404 Joomla!. These are not professionally produced audio books. 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!. Chat. we have nearly two hours of stories to enjoy already. You can download MP3 files of stories to play to the kids. Discussion Forum. This is a community sharing site for parents and children. If you register and log on (in the box to the top right) then you will be able to post in the discussion forums. Not only can you download stories. they are quite simply recordings of real people like you reading stories to real kids.

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

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

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 . Charakterystyczne dla Joomla! j e s t to. South Aflii fieiM|Jii|!5 Hotel. 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 . 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. Programy partnerskie 888 Casino Zastosowane • • • rozszerzenia — RSS.co. Contact.. lysunek 16.com — 2006 — World Cup 2010 South Africa Google — 5/10 — Google AdSense. • 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. 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.uk.11. c o m .worldcup20l0southajrica.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. C y b e r c a p e t o w n . które w y k r a c z a j ą poza obszar n o w y c h technologii. Często uaktualniane materiały to informacje turystyczne i komunikaty o dostępności biletów. które o d b ę d ą się w Republice Południowej A f r y k i (zobaczy rysunek 16. 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.11). Poll Kanały RSS — Tak (RSS) Szablon —jwJnetgazette .A. Shopzilla. Joomap.

you shouldn't spread the association's resources too thinly by chasing too many groups pSF. Best Association Resources and Tools best association® Best Ass«el3ti»ii'S> . Rustenburg. Uruchomiona Właściciel PageRank Zastosowane Kanały Szablon — 2006 com — Best Association Resources Google — 6/10 rozszerzenia — Brak RSS — Tak (RSS. member retention. p r o m o w a n i a i organizacji wydarzeń oraz spotkań (zobacz rysunek 16. event marketing. 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.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? . meeting planning. Polokwane. bestassociation. dynamic element to the association. Burban. it can open new possibilities for the future direction of the association | On the other hand. Atom) — Własny . Conversely. getting "more of the same" tends to leverage the existing strengths of the association Here is a simple rule of thumb.12. If you are only scratching the surface of your targeted association membership (e. Profesjonalne tworzenie stron WN 1W • • • Adresy przyjazne Nawigacja robotom internetowym — Tak okruszkowa — Nie Główne sekcje — News.and then go after them . you'll likely find better results by going after more of the same. Nelspruit. Port Elizabeth. ggf Ask « Question Subscribe Remember Me « Forgot your URL — www. Rysunek 16.and go after more of the same. Good arguments can be developed on both sides Certainly. if you are closing in on the upper limit of a target audience. non-dues revenue.12). you only have 15% of the possible candidates). 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 . Bloemfontein. registration.408 Joomla!. member benefits.Those who believe that you should determine who fits the profile of your current members . bringing in fresh blood can add a new. 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 . Stadiums (Cape Town. Moreover.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: .g. government association jobs and association books. Best Association ® membership development. Johannesburg. 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. World Cup 2006.Those who believe that you should determine who you are not appealing to . World Cup Tickets.

lelacje lodróżrticze Randalla Wooda Rama. Call Rama the town that links the Caribbean. lysunek 16. English speaking Atlantic Coast with the Spanish speaking. Web Strategy. Travel Writing • U • • • • • URL — Uruchomiona Właściciel PageRank Programy www. Association Jobs. and treat It with all the respect of such a frontier town. Event Registration. the Head of the River Rama's riot as far out of the way as it used to be iri the . Event Marketing.Rozdział 16.therandymon. in tact before about 2000 Rama was at the end of one of Nicaragua's most spinecrushing roads. In fact.D u e s Revenues. Print Strategy. cattle raising highlands of Nicaragua's interior.13) poświęcona relacjom podróżniczym Randalla W o o d a . About Best Association. Submit Y o u r Question Minimalna szerokość — 800 • • • E-commerce—Nie Funkcje społecznościowe — Tak lelacje podróżnicze Randalla Wooda Strona (zobacz rysunek 16. El Rama is a