9.1. O programie
Userpanel jest opartą na szkielecie LMS (i ściśle z LMS współpracującą) implementacją tzw. e-boku. Umożliwia (albo będzie umożliwiał) klientom przeglądanie stanu swoich wpłat, zmianę swoich danych osobowych, edycję właściwości swoich komputerów, zmianę taryf, zgłaszanie błędow oraz awarii do Helpdesku, wydruk faktur oraz formularza przelewu.
9.2. Instalacja
9.2.1. Instalacja
W lms.ini należy ustawić katalog sys_dir na katalog z LMS-em. Userpanel będzie potrzebował bibliotek LMS-a z tego katalogu. Dodatkowo w opcji userpanel_dir trzeba wskazać lokalizację Userpanela.
9.2.2. Konfiguracja
Oprócz opcji dostępnych dla LMS-UI, Userpanel korzysta z opcji zawartych w sekcji konfiguracyjnej [userpanel] (dostępnej także w pliku lms.ini).
9.2.3. Moduły
Moduły w Userpanelu znajdują się w katalogu modules. Ich włączenie lub wyłączenie sprowadza się do usunięcia bądź skopiowania odpowiedniego modułu do tego katalogu.
9.3. Konfiguracja
Konfigurację Userpanela umożliwia panel konfiguracyjny dostępny w LMS-UI w menu Userpanel → Konfiguracja. LMS automatycznie wykrywa instalację Userpanela i udostępnia to menu, jeśli w sekcji [directories] zostanie ustawiona opcja userpanel_dir.
W głównym oknie znajdują się podstawowe opcje konfiguracyjne oraz lista (włączonych) modułów. Kliknięcie na dowolnym rekordzie spowoduje przejście do opcji konfiguracyjnych wybranego modułu.
9.4. Wygląd (style)
Interfejs Userpanela jest tak stworzony, aby umożliwić łatwe dostosowanie do własnych potrzeb i do wyglądu swoich stron internetowych. Nie ma przy tym potrzeby zmiany kodu szablonów.
Główne pliki z definicjami styli css oraz obrazki umieszczone są w katalogu style, w podkatalogach o nazwach odpowiadających nazwie stylu. Jeżeli w danym stylu nie ma jakiegoś pliku, zostanie zastosowany plik ze stylu domyślnego - default. Oprócz plików obrazków, styli css oraz skryptów JavaScript styl zawiera również dwa szablony Smarty, które definiują wygląd strony wraz z menu głównym (body.html) oraz wygląd tabelek z nagłówkami (box.html).
Każdy moduł posiada własny podkatalog style. Jeżeli w nim system nie odnajdzie danego pliku zostanie użyty plik dla danego stylu z głównego katalogu style.
9.5. Moduły
Userpanel posiada budowę modularną. Każdy moduł, odpowiadający pozycji w menu, to odrębny podkatalog katalogu modules.
9.5.1. Struktura modułu
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.
9.5.2. Główne pliki
9.5.2.1. configuration.php
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'), ), ) ); ?>
9.5.2.2. functions.php
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.