LMS - LAN Management System 1.11-git
Poprzedni | Rozdział 9. Userpanel | Następny

# 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.

Poprzedni | Spis treści | Następny
Wygląd (style) | Początek rozdziału | FAQ