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.. 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 . Łą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.348 348 350 351 353 354 354 355 359 359 360 361 362 363 363 364 364 365 365 366 Rozdział 14.

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

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

12 Joomla!. Profesjonalne tworzenie stron WWW .

tłum. pisząc między innymi dla DBMS. francuski i portugalski. 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 . W roku 2006 wydawnictwo Focal Press przygotowało specjalną edycję Nuts and Bolts Filmmaking: Practical Techniques for the Guérilla Filmmaker1 (Focal Press. PHP i Visual Basic. hiszpański. 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. 2004). przeznaczoną na rynek indyjski. takich jak chiński. American Programmer i Internet Advisor. japoński. Microsoft SQL Server.O autorze Dan Rahmel jest najszerzej znany z pracy z systemami bazodanowymi. Swoją karierę rozpoczął.

14 Joomla!. Profesjonalne tworzenie stron WWW .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Profesjonalne tworzenie stron WWW .30 Joomla!.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Profesjonalne tworzenie stron WWW .66 Joomla!.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Rozdział 3. • Tworzenie własnych szablonów
/* Domyślny krój pisma */ .body { font: 0.7em/l.5 Verdana, Arial. Helvetica, sans-serif:

87

}

/* Pierwszy znacznik div odpowiedzialny za lewy górny zaokrąglony róg */ di v.modułe_menu. div.module { margin-top: 10px: background: #999999 url(../images/topleft.gif) top left no-repeat: width: 9 M :

}
/* Wyświetl prawy górny zaokrąglony róg */ di v.modułe_menu div, div.module div { background: url(../images/topright.gif) top right no-repeat: padding:0px: border-bottom: lpx solid #fff; margin:0: color: #FFFFFF:

}
/* Wyświetl dolny lewy zaokrąglony róg */ div.module_menu div div. div.module div div { background: url (../images/bottomleft.gif) bottom left no-repeat: padding:Opx; border-bottom: lpx solid #fff:

}
/* Wyświetl dolny prawy zaokrąglony róg */ div.modułe_menu div div div. div.module div div div { background: url(../images/bottomright.gif) bottom right no-repeat: padding:0px: border-bottom: lpx solid #FFFFFF;

}
/* Menu i tytuły modułów pisane białym kolorem div.modułe_menu div div div h3. div.module div div div h3 { padding:lOpx: border-bottom: lpx solid #FFFFFF; margin:0: color: #FFFFFF: */

}

/* WIE6 lista nachodzi na zaokrąglenia, poniższa definicja zapobiega temu */ div.modułejnenu div div div ul { padding-top:5px; padding-bottom:5px:

}

88

Joomla!. Profesjonalne tworzenie stron WWW
/* Opcje w sondzie wyświetlane na jasnoszarym tle */ .pol 1 td { background: #cccccc; font-size: 80X; margin-left:5px; padding-left:5px; marg1n-right:5px; margin-top:Opx;

}
.latestnews, .menu, .keyconcepts, .othermenu { background: #cccccc top right repeat-y: margin-left:5px: padding-left:Opx: margin-right:5px: margin-top:Opx:

}
div.modułetable li, .menu li. .keyconcepts li, .othermenu In { background: #cccccc top right repeat-y; margin-left: 1.5em: padding:5px; font-size: 80«:

}

* Powyższy zestaw stylów jest bardziej skomplikowany niż trzy style dołączone wcześniej w pliku index.php. Komentarze wyjaśniają wykorzystanie poszczególnych stylów. Zwróć uwagę, że większość z nich zastępuje podstawowe style Joomla!. Na wygląd modułów i komponentów wpływa kilka stylów, m.in. moduł etable i contentheading. Poprzez zastąpienie tych stylów możesz dokładnie kontrolować wygląd treści na stronie.

Tworzenie grafiki zaokrąglonych rogów
Arkusz stylów zawiera definicje, które odwołują się do czterech plików graficznych: topleft.gif, topright.gif, bottomleft.gif i bottomright.gif. Te pliki odpowiadają zaokrąglonym rogom. Musisz wykonać je samodzielnie lub ktoś musi je zrobić dla Ciebie. Poniżej opisano pokrótce, jak można je stworzyć w programie Adobe Photoshop. Niezbędne kroki będą prawie identyczne dla innych programów graficznych, takich jak np. GIMP. Rozpocznij od utworzenia obrazu o rozmiarze 100 x 100 pikseli w trybie RGB. Zamiast tradycyjnie białego tła wybierz tło przezroczyste, jak zilustrowano to na rysunku 3.7. Zaokrąglone rogi będą przezroczyste, dzięki czemu kolor kolumn będzie można ustawić w arkuszu stylów (dzięki czemu nie będzie konieczne tworzenie oddzielnych plików dla każdego koloru). W miejsce obrazu powinna zostać wyświetlona szachownica, co oznacza, że jest on pusty. Po wybraniu opcji Fili... z menu Edit pojawi się okno dialogowe. Wybierz biały (ang. White) jako kolor wypełnienia, jak zilustrowano to na rysunku 3.8, i kliknij przycisk OK. Obraz powinien zostać wypełniony białym kolorem.

Rozdział 3. • Tworzenie własnych szablonów
sunek 3.7.
ybierz zezroczyste tło a tworzonego irazu

89

Wysokość: p 00 Bozdiiefczość: ¡72 I r y b koloru: j RGB j piks/cal _*J j 8 bitów na kanał Rozmiar obrazka: 29.3K

