1
Opublikowano 6 czerwca 2012 w Portal komputerowy » Inne » Webmastering » Joomla! budowa i działanie
 
 

Joomla! budowa i działanie


System zarządzania treścią Joomla! stworzony został w PHP 5.2.4+ z systemem baz danych MySQL 5.0.4+. Aby móc z niego korzystać, serwer Apache i serwer MySQL musi obsługiwać powyższe technologie w tych samych lub nowszych wersjach.

Na system modułowy[7], [8], [9] w Joomla! składają się takie elementy jak:

  • silnik systemu (core/engine),
  • komponenty,
  • moduły,
  • pluginy (mambots),
  • szablony (templates).

Wyjaśnienie pojęć:

  • Silnik to inaczej szkielet programu, zestaw skryptów PHP służących do obsługi komponentów i modułów.
  • Komponent – skrypt zapewniający witrynie różne funkcjonalności. Komponenty dzieli się na wbudowane(rdzenia), czyli takie które są niezbędne do funkcjonowania serwisu np. generatory treści, rejestracja na portalu. Komponenty rozszerzeń to dodatkowe elementy zwiększające możliwości portalu jak usługi w postaci ankiet, kanałów itp. Takie komponenty można dowolnie modyfikować – włączając je lub wyłączając wedle potrzeb, niektóre z nich można dodać do Joomla! w postaci pakietów instalacyjnych dystrybuowanych na prawach licencji GPL bądź za opłatą. Komponenty zazwyczaj posiadają własny interfejs (właściwości), którego elementy konfiguruje się w panelu administracyjnym. Istnieje zależność między wewnętrznymi procesami oraz interakcja z użytkownikiem. Tylko jeden komponent na stronę. Przykłady: panel logowania, menu, wiadomości, sekcja FOOTER szablonu portalu.
  • Moduł – skrypt odpowiedzialny jest za wyświetlanie menu i elementów interaktywnych na stronie. W odróżnieniu od komponentów, moduły nie posiadają własnego interfejsu odpowiedzialnego za takie funkcje jak: gromadzenie, redagowanie i przechowywanie danych. Moduły służą tylko do wyświetlania i pobierania danych, czyli mogą być to takie elementy jak sondy, wyszukiwarka, gdzie źródłem treści stanowią komponenty, własne pliki, bazy danych itp. Również moduły można pobierać z Internetu bądź też tworzyć samemu. Na stronie może występować kilka modułów. Każdy z nich wywoływany jest poprzez adres URL wraz z końcówką np. &Itemid= Przykładami modułów mogą być: ankiety, kontakty, banery, kanały RSS itp.
  • Plugin/Mambot – skrypt, który decyduje o kształcie treści wyświetlanej na stronie, pośredniczy między różnymi zdarzeniami jak na przykład w graficznej edycji tekstu, potrafi maskować określoną treść lub nadać jej inne właściwości. Pełni rolę „tła” portalu czyli funkcji dodatkowych czekających na zdarzenia ze strony użytkownika. Na przykład edytor tekstu WYSYWIG, systemowe elementy (autoryzacja, cache, XML-RPC).
  • Szablon stanowi oprawę wizualną treści prezentowanych na stronie. Nie posiada własnej treści, dlatego można go dowolnie dopasować do upodobań użytkownika. Proces tworzenia szablonu może trwać niezależnie od tworzenia strony, bo szablony jak inne części serwisu można dystrybuować w postaci pakietów instalacyjnych.

Komponenty, moduły i pluginy mogą ze sobą kooperować w np. moduł formularza wysyła zapytanie do komponentu, który z kolei poprzez pluginy wyszukuje żądane informacje.

Wywołując adres Joomla! tak naprawdę system lokalizuje plik INDEX w katalogu głównym, w tym przypadku index.php, końcówka PHP wskazuje na zawartość skryptową, którą po wywołaniu interpretuje serwer, a dane wynikowe w języku HTML wysyła do przeglądarki internetowej poprzez protokół internetowy.

Można w ten sposób wyróżnić część systemową CMS, czyli to co widać na ekranie monitora po uruchomieniu skryptu oraz szkielet aplikacji zwany frameworkiem.

Na framework w Joomla! składają się:

  • interfejs programowania aplikacji (API),
  • wtyczki (plugins).

Rozszerzenia framework Joomla! stanowią:

  • komponenty (components),
  • moduły (modules),
  • szablony strony (templates),
  • języki (languages).

