====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ść: 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.