¿awartośćtła: (Przezroczyste s • Zaawansowane

sunek 3.8.
'ybierz biały jako iior wypełnienia

Kolejnym krokiem jest narysowanie zaokrąglonego prostokąta. Wybierz najpierw narzędzie rectangle, następnie konieczne będzie dopasowanie kilku opcji na pasku narzędzi. Po pierwsze, jak przedstawiono to na rysunku 3.9, wybierz wypełnianie pikseli, później zaznacz zaokrąglony prostokąt. Odznacz opcję Anti-aliased po prawej stronie, dzięki czemu krawędzie będą ostre. Rysowany prostokąt ma być w kolorze czarnym, dlatego kliknij przycisk Default Foreground and Background Color. Na koniec ustaw przybliżenie na 400 procent i narysuj prostokąt, który wypełni dostępną przestrzeń.

'

'

..

:

:

"" "

IZZM

SUnek 3.9. Ustaw wszystkie niezbędne opcje, a następnie narysuj zaokrąglony prostokąt, /pełni dostępną przestrzeń

który

90

Joomla!. Profesjonalne tworzenie stron WWW
Wybierz narzędzie Magie Wand i odznacz opcję Anti-aliased, jak pokazano to na rysunku 3.10. Kliknij prostokąt, który narysowałeś wcześniej, i naciśnij klawisz Delete. Płótno powinno teraz przedstawiać szachownicę (co odpowiada przezroczystości) wraz z czterema zaokrąglonymi rogami. Zwróć uwagę, że w przypadku tego szablonu będziesz wykorzystywać białe tło. Jeśli chciałbyś wybrać inny kolor tła, musisz stworzyć nowe zaokrąglone rogi, a w miejsce białego wybrać odpowiedni kolor.
jjQlJSl

Pük

Edycja

Qbrazek

Carstwa

Zaznsęz

Fftr

Widok

Okno

POEIX)£

•RFI > >'* • L3
V.
!..

r«w—. F«w> V •¡•¡••i

mm
J L

1 S 4 o. y
»

,

>.

«

4.-J

T

J.S

Bpi!

;

vi;

