Userpanel posiada budowę modularną. Każdy moduł, odpowiadający pozycji w menu, to odrębny podkatalog katalogu modules.
Drzewo katalogów typowego modułu powinno wyglądać następująco:
nazwa_modułu |---locale | |---pl | |---strings.php |---style | |---default | |---image.gif |---templates | |---template1.html | |---template2.html |---upgradedb | |---mysql.2005081901.php | |---postgres.2005081901.php |---configuration.php |---functions.php
I kilka słów wyjaśnienia:
Katalog locale zawiera oczywiście odpowiednie locale. W strings.php są tylko tłumaczenia tekstów zwartych w danym module,
style to oczywiście katalog z obrazkami, zawierający podkatalogi odpowiadające nazwom styli używanych w Userpanelu,
templates to szablony Smarty danego modułu,
upgradedb zawiera pliki auto-upgrade'u bazy danych dla tabel których dany moduł używa. Nazwy tabel tworzonych na potrzeby modułów powinny zawierać prefiks up_nazwamodułu_,
configuration.php i functions.php to dwa wymagane pliki. Ich budowa jest opisana poniżej.
Ten plik zawiera konfigurację danego modułu, oraz jest includowany zawsze przy inicjalizacji Userpanela. Typowa zawartość:
<?php $USERPANEL->AddModule(trans('Help'), // Nazwa wyświetlana 'help', // Nazwa modułu (musi być taka sama jak nazwa katalogu) trans('Runs problems solving creator'), // Tip 5, // Priorytet trans('This module shows solving problems creator'), // Opis 2005081901, // Wersja bazy danych (podobnie jak w LMS, // zobacz lms/lib/upgradedb.php) array( // Pozycje podmenu wywietlane w LMS-UI w menu Userpanel array( // (zobacz lib/LMS.menu.php) 'name' => trans('Submenu'), 'link' => '?m=userpanel&module=help', 'tip' => trans('Tooltip'), ), ) ); ?>
Ten plik zawiera funkcje danego modułu. Podstawową funkcją modułu jest module_main(). Funkcja ta jest wykonywana jako pierwsza po wywołaniu modułu. Jeśli chcemy aby funkcja mogła być wywołana z UI, to dodajemy prefiks module_ np. module_funkcja1(). Funkcja będzie dostępna po wpisaniu url'a: http://userpanel/?m=modul&f=funkcja1. Funkcja module_setup() jest wywoływana przez panel konfiguracyjny dostępny z LMSa.
Poprzedni | Spis treści | Następny |
Wygląd (style) | Początek rozdziału | FAQ |