You are on page 1of 448

PROGRAMMER

TO

PROGRAMMER™

Joomla!
Profesjonalne tworzenie stron WWW ,

Dan Rahmel
'=', wrox
j

/

Helion
PROGRAMMER TO PRCX;

http://helion.pl

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

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

Joomla!.

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

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

13 15 21
22 23 24 24 25 27 28 29

¡

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

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

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

67
67 68 69 73 78 79

6

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

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

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

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

141
142 145 146 147 149 150 152 157

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

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

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

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

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

201
202 203 203 205 206 207 207 209 211 215

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

217
217 219 220 221 221

8

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

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

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

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

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

Łączenie z zasobami zewnętrznymi Pobieranie zewnętrznych materiałów Kanały RSS Rozszerzenie Auto Articles 3000 Zarządzanie programami partnerskimi Program partnerski Google AdSense Program partnerski firmy Amazon Komunikacja biznesowa z zastosowaniem EDI Dokumenty EDI Standardy EDI Rozszerzenie Skylark Komunikacja z sieciami zewnętrznymi Komponent typu screen scraper Komponent Joomlamap Wyszukiwanie adresów z zastosowaniem XML Podsumowanie 305 305 305 311 313 314 316 319 320 320 329 330 330 336 340 346 Rozdział 13.Spis treści Źródło problemów Optymalizacja indeksów Optymalizacja istniejącego systemu Administracja Uwierzytelnianie LDAP Obsługa Czyszczenie systemu Bezpośredni dostęp do MySQL Podsumowanie 9 292 292 297 298 298 300 300 301 303 Rozdział 12.. Bezpieczeństwo Joomla! Typy ataków Ataki na hasła SQL Injection 367 367 368 368 .348 348 350 351 353 354 354 355 359 359 360 361 362 363 363 364 364 365 365 366 Rozdział 14. 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 .

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

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

Profesjonalne tworzenie stron WWW .12 Joomla!.

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

14 Joomla!. Profesjonalne tworzenie stron WWW .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Profesjonalne tworzenie stron WWW .30 Joomla!.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Profesjonalne tworzenie stron WWW .66 Joomla!.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.

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

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

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

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

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

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

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

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

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

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

