Drupal est vraiment facile d’utilisation pour créer et gérer un site Web.

Mais un chose manque, en tout cas elle n’est pas intégrée dans les modules de base venant avec l’installation de Drupal : la gestion des images et photos !

drupalorg

Nous allons voir comment ajouter IMCE dans Drupal et le faire cohabiter avec TinyMCE pour nous rendre la vie bien plus facile !

tinymce

TinyMCE est un éditeur HTML que l’on peut installer pour avoir une écriture facile des articles et pages : plus besoin de se plonger dans le code HTML

Vous connaissez peut-être tout ça, le code HTML, les balises… mais si vous ne voulez pas devoir vous taper la moindre mise à jour de vos sites Web, les utilisateurs/rédacteurs doivent pouvoir faire cela sans se plonger dans le code : ce n’est pas leur boulot ni dans leurs compétences (ils en ont d’autres : la gestion de l’info sur votre site, c’est eux !).

TinyMCE permet cela. Sans lui les articles seraient tous en texte simple, pas de couleur, pas de caractères gras, etc… à moins de se plonger dans le code HTML, ce qu’on veut éviter ici.

Parfait… sauf que, si TinyMCE est assez complet et gratuit, quand vous cliquez sur l’icone « Image » pour insérer une photo dans un article, TinyMCE vous réclame… l’emplacement exact sur votre serveur !

drupal_tinymce_insert_image_01

Franchement, ce n’est pas pratique ! Ca suppose que l’utilisateur sache :

Et bien… ce n’est pas gagné ! :-(

Comparé à cela, WordPress par exemple, plus orienté blog mais très complet, permet à un utilisateur de simplement transférer depuis son PC une photo avec quelques clicks souris, ou de la sélectionner dans les fichiers déjà transférés sur le serveur. Nettement plus simple !

Les gens de Moxiecode, la firme qui a développé TinyMCE, ont évidemment tenu compte de ce besoin ! Il existe 2 autres produits, qui vont s’intégrer avec TinyMCE : MCFileManager et MCImageManager qui vont s’occuper de ça et vous faciliter la vie.

Et il parait qu’ils font cela très bien ! Mais… le problème est que ces 2 produits ne sont ni libres ni gratuits ! Et le prix n’est pas négligeable (en tout cas pour moi)…

Essayons donc de trouver d’autres solutions :

Je n’ai pas terminé tous mes essais, car les solutions sont quand même assez nombreuses. Il suffit de passer quelques heures avec la liste des modules disponibles pour Drupal 6… mais j’ai décidé pour le moment d’essayer IMCE. Cela ne m’empéchera pas de tester d’autres choses ensuite, comme FCKeditor ;-)

IMCE semble correspondre à ce que je recherche : il permet de transférer (upload) vos images ou fichiers vers le serveur, et de gérer ces fichiers et les insérer dans vos articles, cela à partir d’une interface Web assez simple.

Installation de IMCE.

C’est assez classique (si vous avez l’habitude d’installer des modules et thèmes Drupal) :

La partie en ligne de commande :

didier@monserveur:~/download/drupal/modules$ cd /home/didier/download/drupal/modules/
didier@monserveur:~/download/drupal/modules$ wget http://ftp.drupal.org/files/projects/imce-6.x-1.1.tar.gz
--03:28:14--  http://ftp.drupal.org/files/projects/imce-6.x-1.1.tar.gz
           => `imce-6.x-1.1.tar.gz'
Resolving ftp.drupal.org... 64.50.238.52, 64.50.236.52
Connecting to ftp.drupal.org|64.50.238.52|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 61,264 (60K) [application/x-gzip]
100%[=================================================================================================>] 61,264       156.46K/s
03:28:15 (156.05 KB/s) - `imce-6.x-1.1.tar.gz' saved [61264/61264]

Décompression IMCE et copions le dans le dossier Durpal :

didier@monserveur:~/download/drupal/modules$ tar xvfz imce-6.x-1.1.tar.gz
imce/
imce/css/
imce/css/collapsed.png
...
cd /var/www/drupal/sites/all/modules/
cp -Rp /home/didier/download/drupal/modules/imce  .

Activons IMCE dans l’administration de votre site :

drupal_imce_activation

Indiquer quels utilisateurs peuvent utiliser IMCE :

drupal_imce_parametre

L’installation de IMCE est terminée… mais il n’est pas encore utilisable. Il faut l’intégré dans TinyMCE.

La page setup du  site d’ IMCE donne un lien vers le forum Drupal.

La méthode indiquée demande d’ajouter quelques lignes dans un fichier template.php de vos thèmes. Cela ajoute un fonction permettant à TinyMCE d’appeler IMCE.

J’ai essayé, et ça fonctionne… en tout cas avec beaucoup de thèmes, mais pas avec tous.

En effet, il faut avoir un fichier template.php. Ce n’est pas le cas pour tous les thèmes.

S’il n’y en a pas dans le thème que vous avez choisi, il faut essayer différentes choses :

Cette solution ne fonctionne pas avec tous les thèmes, et surtout cela présente des problèmes importants :

Ce n’est quand même pas trop logique de devoir modifier des THEMES pour ajouter une fonctionnalité à un éditeur !

