P. 1
Joomla! Profesjonalne tworzenie stron WWW

Joomla! Profesjonalne tworzenie stron WWW

|Views: 3,825|Likes:
Wydawca: Katarzyna Wu

More info:

Published by: Katarzyna Wu on Oct 03, 2011
Prawo autorskie:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

06/16/2013

pdf

text

original

Sections

  • O autorze
  • Wprowadzenie
  • Zapoznanie z Joomla!
  • Wpływ elastyczności na popularność Joomla!
  • Dla kogo jest ta książka
  • Webmasterzy
  • 'rojektanci stron WWW
  • eweloperzy stron WWW
  • Joomla! w wersji 1.0 a użytkownicy Mambo
  • ¡ztery serwery systemu Joomla!
  • Decyzje podczas instalacji
  • Etapy instalacji Joomla!
  • Konfiguracja Apache Web Server
  • Konfiguracja PHP
  • Konfiguracja MySQL
  • Konfiguracja Joomla!
  • Serwer testowy a serwer produkcyjny
  • Istawienia serwera testowego
  • Ustawienia serwera produkcyjnego
  • Struktura szablonu
  • Pliki i foldery
  • .ogika szablonu: plik index.php
  • ezentacja szablonu: plik CSS
  • Metadane szablonu: plik lemplateDetails.xml
  • lienne szablonu: plik parametrów
  • •afika szablonu: folder images
  • Miniatura szablonu
  • worzenie trójkolumnowego układu
  • Tworzenie struktury szablonu
  • wonzenie pliku index.php
  • Tworzenie dystrybucyjnego pliku templateDetails.xml
  • Zaawansowane techniki tworzenia szablonów
  • Wykorzystanie grupy szablonów a CSS
  • Modyfikacja wyglądu rozszerzeń
  • iorzenie układu strony dla telefonów komórkowych
  • laptowanie szablonów Mambo lub Joomla! 1.0
  • Katalog rozszerzeń
  • • funkcjonalność i obsługa strony;
  • inkcjonalność i obsługa strony
  • Instalacja dodatkowego edytora WYSIWYG
  • Dodawanie własnych stylów do TinyMCE
  • idawanie obsługi plików i FTP
  • Dodawanie mapy strony
  • rganizacje i e-commerce
  • Menedżer subskrypcji
  • klep internetowy MicroShop z płatnościami Paypal
  • Menedżer projektów Project Fork
  • zszerzenie kart pracy
  • Dodawanie na stronie platformy aukcyjnej
  • awartość strony
  • Podcasting w Joomla!
  • ileria zdjęć na stronie Joomla!
  • omunikacja na stronie
  • Dodawanie komentarzy do artykułów
  • Księga gości
  • :at na stronie Joomla!
  • Uruchamianie systemu wiki w Joomla!
  • Nriting
  • Implementacja ogłoszeń
  • idawanie śledzenia wyników sportowych
  • idawanie gier hazardowych
  • Obsługa quizow
  • Podsumowanie
  • Tworzenie moduhi Hello World
  • worzenie modułu Świąteczne Życzenia
  • Tworzenie pliku deskryptora
  • vorzenie kodu modułu
  • rorzenie tabeli i zapisywanie przykładowych danych
  • Konfiguracja moduhl
  • Tworzenie modułu Kontakt z Nami
  • Zsumowanie
  • wygotowanie środowiska programistycznego
  • Stosowanie systemu kontroli wersji SVN
  • Instalacja SVN
  • orzenie repozytorium SVN
  • Korzystanie z Eclipse
  • Tworzenie komponentu Księgi Gości
  • ihrona przed spamem
  • Część frontowa komponentu
  • zęść administracyjna komponentu
  • Plik deskryptora
  • Tworzenie archiwum
  • Instalacja komponentu
  • orzystanie z phpDocumentor
  • stalacja
  • Wstawianie sekcji DocBlock w kodzie źródłowym
  • truktura technologii Ajax
  • rosty komponent aiaksowy
  • rorzenie komponentu
  • orzenie strony WWW
  • nrorzenie komponentu Serwer-Żądanie
  • Tworzenie modułu ajaksowego
  • Wady technologii Ajax
  • Niedostępność dla robotów internetowych
  • Gromadzenie informacji
  • Zagrożenia bezpieczeństwa
  • odsumowanie
  • Wzorce projektowe
  • frzy główne kategorie wzorców
  • Mzorce konstrukcyjne
  • Wzorce czynnościowe
  • Wzorce współbieżności
  • Wzorce architekturalne
  • Wzorzec Model-Widok-Kontroler
  • Wykorzystanie wzorca MVC w tworzeniu komponentów
  • »odsumowanie
  • Przegląd wtyczek Joomla!
  • [darzenia typu Content
  • Zdarzenia typu Editor
  • Zdarzenia typu System i Search
  • Zdarzenia typu User
  • Wtyczka Hello World!
  • worzenie pliku deskryptora
  • Tworzenie kodu wtyczki
  • Wtyczka Automatyczne Skróty
  • Kod deskryptora XML
  • (od wtyczki
  • ludowa 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
  • Planowanie wirtualnej społeczności
  • •zy stadia wirtualnej społeczności
  • • programowanie i testy;
  • ap 1. Programowanie i testy
  • Znaczenie stabilności i regularności
  • laczego warto stworzyć wirtualną społeczność
  • Technologie wirtualnych społeczności
  • sięga gości
  • irum dyskusyjne
  • Sondy
  • Komentarze
  • Sieci spolecznościowe
  • alendarz wydarzeń
  • Systemy Wiki
  • Uruchamianie wirtualnej społeczności
  • Dobór moderatorów
  • rowadzenie społeczności
  • rogramowanie i testy
  • Ustawienia diagnostyczne
  • Interfejs wiersza poleceń PHP
  • automatyzowane testy
  • Uruchamianie strony
  • Przenoszenie strony na serwer produkcyjny
  • opia zapasowa Joomla!
  • Konfiguracja wirtualnych serwerów Apache
  • ontrola serwera Apache z wiersza poleceń
  • arządzanie wieloma serwerami
  • Testy obciążeniowe
  • równoważenie obciążenia
  • Umiędzynaradawianie
  • utomatyczne cenzurowanie treści
  • lostrajanie wydajności MySQL
  • istawianie dysku przechowującego dane
  • Wybór typu serwera
  • Źródło problemów
  • Optymalizacja indeksów
  • ptymalizacia istniejącego systemu
  • Administracja
  • Uwierzytelnianie LDAP
  • Obsługa
  • Czyszczenie systemu
  • Bezpośredni dostęp do MySQL
  • Pobieranie zewnętrznych materiałów
  • Kanały RSS
  • Rozszerzenie Auto Articles 3000
  • Urządzanie programami partnerskimi
  • Program partnerski Google AdSense
  • Program partnerski firmy Amazon
  • [omunikacja 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
  • Ustawienia Joomla!
  • Proste adresy
  • Metadane
  • kty wacja modułu Breadcrumbs
  • Kapa strony
  • Ogólne techniki
  • Główne wyszukiwarki
  • ladanie stów kluczowych
  • Atrybut alt dla obrazów i innych multimediów
  • PageRank Google
  • ystem wymiany odnośników
  • Ajax a SEO
  • ioogle flnalytics
  • ¡zego nie należy robić
  • Marketing w wyszukiwarkach internetowych (SEM)
  • Komponowanie skutecznego tekstu reklamowego
  • ay per click i pay per view
  • oogle Adsense
  • rypy ataków
  • SQL Injection
  • liestandardowe żądania—szczególnie przez fljaksa
  • Cross-Site Scripting (XSS)
  • Skanowanie katalogów
  • tak Denial of Service (DoS)
  • 'odsłuchiwanie pakietów HTTP
  • Bezpieczeństwo serwera WWW
  • Zabezpieczanie serwera Apache
  • Imowa dostępu do plików z danym rozszerzeniem
  • Bezpieczeństwo PHP
  • PHP Safe Mode
  • IP disablejunctions
  • IP disable _classes
  • PHP display.errors
  • PHP expose_php
  • Bezpieczeństwo MySQL
  • ezpieczeństwo Joomla!
  • suwanie plików instalacyjnych
  • lytor HTML Joomla!
  • Uruchamianie wewnątrz systemu
  • Rozwijanie i testowanie
  • (ontrola wersji dokumentów
  • mport, konwersja i eksport plików
  • Jgraniczone funkcje zabezpieczeń i autoryzacji
  • Równoważenie obciążania i replikacja danych
  • Poziomy interfejsu użytkownika, obsługa skórek
  • Standardowa funkcjonalność groupware
  • Funkcjonalność portalu
  • 'odsumowanie
  • Strony akademickie
  • Wydział Biologii Molekularnej Princeton
  • me Shakespeare Birthplace Trust
  • The Shakespeare Birthplace Trust is
  • 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
  • i Story for Bedtime
  • Second Wives Club
  • Better Health Here
  • 'rofesjonalne strony
  • Aistrzostwa Świata 2010 w Republice Południowej Afryki
  • Best Association Resources and Tools
  • lelacje podróżnicze Randalla Wooda
  • Turbo Trade
  • onetto
  • John Avon Illustration
  • John Avon Illustration
  • fledia (Aktualności, magazyny itp.)
  • lainSPOT.NET
  • 1ainSPOT.NET
  • Centrum Informacji ONZ dla Europy Zachodniej
  • G JB Global
  • Asiaing.com
  • he Chaser
  • Creative Guy Publishing
  • Creative Guy Publishing
  • ?ative guy publishing
  • Strony hobbystyczne
  • Success and Sport (S.A.S.)
  • Safari Ventures
  • ky Systems
  • KISSin' UK
  • Strony poświęcone technologii
  • ¡trona główna projektu Joomla!
  • Open Workbench
  • Open Workbench OPEN
  • Domlahut
  • Projekt OScar
  • Skorowidz

PROGRAMMER

TO

PROGRAMMER™

Joomla!
Profesjonalne tworzenie stron WWW ,

Dan Rahmel
'=', wrox
j

/

Helion
PROGRAMMER TO PRCX;

http://helion.pl

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

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

Joomla!.

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

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

13 15 21
22 23 24 24 25 27 28 29

¡

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

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

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

67
67 68 69 73 78 79

6

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

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

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

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

141
142 145 146 147 149 150 152 157

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

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

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

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

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

201
202 203 203 205 206 207 207 209 211 215

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

217
217 219 220 221 221

8

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

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

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

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

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

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

Profesjonalne tworzenie stron WWW Niestandardowe żądania — szczególnie przez Ajaksa Cross-Site Scripting (XSS) Skanowanie katalogów Atak Denial of Service (DoS) Podsłuchiwanie pakietów HTTP Bezpieczeństwo serwera WWW Zabezpieczanie serwera Apache Odmowa dostępu do plików z danym rozszerzeniem Bezpieczeństwo PHP PHP Safe Mode PHP doc_root PHP disable_functions PHP disable_classes PHP display_errors PHP expose_php Bezpieczeństwo MySQL Bezpieczeństwo Joomla! Usuwanie plików instalacyjnych Edytor HTML Joomla! Uruchamianie wewnątrz systemu Rozwijanie i testowanie Podsumowanie 371 372 372 373 373 376 376 377 378 378 379 379 379 380 380 380 381 381 381 382 382 383 Rozdział 15. Rzut okiem na popularne strony oparte na Joomla! Strony akademickie Wydział Biologii Molekularnej Princeton The Shakespeare Birthplace Trust Journal of Intercultural and Interdisciplinary Archaeology Graphic User Interactive Learning and Development (GUILD) Ministerstwo Edukacji na Wyspach Dziewiczych Strony poświęcone zdrowiu i rodzinie SeniorNet KidsCHANNEL A Story for Bedtime Second Wives Club Better Health Here Profesjonalne strony Mistrzostwa Świata 2010 w Republice Południowej Afryki Best Association Resources and Tools Relacje podróżnicze Randalla Wooda Turbo Trade Sonetto John Avon Illustration 395 396 396 397 398 399 400 401 401 402 403 404 406 407 407 408 409 410 411 412 . Czego Joomla! nie potrafi Kontrola wersji dokumentów Import.10 Joomla!. konwersja i eksport plików Ograniczone funkcje zabezpieczeń i autoryzacji Równoważenie obciążania i replikacja danych Poziomy interfejsu użytkownika. obsługa skórek Standardowa funkcjonalność groupware Funkcjonalność portalu Podsumowanie 385 385 387 387 388 388 389 390 393 Rozdział 16.

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

Profesjonalne tworzenie stron WWW .12 Joomla!.

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

Profesjonalne tworzenie stron WWW .14 Joomla!.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

30 Joomla!. Profesjonalne tworzenie stron WWW .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

66 Joomla!. Profesjonalne tworzenie stron WWW .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

87

}

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

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

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

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

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

}

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

}

88

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

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

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

}

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

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

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

