Dodatkowe pola CCK - a ich wyświetlanie.
CCK czyli Content Construction Kit – to obowiązkowa pozycja w modułach na drupalowej stronie, jeżeli chcemy dodawać zawartości bardziej zaawansowane niż taki które zawierają tylko tytuł i treść. Moduł ten pozwala na dodawanie dodatkowych pól do zawartości - istnieje cała kategoria modułów z rodziny CCK które pozwalają na udostępnianie przerozmaitych pól.
Na początku potrzebujemy zainstalować moduły CCK. Podstawowa konfiguracja wymaga włączenia modułu Content oraz według uznania np. Text, Option Widgets czy też Number. Instalując kolejne moduły z rodziny CCK możemy dodawać takie pola jak ImageField itp.
Mając tak przygotowany system przystępujemy do konfiguracji, na początku wchodzimy w zarządzanie zawartościami, jak widać pojawiła się nowa opcje przy rodzajach zawartości – Manage fields. Na tej stronie możemy zarządzać polami dostępnymi w wybranym rodzaju zawartości. Następnie dodajemy wybrane przez siebie pola odpowiednio wypełniając kolejne elementy formularza. Po wysłaniu żądania naszym oczom ukażą się zaawansowane opcje konfiguracji pola w których można ustalić m.in. dozwolone wartości itp. Po dodaniu rozszerzających pól warto zainteresować się zakładką Display fields w której to możemy definiować styl wyświetlania pola dla poszczególnych wariantów. Możemy np. całkowicie wyłączyć pole w wyszukiwarce, kanale RSS czy nawet w podglądzie krótkiej zawartości.
Teraz dodając nową zawartość tego typu w formularzu pojawią się dodatkowe opcje które dodaliśmy podczas konfiguracji. To mogłoby być wszystko, jednak nie przekazałem jeszcze nic z tego co miałem przekazać – zamysłem tego wpisu jest przedstawienie pewnej sztuczki.
Otóż dodając node z naszymi polami CCK wyświetlają się one bardzo brzydko, moduł najzwyczajniej w świecie dokleja kolejne pola do zmiennej $content. Aby w pełni wykorzystać potęgę tego modułu będziemy musieli zmodyfikować szablon. Stwórzmy więc kopie pliku node.tpl.php i nazwijmy go node-TWÓJ-TYP.tpl.php - gdzie TWÓJ-TYP to nazwa typu zawartości np. page, story, blog. W tym pliku cała zawartość to po prostu: print $content; moje rozwiązanie jest proste i elastyczne, jednak wymaga podstawowej znajomości drupala i php. Zamiast wyświetlania całej zawartości zalecam wyświetlanie poszczególnych fragmentów w odpowiednich miejscach. Wszystko co nas interesuje wyciągamy z obiektu $node i własności content.
(Na początku pomocne będzie wyświetlenie wszystkich dostępnych pól: print '</pre>'; var_dump($node->content); print '</pre>';)
Odpowiednio – sama zawartość wygląda tak: print $node->content['body']['#value'];
Wpis ma charakter drogowskazu a nie poradnika z cyklu krok po kroku. Zachęcam do pisania własnych, niestandardowych szablonów. Nie bójcie się modyfikować swojego Drupala! :-)

