UWAGA: Strona zawiera materiały archiwalne. Większość artykułów dotyczy Joomla! 1.0
Start arrow Programowanie arrow Poradniki arrow Tworzenie komponentu w Mambo CMS
Tworzenie komponentu w Mambo CMS - Wstęp Drukuj Email
Spis treści
Wstęp
dailymessage.php
admin.dailymessage.php
admin.dailymessage.html.php
toolbar.dailymessage.php
toolbar.dailymessage.html.php
install.dailymessage.php i uninstall.dailymessage.php
dailymessage.xml
Dodatek 1. Komponenty versus Moduły
Dodatek 2: Zakładki na stronach administracyjnych

Pytanie, które nurtuje większość nowych użytkowników Mambo. Poznanie odpowiedzi na to pytanie pozwoli bardziej zrozumieć architekturę Mambo. Jaka jest różnica między komponentem a modułem w Mambo?

Krótka odpowiedź: Moduł może pojawiać się na każdej stronie i zazwyczaj ma bardzo prosta funkcjonalność. Komponent generuje swoje własne strony i może być bardzo rozbudowany.

Ta odpowiedź powinna być satysfakcjonująca dla większości z was. Dla bardziej dociekliwych oraz lubiących dogłębnie poznać wspaniałości architektury Mambo jest więcej do odkrycia. Zacznijmy od sposobu, w jaki strony Mambo są generowane.

Kiedy ktoś odwiedza twoje strony, uruchamiany jest plik index.php z głównego katalogu. Ten plik ładuje dużo różnych klas oraz innych fragmentów kodu pozwalających Mambo działać. Po zakończeniu tej fazy, Mambo zerka do katalogu twojego bieżącego szablonu graficznego (templates) i próbuje uruchomić istniejący tam plik index.php. Tak, więc oba katalogi główny oraz szablonu graficznego zawierają pliki index.php - jeden do obsługi technicznej Mambo a drugi do wygenerowania strony graficznej portalu.

Plik index.php w katalogu szablonu graficznego wygląda prawie jak zwyczajny plik HTML. W środku powinieneś znaleźć linie kodu <?php include_once('mainbody.php'); ?>, która informuje PHP aby zaprzestał wyświetlania HTML i wlączył kod z pliku mainbody.php, który ładuje dokładnie jeden komponent. Oznacza to, że każda strona w Mambo używa komponentu (Zgoda, że mógłbyś usunąć tą linijkę kodu i wtedy komponent nie zostanie załadowany, ale to by poważnie uszczupliło funkcjonalność Twojego portalu). Standardowo, Mambo będzie starał się załadować komponent odpowiadający pierwszej pozycji menu głównego. Zazwyczaj jest do ’Home/Start’, który wskazuje na komponent strony głównej 'com_frontpage'. Strona główna wyświetla skróty wiadomości napisanych przez publicystów portalu. Kiedy klikniesz na jednym z linków do pełnej wiadomości, wysyłasz wiadomość do Mambo o załadowaniu komponentu zawartość ’content’, wraz z parametrami konkretnej wiadomości, którą należy pobrać z bazy danych. Inne linki wskazują na inne komponenty.

Poza kodem włączającym plik mainbody.php , twój szablon graficzny będzie miał wiele wywołań funkcji mosLoadModules(), np. mosLoadModules('left'). Ten kod nakazuje Mambo załadować wszystkie moduły przypisane do lewej 'left' pozycji aktualnego komponentu (standardowe pozycje to lewa 'left', prawa 'right', górna 'top', dolna 'bottom', wewnętrzna ’inset’, użytkownika1 ’user1’ oraz użytkownika2 ’user2’). Kiedy edytujesz ustawienia modułu w panelu administracyjnym, możesz wybrać z listy wyboru, do jakich komponentach chcesz przypisać moduł (lub możesz przypisać do wszystkich, co jest standardowym ustawieniem?. W ten sposób administrator może np. przypisać moduł logowania tylko do strony głównej, nie udostępniając go żadnej z podstron. Szablony graficzne nie muszą ładować moduły na każdej z możliwych pozycji (nie muszą wogóle ładować modułów), ale zazwyczaj pomocnym jest załadowanie conajmniej jednego modułu z menu, chyba, że chcesz sam zakodować własną nawigację.

Kiedy ktoś odwiedza Twoje strony prawdopodobnie nie obchodzi go różnica pomiędzy modułem a komponentem. Natomiast, każdy używający panelu administracyjnego do modyfikacji zawartości i układu stron powinien nauczyć się jak zarządzać tymi elementami. Moduły mogą być instalowane z menu Moduły - pozycja instaluj/odinstaluj (install/unisntall). Strona ta wyświetli listę zainstalowanych już modułów wraz możliwością dodania nowych (pod lista).

Kiedy klikniesz na pozycje menu Moduły witryny/administratora będziesz miał widoczna inna listę modułów oraz możliwości publikowania/nie publikowania, ustalenia pozycji oraz układu. Ta lista może być dłuższa od poprzedniej, z uwagi na możliwość tworzenia indywidualnych modułów zawartości ’content’. Te moduły nie są ładowane z kodu katalogu modułów, ale z zawartości bazy danych, podobnie jak wiadomości i artykuły. Widoczne są jak inne moduły.

Wszystkie moduły pozwalają na definiowanie parametrów. Parametry pozwalają twórcy modułu na danie administratorowi możliwości zmiany elementów modułu bez tworzenia skomplikowanego panelu administracyjnego. Spójrzmy na przykład, jeśli twórca modułu chciałby dać administratorowi wpływ na kolor tła modułu, może zdefiniować parametr dostępny w zarządzaniu modułem. Administrator musiałby tylko kliknąć na nazwę modułu i wpisać backgroundcolor="green" (nazwa parametru = parametr) jako pojedyncza linie w polu Parametry ’Parameters’.

Tworzenie panelu administracyjnego komponentu wymaga dużo więcej wysiłku, ale wynikiem jest łatwy w użyciu panel administracyjny komponentu pozwalający zarządzać skomplikowaną funkcjonalnością. Kiedy ładowany jest panel administracyjny komponentu, plik admin.[nazwa_komponentu].php jest wykonywany z katalogu /administrator/component/com_[nazwa_komponentu]. Ten plik generuje odpowiednie strony w zależności od zadania albo podmenu. Dokładnie ten temat omówiliśmy szczegółowo w tym kursie.

Jak tylko zrozumiesz różnice pomiędzy modułem a komponentem, cala struktura Mambo wyda ci się bardzo przejrzysta. Jeśli dobrze się czujesz programując w PHP, powinieneś bez wahań spróbować tworzyć własne moduły i komponenty. Jakkolwiek mądrym posunięciem jest sprawdzenie stron mosforge.net, aby sprawdzić, jakie ogólnie dostępne komponenty i moduły są do dyspozycji. Szanse na znalezienie czegoś o poszukiwanej funkcjonalności są całkiem spore.



Zmieniony ( 14.12.2007. )
 
« poprzedni artykuł