89

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

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

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

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

'

'

..

:

:

"" "

IZZM

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

który

90

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

Pük

Edycja

Qbrazek

Carstwa

Zaznsęz

Fftr

Widok

Okno

POEIX)£

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

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

mm
J L

1 S 4 o. y
»

,

>.

«

4.-J

T

J.S

Bpi!

;

vi;

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

i;;;-;-

j

iÊKmSÊÊ'

::

:

: i' : !

'

V

V

' i^ f t :

1

:

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

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

Tworzenie bannera

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

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

91

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

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

92

Joomla!. Profesjonalne tworzenie stron WWW

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

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

Joomtcii" www.JoomlaJumpstarf.com

Modlił: [ m e ] Ziń

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

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

Prryi ostek Masy moduhi • Piiuimetiy: rozsietzone

Wszystkie ' Pozycje wybi Exumpfe Pages

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

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

93

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

U 1 H P I

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

media portals, blogs and ¿Commerce applications

Powered by

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

J^ Joomla !
version 1.5

! -4 Newsflash

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

Joottdai Home
Joomla! Fomms Joomla! Help

We are Volunteers Wpisał Administrator

0

0

0

Stick to the Code ! Wpisal Administrator

0

0

S

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

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

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

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

OSMHome \

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

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

94

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

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

