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.Spis treści Źródło problemów Optymalizacja indeksów Optymalizacja istniejącego systemu Administracja Uwierzytelnianie LDAP Obsługa Czyszczenie systemu Bezpośredni dostęp do MySQL Podsumowanie 9 292 292 297 298 298 300 300 301 303 Rozdział 12.. Pozycjonowanie i marketing w wyszukiwarkach internetowych Ustawienia Joomla! Proste adresy Metadane Aktywacja modułu Breadcrumbs Mapa strony Ogólne techniki Główne wyszukiwarki Badanie słów kluczowych Tytuły stron Atrybut alt dla obrazów i innych multimediów PageRank Google System wymiany odnośników Ajax a SEO Google Analytics Czego nie należy robić Marketing w wyszukiwarkach internetowych (SEM) Komponowanie skutecznego tekstu reklamowego Pay per click i pay per view Google Adsense Podsumowanie 347 . Bezpieczeństwo Joomla! Typy ataków Ataki na hasła SQL Injection 367 367 368 368 .348 348 350 351 353 354 354 355 359 359 360 361 362 363 363 364 364 365 365 366 Rozdział 14.

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. Czego Joomla! nie potrafi Kontrola wersji dokumentów Import. konwersja i eksport plików Ograniczone funkcje zabezpieczeń i autoryzacji Równoważenie obciążania i replikacja danych Poziomy interfejsu użytkownika. obsługa skórek Standardowa funkcjonalność groupware Funkcjonalność portalu Podsumowanie 385 385 387 387 388 388 389 390 393 Rozdział 16. Rzut okiem na popularne strony oparte na Joomla! Strony akademickie Wydział Biologii Molekularnej Princeton The Shakespeare Birthplace Trust Journal of Intercultural and Interdisciplinary Archaeology Graphic User Interactive Learning and Development (GUILD) Ministerstwo Edukacji na Wyspach Dziewiczych Strony poświęcone zdrowiu i rodzinie SeniorNet KidsCHANNEL A Story for Bedtime Second Wives Club Better Health Here Profesjonalne strony Mistrzostwa Świata 2010 w Republice Południowej Afryki Best Association Resources and Tools Relacje podróżnicze Randalla Wooda Turbo Trade Sonetto John Avon Illustration 395 396 396 397 398 399 400 401 401 402 403 404 406 407 407 408 409 410 411 412 .10 Joomla!.

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

Profesjonalne tworzenie stron WWW .12 Joomla!.

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

Profesjonalne tworzenie stron WWW .14 Joomla!.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Profesjonalne tworzenie stron WWW .30 Joomla!.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

66 Joomla!. Profesjonalne tworzenie stron WWW .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

140 Joomla!. Profesjonalne tworzenie stron WN 1W .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Profesjonalne tworzenie stron WN 1W .158 Joomla!.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Profesjonalne tworzenie stron WN 1W .200 Joomla!.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Profesjonalne tworzenie stron WN 1W .216 Joomla!.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

zapis 2008-12-11 odpowiada zapisowi 11 grudnia 2008 roku — przyp./ + 32./ + 9.216) ' Zmienna (do 4.295) 3 3 8 4 1 1 lub 2 od 1 do 8 LOAT DOUBLE DECIMAL . do 255 Zmienna (do 65./ + 8.647 Liczba całkowita z zakresu .294.Rozdział 11./ + 2.372./ + 127 Liczba całkowita z zakresu . Oznaczanym także jako hh:mm:ss. tłum.967. np.535) Zmienna (do 16.535) Zmienna (do 65. np.147.767 Liczba całkowita z zakresu .036.483.216) Zmienna (do 4.967. 23:59:59 — p r z y p .607 Liczba całkowita z zakresu . z której można wybrać jedną Lista predefiniowanych wartości.1.294.535) Zmienna (do 16.777.295) Zmienna (do 65. Tabela Typy danych MySQL yp danych INYINT MALL I NT EDIUMINT NT IGINT 295 Opis Liczba całkowita z zakresu . z której można wybrać zero. .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.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ść.854. • Prowadzenie profesjonalnej strony bela 11. jedną lub więcej TIMESTAMP YEAR ENUM SET Opisywanym także jako yyyy-mm-dd. tłum.388.223.775.777.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Amazon Products Feed Bridge to pakiet modułów. Amazon Products Feed Brigde Dużo potężniejszy. połączona z API usług sieciowych Amazona. od przedstawionego wcześniej rozszerzenia. Jeśli produkt nie jest poprawnie wyświetlany. stworzona z zastosowaniem biblioteki PERL. Aplikację APF możesz pobrać na stronie: www.com for a product and looking at the uil.amazon. ceną. Na rysunku 12. ale pamiętaj. Profesjonalne tworzenie stron WN 1W Rysunek 12. W praktyce oznacza to. Niektóre edytory WYSIWYG niepoprawnie odczytują kod reklam. jeśli pracuje ona na łączu o niskiej przepustowości lub serwer Amazona * jest przeciążony. 0 Rerwszy V FFFFFF Use {amazon \i='itm#itiHtr aligns***'} where the id i the amaze s id of the product. a także dodatek. a następnie ponownie wprowadź kod odpowiedzialny za reklamy w treść artykułu.318 Joomla!. uk/demo/apf bridge .15. co. który pozwala Ci stworzyć wirtualny sklep Amazona na Twojej stronie. Za p o m o c ą rozszerzenia APF Brigde możesz połączyć system APF z Joomla!. zdjęciem okładki i innymi informacjami. że każda reklama jest oddzielnie pobierana z serwerów Amazona. komponentów.<br/> You can find the id by searching amazon. Umożliwia wyświetlanie aktualnych produktów Amazona na Twojej stronie. deanmarshałł.' Dodatek: [zmień] com (United States) co. spróbuj wyłączyć na chwilą edytor WYSIWYG.uk (United Kingdom) V. jest pakiet Amazon Products Feed (APF).<br /><br /> The ui will look something l k this:<br !> http:/Awi*Ai. 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.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ń. 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. com/aws Pakiet APF Bridge dla Joomla! dostępny jest na stronie: www. mrrat. Jest to aplikacja open source.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

