+CMS COntent Management Homepage

/ Indeks dokumentacji / Rozbudowa systemu / Rejestrowanie nowych klas w systemie / Zdarzenia / Zdarzenia na dokumencie / Rejestracja obsługi zdarzenia

Rejestracja obsługi zdarzenia

Obsługę zdarzeń można zarejestrować w szablonie XML używając znacznika register w sekcji action.

Przykład:

Część kodu z pliku TEST.XML definującego stronę:

<action event="PageCreate">

         <register event="Page.Create" listener="PageEventCreate.create" />

</action>

W ten sposób podłączyliśmy dozdarzenia Page.Create (tworzenie strony) kod php, który znajduje się w klasie "PageEventCreate" i metodzie "create". Oznacza to, że za każdym razem, gdy będzie tworzona nowa strona na podstawie szablonu TEST.XML to będzie wykonywany kod z metody "create" klasy "PageEventCreate". Nazwa metody jak i klasy została wybrana przez programistę i może być dowolna.

Zarejstrowana klasa PageEventCreate wygląda następująco:

class PageEventCreate {

    public function create(Page $oSender, $aParams) {

        // Tutaj kod obsługujący zdarzenie Page.Create

        // Jeżeli strona nie jest przypisana do kategorii o id = 1 to przypisz ją do tej kategorii

        if(false === $oSender->hasAssignedCategory(1)) {

             $oSender->assignCategory(1);

        }

     }

}

Powyższa metoda realizuje funkcjonalność opisaną przez komentarz, czyli kategoryzuje strone jeżeli nie była ona wcześniej przypisana do kategorii o id=1.

Należy zwrócić uwage na sygnaturę metody create. Każda metoda, która korzysta ze zdarzenia ma taką samą sygnaturę, czyli:

public function NAZWA_METODY(Page $oSender, $aParams)

Przekazywane parametry to:

  1. $oSender - czyli obiekt na którym wystąpiło zdarzenie. W naszym przpadku to był obiekt Page (zdarzenie Page.Create),
  2. $aParams - dodatkowe parametry przekazane przez zdarzenie.
Zobacz więcej...

Metryka dokumentu

Tytuł: Przypinanie zdarzen
Opis: Opis obsługi zdarzeń w systemie
Źródło: +CMS Manual
Prawa autorskie: +CMS Content Management
Autor: root Zmodyfikowany przez: root
Data utworzenia: 2009-11-05 15:28:02 Data modyfikacji: 2009-11-05 15:34:47
Data publikacji: 2009-11-05 15:34:47
(c) +CMS Content Management Platform