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

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

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

Profesjonalne tworzenie stron WWW .12 Joomla!.

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

14 Joomla!. Profesjonalne tworzenie stron WWW .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Profesjonalne tworzenie stron WWW .30 Joomla!.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Slanguage = 'en-GB'. SMetaAuthor = 'l'.org': var $xmlrpc_server = 'O'. Scaching_page = '0'. Scaching_tmpl = 'O'. $lang_administrator = 'en-GB'. var $ftp_root = '': var $ftp_enable = ''. var $ftp_pass = " . .the dynamie portal engine': SMetaKeys = 'joomla. var Sftp_port = 'O'. var $gzip = 'O': var ilifetime = '900': // Session timeout var $error_reporting = '-l': var Shelpurl = 'http://help. $lang = 'english'.joomla. Scachetime = '900': S e k c j a Debug Settings ( u s t a w i e n i a d i a g n o s t y k i ) : var Sdebug = '0'. var $ftp_host = 'O'. 59 value S e k c j a Mail Settings ( u s t a w i e n i a p o c z t y ) : var var var var var var var var Smaller = Smailfrom Sfromname Ssendmail Ssmtpauth Ssmtpuser Ssmtppass îsmtphost mai I = = = /usr/sbin/sendmail = 0' . = = = local host' S e k c j a Cache Settings ( u s t a w i e n i a p a m i ę c i p o d r ę c z n e j ) : var var var var Scaching = '0'. Soffset = '0'. var $log_path = '/var/logs'. SMetaTitle = 'l'.Rozdział 2. S e k c j a Locale Settings ( u s t a w i e n i a j ę z y k a ) : var var var var var var $lang_site = 'en-GB'. var $tmp_path = '/tmp'. var Sftp_user = ''. • 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'. Joomla'. Soffset user = '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! .

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

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

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

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

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

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