openlnfoWindowHtml(address).php?opti on=com_joomlamap&task=goto"> <p>Wprowadź adres:<br /> <textarea name="location" cols="60" rows="l" </p> <p> <input type="submit" name="Submit" value="Wyświetl lokalizację" /> id="location"></textarea> </p> </form> <?php } ?> . var marker = new GMarker(point).getElementById("map")).1419). showAddress('<?php echo ifldLocation.setCenter(new GLatLng(37. marker. 13): geocoder = new GC1ientGeocoder(): 339 } } function showAddresstaddress) { if (geocoder) { geocoder.4419.getLatLng( address. 13). map.setCenter(point. } } i //]]> loadO.addOverlay(marker).php?option=com_joomlamap>" . </script> <?php echo "<a href=index. function(point) { if (!point) { alertiaddress + " not found"): } else { map.Rozdział 12. -122. map. map.addControl (new GSmalIZoomControl O): } ). "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. • Łą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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Jeśli będziesz korzystać z tej techniki z umiarem. 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. w oknie przeglądarki pojawił się mały pasek opisany j a k o PageRank. . Jeśli jednak obrazek służy wyłącznie jako ozdobnik i nie jest bezpośrednio związany z treścią strony. w sposób asynchroniczny. Na każdej odwiedzonej stronie wyświetlany jest jej PageRank (w skali od 1 do 10).11. opisz go odpowiednio.nhiekt timnżliwiaiary asvnrhrnnirvnp nr7p=:vłanip danvrh nr7P7 gjpr H7ipki W przypadku Joomla! możesz określić wartość atrybutu alt podczas wstawiania grafiki w treść artykułu. w którym każde żądanie nowych danych wiąże się z przesłaniem całej strony HTML. Ma to umożliwiać bardziej dynamiczną interakcję z użytkownikiem niż w tradycyjnym modelu. co zilustrowano 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.11. jak przedstawiono to na rysunku 13. Wartość atrybutu alt wyświetlana jest po najechaniem kursorem myszy na dany obrazek 2. ŁoflowjMiie i lejestiMja 4' szukaj A Zobacz str onę gl A J A X (ang.technologia tworzenia aplikacji internetowych. Profesjonalne tworzenie stron WN 1W Rysunek 13. Odpowiedni tekst należy wprowadzić w pole Image description.12. poprawisz pozycję strony. Asynchroniczny JavaScript i XML) . że pasek PageRank zostanie wyświetlony tylko wtedy. możesz wykorzystać atrybut alt i wstawić słowa kluczowe. Rysunek 13. kiedy zgodzisz się na zapisywanie odwiedzanych stron i wyszukiwanych haseł za pomocą narzędzia Google Toolbar. Spis treści [ukryj] 1 Podstawowe elementy AJAX 2 Wady i ograniczenia | 3 Przykład utworzenia nowego obiektu XMLHTTP : 4 Biblioteki AJAX 'J " T WiKJPEDlAł Wolna encyklopedia Asynchronous JavaScript and XML.10. Pamiętaj. 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 .360 Joomla!.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Profesjonalne tworzenie stron WN 1W .384 Joomla!.

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

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

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

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

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

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

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

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

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

Profesjonalne tworzenie stron WN 1W .394 Joomla!.

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

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

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

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

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

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

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

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

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

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

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

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

11.11). Lie in bed and w a t c h the Whales Luxury accommodation Looking for the of website? * ! • • • • • • URL — Uruchomiona Właściciel PageRank www.uk.Rozdział 16. Sobi2. 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 . które o d b ę d ą się w Republice Południowej A f r y k i (zobaczy rysunek 16. Joomap. lysunek 16.A. 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 . Shopzilla..worldcup20l0southajrica.com — 2006 — World Cup 2010 South Africa Google — 5/10 — Google AdSense.co. Programy partnerskie 888 Casino Zastosowane • • • rozszerzenia — RSS. Często uaktualniane materiały to informacje turystyczne i komunikaty o dostępności biletów. South Aflii fieiM|Jii|!5 Hotel. Charakterystyczne dla Joomla! j e s t to. 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. • 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. 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 . c o m . ż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. Poll Kanały RSS — Tak (RSS) Szablon —jwJnetgazette . które w y k r a c z a j ą poza obszar n o w y c h technologii. Contact.

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

days before the glistening. Association Jobs. N o n . Meeting Planning. In fact. About Best Association. Government Affairs. and dark skinned Creoles meet Nicaraguan "Spaniards" from the Pacific.Rozdział 16. Membership Development.13. Travel Writing • U • • • • • URL — Uruchomiona Właściciel PageRank Programy www. 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. and treat It with all the respect of such a frontier town. English speaking Atlantic Coast with the Spanish speaking. A t o m i O P M L ) . Event Registration. cattle raising highlands of Nicaragua's interior. Print Strategy.therandymon. Member Benefits. który obecnie współpracuje z National Geographic Society w Badaniu Światowego Dziedzictwa (której celem jest zanalizowanie i opisanie najcenniejszych kultur oraz środowisk świata). Call Rama the town that links the Carib