Pour cette raison, j’ai cherché une autre solution : chercher à modifier TinyMCE lui-même.

La solution est aussi simple, mais ne doit être appliquée qu’une seule fois dans TinyMCE.

Il faut ajouter ces lignes de code dans le module « drupal/sites/all/modules/tinymce/tinymce.module »

vi /var/www/drupal/sites/all/modules/tinymce/tinymce.module

<?php

/* Didier Misson : integration IMCE dans TinyMCE */

function phptemplate_tinymce_theme($init, $textarea_name, $theme_name, $is_running) {
  static $access, $integrated;

  if (!isset($access)) {
    $access = function_exists('imce_access') && imce_access();
  }

  $init = theme_tinymce_theme($init, $textarea_name, $theme_name, $is_running);

  if ($init && $access) {
    $init['file_browser_callback'] = 'imceImageBrowser';
    if (!isset($integrated)) {
      $integrated = TRUE;
      drupal_add_js("function
imceImageBrowser(fid, url, type, win)
{win.open(Drupal.settings.basePath +'?q=imce&app=TinyMCE|url@'+
fid, '', 'width=760,height=560,resizable=1');}", 'inline');
    }
  }

  return $init;
}
...
suite du module "tinymce.module"
...

Vous sauvez ce fichier.

Pour être certain que ces modifications soient actives, vider le cache de Drupal (dans « Administrer / Configuration du site/Performance », en bas de la page « Supprimer les données du cache »), et vider également le cache de votre navigateur.

Et cela devrait fonctionner.

Si vous créez un article ou une page, en insérant une image, vous avez maintenant une icone supplémentaire permettant d’accéder à IMCE :

drupal_tinymce_imce_icone

Cette icone vous permet de transférer, insérer et gérer vos images bien plus facilement ;-)

drupal_tinymce_imce_browser_delete

Le transfert de fichier de votre PC vers le serveur se fait très simplement :

drupal_tinymce_imce_transfert

Sélectionner le fichier à transférer, cliquer sur « ouvrir », ensuite dans la fenêtre IMCE sur « Transfert de fichiers » pour envoyer ce fichier vers le serveur.

Il suffit ensuite de cliquer sur l’image que vous désirez insérer dans votre article (ou de cliquer sur « Send to TinyMCE ») pour que son adresse locale et sa tille (puisqu’elle est maintenant sur le disque dur du serveur) soient transmises à TinyMCE :

drupal_tinymce_imce_url_fichier

Vraiment, l’intégration de IMCE dans TinyMCE va vous faciliter la vie et vous faire gagner du temps :-D


Réseaux sociaux :
  • Print
  • Identi.ca
  • Twitter
  • Facebook
  • email
  • PDF
  • RSS
  • Digg
  • Sphinn
  • del.icio.us
  • Mixx
  • Google Bookmarks
  • MySpace
  • Netvibes
  • Technorati
  • Wikio
  • Wikio FR
  • LinkedIn
  • Add to favorites
  • FriendFeed
  • viadeo FR
  • Yahoo! Buzz
  • MisterWong
Si vous appréciez cet article, laissez un commentaire ou abonner vous au flux RSS feed pour avoir les articles futures délivrés dans votre Reader.

Articles relatifs

Written on décembre 30th, 2008 & filed under CMS - Blogs - Groupware Tags: , ,
LEAVE A COMMENT
Comment
 
COMMENTS
    zenbien commented

    Merci je testerais l’intégration avec le module tinytinymce (http://drupal.org/project/tinytinymce), il ne devrait pas y avoir beaucoup de différences…

    22 janvier 2009 at 1:32
    Didier commented

    Vraiment, IMCE facilite beaucoup la vie pour l’upload et la gestion des photos et images, surtout pour les utilisateurs qui ne sont pas des pros ou qui n’ont pas accès en console, en FTP/SCP etc…
    ;-)

    22 janvier 2009 at 6:14
    farid commented

    Bonjour,
    J’ai trouvé votre contribution très intéressante. Cependant, le projet TinyMCE a été abandonné au profit de WYSIWIG API :
    http://drupal.org/project/tinymce

    Pensez-vous que vous pouvez ajouter votre contribution comme indiqué ici :
    http://drupal.org/node/358316

    Merci !
    Amicalement

    7 février 2009 at 22:58
    Didier Misson commented

    Bonsoir,
    Merci pour ce commentaire. Je ne connaissais pas Wysiwig API !
    J’ai cherché un éditeur un peu évolué quand j’ai installé Drupal 6… et je n’avais pas trouvé grand chose à part TinyMCE, et à ce moment là il y avait encore des versions récentes en développement.
    Je vais essayé cet autre module ;-)
    Je pourrais ajouter des commentaires sur le site Drupal, mais que mettre ? Puisque ce module n’est plus développé pour Drupal…
    Je vais en tout cas tester l’autre…
    Mais, le peu que je viens de lire, Wysiwig API permet d’inclure des éditeurs… ce n’est pas lui même un éditeur Wysiwig ?

    Ce n’est pas clair… mais il faut que j’essaye et ce sera certainement plus clair ensuite ;-)

    Merci

    8 février 2009 at 3:40