^ -r/-*.^{'il'H:'

i;;;-;-

j

iÊKmSÊÊ'

::

:

: i' : !

'

V

V

' i^ f t :

1

:

WÈÊm
Rysunek 3.10. Wyłącz opcję Anti-aliased dla narzędzia Magic Wand

Wybierz narzędzie do prostokątnego zaznaczania i zaznacz lewy górny róg. Z menu Image wybierz opcję Crop, co spowoduje takie przycięcie obrazu, aby zawierał tylko zaznaczony wcześniej róg, jak przedstawiono na rysunku 3.11. Zapisz obraz pod nazwą topleft.gif w podkatalogu images szablonu. Aby utworzyć pozostałe trzy rogi, musisz tylko obrócić obraz i zapisać go pod odpowiednią nazwą. Z podmenu Rotate Canvas w menu Image wybierz opcję Flip Horizontal i zapisz plik pod nazwą topright.gif. Następnie wybierz opcję Flip Vertical z tego samego podmenu, a plik zapisz jako bottomright.gif. Ostatecznie uruchom ponownie polecenie Flip Horizontal i zapisz wynik jako bottomleft.gif Szablon jest już prawie gotowy, ale jeszcze nie zamykaj programu graficznego.

Tworzenie bannera

Kolejny etap to stworzenie bannera, który będzie zawierać logo i nazwę strony. Opis tego procesu wykracza poza ramy tej książki. Jedną z szybkich metod jest wykorzystanie prostego, tekstowego logo za pomocą makr Script-Fu, dołączonych do programu GIMP. W menu Xtns/Script-Fu/Logos znajdziesz listę kilkudziesięciu różnych skryptów, które umożliwiają

Rozdział 3. • Tworzenie własnych szablonów
unek 3.11.
ytnij obraz, > obejmował :o lewy ny róg

91

wprowadzenie tekstu, określenie podstawowych kolorów, dzięki czemu uzyskasz proste, ale profesjonalnie wyglądające logo. Dla aktualnie tworzonego szablonu powinieneś wykonać banner o szerokości przynajmniej 800 pikseli (żeby wypełniał górną część strony) i wysokości około 150 pikseli. Po jego ukończeniu zapisz rezultat pod nazwą banner.png w folderze images szablonu.

iana modułów
Pomimo że moduł sondy jest domyślnie włączony, większość stron internetowych nie zawiera sondy na stronie głównej. Dlatego w tym podrozdziale wstawisz w miejsce sondy moduł Lastest News, którego obecność będzie preferowana w przypadku większość stron W W W . Strona Joomla! składa się z modułów, dla których zarezerwowano miejsce w szablonie. W Joomla! 1.5 wprowadzono możliwość łatwego określenia pozycji modułów dzięki opcji Podgląd. W części Szablony kliknij nazwę szablonu, a następnie kliknij przycisk Podgląd, aby wyświetlić wybrany szablon wraz z opisanymi pozycjami modułów. Dobrym zwyczajem podczas tworzenia szablonów jest wykorzystywanie domyślnych nazw pozycji, dzięki czemu użytkownicy mogą łatwo dopasować wyświetlanie modułów. Dlatego, zanim zdefiniujesz własne pozycje w tworzonym szablonie, zbadaj układ któregoś z domyślnych szablonów. Dzięki opcji Podgląd poznasz najczęściej używane nazwy pozycji, które powinieneś umieścić w tworzonym szablonie. W interfejsie administratora wybierz opcję Szablony. Przewiń listę do pozycji Pol 1 s, następnie kliknij ikonę po prawej stronie, jak pokazano na rysunku 3.12. W jej miejsce pojawi się czerwony X, co oznacza że moduł został wyłączony.

92

Joomla!. Profesjonalne tworzenie stron WWW

Rysunek 3.12.
Kliknij ikonę Wyłącz moduł, aby wyłączyć sondę

W miejsce sondy możesz włączyć wyświetlanie modułu Lastest News. Znajdź go na liście, a następnie kliknij jego nazwę, aby przejść do ekranu zmiany. Upewnij się, że moduł jest włączony i przypisany do strony głównej, a następnie wybierz pozycję right, jak przedstawiono to na rysunku 3.13. Aby wprowadzić zmianę pozycji, kliknij przycisk Zastosuj. Rysunek 3.13.
Ustaw opcję Pozycja na right, co spowoduje wyświetlanie Latest News w prawej kolumnie

Joomtcii" www.JoomlaJumpstarf.com

Modlił: [ m e ] Ziń

iełiy modułu io*e tutykułów 5 Ostatnio dodan Dowolny

: Wyświetla l s ę łączy do artykułów o; it modyfikowanych.

Prryi ostek Masy moduhi • Piiuimetiy: rozsietzone

Wszystkie ' Pozycje wybi Exumpfe Pages

Na danej pozycji można umieścić dowolny moduł, poprzez wybranie jednej z pozycji na liście. Poniżej znajduje się grupa parametrów, które możesz zmienić, aby dopasować działanie modułu do swoich potrzeb. Jeśli otworzysz teraz stronę główną, moduł Lastest News powinien pojawić się w prawym górnym rogu jak na rysunku 3.14.

Rozdział 3. • Tworzenie własnych szablonów
sunek 3.14.
ybrany moduł stanie oświetlony miejscu sondy
Joomla!

93

Welcome to the Frontpage Welcome to Joomla! Wpisal Administrator czwartek, 12. pazdziermk 2006 10:00 Joomla! is a f i e e open source framework and content pubbslung system designed for quickly creating lugldy mtei active multi-language Web sites, online communities license
Joomla! FAQ

U 1 H P I

f Layouts 1 The Joomla! I Community Welcome to . Joomla! I Newsflash

media portals, blogs and ¿Commerce applications

Powered by

Joomla! provides an easy-to-use graphical us er inteifac e that simplifies tta management and publishing of large volumes of content including HTML,

J^ Joomla !
version 1.5

! -4 Newsflash

documents, and rich media. Joomla! is used by organisations of all sizes for Public Web sites, Intranets, and Extranets and is supported by a community of thousands of users. Zmiemony ( czwartek, 08. listopad 2007 12:06 ) Wigcei...

Joottdai Home
Joomla! Fomms Joomla! Help

We are Volunteers Wpisał Administrator

0

0

0

Stick to the Code ! Wpisal Administrator

0

0

S

Advertís tmei
Featured Links: Joomla! Joomla! The mo s popular and wide

środa, 07. lipiec 2004 09:54 of volunteer developers, designers, administrators and managers who, together with a

środa, 07. lipiec 2004 12:00 Wilco Jans en resorted to sending rum to joint lead-developer Johan Jans sens. Johan, who's had a

The Joomla! Core Team consists To ensure this code release,

OSMHome \

lasny kod CSS dla komponentów
Wspaniałą funkcją dostępną w Joomla! jest możliwość wykorzystania, w zależności od sytuacji, różnego kodu CSS dla komponentów (środkowa kolumna), np. po wybraniu danego elementu menu lub artykułu. Oznacza to, że pliki CSS mogą odpowiadać schematom kolorów, które ustalisz dla poszczególnych części systemu. Przykładowo na stronie zarządzania nieruchomościami część odpowiadająca za refinansowanie może być wyświetlana w kolorystyce ciemnoniebieskiej, a część sprzedaży w kolorystyce jasnozielonej. Możliwe jest stworzenie wariacji stylu i przypisanie jej do danego menu. Przejdź do folderu szablonu Trzy Kolumny i otwórz plik template.css. Wprowadź poniższy kod i zapisz zmiany:
,componentheading_blue. .contentpage_blue { color: blue;

}
Aby przypisać zmieniony styl do danego menu, otwórz Projektanta Menu w interfejsie administracyjnym. Kliknij ikonę Zarządzaj pozycjami menu po prawej stronie menu, do którego chcesz przypisać zmieniony styl, co przedstawiono na rysunku 3.15. W tym przypadku klikamy Main Menu, ponieważ nowe pozycje tego menu pojawią się w lewej górnej części strony. Teraz kliknij ikonę Utwórz, aby dodać nową pozycję menu. Na ekranie pojawi się hierarchiczna lista dostępnych typów. Kliknij pozycję Artykuły, żeby wyświetlić listę dostępnych sekcji. Dodawana pozycja ma prowadzić do listy artykułów w danej sekcji, dlatego wybierz pozycję Lista — Kategorie artykułów w sekcji, jak przedstawiono na rysunku 3.16. Zostaniesz przeniesiony do ekranu dodawania nowej pozycji menu, gdzie możesz ustawić jej parametry.

94

Joomla!. Profesjonalne tworzenie stron WWW
Joomla! wwwJoomiaJumpstart.com
Ąrtytutly Komponenty P.ozszei

Rysunek 3.15.
Kliknij ikonę Zarządzaj pozycjami menu po prawej stronie menu, któremu chcesz przypisać zmieniony styl

U l Projektant menu

O Q 0

Resources Example Pages Key Concepts

S

W

»• j s wolnym oprogramowaniem dostępnym ne et

Rysunek 3.16.
Kliknij Lista — Kategorie artykułów, aby wybrać pozycję menu tego typu

Joomlci! www.JoomlaJumpstart.com

t l i Pozycjja menu: [utwórz
W y t » i « i tyj» pozycji I ¡«y Łącze wewnęta , Artykuły iii Archiwum

Wprowadź nazwę pozycji, a w ramce Parametry: podstawowe wybierz sekcję, z której będą wyświetlane artykuły. Rozwiń ramkę Parametry: systemu, która znajduje się poniżej. W polu oznaczonym jako Przyrostek klasy CSS wprowadź błue, co zilustrowano na rysunku 3.17, i kliknij przycisk Zapisz. Jeśli wejdziesz teraz na stronę główną i wybierzesz stworzoną przed chwilą pozycję menu, elementy komponentu zostaną wyświetlone w kolorze niebieskim.

Tworzenie dystrybucyjnego pliku templateDetails.xml
Twój szablon jest już prawie gotowy! Zanim udostępnisz go szerszemu gronu, warto poprawić plik templateDetails.xml i wprowadzić dodatkowe informacje o autorstwie oraz licencji. Po ukończeniu plik ze szczegółami powinien przypominać poniższy:

Rozdział 3. • Tworzenie własnych szablonów
sunek 3.17.
odaj przyrostek )lue, aby ementy wiązane tą pozycją były /świetlane Bdług stylów ym przyrostkiem
0 T. 1 O Wyloguj

95

enu: [ utwórz )

v/

©

O

rtykutow w sekcji • wybranej s k ] oraz opisy k t g r i eci aeoi