Profesjonalne tworzenie stron WWW .66 Joomla!.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Spieltag ( 1 5 . Oktober 2008 Ä Malta Portugal Platz Ungarn H l Albanien Mannschaft Dänemark Ungarn Albanien j^jft Portugal Schweden Malta 1 2 0 0 4 2:1 ' Anmeldung 0:11 -11 Punkte 7 Spiele i G 0 : 1 (0:1) * Credits * Impressum Quali WM 2010 Gruppe 1 Gruppe 2 U V Tore Diff. Random Player Module (Losowy gracz) — Wyświetla losowego gracza dla wybranego projektu i wybranej drużyny. Team Players Module (Gracze z drużyny) — Wyświetla listę graczy Twojej ulubionej drużyny według pozycji graczy. Profesjonalne tworzenie stron WN 1W Rysunek 4. Next Match Module (Następny mecz) — Wyświetla następny mecz dla wybranej lub ulubionej drużyny. Ranking Module projektu. Następnie określane są drużyny i gracze. Navigation Menu Module (Nawigacja) — Dostarcza dodatkowego menu nawigacyjnego. . 2 0 0 8 19. co w praktyce opowiada danym ligom.29. które umożliwia szybki dostęp do zapisanych informacji.136 Joomla!. 15. (Ranking) Przedstawia aktualne zestawienie dla wybranego Results Module (Wyniki) — Przedstawia ostatnie wyniki dla wybranego projektu. 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. 1 0 . 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.11.2008) Spieltag auswählen: 04 • Home * Fussball-Forum Gruppe 1 Mittwoch. Gruppe 3 Gruppe 4 Gruppe 5 Gruppe 6 Gruppe 7 Gruppe 8 Gruppe 9 0: 0 1 0 1 1 1 ' Śledzenie wyników podzielone jest na projekty. Results Tab Module (Zakładki wyników) — Przedstawia ostatnie wyniki pogrupowane za pomocą JavaScriptu w trzy pojedyncze zakładki.

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

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

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

140 Joomla!. Profesjonalne tworzenie stron WN 1W .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Profesjonalne tworzenie stron WN 1W .158 Joomla!.

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

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

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

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

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

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

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

Export All.P H P e c l i p s e . org Tworzenie komponentu Księgi Gości Tradycyjna aplikacja internetowa. Jeśli jednak zainstalowałeś standardową wersję Eclipse. aby zapisać zmiany. Umożliwia ona zamieszczanie komentarzy przez użytkowników.PHP . Pakiet EasyEclipse zawiera wtyczka Subclipse. które widoczne są następnie dla wszystkich odwiedzających stronę. który będzie dodawany do każdego nowego pliku.4.4.. co widać na rysunku 6. Od tej chwili wszystkie pliki PHP utworzone w Eclipse będą zabezpieczone przed uruchamianiem spoza systemu Joomla!.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. Możesz teraz wprowadzić kod. Rysunek 6. Rozwiń węzeł PHPeclipse Web Development. musisz samodzielnie pobrać i zainstalować Subclipse. Kliknij przycisk OK.166 Joomla!. W tym przypadku wprowadź poniższy: // zablokuj bezpośrednie uruchamianie defined( '_JEXEC' ) or die( 'Brak dostępu' ). ] 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. Wybierz opcję Preferences z menu Window.. Subclipse można pobrać na stronie: http://subclipse. to księga gości. Profesjonalne tworzenie stron WN 1W Zmiana domyślnego szablonu PHP w celu dodania zabezpieczenia Joomla! pozwoli Ci lepiej zapoznać się z Eclipse.. kliknij pozycję Code Templates.. Najczęściej takie wpisy zawierają komplementy pod ... K Preferences type filter text $ Amateras ffl Ant ffi Coloring Editor EdipseUtilPlugins ® Help m HTML Tidy is Install/Update ffi Internet ffi Java 8 PHPeclipse Web Deve Browser Configur Browser Preview S PHP Code Assist Code Templat Formatter Help (WIN_3i HTTP Query Installed Inte Mark Occurre PHP Parser Spelling Task Tags Templates + PHP Fvtfirnal Tnn Code Templates Configure generated code and comments: Comments Ei Code Newly created HTML files ( j Import. Ustawienia wyświetlane są w postaci drzewa. a następnie PHP. tigris. która może służyć za przykład komponentu. Export. Wybierz pozycję New PHP files i kliknij przycisk Edit.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.0. Komponenty stworzone w tym rozdziale są klasycznym przykładem tradycyjnej interakcji ze stroną WWW. W rozdziale 7. Sercem nowego sposobu interakcji ze stronami WWW. . jest połączenie kilku technologii pod nazwą Ajax. nazywanym powszechnie Web 2.182 Joomla!. której główną częściąjest dynamiczna interakcja z użytkownikiem bez ponownego przeładowywania strony. opisano tworzenie aplikacji Joomla!.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Profesjonalne tworzenie stron WN 1W .200 Joomla!.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

216 Joomla!. Profesjonalne tworzenie stron WN 1W .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

aby dodać na stronie funkcje serwisu społecznościowego. Przedstawiono wskazówki przydatne podczas samodzielnego badania i poznawania kodu źródłowego Joomla!. . W rozdziale 10. które nadają sens programowaniu Joomla!. które przechwytuje treść artykułu. 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.240 Joomla!. • • Po zapoznaniu się z funkcjonowaniem systemu z punktu widzenia programisty warto wrócić do aspektów związanych z prowadzeniem strony WWW. Profesjonalne tworzenie stron WN 1W • Zaprogramowano rozszerzenie Automatyczne Skróty. Opisano poszczególne pakiety składające się na platformę Joomla!. dowiesz się. jak zaimplementować istniejące rozszerzenia.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

261
0.14

Welcome to Joomla!

&

1

Joomla! is used for? 0 O Community Sites Public Brand Sites eCommerce Blogs Intranets Photo and Media Sites All of the Above!

Joomla! is a free open source fi amewoik and content publishing system designed toi quickly ci eating highly interactive multi-language Web sites, online communities, media paitáis, hloys and eCo applications. Joomla! provides an easy-to-use graphical user interface that verstóíi 1.5 simplifies the management and publishing of large volumes of content including HTML, Powered by

0 0 0 Q O

M Joomla!

G ł o s u j J I Wyniki

Who's

Online

Możesz skorzystać także z innych rozszerzeń, które m a j ą więcej funkcji i o f e r u j ą w i ę k s z ą elastyczność. Moduł sondy dołączony jest także do pakietu S M F , który miałeś o k a z j ę zainstalować wcześniej. Aby dodać sondę w aplikacji SMF, kliknij przycisk Add Poll z panelu administratora S M F . Zostanie wyświetlony ekran tworzenia sondy (co przedstawiono na rysunku 10.15). M o ż e s z dodać dowolną liczbę odpowiedzi, skonfigurować czas trwania sondy, a także wstawić k o m u nikat opisujący p o w o d y j e j uruchomienia. ysunek 10.15. )odanie sondy ' programie SMF ?st tak proste jak wysłanie nowej wiadomości a forum
Post n e w poll S u b j e c t : ;Miejsce spotkania Message icon: Question: Standard v, ••.;>'

