Struktura i budowa bloków Concrete5
19 April 2010
Comments
Blok Concrete5 to zbiór plików w określonym katalogu umieszczonym w katalogu "blocks". Struktura bloku składa się z plików i katalogów:
- add.php: wymagany. Szablon wyświetlany przy dodawaniu bloku
- edit.php: opcjonalny, wyświetlany przy edytowaniu bloku. edit.php i add.php to zwykłe formularze korzystające z elementów Concrete5.
- controller.php: wymagany, zawiera podstawowe dane o bloku (nazwa, opis, rozmiary) oraz logikę odpowiedzialną za funkcjonowanie bloku.
- db.xml: wymagany dla każdego bloku zapisującego swoje dane w bazie danych (przeważnie każdy). Ten plik zawiera wyrażenia XML potrzebne do stworzenia tabel bloku w bazie danych opisanych formatem ADOXMLS.
- auto.js: gdy plik istnieje jest dołączany do bloku w trybie dodawania i edycji.
- icon.png: opcjonalny, ikona wyświetlana na liście bloków
- tools/: opcjonalny, zawartość tego katalogu może być używana przez blok do dowolnych celów.
- templates/: opcjonalny, można wykorzystać do alternatywnych szablonów istniejących bloków nadpisać te z Concrete.
Instalacja bloku
Mając gotowy blok, czy to własny lub pobrany z listy bloków na marketplace Concrete trzeba go zainstalować.- Umieszczamy katalog bloku w blocks/
- Logujemy się do Concrete i przechodzimy do dashboard
- Wybieramy zakładkę "Add Functionality" i instalujemy nowo dodany blok
Właściwości w controller.php
Controller.php zawiera informacje o bloku, jak i automatycznie wykonywane metody przy określonych zdarzeniach. Wymagane właściwości to:- btDescription: opis bloku wyświetlany w dashboard i w interfejsie bloku
- btName: nazwa bloku
- btTable: główna tabela bloku. Jeżeli podana oraz jeżeli blok używa tylko jednej tabli to będzie w stanie automatycznie zapisywać informacje do bazy pod warunkiem że pola formularza będą dokładnie zmapowane na strukturę tabeli.
- btInterfaceWidth i btInterfaceHeight: długość i wysokość modalnego okna używanego przy dodawaniu i edycji bloku.
Struktura tabel w db.xml
Schemat tabeli zawarty w db.xml dla przykładowego bloku wyglądać może tak:<schema version="0.3">
<table name="NAZWA_TABELI">
<field name="bID" type="I">
<key ></key>
<unsigned ></unsigned>
</field>
<field name="content" type="X2">
</field>
</table>
</schema>
Każda tabela bloku musi mieć kolumnę bID jako klucz główny. Używana jest ona przez Concrete do wykonywania operacji na blokach.
Dodawanie bloka - add.php
Przykładowa zawartość add.php może wyglądać tak:<?php echo $form->label('content', 'Treść');?>
<?php echo $form->text('content', '', array('style' => 'width: 320px'));?>
Edycja bloka - edit.php
Zawartość "edit.php" jest automatycznie wyświetlana gdy blok jest edytowany. Zazwyczaj będzie to bardzo podobny formularz do tego z add.php. Różnicą będzie opcja przekazywania istniejących wartości do formularza:<?php echo $form->label('content', 'Treść');?>
<?php echo $form->text('content', $content, array());?>
Wyświetlanie bloka
Szablon "view.php" jest podobny do szablonu edycji, tyle że jeszcze prostszy bo nie ma formularza:<?php echo $controller->content ?>
RkBlog
Comment article