com Donate in USD to CB.2.Rozdział 4.ioomiapoiis.Wybierz język •V Kowalski kowalski@onet.2006 MamboJoe JoomlaJoe. dstawo we tawienia profilu rtkownika podobne tych ystemu imla! Contact Info llame: Fli st lianie: Middle N a m e : L a s t lianie: Email: Usei name: P a s s w o r <1: Verify P a s s w o r d : Język witryny: Str efa c z a s o w a : .0 License htt p: I f w w w foood .'Web fx . J a n Kowalski Jan .Operator .2 Copyright 2004 .2 1.7. Be.com Credits: Nick A.Redaktor .17 1. data. L o n d y n Witryna " ^ ^ : % Group: .Główny administrator Block U s e r : Approve User: Confirm User: No Yes ' Yes V v V ^¡j % ^ Dodatkowe pola m o g ą przyjąć jeden z 11 typów: • • przycisk wyboru.it and CB team. .3 1.pl ko walski@onet . Documentation and Public Relations If y o u like the services provided by this free component.Administrator .Team@joomlapolis.02 1. • Dodawanie i modyfikacja dostępnych r o z s z e r z e ń 113 ¡unek 4.htm http: /.Autor .0.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. % fi % fi 9 % fi mm II V (UTC 00:00) Uniwersalny: Dublin. Deiivate work m u s t piominently duly acknowledge original work and include visible online link www.pi . mny ekran erfejsu mmunity ildera •edstawla listę ństalowanych /czek k. COMMUNITY V2 Your version i s : Latest version: 1.6.Zaplecze .com Community Builder includes following components: Application Icons Tabs Calendar overLib Snoopy Bes (Menus Vet sion N/A 1.eae . please consider making a small donation to support the team behind it: Donate in EUR to CB.net/agreement .1 4.net .Wydawca . 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. Lizbona. .0.Team@joomlapolis.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Profesjonalne tworzenie stron WN 1W .140 Joomla!.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

158 Joomla!. Profesjonalne tworzenie stron WN 1W .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

200 Joomla!. Profesjonalne tworzenie stron WN 1W .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

216 Joomla!. Profesjonalne tworzenie stron WN 1W .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

483.223.767 Liczba całkowita z zakresu ./ + 9.147.854./ + 127 Liczba całkowita z zakresu .775. zapis 2008-12-11 odpowiada zapisowi 11 grudnia 2008 roku — przyp.HAR /ARCHAR rEXT •1EDIUMTEXT _0NGTEXT 3L0B 1EDIUMBL0B _0NGBL0B DATE TIME 1ATETIME Czas zapisany zgodnie ze standardem ISO 8601 3 Łączony zapis daty i czasu w formacie yyyy-ddmmhh:mm:ss Łączony zapis daty i czasu w postaci liczby sekund od 1 stycznia 1970 roku Rok w formacie YYYY Lista predefiniowanych wartości.777.535) Zmienna (do 16. tłum. z której można wybrać jedną Lista predefiniowanych wartości.777. • Prowadzenie profesjonalnej strony bela 11. tłum./ + 8.967.535) Zmienna (do 16./ + 32. np.Rozdział 11.647 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 . . np.216) ' Zmienna (do 4.295) 3 3 8 4 1 1 lub 2 od 1 do 8 LOAT DOUBLE DECIMAL .535) Zmienna (do 65.388./ + 2.967. Oznaczanym także jako hh:mm:ss.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ść.216) Zmienna (do 4. z której można wybrać zero. jedną lub więcej TIMESTAMP YEAR ENUM SET Opisywanym także jako yyyy-mm-dd.294. 23:59:59 — p r z y p .1.294.295) Zmienna (do 65.607 Liczba całkowita z zakresu .372. do 255 Zmienna (do 65.

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

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

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

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

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

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

M o ż e s z w y s z u k a ć stare artykuły. 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.302 Joomla!. po to. aby zwiększyć wydajność. którzy od p e w n e g o czasu nie odwiedzali strony. Aby wygenerować listę artykułów. popularnej i d o j r z a ł e j stronie Joomla!. dla których nie ustawiono metadanych. 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 . dla których nie ustawiono metadanych. 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. Często artykuły u s t a w i a n e są j a k o niepublikowane. uruchom poniższe zapytanie SQL: SELECT * FROM jos_content WHERE metakey = " or metadesc = '' Wyszukiwanie niepublikowanych artykułów i menu Śledzenie niepublikowanych elementów może stanowić spore wyzwanie na dużej. uruchamiając poniższe zapytanie S Q L i zmieniając datę w klauzuli WHERE: SELECT * FROM jos_users WHERE lastvisitDate < '2007-01-01' Wyszukiwanie pustych metadanych J e d n y m z istotnych e l e m e n t ó w w p ł y w a j ą c y c h na p o z y c j ę T w o j e j strony w r a n k i n g a c h w y s z u k i w a r e k i n t e r n e t o w y c h s ą pola z a w i e r a j ą c e m e t a d a n e . by naprawić problem. 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. czy nie b ę d ą p o t r z e b n e w przyszłości. Listę nieaktywnych u ż y t k o w n i k ó w możesz w y g e n e r o w a ć . ponieważ nie w i a d o m o . Proste zapytanie M y S Q L pozwoli Ci stworzyć listę artykułów. czy artykuł) prawdopodobnie nie będzie już wykorzystywany. które d a w n o nie były uaktualniane. Po u p ł y w i e p e w n e g o czasu element (czy to menu. Odpowiednie zapytanie względem tabeli użytkowników wygeneruje listę u ż y t k o w n i k ó w . Profesjonalne tworzenie stron WN 1W Wyszukiwanie starych materiałów Lista artykułów posortowana według dat ostatnich modyfikacji pozwala zlokalizować artykuły. 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ą. W tym momencie najlepiej usunąć go z bazy danych. M o ż e s z znaleźć niepublikowane elementy.

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

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

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

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

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

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

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

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

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

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

