Moduły
Moduły w systemie Actualizer CMS są kluczowymi elementami, które rozszerzają podstawową funkcjonalność silnika strony. Moduł w systemie składa się z części zasadniczej - działającej w ramach front-endu, oraz, opcjonalnie, z części konfiguracyjnej.
Moduł, rozumiany jako część zasadnicza, jest plikiem zapisanym w konwencji [nazwa_modułu[.inc.php umieszczonym w katalogu /modules katalogu głównego strony. W systemie występują dwa typy modułów: obiektowy oraz nieobiektowy, moduły dzielą się również na globalne oraz zwykłe - aktywowane w wybranych gałęziach struktury serwisu.
Moduł nieobiektowy
Moduł nieobiektowy nie posiada narzuconej, formalnej konwencji, jest po porostu skryptem php dołączonym (includowanym
) przez silnik strony. Programista posiada pełną dowolność co do formy i struktury kodu. Zalecaną formą przekazania efektów działania modułu jest zdefiniowanie zmiennej tablicowej $mod[nazwa_modułu], która zostanie przekazana przez silnik strony do warstwy szablonów. Opcjonalnie moduł może zakończyć działanie skryptu i przekazać wyniki bezpośrednio do wyjścia, np. w przypadku wywołań typu AJAX.
Moduł obiektowy
Forma modułu obiektowego:
class moj_modul {
var $params;
var $varname = 'moj_modul';
function run() {
global $mod;
$mod[$this->varname]['wynik'] = $this->params['liczba1'] * $this->params['liczba2'];
}
}
?>
Powyższy przykład ilustruje formę modułu obiektowego:
- nazwa klasy jest zgodna z nazwą modułu
- silnik strony includuje plik modułu tylko raz, niezależnie od ilości wywołań
- przy każdym wywołaniu system inicjuje moduł w zmiennej globalnej $instance[ ] o kluczu zgodnym z nazwą modułu lub "nazwą zmiennej" modułu jeśli jest zdefiniowana w ustawieniach modułu
- Jeśli moduł posiada zdefiniowaną "nazwę zmiennej", parametr klasy modułu "varname" zostaje zdefiniowany zgodnie z jej wartością
- do właściwości "params" jest przekazywana lista parametrów definiowanych w opcjach modułu
- następnie wywoływana jest metoda run()
- zalecaną formą przekazania efektów działania modułu jest zdefiniowanie globalnej zmiennej tablicowej $mod[$this->varname], która zostanie przekazana przez silnik strony do warstwy szablonów
Moduł globalny
Domyślnie moduły są wywoływane tylko w tych kategoriach strony do których zostały przypisane w ustawieniach danej kategorii. Moduł zdefiniowany jako globalny jest wywoływany w każdej kategorii serwisu.
Kolejność wywoływania modułów
Kolejność wywoływania modułów zależna jest od wartości liczbowej w polu "priorytet" w ustawieniach modułu. Wyższa wartość oznacza że moduł zostanie wywołany w pierwszej kolejności.
Moduły "doklejane"
Jeśli moduł w ustawieniach systemu posiada zdefiniowane pole "uruchamiany razem z modułem" zostanie on niejako "doklejony" do wybranego modułu i będzie wywołany wszędzie tam gdzie jest wywołany moduł do którego zdefiniowano dołączenie.