U l Projektant menu

O Q 0

Resources Example Pages Key Concepts

S

W

»• j s wolnym oprogramowaniem dostępnym ne et

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

Joomlci! www.JoomlaJumpstart.com

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

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

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

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

95

enu: [ utwórz )

v/

©

O

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

i Zm""!"yp J :
:

Parametry
Pałfliiietiy koinjHiiien!

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

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

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

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

96

Joomla!. Profesjonalne tworzenie stron WWW

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

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

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

97

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

m

®t

Ha;-.

Szablon RHUK Milkyway

Piefet encje Parametr-Plik ïemplates\rhuk_milkywaylparams in

Opis; MilkyWay jest szablonem przygotowanym specjalnie

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

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

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

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

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

98

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

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

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

Pomoc

&

'X Ą *<•'•
d i HNr

- *

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

Ctrl+Shift+B

Sfc

-ŁUbS:'

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

*

Why do I need

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

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

'

H

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

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

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

O&

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

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

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

Modyfikacja wyglądu rozszerzeń

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

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

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

99

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

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

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

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

100

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

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

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

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

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

• •

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

101

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

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

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

}

{
}

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

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

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

102

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Profesjonalne tworzenie stron WN 1W .140 Joomla!.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Profesjonalne tworzenie stron WN 1W .158 Joomla!.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Profesjonalne tworzenie stron WN 1W .200 Joomla!.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

