Migration DC2 Installation du Plugin Nombre de Lecture

Comme je l’ai dit dans mon précédent billet, ma migration vers DC2 c’est bien passé. Mais il me manque quelques Gadgets qui me semblent incontournables comme entre autres le plugin Nombre de lectures. Voici donc comment l’installer et surtout la méthode à utiliser pour récupérer les infos de ce même plugin si vous l’utilisiez sous Dotclear 1.2.x.

Car malheureusement oui il faut mettre les mains dans le moteur comme on dit, pour récupérer les informations de chaque billets du plugin nombres de lectures de la version 1.2.x pour les transférer vers la version 2.

Installation

Tout d’abord récupérer le plugin sur le site de l’auteur pour cela allez dans l’interface d’administration puis dans le menu Système cliquez sur Extension.Une fois fait allez dans l’onglet Ajouter une nouvelle extension et entrez l’adresse suivante dans la section Récupérer un paquet.

http://phoenix.cybride.net/public/plugins/plugin-postsviewcount-1.4.1.pkg.gz

L’extension s’installe, ensuite vous n’avez plus qu’à vous rendre dans l’interface d’administration du plugin qui se nomme PostViewCount dans le menu latérale Extensions et opérez les modifications nécessaire indiquées pour son bon fonctionnement.

Rien de bien difficile mais pour les nouveaux qui veulent se lancer dans le monde de Dotclear ça fait toujours du bien de le savoir.

Récupération des données

Tout d’abord une petite explication s’impose. Pourquoi doit on récupérez touts les données à la main me direz -vous? Et bien pour les 2 raisons suivantes :

Pour que le plugin sous DC 1.2.x fonctionne, il fallait que le celui-ci installe un champ supplémentaire nommé nb_view dans la table dc_post, champs qui par la suite était incrémenté à chaque lecture. Pour le plugin fonctionnant sous DC2 il n’y a aucun champ de créé dans la table dc_post mais il utilise la table déjà existante nommé dc_meta pour fonctionner. Cette table sert à l’origine pour l’utilisation des tags dans les billets, les champs étant utilisé de la façon suivante :

meta_id = nom du tag
meta_type = valeur par défaut tag
Post_id = ID du billet qui est attribué à ce tag.

Pour que cette table serve donc aussi au plugin PostViewCount, les champs vont être utilisés (pour ne pas rentrer en conflit avec l’utilisation première de celle-ci qui est la gestion des tags) de la manière qui suit :

meta_id = Nbre de lectures
meta_type = count
Post_id = ID du billet concerné.

La seconde et dernière raison est tout simplement lié à la seule solution que l’on ait à notre disposition pour exporter/importer la base de donnée de Dotclear 1.2.x (Billet, commentaire,etc…) vers DC2, le plugin flatexport. Ce plugin permet d’exporter le contenu des bases de données crées par dotclear 1.2.x dans un format importable par Dotclear 2. En effet, beaucoup de choses ont changées entre ces 2 versions aux niveau de la structure des bases de données et il est important d’utiliser ce plugin pour faire l’exportation. Sinon vous ne parviendrez jamais à récupérer vos données sans pertes et fracas.

Revenons donc à nos moutons, le problème qui découle de cette opération d’exportation et que malgré le fait que dans le fichier généré par flatexport (blog-backup.txt par défaut) la valeur du champs Post_id de la table dc_post est bien présente. Mais quand on procède à l’importation de ce fichier, il réattribue une nouvelle valeur au champs post_id pour chaque article, phénomène certainement lié à l’incrémentation automatique.

Voici donc comment procéder, c’est pas compliquer mais ça vous le coups d’être dit :

- Récupérez (avec phpmyadmin généralement) dans votre base de donnée que vous utilisiez pour DC 1.2.x les valeurs des champs suivant de la table dc_post:

Post_id
Post_titre (faites un résumé des mots clef du titre)
nb_view

Après avoir importer le fichier de backup générer par flatexport dans votre votre base de données DC2 allez dans la table dc_post de votre nouveau blog et récupérez, en vous aidant du champs Post_titre, le nouvel ID attribué à chacun de vos billets.

Une fois le rapprochement fait vous devriez arriver à un résultat (sur papier) de la forme suivante :

New ID       Ancien ID      Titre résumé        Nb_view
2                 13 Unace                 405
33               39 VirtualBox          663
27               31 IbmX30             1008

Maintenant il ne vous reste plus qu’a entrer tout cela dans la table dc_meta.
Allez donc dans la table dc_meta de votre base de données et toujours à l’aide de phpmyadmin insérer les enregistrements les uns après les autres.

Capture d’écran  « Onglet Insérer de Phpmyadmin »


Capture d’écran « Fenêtre d’insertion d’un nouvel enregistrement sous Phpmyadmin »

C’est un peu fastidieux j’en convient mais on peut quand même enregistrer les données 2 par 2 en décochant la case Ignorer juste au dessus du second champs d’insertion. Par défaut, la seconde liste déroulante en bas se trouves être sur Retourner à la page précédente ce qui vous obligera à recliquer à chaque fois sur l’onglet insérer, alors mettez la sur Insérer un nouvel enregistrement vous reviendrez automatiquement sur la page d’insertion d’un nouvel enregistrement.

J’espère que mes explications ont été assez claires. si la méthode peut être améliorer n’hésitez pas à me le signaler je mettrai à jour ce billet.

A bientôt ;-)