Joomla budowa, działanie Joomla, opis Joomla, składniki JoomlaPowyżej przedstawiono podział systemu Joomla! Interfejs programowania aplikacji (API) Joomla! wywołuje określone moduły, komponenty i pluginy, które swój kod wynikowy lokują w określonych miejscach szablonu. Złożony szablon w całość stanowi stronę internetową.

Poszczególne etapy ładowania kodu PHP Joomla!

Poniżej przedstawiono drogę między zapytaniem użytkownika do serwera Joomla! 1.5, a otrzymaniem komunikatu zwrotnego od niego. W najnowszej wersji mogą występować subtelne różnice w funkcjonowaniu skryptu. Poniższy diagram pełni rolę poglądową i nie wyczerpuje tematu:

Joomla jak działa, działanie Joomla, kod Joomla

Joomla! 1.5 ciąg zdarzeń od zapytania do odpowiedzi serwera (autor: Amit Kumar Singh)

Wywołując plik index.php następuje wykonanie szeregu instrukcji, które tworzą funkcjonalny system Joomla. Etapy ładowania Joomla! według powyższego rysunku:

  • Ładowanie framework. W pierwszej kolejności następuje ładowanie plików:
  • require_once JPATH_BASE.’/includes/defines.php’;
  • require_once JPATH_BASE.’/includes/framework.php’;
  • gdzie: defines.php – jest tablicą stałych globalnych, a framework.php – zbiorem wszystkich innych plików frameworka do załadowania.
  • Stworzenie aplikacji, obiekt: $mainframe gotowy do użycia, następuje inicjalizacja sesji lub tworzenie nowej sesji.
  • Ładowanie języka strony; można powiedzieć że jądro Joomla! (core) już pracuje.
  • Następuje wykonanie drogi użytkownika, na tym etapie sprawdzane jest jaki komponent został zainicjalizowany np. logowanie,
  • Komponent gotowy do wykonania i posiadający uchwyt (handle), obiekt $document zostaje stworzony i wyjście komponentu jest już buforowane. Zdarzenie ‘onAfterDispatch‘ zostało zainicjowane, aby przekazać informacje do wtyczek(pluginów), że system jest gotowy do renderowania (przedstawienia wyników w postaci graficznej lub ustandaryzowanej).
  • Renderowanie aplikacji – umieszczanie danych z buforów dokumentów do odpowiednich elementów szaty graficznej portalu (szablonu). Zdarzeniem informującym o gotowości systemu do kolejnego etapu jest onAfterRender.
  • Odpowiedź zostaje wysłana – dane zbuforowane w JResponse zostają wysłane do użytkownika Internetu.

Układ graficzny portalu Joomla!

Wygląd Joomla![11] po instalacji nie odbiega od norm przyjętych na stronach WEB 2.0;  uwagę zwraca ułożenie menu, które jest bardziej intuicyjne niż w poprzedniej wersji oraz możliwość dodania treści tuż za logiem portalu.

szablon Joomla, budowa szablonu Joomla

Joomla! 1.6 sekcja TOP, nowością jest: 1 -tekst po prawej stronie u góry, 2 - menu rozwijalne, 3 - panel z ważnymi informacjami.

Rodzaje elementów na stronie Joomla!:

  • dynamiczne elementy, np. strona główna,
  • dynamiczne elementy towarzyszące, np. menu,
  • statyczne elementy, np. stopka, nagłówek.

Aby zawartość witryny odpowiadała wymaganiom użytkownika stosuje się bloki, których rozmieszczenie można dowolnie modyfikować. Do dyspozycji jest ponad 50 lokalizacji takich bloków na stronie. Przykład pozycjonowania zawartości strony przedstawiono na rysunku:

bloki Joomla, widżety Joomla

Przykładowe rozmieszczenie bloków w Joomla!

Typowy podział treści to: nagłówek, kolumny z modułami, tytuł strony wraz z główną treścią i stopka. Bloki modułów[2] na stronie mogą być ustawione według domyślnych schematów: header, newsflash, pathway, cpanel, banner, footer, legals, toolbar, icon, debug, advert1. advert2, advert3, top, left, right, bottom, inset i user1-9:

bloki Joomla, rozmieszczenie elementów Joomla

Joomla! podział strony na bloki funkcyjne w domyślnym szablonie strony