216 Joomla!. Profesjonalne tworzenie stron WN 1W .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

"</City><State>" "</Address></Zi pCodeLookupRequest>": echo SmyUrl: echo "<hr />". "</State>" .'<br>': // getAttrlbuteC'ID') } } Sparams = Sdoc->getElementsByTagName('Zip4'): foreach (Sparams as Sparam) { echo "Zip 4=". SmyWTID . . Sparams = Sdoc->getElementsByTagName('Address'). charset=utf-8"><body> . "</Address2>" .</h2> </body> </html> . <hl>Test Wyszukiwarki kodów ZIP</hl> <?php $myWTID= "MOJE ID": SmyAddress = "6406 Ivy Lane": SmyCity = "Greenbelt": SmyState = "MD": SmyUrl = "http://testing. Sparams = Sdoc->getElementsByTagName(* Zi p5'): foreach (Sparams as Sparam) { echo "Zip 5=". try { @Sdoc = DOMDocument::load($myUrl). "<City>" . echo "<hr />". Sparam ->textContent . 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='" .dll?" "API=ZipCodeLookup&XML=<ZipCodeLookupRequest "<Address ID='0'><Addressl></Addressl>" .'<br>'. SmyState .342 Joomla!.php w głównym katalogu serwera testowego: <html><meta http-equiv="Content-Type" content="text/html.'<br>': // getAttributet'ID') } ?> <h2>Gotowe. Sparam ->getAttribute('ID'). Sparam ->textContent . "<Address2>" .shippingapis. // Wyświetl pobrane dane na stronie echo html special chars($doc->saveXML()): echo "<hr />".com/ShippingAPITest. } foreach (Sparams as Sparam) { echo "ID=" . SmyCity . SmyAddress .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

