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:

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.