i Zm""!"yp J :
:

Parametry
Pałfliiietiy koinjHiiien!

P-.l.i'z';!«-,» \>i.

Wyłączone 'c.' Ignoruj o Włączone

<?xml version="1.0" encoding="utf-8"?> <install version="1.5" type="template"> <name>Trzy kolumny zaokrąglone</name> <version>l.0</version> <creationDate>l/20/07</creationDate> <author>Dan Rahmel</author> <authorEmai 1 >admi ntajooml a jumstart. com</authorEmai1> <authorllrl>http://www. joomla jumpstart,com</authorUrl> <copyright></copyright> <license>GNU/GPL</license> <description> Wzorzec szablonu o układzie trójkolumnowym </description> <files> <fi1ename>i ndex.php</fi1ename> <fi 1ename>templateDetai1 s.xml</fi 1ename> <filename>params.ini</filename> <fi 1 ename>i mages/banner.png</fi 1ename> <fi 1enarne>css/ i ndex.html</fi 1ename> <fi 1ename>css/template.css</fi 1ename> </f11es> <positions> <posi ti on>left</posi tion> <posi ti on>ri ght</posi ti on> </positions> <params> <param name="showComponent" type="radio" default="l" label="Pokaż komponent" description»"Pokaż/ukryj wydruk komponentu"> <option value="0">Nie</option> <option value="l">Tak</option> </param> </params> </install>

Jeśli spakujesz zawartość folderu do archiwum zip pod nazwą, która dokładnie odpowiada nazwie folderu z szablonem, będziesz mógł udostępnić szablon innym. Możesz tego dokonać na stronie Joomla Hut (www.joomlahut.com), która umożliwia dodawanie darmowych szablonów.

96

Joomla!. Profesjonalne tworzenie stron WWW

Zaawansowane techniki tworzenia szablonów
Kluczowy element składowy systemu szablonów Joomla! to CSS. Możliwe jest nie tylko wykorzystywanie kilku plików CSS dla jednego szablonu, lecz także utworzenie arkusza stylów definiującego style nawet dla poszczególnych artykułów. Dla projektanta pracującego z Joomla! dużo większe znaczenie mąjąjednak same funkcje CSS. Inspekcja plików CSS prowadzi do konkluzji, że większość ich autorów wykorzystuje tylko najbardziej podstawowe funkcje. Technologia CSS składa się z ogromnej liczby atrybutów, dzięki którym jesteś w stanie doprowadzić wygląd strony WWW do perfekcji. Dobrą wiadomością jest fakt, że większość atrybutów określonych w specyfikacji CSS jest obsługiwana przez popularne przeglądarki. W tym podrozdziale zapoznasz się z technikami, które sprawią, że Twoja strona będzie wyróżniać się na tle innych. Dowiesz się, jak umiejscowić tekst, aby nakładał się na obrazek. Następnie poznasz inne zalecane praktyki, takie jak umieszczanie odwołań do obrazków w plikach CSS, a także przypisanie odpowiedniego pliku CSS danemu artykułowi lub wybranej platformie (może być to np. telefon komórkowy lub PDA).

Wykorzystanie grupy szablonów a CSS
Projekt szablonu dla systemu Joomla! może zakładać wykorzystanie jednego szablonu dla wszystkich podstron lub przypisanie oddzielnych szablonów do poszczególnych kategorii i sekcji, dzięki czemu wygląd będzie odzwierciedlać funkcję danej części witryny. W dalszej części tego rozdziału termin szablon będzie odnosić się do pojedynczego szablonu, a zestaw szablonów przypisanych do poszczególnych kategorii i sekcji będzie nazywany grupą szablonów. Zaprojektowanie jednego lub drugiego wymaga zupełnie innego podejścia, począwszy od fazy organizacji i planowania. W przeciwieństwie do pojedynczego szablonu, który musi odpowiadać wszystkim potrzebom strony, elementy grapy szablonów mają spełniać określone zadania, przykładowo strona główna ma przedstawiać ogólny wizerunek (dzięki doborowi kolorów, organizacji i wyborze fontów), podczas gdy podrzędne szablony nadają stronie tożsamości. Grupa szablonów gra podobną rolę jak marka. Przykładowo wszystkie pochodne marki Coca-Cola (Cherry Coke, Coca-Cola Zero itd.) zawierają wspólne elementy, więc nawet przypadkowy obserwator może zauważyć związek. Po stworzeniu kilku szablonów możesz przypisać je do poszczególnych części strony za pomocą opcji Szablony, jak pokazano na rysunku 3.18. W poniższym przykładzie jasnozielony szablon został przypisany do wszystkich elementów sekcji Kluczowe pomysły.

Rozdział 3. • Tworzenie własnych szablonów
unek 3.18.
pomocą opcji iblony można ypisać szablon określonych iści strony

97

^ f ^ i W ^ t W i i i W î i f f f î
C i Szablon; [zmicn]

m

®t

Ha;-.

Szablon RHUK Milkyway

Piefet encje Parametr-Plik ïemplates\rhuk_milkywaylparams in

Opis; MilkyWay jest szablonem przygotowanym specjalnie

yi''! jest wolnym oprogramowaniem dostępnym na i -il) -

/icon.ico
Szablon Joomla! może zawierać plik favicon.ico1, umieszczony w jego głównym katalogu. Jest to mała ikona (o rozmiarze 16x16 pikseli), która po umieszczeniu odpowiedniego odwołania w pliku index.php zostanie wyświetlona na pasku adresu przeglądarki internetowej* (zobacz rysunek 3.19), a także po lewej stronie na liście zakładek. Jeśli plik favicon.ico będzie umieszczony w głównym katalogu serwera WWW, zostanie automatycznie odczytany przez większość przeglądarek. Aby umieścić odwołanie do tego pliku w szablonie, wprowadź kod podobny do poniższego w sekcji <head> pliku index.php:
<link rel="shotcut icon" href="http://przyklad.com/favicon.ico" type="image/vnd.mi crosoft.i eon" /> <link rel="icon" href="http://przyklad.com/favicon.ico" type="i mage/vnd.mi crosoft.i eon" />