. Później program p r z e b u d o w u j e sesję H T T P i jest w stanie odtworzyć pliki oraz dane. P r o g r a m p o d s ł u c h u j ą c y (np. tłum. W p r z y p a d k u w d r o ż e n i a J o o m l a ! w internecie jest to mało p r a w d o p o d o b n e (i b a r d z o trudne). jak pokazano to na rysunku 14. musisz n a j p i e r w a k t y w o w a ć SSL na s e r w e r z e W W W . Warto odwiedzić stronę Verisign (iwww. a m a ł a k ł ó d k a w i d o c z n a na dole o k n a przeglądarki będzie zamknięta. zostanie wyświetlony ekran l o g o w a n i a .374 Joomla!. żeby ktoś umieścił p r o g r a m m i ę d z y k o ń c a m i transmisji i przechwycił te i n f o r m a c j e . u ż y w a n e g o do n o r m a l n e j komunikacji. jak działają certyfikaty i w jaki sposób zapewniają szyfrowanie danych. Po zainstalowaniu certyfikatu SSL na serwerze W W W powinieneś móc p o ł ą c z y ć się ze stroną. które zostały przechwycone. że s t r o n ą j e s t zabezpieczona. W p r z y p a d k u u r u c h o m i e n i a J o o m l a ! w intranecie lub sieci lokalnej szanse i możliwości penetracji są dużo większe. HTTP secure). 5 W przypadku Apachc odpowiada za to dyrektywa ServerRoot—przyp. Ta opcja sprawi. s n i f f ) przesyłanych pakietów.verisign. O d n o ś n i k musi być połączony z k o m p o n e n t e m Użytkownik/Logowanie. To tyle! Kiedy użytkownik kliknie odnośnik na stronie głównej. k o r z y s t a j ą c z a d r e s u U R L . i n f o r m u j ą c . taki j a k na r y s u n k u 14.3. która utworzy o d n o ś n i k d o e k r a n u l o g o w a n i a z w y k o r z y s t a n i e m s z y f r o w a n i a SSL.2. Rozwiń ramkę Parametry: Systemu i u s t a w o p c j ę Połączenie SSL na Włączone. M o ż e s z także wykorzystać technologię przełączania J o o m l a ! . która p o z w a l a na przełączanie między z a b e z p i e c z o n ą i n i e z a b e z p i e c z o n ą wersją strony. rejestracji. A d r e s https:// o z n a c z a „ z a b e z p i e c z o n y H T T P " (ang. z prywatnymi informacjami. D o m y ś l n y m portem w y k o r z y s t y w a n y m p r z e z https://jest 443 w m i e j s c e portu 80. tak aby niezabezpieczone logowanie było niedostępne. który umożliwia szyfrowanie ruchu między przeglądarką a serwerem W W W . A b y w ł ą c z y ć b e z p i e c z n e l o g o w a n i e na stronie Joomla!.pl. Po w y ś w i e t l e n i u ekranu edycji e l e m e n t u m e n u u s t a w Tytuł na Logowanie. Dane w sieci W W W są wysyłane i odbierane w formacie HTTP hermetyzowanym wewnątrz pakietów. że odnośnik w menu będzie zaczynać się od https://. Utwórz n o w ą pozycję menu. j a k p r z e d s t a w i o n o to na rysunku 14. podczas gdy reszta komunikacji ze s t r o n ą j e s t nieszyfrowana. żeby dowiedzieć się.com). Profesjonalne tworzenie stron WN 1W z n a j d u j ą c e m u się gdzieś pomiędzy n a d a w c ą i odbiorcą możliwość skopiowania lub „wywęszenia" (ang. która w y k o r z y s t u j e nieszyfrowane logowanie) program przechwytujący może potencjalnie podsłuchać informacje o haśle i nazwie użytkownika.przvklad.1. E f f e T e c h H T T P Sniffer) zbiera i d e k o d u j e pakiety zawierające informacje protokołu H T T P . W tych sytuacjach warto rozważyć zakup certyfikatu bezpieczeństwa SSL. Jeśli chcesz zaszyfrować całą komunikację ze stroną musisz po prostu ustawić katalog Joomla! j a k o główny katalog serwera W W W 5 . t a k i e g o j a k https://www. W p r z y p a d k u strony J o o m l a ! (lub k a ż d e j innej strony. W ten sposób strony logowania. e-commerce lub może nawet interfejs administracyjny m o g ą wykorzystać szyfrowaną komunikację. N a s t ę p n i e musisz u k r y ć („Nie p u b l i k u j " ) moduł logowania.