Gdzie najlepiej SIĘ spotkać? O p t i o n 1: Kawiarnia O p t i o n 2: Park miejski Option 3: Góra św. Jerzego O p t i o n 4: O p t i o n 5: j ( Add Option)

„ .. Options:

Po11

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

W panelu a d m i n i s t r a t o r a S M F m o ż l i w e j e s t u s t a w i e n i e w i e l u d o d a t k o w y c h p a r a m e t r ó w i funkcji sond. Jedną z zalet uruchamiania sond w S M F jest ich bliskie powiązanie z tematem forum dyskusyjnego. Skoro próbujesz zgromadzić na swojej stronie z a a n g a ż o w a n ą społeczność, to czy istnieje lepszy sposób pozyskania opinii u ż y t k o w n i k ó w niż umieszczenie sondy w miejscu, gdzie dyskutowane są sporne tematy. Sondy utworzone w programie S M F pojawiają się na liście tematów (zobacz rysunek 10.16) w dziale, w którym zostały umieszczone. Po kliknięciu odnośnika p r o w a d z ą c e g o d o sondy wyświetlany jest formularz umożliwiający oddanie głosu zamiast wprowadzenia wiadomości. Do p o p r a w n e g o działania sond niezbędne jest włączenie obsługi ciasteczek w przeglądarce, ponieważ moduł sondy wykorzystuje je, aby zapobiec wielokrotnemu głosowaniu przez tego samego użytkownika w j e d n e j sondzie.

262

Joomla!. Profesjonalne tworzenie stron WN 1W

Rysunek 10.16. Sonda wyświetlona w interfejsie forum SMF

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

voting Edit Pol!

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

Administrator Newble Posts-i

test

-

Miejsce spotkania

« o n : T o d a y at 0 6 : 2 5 : 2 5 PM »

_ A t u i »
L J :

¿teRmo» aaa
M &

'

kkkkk

'

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

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

37.206.22.160

Pages:[1]

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

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

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

263

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

• • •

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

Aplikacja dostępna jest w wielu językach: angielskim, brazylijskim, portugalskim, chińskim, czeskim, fińskim, francuskim, niemieckim, greckim, węgierskim, indonezyjskim, włoskim, norweskim, polskim, rosyjskim, słowackim, hiszpańskim i tureckim. Podczas dodawania komentarza można w p r o w a d z i ć d o d a t k o w o adres e-mailowy i adres strony d o m o w e j użytk o w n i k a ( z o b a c z r y s u n e k 10.17), a a d m i n i s t r a t o r m o ż e z a d e c y d o w a ć , czy te d o d a t k o w e informacje b ę d ą wyświetlane obok komentarzy. suneK 10.17. ygląd <oComment st jednocześnie •zyjazny profesjonalny Write Comment
« p l e a s e k e e p the topic of m e s s a g e s relevant to the subject of t h e article. • P e r s o n a l v e r b a l a t t a c k s will b e d e l e t e d , • P l e a s e d o n ' t u s e c o m m e n t s t o p l u g y o u r w e b s i t e , S u c h m a t e r i a l will b e r e m o v e d . • J u s t e n s u r e t o * R e f r e s h * y o u r browser for a new security c o d e t o b e d i s p l a y e d prior to •

clicking code,

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

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

Jan Kowalski

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

# w é c* a è #

Code:*
i 1 i wish t o b e c o n t a c t e d by e m a i l r e g a r d i n g a d d i t i o n a l coir m e n t »

Send

1

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

264

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

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

/

TUJEflKED SPECIAL EDITION

General

Layout

Postinq

Notification

Reports ; Favoured

Template With individual botcommand {moscomment} you can choose we not for every content item individually. Using the second option comments on/off for complete sections. If you use second operating mode, you can choose here which comment system. Multiple selections are possible.

Main O p e i atiiuj M o d e :

HI
Sections available :

About Joomla! fiSMHH

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

O Nie ® Tak

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

O

Nie

0

Tak

|^p»«fii||||||||| Username Choose where to open the comments. Open in new window

S h o w c o m m e n t s o n Ai chives :

Ö Nie © Tak

S..J enabled add new comment on archive item

AkoComment Tweaked Special Edition www.visualclinic.fr v.1.4.6 Based on AkoComment v.2 ©Copyright 2004 by Arthur Konze - w w w rnamboportal corn

