Rails 3 + Paperclip sous Windows

Pour insérer et manipuler des images dans Rails, il existe de nombreux gems permettant de s’affranchir d’une bonne partie de la complexité des transferts de fichiers. Parmi ceux-ci, j’ai retenu Paperclip.

Autant la gestion des transferts de fichiers s’est faite sans problème, autant le redimensionnement de ceux-ci m’a amené à m’arracher quelques cheveux ; je tombais systématiquement sur l’erreur suivante :

Photo C:/xxx/xxx/xxx/Temp/stream,2568,0.jpg is not recognized by the 'identify' command

Pour régler ce problème, trois étapes importantes :

1. Installer ImageMagick
Eh oui, Paperclip repose sur ImageMagick pour le redimensionnement des images ! Il faut donc télécharger cet outil pour Windows à l’adresse suivante :

http://www.imagemagick.org/download/binaries/ImageMagick-6.6.4-9-Q16-windows-dll.exe

Installez le programme à l’adresse par défaut, puis vérifiez que tout fonctionne bien en ouvrant un terminal (invite de commande) et en tapant : identify chemin/vers/une/image.jpg. Si tout est OK, ImageMagick vous répondra en affichant le format du fichier que vous lui avez fourni.

2.  Ajouter un initialiseur à Rails

Ajoutez dans le répertoire config/initializers de votre application un fichier paperclip.rb dans lequel vous collerez le code suivant :

require "paperclip"
Paperclip.options[:command_path] = 'C:\PROGRA~1\ImageMagick-6.6.4-Q16'
Paperclip.options[:swallow_stderr] = false

Bien sûr, la première ligne d’option est à modifier en fonction de la localisation et de la version de ImageMagick installée à l’étape précédente. Il est très important de mettre le chemin Windows au format DOS 8.3 (PROGRA~1 en lieu et place de Program Files, dont l’espace cause problème à Paperclip).

3. Modifier les sources de Paperclip

Il faut également aller modifier la ligne de commande d’ImageMagick dans Paperclip, en éditant le fichier suivant paperclib.rb qui se trouve dans le répertoire lib du gem Paperclip. Sur mon poste, le fichier se trouve ici :

C:\Ruby\lib\ruby\gems\1.9.1\gems\paperclip-2.3.3\lib

Dans la fonction run, qui se trouve vers la ligne 100, trouvez la ligne suivante :

command = %Q[#{path_for_command(cmd)} #{params}]

et remplacez-la par la ligne ci-dessous :

command = %Q[#{path_for_command(cmd)} #{params.gsub("'",'"')}]

Cela remplacera les quotes simples par des quotes doubles.

Voilà, normalement, vous devriez accéder aux joies de Paperclip sous Windows !

Sources : Un commentaire du Railscast dédié à Paperpclip

Tutoriel : Gérer les images des articles avec Arthemia-fr

Comme je vois que la queListe des articles dans Arthemia-frstion revient souvent dans les commentaires de mon article de présentation du thème Arthemia-fr, c’est que l’explication n’est certainement pas assez claire. Voici donc un petit tutoriel pour éclaircir ce point.

Arthemia-fr offre la possibilité d’agrémenter les listes d’articles d’images, sur la page d’accueil ou celles des archives (chronologique, par tag, par catégorie, etc…).

Pour obtenir ce résultat, vous devez indiquer au thème Arthemia quelle image vous souhaitez utiliser comme illustration de votre article dans les listes. Cette indication est donnée au travers d’un champ personnalisé dans chaque article.

Vous allez procéder comme suit :

Dans votre interface d’administration, ouvrez en modification l’article sur lequel vous voulez ajouter une image (vous pouvez bien entendu faire cette manipulation lors de l’écriture de votre article). Dans la page de modification ou d’ajout d’un article, vous trouverez sous le champ de saisie du texte la section Champs personnalisés.

Champs personnalisésIl faut ajouter un champ personnalisé appelé Image (avec un i majuscule), et saisir dans le champ l’url de votre image. Pour ce faire :

Sélectionnez le champ Image dans liste Nom (s’il existe) ou cliquez sur Saisissez en un nouveau et tapez Image dans le champ qui s’affiche.

Saisissez dans le champ Valeur l’adresse de votre image : c’est son url sans le nom de domaine. Par exemple, si votre image est sur www.monsite.org/images/monimage.jpg, saisissez images/monimage.jpg.

Enregistrez votre article, et normalement votre image devrait apparaître dans vos listes et sur la page d’accueil.

Note : le cadrage des images est réalisé directement par Arthemia, vous ne pouvez pas le contrôler. Essayez dans la mesure du possible d’avoir des images au moins de la taille de celle de l’article à la une de la page d’accueil.