RkBlog

Hardware, programming and astronomy tutorials and reviews.

Przegląd Concrete5 dla programistów

Przegląd budowy i możliwości bloków i stron stosowanych w Concrete5 dla programistów.

Możliwości Concrete5, które można wymienić to: Concrete5 to także framework aplikacji posiadający szereg funkcjonalności:

Typy stron, pojedyncze strony i bloki można budować korzystające ze "składni" MVC (określenie z dokumentacji...). Za pomocą tego wzorca łatwo oddzielić logikę aplikacji od warstwy prezentacyjnej (wyglądu). Wszystko opisane jest w dokumentacji.

Bloki

Bloki to najmniejsze jednostki warstwy prezentacyjnej w Concrete5. Bloki mają być dodawane do strony i składać się głównie z widocznej zawartości.

Za każdym razem, gdy blok jest dodawana do strony tworzony jest obiekt Block. Ten sam obiekt bloku może być przypisany do różnych stron i różnych ich wersji.

Każdy blok ma typ określony przez przypisany obiekt BlockType, który informuje system o typie danych jakie ten blok przechowuje. Każdy blok musi mieć typ (np. galeria, ankieta, tekst).

Każdy blok może posiadać dane specyficzne dla instancji bloku. Dla bloku wyświetlającego klip z YouTube adres URL do klipu będzie danymi specyficznymi dla danej instancji bloku.

Pliki bloków umieszczone mogą być w katalogach:

Każdy plik umieszczony w pierwszych dwóch lokacjach może zostać nadpisany takim samym plikiem w trzeciej lokacji.

Bloki zawierają luźną implementację wzorca MVC. Metody zawarte w controller.php można wykorzystać do przesyłania danych do różnych szablonów. Każda klasa definiująca blok muszą mieć zdefiniowane zmienne: Opcjonalnie także: Klasa kontrolera bloku posiada także metody:

Strony

Struktura treści w Concrete5 wygląda mniej więcej tak: By uzyskać dostęp do obecnie wyrenderowanej strony wystarczy:
<?php
$page = Page::getCurrentPage();
Można też pobrać stronę po ID czy ścieżce:
<?php
$page = Page::getByPath('/path/to/page', $version = 'RECENT');
$page = Page::getByID($pageID, $version = 'RECENT');

Gdzie $version może być 'recent' (najnowsza wersja), 'active' (wersja zatwierdzona), lub numeryczne ID wersji. Obiekt strony ma też wiele swoich metod, opisanych w dokumentacji.

Concrete5 nie wymusza stosowania modeli, lecz zaleca się stosowanie oddzielnych plików dla klas operujących głównie na danej tabeli w bazie danych. Pliki z modelami umieszczamy w katalogu "models". Strony mają także kontrolery, które są prostymi skryptami automatycznie ładowanymi gdy strona jest renderowana. Skrypty te mogą zawierać metody, które są wykonywane w określonych sytuacjach.

Proste strony (simple pages) umieszczamy w katalogu "controllers" na tym samym poziomie zagnieżdżenia jaki chcemy mieć na stronie. Jeżeli chcemy stronę pod adresem /dashboard/widgets/search/ to tworzymy kontroler controllers/dashboard/widgets/search.php. Kontrolery prostych stron powinny w nazwie zawierać ścieżkę i dziedziczyć klasę Controller. Dla powyższego przykładu kontroler powinien nazywać się "DashboardWidgetsSearchController".

Typy stron także mogą mieć kontrolery. Będą one użyte gdy renderowana będzie strona danego typu. Kontrolery takie tworzymy w "controllers/page_types/nazwaTypu.php". Klasy tych konstruktorów muszą dziedziczyć klasę Controller i być nazywane wg. schematu "NazwaTypuPageTypeController".

Kontrolery pozwalają programistom na wydzielenie różnych części funkcjonalności strony do różnych metod i automatyczne ich wykonywanie przy różnych zdarzeniach. W szablonie strony możemy umieścić taki kod:
<a href="<?=$this->action('activate_widget')?>">Aktywuj Widżet</a>

Gdy link zostanie kliknięty - strona zostanie ponownie wyrenderowana oraz metoda "activate_widget" zostanie wykonana.

Pewne metody będą wykonywane automatycznie jeżeli będą istnieć w klasie kontrolera: Mamy do dyspozycji także inne użyteczne metody: Widoki to proste szablony wykonywane przez CMSa przy renderowaniu stron czy bloków. W widokach można stosować kod PHP, jak i używać dostępnych metod:
RkBlog

13 April 2010;

Comment article