![]()
|
|
Zdarzenie (ang. event) – zapis zajścia w systemie komputerowym określonej sytuacji. Zdarzenie występuje w kontekscie jakiegoś obiektu, np. publikacja (czego?) strony.
Zdarzenia generowane są na przykład podczas tworzenia strony, kończenia otwierania dokumentu lub publikacji dokumentu. Zdarzenia są skatalogowane w klasie SystemEvent i przyjmiją formę stałej SystemEvent::CREATE. Patrz dokumentacja API. Kolejność występowania zdarzeń związana jest ściśle z sposobem pracy systemu. Np. zdarzenie utwórz stronę wystąpi tylko raz i napewno będzie wcześniej niż załaduj stronę.
Zdarzenia występują niezaleźnie od tego czy zostanie do nich przypięta jakaś klasa obsługująca dane zdarzenie czy nie. Obsługa zdarzeń jest przydatna jeżeli chcemy rozbudować system lub jakiś dokument w systemie o niestandardowe zachowanie. Dla przykładu, system nie rejestruje w historii strony momentu w którym strona jest tworzona albo odświeżana. Można więc podłączyć się pod zdarzenie Page.Refresh (API: SystemEvent::PAGE_REFRESH) i dodać kod, który doda do historii strony informacje o tym że strona została utworzono (odświeżona).
Obsługa zdarzeń jest zawsze taka sama. Klasa, która nasłuchuje zdarzenie musi być zarejestrowana w systemie. Metoda obsługująca zdarzenie powinna być statyczna i mieć następującą sygnaturę.
public static function NazwaMetody($oSender, $aParams) { ... }
Zmienna $oSender zawera obiekt na którym wystąpiło zdarzenie. Jeżeli jest to zadrzenie Page.Create to w zmiennej $oSender będzie obiekt klasy Page. Można wtedy zmienić sygnaturę na:
public static function NazwaMetody(Page $oSender, $aParams) { ... }
chociaż nie jest to konieczne.
class PageEventCreate {
public static function create(Page $oSender,$aParams) {
// Zapisz w histori strony że została ona stworzona
HistoryLog::logChange('Created',$oSender->getId());
}
}
Obsługę zdarzeń można rejestrować w pliku konfugracyjnym XML dla każego szablonu. Opis w dokumentacji.
Obsługa zdarzeń na ogół ogranicza się tylko do reagowania na nie (tzw. programowanie zdarzeniowe), nie wykonując żadnego kodu gdy nie ma dla nich żadnych nowych zdarzeń.
Metryka dokumentu |
|||
| Tytuł: | Zdarzenia | ||
| Opis: | Sygnatury zdarzeń. | ||
| Źródło: | +CMS Manual | ||
| Prawa autorskie: | +CMS Content Management | ||
| Autor: | root | Zmodyfikowany przez: | root |
| Data utworzenia: | 2009-11-05 15:47:31 | Data modyfikacji: | 2009-11-05 17:00:21 |
| Data publikacji: | 2009-11-05 16:21:04 | ||