Powyżej umieszczono dwa typy odwołania, ponieważ poszczególne przeglądarki odczytują plik favicon.ico dla różnych wartości atrybutu rei. Nowsze przeglądarki umożliwiają dołączenie ikon zapisanych jako pliki GIF lub PNG, a nawet wstawienie animowanej grafiki w tych formatach. Nie musisz wprowadzać poniższego kodu, jeśli umieściłeś w szablonie dyrektywę dołączenia standardowych nagłówków <jdoc:include type="head" />, ponieważ Joomla! automatycznie wstawi odwołanie do ikony ulubionych.
<link rel="shorcut icon" href="templates/<?php echo $this->remplate; ?>/favicon.ico" type="image/vnd.mic rosoft.i eon" />

\ ang. favorites icon — ikona ulubionych —przyp. thim.
'rzeglądarka Internet Explorer w wersji wcześniejszej niż 7 wyświetla tę ikonę dopiero po dodaniu trony do ulubionych, Favicon — Wikipedia, the free encyclopedia [online][dostęp 28.10.2008]

tip: //en. wikipedia. org/wiki/Favicon

98

Joomla!. Profesjonalne tworzenie stron WWW
g a g
Ctrl+D s

Rysunek 3.19.
Plik favicon.ico wyświetlony na pasku adresu i liście zakładek
MAIM M E N U

S Narzędzia Dodaj zakładkę... Subskrybuj tę stronę

Pomoc

&

'X Ą *<•'•
d i HNr

- *

Zarządzaj zakładkami ' Pasek 2akładek Ostatnio dodane .¿Ostatnio używane etykiety Dodatki zwijane z zakładkami

Ctrl+Shift+B

Sfc

-ŁUbS:'

Î 2: Installing C o m p o n e n t s

*

Why do I need

@ Joomla Jumpstart -- Home of Beginning Joomla • • " ^ B f c

Joomla? * 2. How is Joomla! organized? » 3. Joomla! Presentation * Frequently Asked Questions (FAQs) » Beginning Joomla! * Professional Joomla! » General Joomla! « > Get Paid to Write Articles Zakonczono

'

H

In Part 1, you installed a module to the Joomla system. Part 2 will take you mgh the quick and simple process of installation and configuration of a :ornponent. Components are the dominant type of extension and form the backbon *> ; of much of the extensible functionality available to the Joomla CMS. • R E A D MORE...

J o o m l a E x t e n s i o n s -- D i g g T h i s ! p a t c h e d for 1.5

P r o b i n g t h e Joomla! S o u r c e C o d e for Information

O&

Aby zapisać obrazek w formacie ICO, możesz wykorzystać darmową wtyczkę do programu Photoshop, którą znajdziesz na stronie: http: //www. telegraphics. com. au/sw/Mcoformat

Możesz także skorzystać z aplikacji internetowej do rysowania plików .ico pod adresem: http://www.favicon. cc

Kolejną opcją jest program GIMP, za pomocą którego, bez dodatkowych wtyczek, można zapisywać w formacie .ico. Aby stworzyć ikonę ulubionych w programie GIMP, utwórz obrazek o rozmiarach 16x16 pikseli, a następnie zapisz go w formacie Microsoft Windows leon (.ico).

Modyfikacja wyglądu rozszerzeń

Chociaż wykracza to poza ramy tego rozdziału, warto wspomnieć, że rozszerzenia (komponenty, moduły itd.) mają własne szablony, które określają ich wygląd i funkcjonalność. Zazwyczaj szablony te zapisane są w podkatalogu \tmpl, który znajduje się w głównym katalogu danego rozszerzenia. System Joomla! zaprojektowano z myślą o możliwości zmiany szablonu wykorzystywanego przez rozszerzenia, aby dopasować jego wygląd i funkcjonalność do reszty strony. Możesz dołączyć do szablonu podkatalog \html, w nim znajdą się podfoldery dla poszczególnych modułów i komponentów, których wygląd chcesz zamienić (na przykład \com_contact, \com_weblinks, \mod_poll i \mod_search). Przykłady modyfikacji wyglądu rozszerzeń można znaleźć w podkatalogu \html szablonu beez w domyślnej instalacji Joomla!.

Zazwyczaj jednak wystarczy stworzyć odpowiedni arkusz stylów, który zastępuje definicje danego komponentu. Istnieje prosty sposób, aby upewnić się, że Twój szablon zawiera definicję dla wszystkich głównych stylów. Sprawdź w przeglądarce, jak wyświetlane są wszystkie moduły, komponenty i inne elementy interfejsu dla wybranego szablonu.

Rozdział 3. • Tworzenie własnych szablonów

99

Wykorzystaj opcję Pokaż źródło strony, aby zobaczyć kod HTML dla danej strony. Przeglądając kod źródłowy pod kątem atrybutów id i class, natrafisz na wszystkie definicje elementów CSS wykorzystywanych na stronie. Teraz, kiedy zapoznałeś się z ich nazwami, możesz zmienić ich wygląd za pomocą arkusza stylów dołączonego do szablonu.

