Migration de Dotclear vers Drupal

Après avoir installé Drupal ( en me basant sur http://drupalfr.org/forum/support/109-comment_installer_drupal_sur_free et http://drupalfr.org/node/2894 c'est à dire en gros en modifiant le fichier .htaccess pour forcer php 5 et autres petites subtilités ) pour pouvoir utiliser le module tribune, j'ai décidé, après moultes hésitations, de migrer mon blog de Dotclear vers Drupal.

Après quelques recherches, je suis tombé, sans trop de mal, sur un script de migration : dc2drupal qui renvoie vers http://chaudron.unelectronlibre.info/wiki/dc2drupal. Seul petit bémol celui-ci est prévu pour les anciennes versions de Drupal et ici j'utilise la version la plus récente à savoir actuellemnt la 6.2. Il m'a donc fallu adapter, un tout petit peu, les scripts pour prendre en compte les changements nécessaires ( et corriger quelques bugs mineurs ausi :) ). Tout est dans le fichier diff dispo en bas de la page et que j'ai transmis à l'auteur de dc2drupal NiCoS.

Après que la migration fût effective je n'ai eu que le vocabulaire à tripatouiller à la main avec phpMyAdmin au niveau des tables drupal_term_data et drupal_term_hierarchy. J'avais la flemme de retoucher au scripts et vu le petit nombre de tags que j'utilisais dans dotclear, c'était plus rapide de le faire à la main.

Comme free ne donne pas le droit d'utiliser les rewrite rules d'apache, j'ai dû faire un script qui à partir du fichier htacces.txt créé par dc2drupal fait le même boulot mais en php. Ce script se présente comme suit :


<?php
// script de simulation des rewrite rules chez free.fr
// valable pour le passage de dotclear à drupal mais aussi pour d'autres choses
// soumis sous licence WTFPL 
// <a href="http://sam.zoy.org/wtfpl/" title="http://sam.zoy.org/wtfpl/">http://sam.zoy.org/wtfpl/</a> 

$requestURI=strstr($_SERVER['REQUEST_URI'],'index.php/'); // recherche index.php dans l'uri et prend la fin de la chaine
$requestURI=str_replace('index.php/','',$requestURI); // vire index.php                                                      

switch ( $requestURI )

  {
  case 
'General' header('Location: /drupal/index.php?q=taxonomy/term/1'); break;
  case 
'Astuces' header('Location: /drupal/index.php?q=taxonomy/term/2'); break;
  case 
'Openmss' header('Location: /drupal/index.php?q=taxonomy/term/3'); break;
  case 
'Web' header('Location: /drupal/index.php?q=taxonomy/term/4'); break;
  case 
'Tests-en-tout-genre' header('Location: /drupal/index.php?q=taxonomy/term/5'); break;
  case 
'Images' header('Location: /drupal/index.php?q=taxonomy/term/6'); break;
  case 
'Archlinux' header('Location: /drupal/index.php?q=taxonomy/term/7'); break;
  case 
'2007/03/16/1-first-post' header('Location: /drupal/index.php?q=node/1'); break;
  case 
'2007/03/16/2-une-petite-vision-de-l-avenir' header('Location: /drupal/index.php?q=node/2'); break;
  case 
'2007/03/17/4-connecter-un-lecteur-reseau-sur-un-gnu-linux-avec-windows-vista' 
header('Location: /drupal/index.php?q=node/4'); break;
  case 
'2007/06/15/6-spam-en-commentaires' header('Location: /drupal/index.php?q=node/6'); break;
?>

etc.. etc..
jusqu'à
<?php
  
default :     header('Location: /drupal/'); break; // au cas où
  
}
?>

J'ai mis ce script à la place du index.php de dotclear tout en renommant l'ancien au cas où.

J'ai aussi recréé un rss.php avec le contenu suivant :

 
<?php
header
('Location: /drupal/index.php?q=rss.xml');
?>

Je suis pas sûr que free y gagne au change : c'est le php qui fait les redirections au lieu d'apache tout seul. Au moins ça tourne, et les liens pointant vers mon site sont toujours valides tout en tombant sur les bons articles dans Drupal :)

Le fichier diff

Vus : 1113
Publié par Finss : 11