Grailsujemy dalej – zadajemy pytania w HowToJava

Po dłuższej przerwie wróciłem do kodowania w Grails. Zostało jeszcze parę rzeczy, by uznać, że na bardzo podstawowym poziomie, przykładowa aplikacja HowToJava jest skończona. Dziś pierwszy krok na tej drodze – możliwość tworzenia tematów/zadawania pytań.

Warstwa widoku, walidacji błędów, klas domenowych nie wychodzi poza rzeczy, której do tej pory opisywałem. Na tym temacie zatem nie będę się specjalnie skupiał. Jedyną rzeczą, którą możnaby przećwiczyć jest kolejny plugin, który zamierzam użyć – FCKEditor. Biblioteka ta jest uniwersalnym GUI przeznaczonym dla stron internetowych. Umożliwia wyczynianie cudów z wpisywanym tekstem – dla potrzeb mojej aplikacji jest tego aż nadto. Zainteresowanych samym edytorem mogę odesłać na jego stronę domową. Zaś dla nas bardziej interesująca będzie strona opisująca plugin, który umożliwia wykorzystanie mocy tegoż edytora w Grails.

Standardowo przechodzimy do katalogu z aplikacją i wydajemy polecenie:

grails install-plugin fckeditor

I po chwili możemy cieszyć się kolejną funkcjonalnością w aplikacji. Zainstalowałem wersję 0.9.2, która jest najnowszą, mam zatem nadzieję, że da się z niej korzystać. Kiedy integrowałem swego czasu FCKEditora z Zend Framework miałem trochę zabawy. No i wykrakałem…

Okazuje się, że skrypt ściągający plugin nie rozpakowywuje go odpowiednio. Zatem musiałem wybrać się na stronę pluginu i ściągnąć go dla pewności ręcznie. Następnie plik *.zip trzeba rozpakować do katalogu /plugins, a konkretniej do folderu fckeditor-0.9.2. Zaś w widoku wrzucamy taki oto kod:

<fckeditor:editor
name="question"
width="100%"
height="200"
toolbar="Basic"
fileBrowser="default">
</fckeditor:editor>

No i działa. Wrzuciłem minimalny pasek z narzędziami, ale to można łatwo zmienić. Dla bardziej zaawansowanej konfiguracji polecam przyjrzenie się plikowi fckconfig.js w katalogu z pluginem.
Walidacja jest prosta jak konstrukcja gwoździa (ogranicza się tylko i wyłącznie do walidacji klasy domenowej). Jedynym problemem była data dodania. Jakoś na początku swej przygody z programowaniem dla web pałałem prawdziwą miłością do typu DATETIME w MySQL. Jednakże jakiś czas temu zostałem wyleczony z używania tej kolumny, na rzecz TIMESTAMPA (unixowego). Po prostu wyszukiwanie po kolumnach jest kilkakrotnie szybsze (wartości TIMESTAMP są zapisywane jako INT(11) ), a także sam format TIMESTAMP jest o wiele bardziej uniwersalny – każdy język programowania (no, przynajmniej te w których kodowałem) miał bardzo sympatyczne wsparcie dla tego formatu. W Javie obecny TIMESTAMP (uwaga: konkretnie chodzi mi o ilość sekund od 1970, a nie milisekund, co zresztą w kodzie widać) można wydobyć w taki sposób:

Math.round( System.currentTimeMillis()/1000 )

I takim oto szybkim obejściem dało się to załatwić. Tak wygląda widok dodający nowy temat:

dodawanieTematu

Advertisements

2 thoughts on “Grailsujemy dalej – zadajemy pytania w HowToJava

  1. chlebik Post author

    Oj no stronka jest wystawiona tylko po to by pokazywac na biezaco efety. Same scerreny na blogu to za malo. A juz niedlugo koncze listowanie i dopisywanie odpowiedzi do tematow i wszystko bedzie skonczone. Takie proste cos, a cieszy 🙂

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s