iorzenie układu strony dla telefonów komórkowych
Coraz więcej osób przegląda strony WWW za pośrednictwem telefonów komórkowych. Widząc ogromną popularność urządzeń PDA, takich jak np. iPhone, można spokojnie założyć, że mobilny dostęp do internetu będzie coraz powszechniejszy. Dzięki przygotowaniu strony pod kątem wygodnego przeglądania na takich urządzeniach możesz powiększyć grono osób odwiedzających stronę, a w przypadku witryny komercyjnej — zwiększyć zyski. Stworzenie w systemie Joomla! szablonu dla telefonów komórkowych, dopasowanego do ekranu o małych rozmiarach, jest wyjątkowo proste, ponieważ na wygląd strony w głównej mierze wpływa arkusz stylów. W czasie, kiedy pisałem tę książkę, poniższe programy były najpopularniejszymi mobilnymi przeglądarkami: • • • • • • Pocket Internet Explorer — Główna przeglądarka wszystkich PDA z systemem Windows (nazywana często także Pocket PC). Opera — Prawdopodobnie najpopularniejsza mobilna przeglądarka instalowana przez użytkowników. NetFront — Popularna przeglądarka, szczególnie na nieużywanych już urządzeniach Sony Clie. Na jej podstawie powstała przeglądarka Blazer. Blazer — Popularna przeglądarka dostępna w modelach Tungsten i Treo PDA. Minimo — Darmowa przeglądarka o otwartym kodzie źródłowym, oparta na silniku programu Mozilla Firefox. Safari — Domyślna przeglądarka urządzenia iPhone.

Poza tym istnieje spora liczba przeglądarek przygotowanych specjalnie na daną platformę (np. OpenWave czy Series 60), a biorąc pod uwagę dynamiczny rozwój tego rynku, lista mobilnych przeglądarek będzie rosnąć. Dobra wiadomość jest taka, że Twoja strona nie musi być zaprojektowana z myślą o każdej z tych przeglądarek. Dołączenie pliku CSS wygląda zazwyczaj podobnie do:
<link rel="stylesheet" type="text/css" href="Mycss.css" />

Dla tego znacznika istnieje dodatkowy atrybut o nazwie media, który jest poprawnie odczytywany przez większość mobilnych przeglądarek. Atrybut media pozwala określić platformę, dla której należy odczytać podany plik CSS. Trzy najczęściej stosowane wartości to: screen, print i handheld9. Z tego powodu Twój szablon może odwoływać się jednocześnie, bez kolizji do więcej niż jednego pliku CSS.
ikran, drukarka i urządzenie przenośne — p r z y p . tłum.

100

Joomla!. Profesjonalne tworzenie stron WWW
Aby dołączyć pliki CSS dla każdej platformy, możesz wstawić w szablon poniższy kod:
<link rei»"stylesheet" type="text/css" media="screen" href="screen.css" /> <link rel="stylesheet" type="text/css" media="print" href="print.css" /> <link rel="stylesheet" type="text/css" media="handheld" href="mobile.css" />

Znacznik z atrybutem media ustawionym na screen może odnosić się do zwykłego pliku CSS. Wartość atrybutu print może oznaczać odwołanie do arkusza, który wyłącza wyświetlanie bannerów, kolumn i elementów nawigacyjnych nieprzydatnych na papierze. Często jest to kopia głównego pliku CSS z atrybutem visible (widoczny) ustawionym na false dla elementów, które powinny zostać pominięte na wydruku. W czasie, kiedy pisałem tę książką, przeglądarka Pocket Internet Explorer wykorzystywała arkusze stylów oznaczone zarówno jako screen, jak i media do wyświetlania stron na urządzeniach mobilnych, co było powodem frustracji wielu projektantów. Zwykła wersja Internet Explorer 6 (najpopularniejsza przeglądarka internetowa) w przeciwieństwie do wersji mobilnej nie wyświetla stylów oznaczonych jako handheld. Sposobem na osiągnięcie kompatybilności z Internet Explorerem jest umieszczenie odwołania do pliku CSS odpowiadającego screen przez odwołaniem do tego, który odpowiada handheld. Dzięki temu na normalnych komputerach plik oznaczony jako handhe Id zostanie zignorowany, a przeglądarka Pocket IE odczyta najpierw style zawarte w pliku odpowiadającym screen, a następnie odczyta zawartość pliku odpowiadającego handheld, unieważniając wcześniejsze definicje.

Typ handheld wykorzystywany jest przez urządzenia przenośne, które obsługują CSS. W czasie pisania tej książki większość sprawdzanych urządzeń pozytywnie przeszła testy i odczytała plik CSS oznaczony atrybutem handheld. Sprawdzone zostały następujące przeglądarki: Blazer (w urządzeniu Treo), Opera (w Nokii) i Pocket Internet Explorer (w iPAQ-u). Niestety, pewna liczba testowanych przypadków nie obsługiwała poprawnie tego atrybutu (głównie Netfront 3.1). Jednak patrząc w przyszłość, można z pewnością stwierdzić, że wszystkie nowe przeglądarki będą poprawnie obsługiwać ten atrybut.

Definiowanie arkusza stylów dla urządzeń przenośnych

Jeśli masz zamiar dołączyć alternatywny arkusz stylów dla urządzeń przenośnych, poniżej znajdziesz kilka wskazówek. Pamiętaj, że nie można po prostu wykorzystać zwyczajnego pliku CSS, ponieważ został stworzony z myślą o osiągnięciu innych celów, innej prezentacji graficznej. Poniżej znajduje się lista rzeczy, o których należy pamiętać podczas projektowania arkusza stylów dla urządzeń przenośnych: • Ustaw marginesy na 0 — Dla znaczników zawierających tekst ustaw atrybut margin: 0 0 0 0: przez co margines zostanie ustawiony na 0, a tekst będzie zajmować całą dostępną przestrzeń. Ustaw szerokość obramowania na 0 — Dla znaczników di v i table ustaw atrybut border-width: 0 0 0 0: aby usunąć ramkę wokół komórek. Ustaw wysokość linii na lem — Zamiast określić inną wysokość linii (co i tak nie będzie dobrze wyglądać na urządzeniu przenośnym), wykorzystaj kod 1 i ne-height: lem: aby ustawić standardową wysokość linii.

• •

Rozdział 3. • Tworzenie własnych szablonów

101

