Comatose

2010-11-25 23:14:06 UTC

Comatose

Il semble que la mode chez Maxula en ce moment se penche sur les CMS sous Ruby on Rails.

Aujourd'hui je découvre Comatose, drôle de nom (comateux en anglais), peut-être parce qu'on sent à peine sa présence dans une application.

J'étais surpris par la facilité d'installation de Comatose; En l'intégrant dans un site vitrine avec une gestion de contenus assez simple pour quelques pages, ça m'a épargné des heures de developpement (on dirait un message de promotion pour comatose).

Le plugin demande une installation de "acts_as_tree" et "acts_as_list" ainsi qu'un éditeur WYSIWYG le fameux fckeditor, même si mes préférences vont à tinyMCE.

La configuration de son administration se trouve dans le fichier d'initialisation app/config/initializers/comatose.rb et une partie sous environment.rb .
Il suffit de décommenter deux lignes sous app/config/initializers/comatose.rb pour l'intégrer avec le fameux plugin Restful Authentication

L'avantage de ce CMS me semble être sa souplette d'intégration, il suffit juste de développer l'application et pouvoir facilement y rajouter un système de gestion de contenu comme un simple plugin.
Après avoir défini les URL des pages dans la partie admin, tout se joue au niveau du /config/routes.rb : on peut définir le template de chaque page comme ceci:

map.comatose_nomdelapage 'urldelapage', :index=>'indexdelapage', :layout => 'layoutdelapage'
L'ideal, ça sera de rajouter un champs supplémentaire dans la gestion du contenu pour définir le template. Ainsi, automatiser la tâche sans repasser par routes.rb . J'essayerais d'en faire un 'post' la prochaine fois.

Pareil pour l'intégration d'une vue dans un layout ou bien une autre vue

<%= render :comatose=>'news', :silent=>true %>
le :silent=>true est une option qui sert à éviter l'affichage d'erreur au cas où la page d'index 'news' (dans notre exemple) est inexistante.

Enfin de compte, Comatose semble un plugin plus qu'un CMS pour simplifier la vie de l'édition de pages ou blocks statiques. Une petite page qui explique l'intégration de Comatose par de simples fonctions limitées, pourra vous aider en y combinant votre imagination avec à gagner du temps et automatiser la tâches sur de futurs projets.