![]()
|
|
Rozbudowa systemu polega na napisaniu klasy, która rozszerza jeden z typów: StaticItem lub DynamicItem. a następnie zarejestrowaniu takiej klasy w systemie (patrz: zakładka: Development, menu: Wdrożenie/Zarejestruj kasę). Rejestracja wymaga podania nazwy klasy oraz ścieżki dostępu do pliku w którym się ona znajduje. Opcjonalnie można podać namespace.
Każda klasa reprezentująca element w systemie musi implentować/posiadać publiczną metodę render. W ramach tej metodydefinujemy co ma być wyświetlone w miejscu taga.
Załóżmy że chcemy dodać do systemu tag <cms:HelloWorld ... />
W tym celu tworzymy klasę HelloWorldItem w pliku class.HelloWorldItem.php. Plik ten umieszczamy w katalogu/cms/classes/Model/Extension/HelloWorld.
Następnie w zależności od tego jakiego typu ma być nowy tag (element) rozszerzamy klasę StaticItem lub DynamicItem. Poniżej przykład:
class HelloWorldItem extends StaticItem {
}
Teraz implementujemy publiczną metodę render i nasza klasa wygląda następująco:
class HelloWorldItem extends StaticItem {
public function render() {
return "Hello World !!!";
}
}
Teraz wystarczy zarejestrować klasę w systemie (patrz: zakładka: Development, menu: Wdrożenie/Zarejestruj kasę). Po udanej rejestracji możemy w szablonie wpisać: <cms:HelloWorld id="Test" />
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns:cms="http://manual.pluscms.net"><body>
Moja wtyczka: <cms:HelloWorld id="Test" />
</body>
</html>
W miejscu <cms:HelloWorld id="Test" /> pojawi się napis Hello World !!!. Oczywiście w ramach metody rendermożemy wykonywać dużo bardziej złożone operacje, jak pobieranie danych z bazy danych i prezentacja ich na ekranie, pobieranie danych z innych serwisów, etc.
Metryka dokumentu |
|||
| Tytuł: | Nowe elementy systemu | ||
| Opis: | Opis rozbudowy systemu o nowe elementy, tagi. | ||
| Źródło: | +CMS Manual | ||
| Prawa autorskie: | +CMS Content Management | ||
| Autor: | root | Zmodyfikowany przez: | root |
| Data utworzenia: | 2009-11-05 17:02:33 | Data modyfikacji: | 2009-11-05 17:10:23 |
| Data publikacji: | 2009-11-05 17:03:33 | ||