• Bezpieczeństwo Joomla! tsunek 14. Komponent Użytkownik/Logo wanie zostanie wyświetlony na zabezpieczone i stronie N a z w a użytkownika Hasto Pamiętaj mnie i | Zaloguj | • Nie p a m i ę t a s z h a s t a ? * Nie p a m i ę t a s z n a z w y ? « Zarejestruj .2. Kolejność B ^ g Specjalny W nowym ok me z pask lem nawigacyjnym W nowym oknie bez paska nawigacyjnego łysunek 14.php?option=com_useriview=login W.*«». . Młin Menu » — Potączei«* S-M Wy+ączone Ignoiuj * Włączone Logowanie Koińjiiość Posiorn dostępu r Nowa pozycja menu z n ^ i ł r s i ę na końcu.1./ Q I J Typ pozycji menu Zaloguj .Wyloguj Wyświetla standardowe stiony Logowanie i Wylogowanie Szczegóły pozyc ji menu Parametry*...Rozdział 14.3. ląc:«: index.. worzenie nowego lementu menu ołączonego komponentem 'żytkownik/ ogowanie 375 U Pozycja menu: [utwórz] WytHt-r/ typ pozycji menu # gg Łącze wewnętrzne ysunek 14.. ftodstawowe • P<itametry: «systemu P*k3Ż tytut sir co ¡i Nie * Tak T.«. Istawianie opcji dołączenie SSL i a Włączone U P o z y c j a m e n u : [ utwórz] yN .

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

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

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

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

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

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

Domyślnie w tym polu znajduje się tylko element applet.382 Joomla!. Użytkownicy nie będą mogli wykorzystać żadnego elementu. Serwer testowy m o ż e być niedostatecznie zabezpieczony. komponenty lub wtyczki). które mogłyby zagrozić bezpieczeństwu N a liście p a r a m e t r ó w T i n y M C E z n a j d u j e się u s t a w i e n i e . zawsze dodawaj kod. Dzięki opcji Czyść podczas zapisu z kodu zostaną usunięte niektóre elementy kodu HTML i znaczniki skryptów. musisz być w stanie sprawdzić konfiguracje i rozszerzenia na bezpiecznym systemie. Testy powinny odbywać się w całości na serwerze testowym. możliwe są szkody różnego rodzaju. Uruchamianie wewnątrz systemu Jeśli haker uruchomi plik PHP z pominięciem systemu. czy skrypt u r u c h a m i a n y jest przez Joomla!. applet. które zostaną usunięte z wprowadzonego tekstu. Profesjonalne tworzenie stron WN 1W Rysunek 14. Na początku pliku z kodem umieść poniższą linię: definecK '_JEXEC' ) or die ( 'Brak dostępu' ): Jeśli parametr _J EX EC nie został zdefiniowany (co oznacza. zawierać roboczy kod i niesprawdzone rozszerzenia. iframe na tę listę. że skrypt nie został uruchomiony w systemie Joomla!). . O p c j a Zabronione elementy p o z w a l a Ci określić e l e m e n t y kodu H T M L .4. który mógłby zostać użyty do przeprowadzenia ataku takiego jak X S S . które u m o ż l i w i a d u ż o większą k o n t r o l ę . p r z e t w a r z a n i e kodu z o s t a j e p r z e r w a n e . który s p r a w d z a . Oczywiście. powstrzyma to także użytk o w n i k ó w przed d o d a w a n i e m animacji Flash i innych dynamicznych treści. Rozwijanie i testowanie Jeśli p l a n u j e s z w d r o ż e n i e b e z p i e c z n e g o systemu Joomla!. W celu poprawy zabezpieczeń powinieneś rozważyć wpisanie object. G d y tworzysz n o w e rozszerzenia (moduły. Nawet p r y m i t y w n e testowe rozszerzenia p o w i n n y zawierać tę linię. na w y p a d e k gdyby zostały odnalezione i wykorzystane do ataku przez hakera.

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

384 Joomla!. Profesjonalne tworzenie stron WN 1W .

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

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

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

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

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

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

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

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

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

394 Joomla!. Profesjonalne tworzenie stron WN 1W .

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

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

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

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

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

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

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

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

zapisane w formacie M P 3 . . Unfortunately.: • t-iri. historie i opowiadania czytane dzieciom na dobranoc (zobacz rysunek 16.i Login j fvivaneed Search 1 \ .Ciliar Aa fntetview «wtłfc I>imj I i« liimle* w i „ .. More Just for Kids Minimalna E-commerc