Korzystając z tych wskazówek, możesz wprowadzić modyfikacje domyślnego szablonu Joomla!. Utwórz pod nazwą mobile.css nowy arkusz stylów w folderze css i wprowadź poniższy kod:
Body { margin: O.Oem 0 0 0: line-height: lem: padding: 0 0 0 0.2em: font-size: 100%: line-height: lem; color: black; border-width: 0:

}
hi, h2. h3, M . h5, h6 { line-height: lem; font-size: 100%; font-weight: bold;

}
p, ul, ol, li. dt, dd { line-height: lem:

}

{
}

moduletable. ,moduletable_menu. div.moduletable h3. .moduletablejnenu h3, .poll td font-size; 100%: font-weight: bold;

Wstaw w index.php odwołanie do pliku CSS z atrybutem media ustawionym na handheld, a plik mobile.css zostanie automatycznie wykorzystany na urządzeniach przenośnych. Wykorzystanie tego arkusza wprowadzi jednakowy wygląd i wielkość tekstu na całej stronie, a nagłówki i inne specjalne style Joomla! zostaną pogrubione.

laptowanie szablonów Mambo lub Joomla! 1.0
Szablony Mamo działają bez problemów w Joomla! 1.0. Z powodu ich popularności od pięciu lat powstawały tysiące szablonów. W Joomla! 1.5 istnieje możliwość wykorzystywania szablonów napisanych z myślą o starych systemach, jednak musi zostać włączony Tryb spuścizny. Niestety, włączenie tego trybu powoduje utratę wszystkich nowych funkcji i wzrostu wydajności wersji 1.5. Na szczęście adaptacja szablonu w większości przypadków nie jest trudna. Praktycznie wszystkie wywołania systemowe w starej wersji Joomla!/Mambo mają swoje odpowiedniki w nowej wersji Joomla!. Najbardziej oczywistym przykładem jest funkcja modCountModules, która została zastąpiona przez $this->countModules. Elementy <jdoc include ... / > z a s t ą p i ł y w i ę k s z o ś ć funkcji mosLoadModul es. Ponadto wykorzystanie zmiennych globalnych nadal jest możliwe, choć niezalecane, ponieważ prawdopodobnie zostaną usunięte w przyszłych wersjach Joomla!. Najlepiej jest unikać wykorzystania zmiennych globalnych.

102

Joomla!. Profesjonalne tworzenie stron WWW
W systemie Mambo i starszych wersjach Joomla!, jeśli na danej stronie niezbędny był edytor, trzeba było go włączać ręcznie, podczas gdy w nowej wersji włącza się automatycznie, jeśli wystąpi taka potrzeba. Jedyną nieobecną technologią w nowej wersji Joomla! jest patTemplate. Wtyczka patTemplate umożliwiała proste rozwiązywanie złożonych problemów, jakie w przeszłości napotykali projektanci szablonów. Głównie ze względu na wydajność, patTemp late została usunięta w nowej wersji platformy Joomla!. Dlatego jeśli szablon stworzono w oparciu o intensywne wykorzystanie patTemplate, jego adaptacja do nowego systemu będzie trudniejsza niż w większości przypadków.

Podsumowanie
Po przeczytaniu tego rozdziału powinieneś wiedzieć już, jak od podstaw stworzyć szablon. Na projektowanie szablonów składa się wiele aspektów, m.in. stworzenie właściwego arkusza stylów. W rozdziale zawarto informacje, dzięki którym będziesz w stanie: • • • • • Stworzyć od podstaw szablon, który dzięki CSS wykorzystuje układ wielokolumnowy. Dodać elementy graficzne, które sprawią, że szablon będzie wyglądał profesjonalnie. Udoskonalić kompatybilność z różnymi przeglądarkami, dzięki czemu błędy obsługi CSS nie wpłyną negatywnie na wygląd strony. Stworzyć stronę zgodną ze standardami dostępności, aby umożliwić każdemu jej przeglądanie. Wykorzystać arkusze stylów w celu dostosowania wyglądu strony do danej platformy, takiej jak PDA lub telefon komórkowy.

Tworzenie własnego szablonu to tylko wierzchołek góry lodowej w zakresie modyfikacji strony Joomla!. W rozdziale 4. przedstawiono rozszerzenia, które znacznie wzbogacą funkcjonalność Twojej strony.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

140 Joomla!. Profesjonalne tworzenie stron WN 1W .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

158 Joomla!. Profesjonalne tworzenie stron WN 1W .

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

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

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

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

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

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

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

W tym przypadku wprowadź poniższy: // zablokuj bezpośrednie uruchamianie defined( '_JEXEC' ) or die( 'Brak dostępu' ). a następnie PHP. Subclipse można pobrać na stronie: http://subclipse.. ] Ustawienia skategoryzowane i przedstawione są w formie drzewa Pattern: <?plyp i * Created on 3{date} | * To change the template f o r t h i s g e n e r a t e d f i i * W i n d o w ~ P r e f e r e n c e s . Możesz teraz wprowadzić kod. która może służyć za przykład komponentu. Export All. który będzie dodawany do każdego nowego pliku.P H P e c l i p s e .166 Joomla!.. Najczęściej takie wpisy zawierają komplementy pod . musisz samodzielnie pobrać i zainstalować Subclipse.4. co widać na rysunku 6. Rozwiń węzeł PHPeclipse Web Development. org Tworzenie komponentu Księgi Gości Tradycyjna aplikacja internetowa. to księga gości.. Profesjonalne tworzenie stron WN 1W Zmiana domyślnego szablonu PHP w celu dodania zabezpieczenia Joomla! pozwoli Ci lepiej zapoznać się z Eclipse. aby zapisać zmiany. Export. Wybierz pozycję New PHP files i kliknij przycisk Edit.. Rysunek 6. Jeśli jednak zainstalowałeś standardową wersję Eclipse. które widoczne są następnie dla wszystkich odwiedzających stronę. kliknij pozycję Code Templates. Kliknij przycisk OK.4. Od tej chwili wszystkie pliki PHP utworzone w Eclipse będą zabezpieczone przed uruchamianiem spoza systemu Joomla!.C o i f < > 0 Automatically add comments for new methods and types s (does not apply to comments contained in the code patterns) Restore Defaults Apply W prawym panelu okna Preferences pojawi się lista dostępnych szablonów dla projektu tego typu. K Preferences type filter text $ Amateras ffl Ant ffi Coloring Editor EdipseUtilPlugins ® Help m HTML Tidy is Install/Update ffi Internet ffi Java 8 PHPeclipse Web Deve Browser Configur Browser Preview S PHP Code Assist Code Templat Formatter Help (WIN_3i HTTP Query Installed Inte Mark Occurre PHP Parser Spelling Task Tags Templates + PHP Fvtfirnal Tnn Code Templates Configure generated code and comments: Comments Ei Code Newly created HTML files ( j Import. Ustawienia wyświetlane są w postaci drzewa.. Wybierz opcję Preferences z menu Window. Umożliwia ona zamieszczanie komentarzy przez użytkowników.PHP .. Pakiet EasyEclipse zawiera wtyczka Subclipse. tigris. aby dodać funkcję współpracy z systemem SVN.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Profesjonalne tworzenie stron WN 1W .200 Joomla!.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