Treści są wyświetlane w języku XHTML i z użyciem arkuszu styli kaskadowych (CSS).  Ponadto wersja Joomla! 1.6 została zoptymalizowana pod kątem wyszukiwarek internetowych. Dzięki zastosowaniu semantyki w kodzie XHTML witryna staje się bardziej czytelna dla robotów księgujących zawartość portalu. Układ strony oparty jest na blokach i sekcjach zawartych w tagach: <DIV>, dzięki czemu strona zachowuje się identycznie na ekranach o różnej rozdzielczości.

Wbudowane funkcjonalności Joomla!

Lista funkcji wbudowanych wraz z opisem, czyli dostępnych po instalacji skryptu portalu.

panel logowania Joomla, logowanie Joomla, elementy Joomla

Joomla! panel logowania

Ekran logowania i rejestracji daje możliwość rejestracji konta w portalu i posiadania własnego profilu o przywilejach ustalonych przez administratora. Integracja użytkownika z portalem daje szerokie możliwości zarządzania i kontaktu z osobami zainteresowanymi serwisem WWW. W przypadku konferencji można użytkownikom portalu przypisać pewne prawa jak np. wysyłania abstraktów na serwis o czym napisano w dalszej części pracy.

Z kolei panel rejestracji umożliwia założenie konta użytkownika w systemie Joomla. Dane o użytkowniku zostają zapisane w jednej z tabel Joomla!, w tym hasło które jest przechowywane w formie zaszyfrowanej algorytmem MD5(Message-Digest algorithm 5 ver.).

 
Joomla administrator, panel logowania Joomla

Joomla! Panel logowania do konta administracyjnego

Panel Administracyjny daje możliwość zarządzania portalem i użytkownikami wspomagane graficznym interfejsem.  Dostęp wymaga autoryzacji i posiadania odpowiednich praw(przywilejów). Podstawową rolę w ich nadawaniu pełnią szablony administracyjne z domyślnie ustalonymi prawami dostępu do poszczególnych elementów panelu administracyjnego. Najnowsza wersja Joomla! znosi ograniczenia w wyborze modelu organizacyjnego portalu. W celu zabezpieczenia dostępu: lokalizację panelu oraz konto domyślne administratora powinno się zmienić.

Joomla panel administratora, administracja Joomla

Joomla! Panel Administracyjny, kokpit widoczny po zalogowaniu

 
moduły Joomla, zarządzanie modułami Joomla

Joomla! sekcja moduły

Panel do instalacji i obsługa modułów, komponentów i pluginów. Joomla! wykonana jest w modułowym systemie CMS co oznacza, że poszczególne jego funkcjonalności oparte są na konkretnych programach wykonujących określone funkcje. Większość z nich instaluje się z poziomu Joomla!, który umożliwia zainstalowanie zewnętrznych modułów i komponentów pełniących różne role w portalu.

edytor Joomla, MCE Joomla

Joomla! edytor treści

 

Edytor graficzny daje możliwość redagowania tekstu bez znajomości składni języka HTML. Materiał redagowany można wzbogacić o grafikę, osadzone filmy, załączniki plików i linki.  W systemie Joomla! wbudowane są dwa rodzaje edytorów tekstu: JCE (Joomla! Content Editor) oraz TinyMCE(Tiny Moxiecode Content Editor). Oba edytory korzystają z metody WYSYWIG(What You See Is What You Get) co znaczy, że dane prezentowane w edytorze będą prawie identyczne jak z tymi na wydruku. JCE(Joomla! Content Editor) jest własnym pakietem Joomla! i składa się z mambota(funkcja manipulacji tekstem przed publikacją np. znaczniki mambota: {} , które w trakcie publikacji tekstu zostaną zastąpione konkretnym kodem HTML), komponentu i pluginów. Z kolei TinyMCE jest niezależną platformą opartą na skryptach Java o łatwej integracji z praktycznie każdym CMS. Podstawową wadą TinyMCE jak i wielu innych edytorów WYSYWIG jest nadmiar generowanego kodu HTML w sformatowanym tekście.

 

Artykuły publikowane w Joomla! zostają zapisywane w bazie danych MYSQL, a pliki np. załączniki dodawane do artykułów przechowywane są na serwerze WWW.

 

szablony Joomla

26 Joomla! szablony - na stronie istnieje możliwość podglądu szablonów przed ich instalacją

Szablony. Jak każdy CMS również Joomla! umożliwia dostosowanie wyglądu strony do potrzeb użytkownika bez potrzeby sięgania po programy do tworzenia stron internetowych. Na portalu Joomla.org można pobrać gotowe szablony stron, które następnie instaluje się w Panelu Administracyjnym.

