RkBlog

Hardware, programming and astronomy tutorials and reviews.

Struktura i budowa bloków Concrete5

Opis budowy i funkcjonowania własnych bloków w Concrete5 CMS

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:

Instalacja bloku

Mając gotowy blok, czy to własny lub pobrany z listy bloków na marketplace Concrete trzeba go zainstalować. Jeżeli blok jest rozprowadzany jako pakiet to umieszczamy go w "/packages". Blok zostanie zainstalowany (stworzone zostaną tabele) i będzie go można dodawać do stron z poziomu CMSa.

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: Opcjonalne właściwości to:

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>
Gdzie "NAZWA_TABELI" to nazwa tabeli zdefiniowana w kontrolerze. W powyższym przykładzie zdefiniowaliśmy kolumnę bID typu integer, unsigned, klucz główny. Następnie mamy pole "content" typu longtext (symbol X2). Format tej konfiguracji to AXMLS.
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'));?>
Wykorzystujemy mechanizmy concrete do wygenerowania formularza z polem zmapowany na kolumnę content w bazie danych. Po dodaniu bloku wywoływana jest metoda save(). W przypadku bardziej złożonej funkcjonalności blok może nadpisać domyślną metodę, która zapisuje wysłane dane do głównej tabeli bloka.

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

19 April 2010;

Comment article