+CMS COntent Management Homepage

/ Indeks dokumentacji / Wdrożenie / Szabon strony / Plik XML / Sekcja action

Sekcja action

W ramach tagu actions umieszczane są definicje akcji które będą wykonane w momencie tworzenia nowej strony. Nie są one wykonywane gdy strona jest odświeżana. Przykładowe akcje jakie mogą być wykonane w momencie dodawania nowej strony to:

  1. Przypisane automatycznie strony do jakiejś kategorii,
  2. Dodawanie praw dostępu wybranej grupy lub użytkownikowi,
  3. Dodanie nowego widoku strony (tzw. abstraktu),
  4. Wykonanie operacji na bazie systemu.
Opis poszczególnych tagów:
 
<database... - dodanie wartości domyślnej dla tworzonej strony, na przykład
Poniższy zapis spowoduje automatyczne zablokowanie strony i jej opublikowanie.
 
        <database>
            <update table="cms_page" where="id='{PageId}'">
                <set field="lock">1</set>
                <set field="publish">1</set>
            </update>
        </database>
 
Istnieje też możliwość dodawania nowych rekordów do bazy:
 

        <database>
            <insert table="cms_log">
                <set field="test">Testowa wiadomość</set>
            </update>
        </database>

<view... - tworzenie nowego widoku

Przykład: <view template="[path_to_template]" name="Lista: {PageTitle}"/> - komenda doda widok (do tworzonej strony) na podstawie szablonu "[path_to_template]". Przed nazwą zostanie napis 'Lista:' dla odróżnienia abstraktu od strony bazowej . Jest to bardzo wygodny mechanizm przy tworzeniu np. wersji do wydruku czy zajawek na stronę główną.

Przykładowa sekcja action z tagiem view.
 
    <action>
        <view
            template="/tools/support/UnitTests/CMS/Domain/ExampleTemplates/xhtml/views/view_example.xhtml"
            xml-template="/tools/support/UnitTests/CMS/Domain/ExampleTemplates/example.xml"
            name="My lead abstract"
        />
        <view
            template="/tools/support/UnitTests/CMS/Domain/ExampleTemplates/xhtml/views/view_example.xhtml"
            xml-template="/tools/support/UnitTests/CMS/Domain/ExampleTemplates/example.xml"
            name="My 2nd lead abstract"
        />
    </action>
<category... - przypisywanie strony do wybranej kategorii
Przykład: <category category-name="[category name]"/> spowoduje przypisanie tworzonej strony do kategorii "[category name]".

Inne sposoby doawania kateogrii to: <category category-id="[category id]" /> - dodaje kategorie na podstawie jej id. Duzy wygodniejszy sposób gdyż nazwy kategorii często się zmieniają.

 
Aby automatycznie przypisać kilka kategorii do jednej strony należy dodać kilka wpisów typu: <category category-id="[category id]" />

 
Przykład:
 
<action>
    <category category-id="1" />
    <category category-id="2" />
    <category category-id="3" />
</action>

<permission... - dodawanie praw dostępu do tworzonej strony. Z definicje prawa do edycji ma osoba tworząca stronę. Nie trzeba dodatkowo dodawać jej praw właścicielowi.

Przykład: <permission user="[username]" group="[groupname]" /> przypisze prawa dostępu do tego pliku osobie o identyfikatorze "[username]" lub wszystkim użytkownikom systemu przypisanym do grupy "[groupname]".

Sdandartowe grupy nie mają polskich znaw tylko specjalne definicje. Standardowo zdefiniowane grupy to:
/* Edytorzy */
<permission group="CMS_HOAX_GROUP_EDITORS" />
/* Tłumacze */
<permission group="CMS_HOAX_GROUP_TRANSLATORS" />
/* Administratorzy */
<permission group="CMS_HOAX_GROUP_ADMINS" />
/* Zarządzający */
<permission group="CMS_HOAX_GROUP_MANAGERS" />

<register... - rejestruje obsługę zdarzeń na nowo stworzonej stronie.

Do każdej strony można przypisać szereg skryptów, które będą wykonywane w momencie, gdy zaistnieje wskazane zdarzenie, np. strona zostanie opublikowana lub zakończy się ładowanie elementów strony.

Przykładowa rejestracja obsługi zdarzeń wygląda następująco:

<register event="Page.Load" listener="MojaKlas.MojaMetoda1" />
<register event="Page.Publish" listener="MojaKlasa.MojaMetoda2" />
<register event="Plaintext.Lock" listener="MojaKlasa.MojaMetoda3" item-id="ProstyTekst" />

W podanym powyżej przykładzie zarejestrowane zostaną trzy skrypty obsługiwane przez klasę MojaKlasa:

  1. Metoda MojaMetoda1 z klasy MojaKlasa zostanie uruchomiona za każdym razem, gdy strona zostanie załadowana,
  2. Metoda MojaMetoda2 z klasy MojaKlasa zostanie uruchomiona za każdym razem, gdy strona zostanie opublikowana,
  3. Metoda MojaMetoda3 z klasy MojaKlasa zostanie uruchomiona za każdym razem, gdy element Plaintext o id ProstyTekst zostanie zablokowany.

Plik źródłowy z kodem klasy MojaKlasa można umieścić w dowolnym miejscu w systemie, ale trzeba go zarejestrować w zakładce development/zarejestruj klasę.

Sygnatura method, które będa wywoływane podczas zdarzeń wyglądają następująco:

public function nazwaMethod($oObject,$aParams) {}

$oObject to objekt w którym wystąpiło zdarzenie (np. PageLoad, przekaże obiekt Page) ,

$aParams to tablica z parametrami dodatkowymi,

Podsumowując klasa MojaKlasa mogłaby wyglądać następująco:

class MojaKlasa {

    public function MojaMetoda1($oObject, $aParams) {

        // Tu można dodać jakiś kod

    }

    public function MojaMetoda2($oObject, $aParams) {

    }

    public function MojaMetoda3($oObject, $aParams) {

    }

}

Zobacz więcej...
Prezentacja

Metryka dokumentu

Tytuł: Indeks dokumantacji
Opis: Spis stron dokumentacji
Źródło: +CMS Content Management
Prawa autorskie: +CMS Content Management Platform
Autor: root Zmodyfikowany przez: root
Data utworzenia: 2008-09-09 21:33:48 Data modyfikacji: 2008-09-09 21:51:41
Data publikacji: 2008-09-09 21:51:31
(c) +CMS Content Management Platform