możesz go znaleźć (względem głównego katalogu Joomla!) w: 1 components \com_a3000\a3000. gdzie powinny pojawiać się reklamy. aby odpowiadały usłudze. że duże strony zarabiają dosłownie tysiące dolarów miesięcznie wyłącznie z programów partnerskich. Możesz tak j ą ustawić. Google lub Amazon. ustawić jego parametry. często także JavaScript) w treści strony.Rozdział 12. Aby uruchomić na stronie dany program partnerski. więc wartość 1800 odpowiada 30 minutom. webmaster otrzymuje wynagrodzenie. Joomla! może obsługiwać większość popularnych programów partnerskich za p o m o c ą rozszerzeń. Urządzanie programami partnerskimi Programy partnerskie to najpopularniejszy sposób zarabiania na prowadzeniu strony W W W . Otwórz plik zawierający kod komponentu w edytorze tekstu. np. aby artykuły były pobierane częściej niż co 30 minut. które wstawiają niezbędny kod (HTML. a na końcu wybrać miejsce na stronie.$last_checked > 1800) { Wartość parametru time zwracana jest w sekundach. wystarczy zainstalować odpowiednie rozszerzenie. Programy tego typu są na tyle dochodowe. która przypomina poniższą: if ( t i m e O . N części administracyjnej •ozszerzenia vożna wybrać "ematykę pobieranych artykułów Categories manager j Category A u t o and Trucks Business and Finance : Computers and T h e Ir Education Family Fùod and Drink Gadgets and Oremos Health Current Status J R e q u i r e d status • 313 O Q Q 0 O 9 • 0 • Q Q • • • • • • 0 • Leg3i Matte Marketing U Q • Kolejnym sposobem ingerencji w funkcjonalność rozszerzenia jest zmiana częstotliwości pobierania artykułów. Za każdym razem. kiedy odwiedzający kliknie reklamę lub kupi jakiś przedmiot. przez co zgadza się na wyświetlanie reklam na swojej stronie. Zmień tę liczbę według upodobań.8. Nie jest to możliwe z poziomu interfejsu administratora. Zmiana tego typu wymaga ingerencji w kod źródłowy. Webmaster podpisuje umowę z daną firmą. . • Łączenie z zasobami zewnętrznymi lysunek 12.php Poszukaj w pliku linii.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

13).getElementById("map")). • Łą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. "Wróć do Joomlamap</a>": ?>'): } // Wyświetl formularz do wprowadzania adresu function displayAddressEntryO { ?> <hl class="contentheading">Formularz wyszukiwania mapy</hl> <form id="forml" name="forml" method="post" acti on="i ndex. map. marker.setCenter(new GLatLng(37.php?option=com_joomlamap>" . function(point) { if (!point) { alertiaddress + " not found"): } else { map.4419. } } i //]]> loadO. map. var marker = new GMarker(point). map.getLatLng( address.Rozdział 12.openlnfoWindowHtml(address).setCenter(point.addOverlay(marker). showAddress('<?php echo ifldLocation. -122.addControl (new GSmalIZoomControl O): } ).1419). </script> <?php echo "<a href=index. 13): geocoder = new GC1ientGeocoder(): 339 } } function showAddresstaddress) { if (geocoder) { geocoder.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 } ?> .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Unikanie stosowania Ajaksa i JavaScriptu do nawigacji — Gdy robot internetowy indeksuje daną wihynę. jednak z punktu widzenia SEO warto podjąć ten koszt. Powoduje to wzrost dynamiczności i atrakcyjności strony. Problemem związanym z zastosowaniem Ajaksa jest dosłowna niewidoczność dla wyszukiwarek.