Budowa szablonu[12] (podstawowe pliki):

  • templateDetails.xml – zestaw instrukcji z w formacie XML informujący instalator o rozmieszczeniu plików szablonu na serwerze, udostępnia opis szablonu
  • index.php – zestaw instrukcji w formacie PHP odpowiedzialnych za generowanie szablonu na ekranie przeglądarki internetowej (w formacie HTML)
  • template_css.css. – zestaw styli CSS (kaskadowych arkuszy styli), zestaw informacji o sposobie formatowania treści na stronie (czcionka, kolor, akapity itp.)

Ponadto katalogi:

  • images – folder obrazków na stronę,
  • javascript – folder skryptów mających na celu uatrakcyjnić elementy strony,
  • css – folder styli dla różnych elementów portalu.

Za wyświetlanie poszczególnej treści odpowiadają funkcje:

  • mosMainBody() – treść główna,
  • mosLoadComponents($nazwa_komponentu) –  komponent,
  • mosLoadModules($nazwa_pozycji [, $styl ]) – moduły.
     
RSS Joomla, kanał subskrypcji Joomla

Kanał subskrypcji wyświetlony przez przeglądarkę Firefox

Kanał subskrypcji daje możliwość pobierania najświeższych informacji ze strony za pomocą czytnika RSS wbudowanego w przeglądarkę internetową lub osobnej aplikacji do obsługi kanałów. RSS informuje użytkownika Internetu o tym co się dzieje w danym portalu za pomocą krótkiej notatki, dzięki czemu nie ma potrzeby wchodzenia na serwis i sprawdzania czy nie pojawiły się nowe informacje. Kanał subskrypcji dodaje się w panelu administracyjnym, a o fakcie jego wyświetlania informuje pasek adresu.

Kod XML oparty jest na znacznikach, przedstawia dane w sposób uhierarchizowany w określonej strukturze. Do jego odczytu wystarczy przeglądarka internetowa lub specjalny program do subskrypcji kanałów:

subskrypcja RSS

RSSOwl - program do subskrypcji kanałów RSS swoim wyglądem przypomina skrzynkę pocztową MS Outlook.

Skrypty Java. Zaglądając do wnętrza kodu źródłowego można dostrzec, że przy budowie Joomla! wykorzystano kilka skryptów Java mających na celu podnieść atrakcyjność serwisu czy też ułatwić dostęp do niektórych treści:


<script type=”text/javascript” src=”/demo16/media/system/js/core.js”></script>

<script type=”text/javascript” src=”/demo16/media/system/js/mootools-core.js”></script>

<script type=”text/javascript” src=”/demo16/media/system/js/caption.js”></script>

<script type=”text/javascript” src=”/demo16/media/system/js/mootools-more.js”></script>

Powyżej odwołania do biblioteki MOOTools[4], składającej się ze skryptów Java (więcej o MOOTools i innych bibliotekach AJAX znaleźć można w dodatku A).

Źródła:

[1] www.artisteer.com/?p=help_Joomla! – jak korzystać z szablonów Joomla!

[2] www.pomoc.Joomla.pl/content/view/533/46/ – Joomla!, pozycje modułów

[3] www.rssowl.org/ – strona producenta czytnika RSSOwl

[4] wiki.Joomla.pl/Gdzie_mog%C4%99_poczyta%C4%87_o_Mootools

[11] http://www.pomoc.Joomla!.pl/content/view/528/46/

[12] http://www.pomoc.Joomla!.pl/content/view/527/46/

[7] http://www.pomoc.Joomla!.pl/content/view/523/46/

[8] http://www.Joomla!nh.org/meetings/34-november-10-2010-Joomla!-jumpstart-workshop.html

[9] http://www.slideshare.net/teamphp/how-Joomla!-works

[10] http://amiworks.co.in/talk/Joomla!-request-to-response/

Spis treści: Joomla! budowa i działanie

Słowa kluczowe: joomla pozycje

Click to rate this post!
[Total: 1 Average: 5]

makensis
 
Od 2006 roku Redaktor Naczelny oraz Administrator Tweaks.pl Autor dwóch książek o systemach operacyjnych, szeregu publikacji i porad odnośnie użytkowania komputera. Absolwent Wydziału Elektroniki. Z zamiłowania informatyk, pozycjoner i podróżnik.