216 Joomla!. Profesjonalne tworzenie stron WN 1W .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

261
0.14

Welcome to Joomla!

&

1

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

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

0 0 0 Q O

M Joomla!

G ł o s u j J I Wyniki

Who's

Online

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

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

„ .. Options:

Po11

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

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

262

Joomla!. Profesjonalne tworzenie stron WN 1W

Rysunek 10.16. Sonda wyświetlona w interfejsie forum SMF

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

voting Edit Pol!

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

Administrator Newble Posts-i

test

-

Miejsce spotkania

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

_ A t u i »
L J :

¿teRmo» aaa
M &

'

kkkkk

'

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

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

37.206.22.160

Pages:[1]

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

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

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

263

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

• • •

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

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

clicking code,

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

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

Jan Kowalski

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

# w é c* a è #

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

Send

1

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

264

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

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

/

TUJEflKED SPECIAL EDITION

General

Layout

Postinq

Notification

Reports ; Favoured

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

Main O p e i atiiuj M o d e :

HI
Sections available :

About Joomla! fiSMHH

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

O Nie ® Tak

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

O

Nie

0

Tak

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

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

Ö Nie © Tak

S..J enabled add new comment on archive item

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

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

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

• • •

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

265

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

»

fi

Ä

-kolor-

v

-rozmiar-

"

e © @ OiD ©®

© © © © © ©

® €> © ©© ©

O © © ©

[ Wyślij |

• • •

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

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

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

266

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

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

General

Security

Postmy

Layout

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

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

on FVepare Content

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

autodetect autodetect utf-8

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

Exclude Include sections:

Static Content About Joomla!

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

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

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

267

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

fi

y

«:

*l

A

ui

4i> m

r

•>* KS

-4

U*

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

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

268

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

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

[December 01 200«

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

X

2

3

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

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

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

269

Moduł legenda wydarzeń w kalendarzu.

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

Wtyczka wyszukiwania w kalendarzu.

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

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

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

V

V V / U ABC

Public U

w m mm
*! i n

- Styles -- v d, >t

-- Format •f —

v

-- Font family s r

:= i = i

W A

u ' * a - »

- ¿ H i

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

270

Joomla!. Profesjonalne tworzenie stron WN 1W

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

Common

Calendar

images:

Extra

Help i

About

Temat: Kategorie: Aktywność B

Ferie zimowe Wakacje "V Poziom dostępu Public
V

I
S=

u

ák W 1

m

m

m i

m

--styles-4> C2f! ZŁ

v

-- Format -a !
1

v J -

-- Font family ~ ii !3 u

v A -

B

J » » j a '

JL

i l l

X,

xa I n

- s

," |

B a w sią z nami!|

Grafika <?«

Pagebreak

Readmore

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

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

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

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

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

O Nie ® ak

©
O ak Q V

© Nie

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

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

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

271

fiSJ

Si=j

Weekly view 0

ŚźB

%

Monthly View 4 October 208« Nowe rofeei 008

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

<> football 2 3 4 «»Business Maeting 6

7
O Football Game 14 <> Football Game

u
Oeuiiness : Meeting

13

17 n -M
25

i« OSuiines? Westing -M O Business

20

It
<> Football

27

m
;

<» Football Gam*

;

OfWonthSy | Work

Today • Search Calendar •

1

i Sports

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

!j Go .

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

• • • • • • •

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

272

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

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

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

• • • • • • • •

4

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

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

273

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

Open W i k i

P r o j e c t s

O f

Table of Contents

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

DokuWiki for Joomla!

^

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

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

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

• • •

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

384 Joomla!. Profesjonalne tworzenie stron WN 1W .

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

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

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

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

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

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

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

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

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

394 Joomla!. Profesjonalne tworzenie stron WN 1W .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

El Rama is a melting pot where Mestizo cattle traders meet Caribbean :aptains. cattle raising highlands of Nicaragua's interior. • Rzut okiem na popularne strony oparte na Joomla! • • • Adresy przyjazne Nawigacja robotom internetowym — Nie 409 okruszkowa — Tak Główne sekcje — Resources Home. lysunek 16. a iongtime riverine port and trader town.13. About Best Association. Government Affairs.Rozdział 16. Submit Y o u r Question Minimalna szerokość — 800 • • • E-commerce—Nie Funkcje społecznościowe — Tak lelacje podróżnicze Randalla Wooda Strona (zobacz rysunek 16. Meeting Planning. and treat It with all the respect of such a frontier town. Web Strategy.therandymon. In fact. który obecnie współpracuje z National Geographic Society w Badaniu Światowego Dziedzictwa (której celem jest zanalizowanie i opisanie najcenniejszych kultur oraz środowisk świata). and dark skinned Creoles meet Nicaraguan "Spaniards" from the Pacific. Print Strategy.D u e s Revenues. Event Registration.13) poświę