+CMS COntent Management Homepage

/ Indeks dokumentacji / Rozbudowa systemu / Rejestrowanie nowych klas w systemie / Zdarzenia

Zdarzenia

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. 

Przykład klasy i metody która podłączona pod zdarzenie Page.Create zarejestruje utworzenie strony w dzienniu (historii) strony.

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

Zobacz więcej...
  1. Zdarzenia na dokumencie
    1. Rejestracja obsługi zdarzenia
  2. Zdarzenia systemowe
    1. Rozszerzanie menu systemu
    2. Zdarzenia PageNotFound, PageLocked, etc.

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
(c) +CMS Content Management Platform