Praktycznie wszystkie elementy systemu komentarzy można ustawić, dopasowując dostępne parametry lub m o d y f i k u j ą c szablon. Do parametrów wyświetlania należą Autolimit num of comments to display (Automatycznie ograniczaj liczbę wyświetlanych komentarzy), Num of comments per page (Liczba komentarzy na stronie), Show favoured link (Wyświetlaj prom o w a n y odnośnik), Show quote this article in website link (Pokazuj odnośnik do cytowania treści artykułu), Show hits/view (Wyświetlaj liczbę odsłon), Show print link (Pokazuj odnośnik uruchamiający drukowanie), Show send Email link (Wyświetlaj odnośnik do powiadamiania znajomych przez e-mail), Show read more link (Pokazuj odnośnik „Czytaj więcej"). Dostępna j e s t o p c j a w y ś w i e t l a n i a listy k o m e n t a r z y w oparciu o arkusze stylów lub w postaci tabeli HTML.

¡JoomlaComment
K o m p o n e n t !JoomlaComment, przedstawiony na rysunku 10.19, dodaje na stronie funkcje komentowania z wykorzystaniem technologii Ajax. Umożliwia także importowanie komentarzy rozszerzenia AkoComment. Rozszerzenie ¡ J o o m l a C o m m e n t zawiera następujące funkcje: • interfejs systemu komentarzy opiera się na technologii Ajax, dlatego nie jest w y m a g a n e p r z e ł a d o w y w a n i e całej strony; obsługa obrazków; awatar użytkownika; cytowanie innych komentarzy;

• • •

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

265

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

»

fi

Ä

-kolor-

v

-rozmiar-

"

e © @ OiD ©®

© © © © © ©

® €> © ©© ©

O © © ©

[ Wyślij |

• • •

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

Podobnie jak w większości z a a w a n s o w a n y c h k o m p o n e n t ó w p o z w a l a j ą c y c h na d o d a w a n i e treści przez użytkowników, także w I J o o m l a C o m m e n t w b u d o w a n o f u n k c j e chroniące przed spamem: • • • • generowanie obrazków C A P T C H A ; blokowanie u ż y t k o w n i k ó w ; lista cenzurowanych słów; ograniczenia długości wpisu.

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

266

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

Rysunek 10.20. Interfejs administratora IJoomlaComment pozwala na konfigurację wyglądu stron dodawania i wyświetlania komentarzy

General

Security

Postmy

Layout

B « i < Settings Uninsuli complete mode: ® Nie O Tak Delete also tables when uninstall! Do not active except if you would i ijoomlacomment ar For expert only 1 ou can change here the joscomment mamtaoi fund h a c k e d the corserit html (tor example: to display the read only fundi V V if auto: W i l l i e « e mosContiijlanguage parameters it auto will use the mosConfigtanguage parameters Php iconv library i input t h e chat se 1: of y o u t joonila installation it it is different ti C l i c HERE t o c h e k if it is s u p p o r t e d h y t h e inconv tit» , t i y ' els joomlacommert support, It t h i s i s m u i h j j ade ft out a r e l e a s e o l d e i than 3.0 J . once you parameter, qotot- ansae Comment.: and use She Convert To LCh*se convert r e l i e d a: If y o u had change I, some comments ici*8te<i with ajax • have to be c others ('created w ithout siax'i have not to be converted i In this case, comments only (those with strange character?!). h i s . S e c t i o n s .'««1 C a t e g o r i e s ciii m a Exclude I n c l u d e : © Exclude O include ff INCLUDE, this W' i! allow comments for »ems which are IN selected sections Oft IN s& eeted categories. If EXCLUDE, this v 'ill not allow comments for items which are IN sele selected .--ections OR IN s elected categories ¡eld to exclude/include items Ids Format: list of Ids

M a m h o t content f u n c t i o n :

on FVepare Content

Fi o u t e w l l a n g u a g e : Bsckend lanytiage: Local chaise*: if y o u «we <tj><jf a d i n g o l d e t i eie,»?e thant :i,0. i e a d catefully d e s c r i p t i o n o n t h e fiiiiirt:

autodetect autodetect utf-8

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

Exclude Include sections:

Static Content About Joomla!

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

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

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

267

jcialBookmarkerBot vl.3.2
Aby zachęcić użytkowników do dodawania zakładek wskazujących artykuły na Twojej stronie, możesz zainstalować rozszerzenie Social BookmarkerBot, które wstawia rząd przycisków na dole wybranych podstron (zazwyczaj są to podstrony zawierające artykuły), przedstawiono to na rysunku 10.21. Przyciski pozwalają na szybkie dodanie zakładek na stronach: BlinkBits, Blinklist, Blogmarks, BlogMemes, Del.icio.us, Digg, Facebook, Fark, FeeMeLinks, Furl, Google Bookmarks, Ma.gnolia, Netscape, Netvouz, Newsline, P l u g ł M , RawSugar, Reddit, Shadows, Simpy, Slashdot, Spurl, Squidoo, StumbleUpon, T a i l r a n k i l i n k a G o G o , Technorati, W i n d o w s Live, Witsts i Yahoo! Bookmarks. (sunek 10.21. ozszerzenie Social ookmarker wyświetla listę rzycisków, które pozwalają a dzielenie się zakładami innymi użytkownikami
Add this page to your favorite Social Bookmarking websites

fi

y

«:

*l

A

ui

4i> m

r

•>* KS

-4

U*

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

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

268

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

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

[December 01 200«

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

X

2

3

Pakiet Eevents Calendar (JEvents) składa się z kilku k o m p o n e n t ó w , m o d u ł ó w i wtyczek: • • • Komponent Komponent Events Calendar administracyjny — G ł ó w n y komponent wyświetlający kalendarz. — Umożliwia konfigurację systemu.

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

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

269

Moduł legenda wydarzeń w kalendarzu.

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

Wtyczka wyszukiwania w kalendarzu.

— Umożliwia w y s z u k i w a n i e wydarzeń w p r o w a d z o n y c h

Wtyczka tworzenia raportów z wydarzeń — A u t o m a t y c z n e d o d a w a n i e odnośnika pod wydarzeniami, który przenosi na stronę, gdzie m o ż n a dodać zdjęcia i relacje z minionych wydarzeń.

Przed wprowadzeniem wydarzeń do kalendarza musisz najpierw utworzyć kategorię za p o m o c ą opcji Add Category w części a d m i n i s t r a c y j n e j k o m p o n e n t u J E v e n t s ( p r z e d s t a w i o n o to na rysunku 10.23). Po zapisaniu kategorii musisz j ą j e s z c z e opublikować, ponieważ domyślnie nowe kategorie nie są aktywne. Po utworzeniu kategorii możesz zacząć dodawać wydarzenia. irsunek 10.23. 'rzed /prowadzeniem ikichkolwiek tydarzeń należy definiować o najmniej jedną ategońę
Add Category Kolor Category Title Category Name Image Image Position Ordering Access XXXXDescription XX XX Color Picker Wakacje Wakaqe articles jpg Left
V;

V

V V / U ABC

Public U

w m mm
*! i n

- Styles -- v d, >t

-- Format •f —

v

-- Font family s r

:= i = i

W A

u ' * a - »

- ¿ H i

Wprowadzanie wydarzeń (zobacz rysunek 10.24) odbywa się w części frontowej rozszerzenia JEvents. Dla nowego wydarzenia można wpisać tytuł, wybrać kategorię i wprowadzić k o m pletny opis. Opcjonalnie m o ż n a ustawić informacje o miejscu, dane kontaktowe i inne niezbędne informacje dla danego wydarzenia. Wprowadzone dane wykorzystywane są podczas wyszukiwania, dlatego dodając wydarzenia, staraj się umieszczać słowa kluczowe, aby użytkownicy zainteresowani wydarzeniami danego typu mogli j e odnaleźć. Jeśli przejdziesz do ekranu konfiguracji w interfejsie administratora (zilustrowanym na rysunku 10.25), z n a j d z i e s z o p c j e p o z w a l a j ą c e na k o n t r o l o w a n i e w y g l ą d u , a także dostępu i uprawnień użytkowników. Możliwe jest także ustawienie pliku C S S w y k o r z y s t y w a n e g o na stronach z wydarzeniami. Arkusz stylów m o ż n a zmieniać, aby odpowiednio d o p a s o w a ć wygląd kalendarza do aktualnego szablonu strony. Rozszerzenie Events Calendar możesz pobrać na stronie: joomlacode.org/gf/projects/jevents Instalacja odbywa się za pomocą opcji Rozszerzenia/Instalator i nie różni się od postępowania w przypadku innych k o m p o n e n t ó w . A b y w s t a w i ć kalendarz E v e n t s C a l e n d a r na stronie, dodaj pozycję m e n u łączącą z k o m p o n e n t e m .

270

Joomla!. Profesjonalne tworzenie stron WN 1W

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

Common

Calendar

images:

Extra

Help i

About

Temat: Kategorie: Aktywność B

Ferie zimowe Wakacje "V Poziom dostępu Public
V

I
S=

u

ák W 1

m

m

m i

m

--styles-4> C2f! ZŁ

v

-- Format -a !
1

v J -

-- Font family ~ ii !3 u

v A -

B

J » » j a '

JL

i l l

X,

xa I n

- s

," |

B a w sią z nami!|

Grafika <?«

Pagebreak

Readmore

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

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

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

These settings aie only foi the compone Admin Mail Access Publish from Frontend First Day View mail View "By" View "Hits" View Repeat and time Show All Repeat Events in Year List Hide "See By Categories (appropriate if events legend module is visible) Show Copyright Footer Date Format Use 12hr time Format Use new Icon Navigation bar Navigation Bar Color Start Page No. of Events Use Simple Default Event Color Event color rule Titlelength t woj^adres .pi Only special ghts and admins Admins and Super Admins only V Sunday first V O Nie © ak C ) Nie © ak O Nie ® ak O Nie % ak O Nie © ak ® Nie O ak v

O Nie V'> ak French-Englis ® Nie Green Day O ak V v V

O Nie ® ak

©
O ak Q V

© Nie

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

JCalPro
Jednym z najatrakcyjniejszych kalendarzy jest rozszerzenie JCalPro, przedstawione na rysunku 10.26. Zastosowanie różnych stylów pozwala dopasować kalendarz do prezentacji reszty strony. Wygląd wszystkich elementów może być modyfikowany przez zmianę plików CSS. Dodawanie wydarzeń odbywa się z wykorzystaniem edytora ustawionego w Joomla!, co pozwala na w p r o w a d z a n i e f o r m a t o w a n e g o tekstu. Rozszerzenie jest ściśle związane z systemem zabezpieczeń Joomla!, dzięki czemu możliwa jest kontrola dostępu prywatnych kategorii, a także zarządzanie wprowadzaniem wydarzeń. Dostępne są także moduły wyświetlające wersję minikalendarza, a także nadchodzące wydarzenia.

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

271

fiSJ

Si=j

Weekly view 0

ŚźB

%

Monthly View 4 October 208« Nowe rofeei 008

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

<> football 2 3 4 «»Business Maeting 6

7
O Football Game 14 <> Football Game

u
Oeuiiness : Meeting

13

17 n -M
25

i« OSuiines? Westing -M O Business

20

It
<> Football

27

m
;

<» Football Gam*

;

OfWonthSy | Work

Today • Search Calendar •

1

i Sports

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

!j Go .

JCalPro zawiera następujące funkcje: • • • • Widok zdarzeń z danego dnia, tygodnia, miesiąca, a także z danej kategorii. Integracja z kategoriami Joomla!, w tym kontrola uprawnień. G e n e r o w a n y kalendarz jest zgodny ze standardami X H T M L i CSS. W p r o w a d z o n e zdarzenia m o ż n a w y s z u k i w a ć za p o m o c ą standardowej wyszukiwarki Joomla!. Zastosowanie edytora W Y S I W Y G ustawionego w Joomla!, co pozwala na formatowanie tekstu. Możliwość m i n u t o w e g o planowania zdarzeń. Funkcja importowania zdarzeń i kategorii systemu Extcalendar. Moduł wyświetlający nadchodzące wydarzenia. Obsługa wielu j ę z y k ó w za pośrednictwem funkcji systemu Joomla!. Powiadamianie administratora o n o w o d o d a n y c h wydarzeniach. Obsługa wydarzeń okresowych, cało- i kilkudniowych. Powiadamianie użytkownika o wydarzeniach przez e-mail.

• • • • • • •

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

272

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

Systemy Wiki
Jedną z najbardziej interesujących interaktywnych technologii (i prawdopodobnie najszybciej z y s k u j ą c ą na popularności) jest system wiki. W systemie tym artykuły pisane są przez użytk o w n i k ó w . Kolejni o d w i e d z a j ą c y m o g ą edytować lub rozszerzać istniejące artykuły. Najpopularniejszym p r z y k ł a d e m takiego systemu jest Wikipedia, encyklopedia tworzona przez użytkowników. Chociaż zasada działania Joomla! (system C M S ) pozwala na dodawanie treści przez użytk o w n i k ó w , rozwiązanie to nie zostało stworzone z m y ś l ą o umożliwieniu dużej grupie ludzi wprowadzania małych zmian w artykułach — funkcji leżącej u podstaw systemów wiki. Dla Joomla! stworzono kilka dobrych rozszerzeń, uzupełniających system o funkcjonalność wiki. D o takich rozszerzeń z a l i c z a j ą się OpenWiki i WikiBot.

OpenWiki
O p e n W i k i 4 (zobacz rysunek 10.27) jest k o m p o n e n t e m łączącym system Joomla! z aplikacją P H P D o k u W i k i . Zawiera p e ł n ą implementację A C L w oparciu o grupy Joomla!, takie jak Główny Administrator, Administrator, Operator, Autor, Redaktor itp. Możliwe jest określenie uprawnień tworzenia, edycji, odczytywania, usuwania artykułów i wysyłania plików. O p e n W i k i zawiera wiele użytecznych funkcji: • • Prosta składnia do f o r m a t o w a n i a artykułów w stylu wiki. Nieograniczona liczba wersji danej strony z funkcji diff, podświetlającej różnice między wersjami. Obsługa f o r m a t o w a n i a tekstu i dołączania obrazów. O p c j o n a l n y system n a z w CamelCase. A u t o m a t y c z n e generowanie indeksu pod k ą t e m przeszukiwania całego tekstu. Przyciski szybkiego dostępu w celu przyspieszenia edycji. N a w i g a c j a okruszkowa ułatwiająca przeglądanie. Czarna lista (blokowanie spamu). Oznaczanie stron j a k o tylko do odczytu. Obsługa p o n a d 30 j ę z y k ó w .

• • • • • • • •

4

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

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

273

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

Open W i k i

P r o j e c t s

O f

Table of Contents

J oo m P roso lu tio n . c o m

DokuWiki for Joomla!

^

is a standards compliant, simple to use u , mainly aimed at creating documentation of any kind. It is targeted at developer teams, workgroups and small companies. It has a simple but powerful which makes sure the datafiles remain readable outside the Wiki and eases the creation of structured texts. All data is stored in plain text files - no database is required.

Joomla! is a Content Management System (CMS) created by the same award-winning team that brought the Mambo CMS to its current state of stardomjoomla' is the ideal tool for developing small to large dynamic community websites, intra company portals, corporate portals, weblogs and much more. The OpenWiki component is a integration of DokuWiki, aiming at a light, flexible and powerful documentation tool for Joomla I users. The component would be following original DokuWiki's steps except some experiments on Database storage.

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

• • •

System szablonów umożliwiający d o p a s o w y w a n i e wyglądu. Własna architektura wtyczek (dostępnych jest ponad 100). Generowanie kanałów RSS.

Rozszerzenie OpenWiki m o ż n a pobrać na stronie: http://wwwjoomla.sk/rozsirema/stiahnutie/Joomlal_rozsirenia/Sprava_suborov_a_ dokumentacie/Open Wiki_with_Slimbox_l. 1.0/ Instalacja o d b y w a się za p o m o c ą opcji Rozszerzenia/Instalator i nie różni się od postępowania w przypadku innych komponentów. W p i s w m e n u na stronie głównej odsyłający do OpenWiki d o d a w a n y jest automatycznie. O b s ł u g a systemu D o k u W i k i (część użytkownika i administratora) o d b y w a się z poziomu strony głównej Joomla!. K o n f i g u r a c j ę k o m p o n e n t u łączącego OpenWiki m o ż n a przeprowadzić w części administracyjnej. Aplikacja DokuWiki, na której opiera się OpenWiki, nie zapisuje artykułów w bazie danych. Są one przechowywane w postaci plików. Dlatego do poprawnego działania OpenWiki niezbędne są uprawnienia zapisu w odpowiednich katalogach. Rozszerzenie opiera się w głównej części na funkcjach PHP fwriteO i fopenO, dlatego upewnij się, że nie zostały one wyłączone na serwerze, na którym chcesz zainstalować OpenWiki.

W interfejsie administratora Joomla! możesz uzyskać dostęp do ekranu konfiguracji O p e n W i k i (OpenWiki Configuration Settings — zobacz rysunek 10.28), wybierając pozycję O p e n W i k i z m e n u K o m p o n e n t y . M o ż l i w e j e s t u s t a w i e n i e u p r a w n i e ń i p a r a m e t r ó w dla t w o r z o n y c h artykułów.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

854. np. z której można wybrać zero. Oznaczanym także jako hh:mm:ss.777. do 255 Zmienna (do 65.967./ + 32.295) Zmienna (do 65.036.216) Zmienna (do 4.535) Zmienna (do 65. jedną lub więcej TIMESTAMP YEAR ENUM SET Opisywanym także jako yyyy-mm-dd.HAR /ARCHAR rEXT •1EDIUMTEXT _0NGTEXT 3L0B 1EDIUMBL0B _0NGBL0B DATE TIME 1ATETIME Czas zapisany zgodnie ze standardem ISO 8601 3 Łączony zapis daty i czasu w formacie yyyy-ddmmhh:mm:ss Łączony zapis daty i czasu w postaci liczby sekund od 1 stycznia 1970 roku Rok w formacie YYYY Lista predefiniowanych wartości.535) Zmienna (do 16./ + 8. 23:59:59 — p r z y p .223.967.388./ + 2.294.295) 3 3 8 4 1 1 lub 2 od 1 do 8 LOAT DOUBLE DECIMAL . z której można wybrać jedną Lista predefiniowanych wartości. .607 Liczba całkowita z zakresu .767 Liczba całkowita z zakresu .483.294. tłum.Rozdział 11.777. • Prowadzenie profesjonalnej strony bela 11.775.372./ + 127 Liczba całkowita z zakresu .535) Zmienna (do 16. tłum.1.147. np.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ść. Tabela Typy danych MySQL yp danych INYINT MALL I NT EDIUMINT NT IGINT 295 Opis Liczba całkowita z zakresu . zapis 2008-12-11 odpowiada zapisowi 11 grudnia 2008 roku — przyp.216) ' Zmienna (do 4.647 Liczba całkowita z zakresu ./ + 9.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1. poręczenia kredytów studenckich. protokoły niezgodności. karty charakterystyk substancji niebezpiecznych. Informacje dla studentów (STU) Definiuje podania o przyjęcie do instytucji edukacyjnych. • Łączenie z zasobami zewnętrznymi abela 12. nakaz zwrotu kredytu studenckiego oraz weryfikację statusu i spłaty kredytu studenckiego. abela 12. 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. podania o stypendium i pomoc finansową. Zamiast tego d o k u m e n t y zdefiniowano w formacie wiadomości identyfikowanych przez skróty przedstawione w tabeli 12. Skróty Metoda Skrót APERAK AUTACK. Kategorie formatów dokumentów standardu X12 — ciąg dalszy Kategoria Serwisowanie produktów (PSS) Co zawiera Definicje dotyczące rejestracji produktu. uprawnienia do prowadzenia samochodów dostawczych. (SQQ) wymianę informacji na temat uprawnień do prowadzenia samochodów dostawczych oraz ich bezpieczeństwa. 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 . potwierdzenia przyjęcia na studia.Rozdział 12. 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. odpowiedzi na roszczenia serwisowe. powiadomień o serwisowaniu produktu. roszczeń serwisowych. wnioski o wydanie zaświadczeń z przebiegu studiów (wyciągi). ewidencję kursów edukacyjnych. informacji 0 pochodzeniu produktu.2. Nie uwzględniono w nim określonego zestawu kategorii jak w X l 2 .2. ogłoszeń promocyjnych oraz zgłaszania i autoryzacji zwrotów handlowych. odpowiedzi na wnioski o wydanie zaświadczeń z przebiegu studiów (wyciągi) i poświadczenia. wnioski o kredyt studencki.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

384 Joomla!. Profesjonalne tworzenie stron WN 1W .

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

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

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

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

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

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

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

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

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

Profesjonalne tworzenie stron WN 1W .394 Joomla!.

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

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

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

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

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

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

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

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

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

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

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

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

c o m . Contact. Często uaktualniane materiały to informacje turystyczne i komunikaty o dostępności biletów. Shopzilla. 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. ż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.worldcup20l0southajrica. South Aflii fieiM|Jii|!5 Hotel.. It DECEMBü* *0Ü3 F I F A P r e s i d e n t Sepp Blatter has c o n f i r m e d t h a t the W o r l d Cup will d e f i n i t e l y be held in S o u t h A f r i c a a f t e r F I F A r e c e i v e d a s s u r a n c e s t h a t all t h e c r i t e r i a w o u l d m e t in t i m e .A. Charakterystyczne dla Joomla! j e s t to. • 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.11). Sobi2. 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.uk. Poll Kanały RSS — Tak (RSS) Szablon —jwJnetgazette . C y b e r c a p e t o w n . które o d b ę d ą się w Republice Południowej A f r y k i (zobaczy rysunek 16. Programy partnerskie 888 Casino Zastosowane • • • rozszerzenia — RSS.co. lysunek 16.11.Rozdział 16. które w y k r a c z a j ą poza obszar n o w y c h technologii. Joomap.com — 2006 — World Cup 2010 South Africa Google — 5/10 — Google AdSense. 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 . 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.

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

Best Association Books. paved highway linked It with Managua. Association Jobs. the Head of the River Rama's riot as far out of the way as it used to be iri the .13. In fact. Event Marketing.days before the glistening. 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). A t o m i O P M L ) . M