lunedì 31 gennaio 2011

refinery cms

Refinery CMS è stato probabilmente il primo CMS ad essere disponibile in ambiente Rails 3; attualmente risulta il più scaricato (fonte: rubytoolbox); installarlo è facilissimo: gem install refinerycms.

Anche il deploy non dà problemi: io ci sono riuscito al primo colpo su heroku, incluso ovviamente l'appoggio di immagini e files su Amazon S3 (grazie all'esperienza fatta con new-mobility).

La documentazione disponibile è ingente, così come sono numerosi i siti in giro per il mondo che si basano su questa soluzione. Certo niente di paragonabile come diffusione a wordpress, ma comunque significativo.

Due sono i concetti chiave, qui: engine e theme, vale a dire i motori (cioè moduli creabili dal utente con un insieme specifico di campi) e ... i vestiti (cioè quella collezione di html, css e img che vestono il contenuto del cms). Adesso vediamo più in dettaglio i temi (themes). Per creare un tema:

rails generate refinery_theme name_of_theme

e intanto che ci siamo aggiungiamo

rake refinery:override view=shared/* theme=name_of_theme

Ecco fatto: adesso abbiamo una cartella che contiene tutto ciò che influenza l'apparenza del sito, escluso il contenuto ! Possiamo gestire più temi per lo stesso CMS, ma uno solo è attivo per volta, ovviamente; possiamo prendere la cartella di un tema e inserirla in un altro CMS (a patto che la struttura delle info gestite sia compatibile), ottenendo un veloce cambio di vestito.

La struttura del tema è fortemente ispirata a Rails 3: abbiamo praticamente la stessa struttura della cartella app/views, dentro cui ritroviamo le cartelle layouts e pages; anche le classiche cartelle stylesheets, images e javascripts sono contenute all'interno del tema e prendono il sopravvento sulle rispettive cartelle di public.

Bisogna fare attenzione ai riferimenti all'interno dei .css: ad es. ci si riferisce ad una immagine con /theme/images/logo.jpg, non semplicemente a images/logo.jpg; questo probabilmente vale in molte altre circostanze che solo la pratica può svelare.

Non resta che fare qualche prova ! Buon Lavoro


P.S. Come editor adesso sto usando redcar, che è scritto in Ruby !

Nessun commento: