You are on page 1of 448

PROGRAMMER

TO

PROGRAMMER™

Joomla!
Profesjonalne tworzenie stron WWW ,

Dan Rahmel
'=', wrox
j

/

Helion
PROGRAMMER TO PRCX;

http://helion.pl

Tytuł oryginału: Professional Joomla! Tłumaczenie: Tomasz Przedmojski ISBN: 978-83-246-1766-1 Copyright © 2007 by Wiley Publishing, Inc., Indianapolis, Indiana. All rights reserved. This translation published under license with the original publisher John Wiley & Sons, Inc. Translation copyright © 2010 by Helion S.A. Polish edition copyright © 2010 by Helion S.A. The Wrox Brand trade dress is a trademark of John Wiley & Sons, Inc. in the United States and/or other countries. Used by permission. Szata graficzna Wrox Brand jest handlowym znakiem towarowym firmy John Wiley & Sons, Inc. w Stanach Zjednoczonych i/lub innych krajach. Wykorzystano na podstawie licencji. All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from the Publisher. Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykopywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji. Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli. Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne i rzetelne. Nie biorąjednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo HELION nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce. Wydawnictwo HELION ul. Kościuszki lc, 44-100 GLIWICE tel. 32 231 22 19, 32 230 98 63 e-mail: helion@helion.pl WWW: http://helion.pl (księgarnia internetowa, katalog książek) Pliki z przykładami omawianymi w książce można znaleźć pod adresem: ftp://ftp.helion.pl/przyklady/jooptw.zip Drogi Czytelniku! Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres http://helion.pl/nser/opinie7jooptw Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję. Printed in Poland.

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

Joomla!.

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

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

13 15 21
22 23 24 24 25 27 28 29

¡

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

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

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

67
67 68 69 73 78 79

6

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

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

103
104 105 106 108 109 110 Ill 117 118 119 120 121 122 123 124 125 127 128 128 129 130 133 134 135 137 138 138

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

141
142 145 146 147 149 150 152 157

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

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

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

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

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

201
202 203 203 205 206 207 207 209 211 215

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

217
217 219 220 221 221

8

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

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

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

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

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

Spis treści Źródło problemów Optymalizacja indeksów Optymalizacja istniejącego systemu Administracja Uwierzytelnianie LDAP Obsługa Czyszczenie systemu Bezpośredni dostęp do MySQL Podsumowanie 9 292 292 297 298 298 300 300 301 303 Rozdział 12. Łą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. Bezpieczeństwo Joomla! Typy ataków Ataki na hasła SQL Injection 367 367 368 368 .. 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.

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 . Czego Joomla! nie potrafi Kontrola wersji dokumentów Import.10 Joomla!. obsługa skórek Standardowa funkcjonalność groupware Funkcjonalność portalu Podsumowanie 385 385 387 387 388 388 389 390 393 Rozdział 16. konwersja i eksport plików Ograniczone funkcje zabezpieczeń i autoryzacji Równoważenie obciążania i replikacja danych Poziomy interfejsu użytkownika. Profesjonalne tworzenie stron WWW Niestandardowe żądania — szczególnie przez Ajaksa Cross-Site Scripting (XSS) Skanowanie katalogów Atak Denial of Service (DoS) Podsłuchiwanie pakietów HTTP Bezpieczeństwo serwera WWW Zabezpieczanie serwera Apache Odmowa dostępu do plików z danym rozszerzeniem Bezpieczeństwo PHP PHP Safe Mode PHP doc_root PHP disable_functions PHP disable_classes PHP display_errors PHP expose_php Bezpieczeństwo MySQL Bezpieczeństwo Joomla! Usuwanie plików instalacyjnych Edytor HTML Joomla! Uruchamianie wewnątrz systemu Rozwijanie i testowanie Podsumowanie 371 372 372 373 373 376 376 377 378 378 379 379 379 380 380 380 381 381 381 382 382 383 Rozdział 15.

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

12 Joomla!. Profesjonalne tworzenie stron WWW .

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

14 Joomla!. Profesjonalne tworzenie stron WWW .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

30 Joomla!. Profesjonalne tworzenie stron WWW .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

66 Joomla!. Profesjonalne tworzenie stron WWW .

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

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

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

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

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

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

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

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

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

76 Joomla!. Profesjonalne tworzenie stron WWW • • • • • • • • • • contentdescription contentpagetitle contentpane contenttoc created-date intro title modifydate smali smalldark Dla kategorii a d m i n i s t r a c j a m o ż n a o d w o ł y w a ć się d o n a s t ę p u j ą c y c h stylów: • • • • • • • • • • • • adminform cl r date input inputbox outline pagenav pagenavjiext pagenav_prev pagenavbar pagenavcounter pathway Dla kategorii r o z s z e r z e n i a m o ż n a o d w o ł y w a ć się d o poniższych: • • • • • • • • • bannerfooter bannergroup bannerheader banneritem blog blog_more blogsection button buttonheading .

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

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

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

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

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

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

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

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

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

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

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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

140 Joomla!. Profesjonalne tworzenie stron WN 1W .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Profesjonalne tworzenie stron WN 1W .158 Joomla!.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

200 Joomla!. Profesjonalne tworzenie stron WN 1W .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

216 Joomla!. Profesjonalne tworzenie stron WN 1W .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Profesjonalne tworzenie stron WN 1W .384 Joomla!.

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

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

Microsoft Word. które pozwalają określać grupy i role użytkowników. dlatego brak obsługi tego rozwiązania jest sporym przeoczeniem.). Podobnie byłoby. Operator. elastyczność tego rozwiązania jest ograniczona. jest to niemożliwe ze względu na szczegółowy charakter określonych uprawnień. która pozwoliłaby wprowadzać artykuły zapisane w plikach zawierających tekst sformatowany (np. Redaktor. aby j ą przywrócić. Wydawca. jednak w czasie. nie istnieje wbudowana w system Joomla! opcja eksportu artykułów lub innych danych. 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. Główny administrator). Dopóki funkcje konwersji nie zostaną dodane do Joomla!. kiedy pisałem tę książkę. TeX i BBCode. Administrator. Joomla! zawiera obsługę ośmiu grup użytkowników (Zastrzeżony.Rozdział 15. X S L T dla danych X M L . np. Komercyjne systemy CMS pozwalają na dynamiczny lub zautomatyzowany import dokumentów w wielu formatach. RTF itd. a także problemy podczas archiwizowania starych materiałów. do których można przypisać użytkownika. Autor. Microsoft Excel. praktycznie nie istnieje funkcja importu. Microsoft Outlook. Przykładowo jeśli chcesz przyznać uprawnienia akceptowania i edycji artykułów w jednej kategorii asystentowi administratora. nie jest to j e d n a k skuteczny system kontroli wersji. PDF. Jgraniczone funkcje zabezpieczeń i autoryzacji Model zabezpieczeń przyjęty w systemie Joomla! jest prymitywny w porównaniu z konkurencją. • 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. Chociaż możliwy jest bezpośredni dostęp do materiałów za pomocą narzędzi MySQL. Microsoft Word. Uniemożliwia to implementację systemu przepływu pracy dla d o k u m e n t ó w . Aplikacje C M S rodzaju Vignette Web Content Management pozwalają nawet na zautomatyzowany import plik