Passage de DC1 à DC2

Dotclear 2

Il faut savoir que passer de DC1 à DC2 se fait très facilement. Il faut par contre avoir conscience qu’il ne s’agit pas d’une banale mise à jour, mais véritablement d’une migration.

Première étape: Installer DC2
Installer DC2 est d’une simplicité enfantine. Pour que la migration se fasse dans les meilleures conditions, il faut installer DC2 à coté de votre blog sous DC1. DC2 est vierge, il ne vous reste plus qu’à récupérer les données de votre DC1. Pour cela, deux possibilités. Allez déjà sur l’onglet Import/Export :

  • L’importation via la BDD

Vous pouvez vous connecter sur la BDD de votre DC1 ? Remplissez alors les champs dans le lien Importer depuis Dotclear 1.2. La procédure est automatique, vous n’avez rien à faire.

  • L’importation des données de DC1 via plugin

Vous n’avez pas accès à votre BDD ? Installer sur votre DC1 le plugin Flatexport et exporter le fichier de backup. Puis vous vous rendrez sur import/export et vous chargez le fichier créé via Importer un blog.

Deuxième étape: URL disgracieuse

DC2 gère complètement différemment les URLs. Sur DC1, le format type est http://www.nicolasleune.com/NSL/index.php/2008/10/09/182-la-selection-du-chef-5. Perso, j’ai décidé d’avoir sur DC2 lorsque j’écrirais un nouvel article une url de type http://www.nicolasleune.com/NSL/post/182-la-selection-du-chef-5. Comment faire ?

une fois connecté à l’interface d’administration du blog (monsite/dotclear/admin), dans le tableau de bord, rubrique « Paramètres du blog », on enlève index.php/ (ou index.php?, si le mode « query_string » est adopté) dans le champ « URL du blog », puis on vérifie que la « méthode de lecture de l’URL » choisie est bien « path_info »

Ensuite, on édite le fichier inc/config.php, afin d’en décommenter les dernières lignes et d’obtenir le résultat suivant :

// If you have PATH_INFO issue, uncomment following lines
if (!isset($_SERVER['ORIG_PATH_INFO'])) {
    $_SERVER['ORIG_PATH_INFO'] = '';
}
$_SERVER['PATH_INFO'] = $_SERVER['ORIG_PATH_INFO'];

Enfin, on crée un fichier .htaccess, qu’on place dans le dossier du blog (« dotclear », si l’on n’en a pas modifié le nom). Ce fichier doit comporter le code suivant :

# Pour des URL sympas avec DotClear 2
RewriteEngine On
RewriteBase /NSL/
# changer NSL par votre propre répertoire
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php/$1
RewriteRule ^index.php$ index.php/

Toute cette manoeuvre a permis de faire une url propre sans “?”, et sans index.php/. Maintenant vous allez dans about:config, vous descendez au niveau de post_url_format et vous choisissez le format d’url que vous souhaitez. Personnellement, j’ai choisi {id}-{t}, pour garder l’id du billet dans l’URL.

Post URL format. {y}: year, {m}: month, {d}: day, {id}: post id, {t}: entry title

Dernière étape: Les flux RSS

Une vrai galère quand on découvre DC2, il n’y a plus de fichier se nommant rss.php ou atom.php. DC2 crée un fichier dans le répertoire feed :

http://www.nicolasleune.com/NSL/feed/rss2

Et la, vous vous demandez comment envoyer vos anciens abonnés de DC1 sur DC2 (dans l’hypothèse ou vous gardez le même nom de répertoire (perso, j’ai gardé DC1 et DC2 sur /NSL/) :

  1. Je vous propose déjà de créer deux flux sur feedburner, un pour gérer vos commentaires, et l’autre pour gérer votre flux RSS
  2. Puis vous retournez éditer votre fichier .htaccess, et vous rajoutez ce code
  3. # feed RSS et Atom Dc1 vers nv feedburner
    Redirect permanent rss.php http://feeds.feedburner.com/fluxrssfeedburner
    Redirect permanent atom.php http://feeds.feedburner.com/fluxrssfeedburner
    Redirect permanent rss.php?type=co http://feeds.feedburner.com/fluxcommentfeedburner
    Redirect permanent atom.php?type=co http://feeds.feedburner.com/fluxcommentfeedburner

    L’idée est de dire au serveur que si quelqu’un souhaite se rendre sur le fichier atom.php ou rss.php ou sur les commentaires depuis l’adresse du flux DC1, il sera redirigé directement sur le flux feedburner.

  4. Puisque le flux de DC1 est redirigé, pourquoi ne pas s’occuper du flux de DC2 ? On continue à travailler sur le fichier .htaccess et on ajoute :

    #Redirection des flux de DC2 vers nv feedburner tout en conservant les flux des catégories, des tags et des billets sur DC2
    RewriteEngine On
    RewriteRule ^/feed/rss2$ http://feeds.feedburner.com/fluxrssfeedburner [R=301,L] RewriteRule ^/feed/rss2/comments$ http://feeds.feedburner.com/fluxrssfeedburner [R=301,L] RewriteRule ^/feed/atom$ http://feeds.feedburner.com/fluxcommentfeedburner [R=301,L] RewriteRule ^/feed/atom/comments$ http://feeds.feedburner.com/fluxcommentfeedburner [R=301,L]

Et voila, votre DC2 est en configuré correctement, et vos anciens flux fonctionnent toujours 🙂 Merci à Gazmasta de m’avoir filé un coup de main sur les URL de DC2, une partie de mes explications proviennent de son expérience et de ce qu’il m’a envoyé.

Pour passer sur DC2, allez lire les excellents trucs et astuces sur DC2, la riche documentation de DC2, une question, allez voir la FAQ ? Et enfin, pir télécharger, c’est par ici

Une réflexion au sujet de “Passage de DC1 à DC2

  1. Gaz says:

    Gaz ou Gazmasta c’est le même combat lol ^^ !
    Par contre si je peux me permettre il me semble que la redirection des flux rss de DC1 vers feedburner doit se faire dans un htaccess à placer dans le repertoire du blog en DC1!

    On s’est aidé mutuellement sur cette migration donc je te remercie également!

    Prochain article : Redirection des anciennes adresses de DC1 et DC2 vers les nouvelles urls de DC2…
    Bon courage lol

  2. Nico says:

    Oui, mais cela t’es propre car tu as décidé de garder tes deux répertoires, blog et shop. La je parle dans le cas de figure ou tu gardes le même nom de répertoire 🙂

  3. Gaz says:

    of course!!!! je m’étais pas arrêté sur ce détail qui a son importance 😉

  4. Nico says:

    🙂 forcement, mais en effet, si tu gardes ton ancien blog, alors il faut légèrement adapté le .htaccess et le charger dans le répertoire du blog d’origine pour forcer la redirection du flux vers feedburner

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Required fields are marked *

*