Doctlear vers SPIP

Vous aviez un blog sous Dotclear 2 et vous souhaitez le migrer vers SPIP ?

Ce plugin est là pour vous aider à passer de l’un à l’autre. Tout n’est cependant pas encore « automatisé » et il vous restera donc encore des manips à effectuer à la main.

Comment fonctionne ce plugin

Ce plugin sert à importer des objets DC (post, commentaires ...) en objets SPIP (articles, forums ...) en passant leurs contenus d’une base de donnée à l’autre.

Ce plugin :
-  convertit les raccourcis Dotclear en raccourcis SPIP.
-  transforme les category DC en rubriques SPIP.
-  transforme les post DC en articles SPIP, le champs texte des post DC se retrouvant dans le champ texte des articles de SPIP, le champs introduction de DC se retrouve dans le descriptif des articles de SPIP.
-  transforme les tags DC en mot-clefs SPIP.
-  transforme les commentaires DC en forums SPIP.
-  transforme les sites réferéncés DC en sites réferencés SPIP
-  transforme les utilisateurs DC en auteurs SPIP, en essayant de faire correspondre autant que faire ce peut les statuts. Comme il n’est pas possible de migrer les mots de passe, pour des raisons de sécurités, le plugin en génère des nouveaux, qu’il envoie par email s’il peut.
-  transforme les medias DC (sauf les documents distants) en documents SPIP. Le plugin s’occupe de copier depuis le dossier /private de DC vers le dossier /IMG de SPIP.

Comme certains post DC peuvent ne pas être dans une catégorie, alors que tout article SPIP doit être dans une rubrique, le plugin crée une rubrique intitulée « Rubrique d’import DC ».

Ce plugin ne convertit pas des thèmes dotclear en squelettes SPIP. Vous pouvez toutefois vous tourner vers SPIP-Clear

Préalable : préparer Dotclear

Il vous faut un blog sous Dotclear 2. Si votre blog est sous Dotclear 1, il faudra auparavent le « migrer ». Par ici : http://fr.dotclear.org/documentation/2.0/admin/1-to-2

Le plugin est prévu pour fonctionner sur une base SPIP "vierge" (sans contenu éditorial). En théorie il pourrait fonctionner avec un SPIP déjà rempli, mais cela n’a jamais été testé.

Le mieux est de travailler « en local » car le plugin nécessite pas mal de calcul.

Il faut donc installer un SPIP (dernière version).

A la racine du dossier de SPIP, (à coté de ecrire, squelettes-dist etc,) déposer le dossier public de Dotclear, qui contient les documents de dotclear.

Les tables de la base de donnée de DC doivent se trouver dans la même base que SPIP. Ainsi, lorsque vous installer votre SPIP, il est nécessaire de bien choisir la base de donnée.

Les urls de dotclear doivent être les urls « standards ».

Installer le plugin

Il s’installe comme n’importe quel plugin.

Il nécéssite :
-  SPIP 2.1
-  le plugin médiathèque
-  le plugin sale (zip)
-  le plugin CRUD (zip).

Il vaut mieux faire la migration depuis dotclear sur une base vide, avant toute écriture de contenu. En revanche, il est possible de configurer SPIP avant (par exemple, activer l’annuaire de site WEB).

Migrer le site

Une fois le plugin activé, rendez-vous dans le menu Configuration->Migration depuis Doctlear.

Le plugin liste tous les blogs DC disponible. Choisissez ceux que vous souhaitez migrer. Chaque blog sera recopié avec sa hiérarchie de catégories / rubriques, sans fusion.

Il vous faudra confirmer votre choix. Laissez le plugin mouliner.

Après la migration

Gestion des documents problématiques !

La première chose a faire est de supprimer le plugin pour éviter de migrer plusieurs fois par erreur.

Ensuite, il vous faudra regarder dans le dossier tmp de SPIP. Vous pourrez trouver un fichier prive_dot_attention.log : ce fichier liste les éventuels documents qui n’auraient pas pu être migrés, post par post. Il s’agit des documents distants pour la plupart.

Il vous faudra donc repérer ces posts, retrouver les documents, et les ajouter à la main dans les articles SPIP correspondants.

Récupération des anciennes urls (A partir de la version 0.2 du plugin)

Pour permettre de ne pas perdre les liens que certains ont fait vers votre site, récupérez le fichier local/htaccess.tex.

Remplacez dedans http://exemple.tld par l’adresse du site SPIP. Mettez le résultat dans le fichier .htaccess de l’ancien site Dotclear.

A faire

Certains champs des post DC — des champs d’importance secondaire — n’ont pas leurs équivalent dans les articles de SPIP.
Ainsi :
-  le champs « post_tz » de la table dc_content et dc_user.
-  le champs « post_creadt » de la table « dc_content » n’a pas d’équivalent.
-  le champs « post_upddt » de la table « dc_content » n’a pas d’équivalent.

J’attends vos suggestions pour définir ces équivalences.

Ps : Si vous utilisez ce plugin, merci de me faire vos retours d’expériences.

Discussion

9 discussions

  • 3

    Bonjour
    J’ai téléchargé SPIP 2.1, et j’ai essayé de faire ce que vous expliquez, mais je ne sais pas comment choisir la bdd de Dotclear au moment d’installer SPIP.
    Sous quelle forme récupérer la bdd de Dotclear, et où la placer pour pouvoir ensuite la désigner au moment de l’installation de SPIP en local. Je préviens que je suis complétement débutante dans ce domaine. Merci

    • oulà,.

      Le plugin est très vieux et je doute qu’il fonctionne encore pour les nouvelles versions de dotclear.

      Mais du coup

      1. Vous telecharger votre base msql contenant doctlear via PHPmyadmin chez votre hebergeur
      2. Vous l’installer en local via phpmyadmin sur votre ordinateur (phpmyadmin ou autre, tout dépend de comment vous avez installé votre serveur local...)
      3. Au moment d’installer SPIP, il vous proposera plusieurs base de donnée, dont celle contenant doctlear

    • Bonjour
      Merci pour la réponse. Oui, je sais bien que c’est très vieux. J’ai installé WAMP5 en espérant qu’il serait au mème niveau que le reste. Le problème c’est que je ne sais pas m’en servir. (J’ai bien su installer un SPIP en local avec une nouvelle base de données). Mais pour les opérations 2 dont vous parlez, je ne sais pas faire. J’ai téléchargé chez OVH une copie de la base de données et je me retrouve avec un fichier mysql323.nomdelabase.date.tar.gz dont je ne sais quoi faire. Et quand je vais sur Wamp5 1.7.4 il y a bien un « service » mysql mais je ne sais pas comment m’en servir. Donc c’est ce que je suis en train de chercher. Mais j’aurais peut-être dû prendre une version plus récente de Wamp ?

      En fait, je dois, à regret, me séparer d’un vieux site Dotclear en 2.12.1 pour le réintégrer dans un vieux site SPIP en 3.1. Donc j’essaie de passer par une version 2.1 pour tenter de récupérer le Dotclear pour ensuite tout réintégrer dans le SPIP en ligne.

      On a demandé à des professionnels mais ça risque de nous coûter assez cher, sans résultat garanti.

      Bonne journée

    • Wamps est livré avec phpymamin, vosu devriez donc pouvoir installer en local le fichier .gz que vous avez recuperé.

      je ne connais pas wamps, mais je pense que pourrez trouver de l’aide dans la commuanuté concerné.

    Répondre à ce message

  • 1

    Tenté le truc...

    Je suis en DC 1.2, pas de bol...
    Néanmoins une faute de frappe :
    «  * Acceuil > * Migration Dotclear 2 SPIP »

    • pas compris ou était la faute de frappe.

      Pour migrer vers SPIp il faudra que vous migriez depuis DC 1 vers DC 2

    Répondre à ce message

  • Bonjour,
    quelqu’un a t il tester ce pluggin avec la version 3 de spip ?
    ou dois je faire une migration dotclear -> spip 2.1 -> spip 3

    Répondre à ce message

  • 15

    Bien bien, j’ai donc récupéré dotclear en local.

    J’ai ensuite réinstallé un spip 2.1.19 sur ma machine (en local donc toujours) et lui ai indiqué comme base de donnée la base du site dotclear.

    Je vais sur Migration depuis Dotclear. Il me propose comme blog à migrer « default » (ce qui me paraît assez louche mais bon), je coche.

    Et plus rien, il ne fait même pas semblant de bosser, il ne hurle pas qu’il y a un truc qui cloche. Rien du tout.

    Je précise que, évidemment, le site dotclear n’est pas vide.

    À partir de là, me voilà bien marrie, et surtout je ne vois pas trop ce que je peux bien faire. À moins de faire un test en ligne, des fois que le plugin trouve mon ordinateur un rien trop poussif.

    • a priori, mieux vaut faire le test en local qu’en ligne.

      Default, c’est normal.

      Par contre dire qu’il ne se passe rien ... ne m’aide pas à comprendre le pb ... ca veut dire quoi rien ? vous attendez ? ca fait une page blanche ?

    • Ça veut dire rien comme je l’expliquais. Je coche et puis c’est tout. Pas de petit machin qui me dit je travaille, pas de message d’erreur, pas de page blanche, rien ne bouge.
      Il ne se passe rien.

    • heu, vous cliquez bien sur le bouton OK ? je reviens de faire un test : je coche le site, je clique sur ok, puis je confirme ... et ca roule (avec un blog gandi)

    • J’ai beau être encore plus stupide que je ne le pense apparemment, mais oui je sais que quand il y a un bouton de type « ok », il faut généralement cliquer dessus pour qu’il se passe quelque chose.

      Donc oui je l’avais fait et je viens de le refaire, au cas où hier soir je ne l’aurai pas fait, pour la même absence de résultat.

      Bon je pense qu’on peut à peu près éliminer la bêtise de l’opérateur comme cause de problème dans ce cas-ci. Mais effectivement, ça ne nous dit pas ce qui foire. À moins que ça ne soit les url « standard » (je ne vois pas pourquoi mais peu importe), mais c’est quoi une url « standard » dotclear ou SPIP (je n’ai rien touché aux réglages de SPIP ni du dotclear local d’ailleurs).

    • Je viens de le re-refaire en ligne, deux fois. Une fois avec la base que j’avais récupéré en local, et une fois avec celle qui vient tout droit de la version en ligne (oui j’ai cliqué sur OK à chaque fois...)

      Même résultat, ou plutôt même rien du tout.

      Je l’ai re-refait, là j’ai eu droit à une erreur : impossible d’accéder à l’espace privé et toujours rien côté public.

      Enfin, une dernière fois : il a pris les rubriques, les commentaires, les liens... mais aucun article. Bref même problème que celui de Valéry du 12 mai 2012. J’imagine que c’est sans solution.

    • c’est sans doute avec solution, mais il me faudrait une base exemple pour faire le test.... et du tps, ce que je n’ai pas.

    • d’autant que vu la manière dont vous parlez, je n’ai pas envie de me fatiguer

    • Vous avez vu votre première réponse ? Si ce n’était pas une façon de me traiter d’imbécile c’était quoi ? Mais si c’est un crime de répondre de façon sarcastique à quelqu’un qui vous fait comprendre clairement que vous êtes stupide.

      Cela dit le détail de la réponse était aussi pour vous indiquer que j’avais bien tout essayé puisque dès le départ vous m’en pensiez incapable.

      Bref, il n’y a pas de solution actuelle. J’imagine que si elle existait déjà, étant donné que le problème s’étant déjà posé, elle existerait déjà.

    • désolé, cela arrive, à tout le monde, de ne pas voir des boutons. Moi le premier. En plus « il ne se passe rien » ne vaut strictement rien dire.

      Et le pb pourrait être résolu, si j’avais les moyens de le résoudre, à savoir une base de test problèmatique.
      Bref, je clos ici, puisque vous semblez partir du principe que les gens qui font des plugins sont juste des méchants devellopeur qui prennent les utilisateurs pour des imbéciles. Et qui en plus sont incapables de résoudre les pb.

    • Il y a une façon de le dire.

      Et quand j’écris il ne se passe rien en ajoutant des précisions ça semble parlant, ou alors peut-être que mon français est encore plus déplorable que je ne le pense.

      Bref, non je n’ai rien contre les développeurs, et je ne pense pas que vous soyez incapable de trouver la solution. Mais si elle n’existe pas aujourd’hui je n’ai pas à vous demander de travailler dessus (après tout si ce plugin n’a pas évolué vers SPIP3 il y a sans doute des raisons), compte tenu aussi du fait que de toute façon l’import de Gandi est très problématique en soi : perte des liens internes et vers les images donc il faut aussi retravailler tout ça, et bon bref. On ne va pas perdre du temps là-dessus. J’ai une solution de rechange et tant pis pour ce blog.

    • Donc, je résume :
      -  vous commencez par un message qui ne dit ni bonjour, ni excusez moi, ni je ne comprend pas le pb pour me dire « ca ne fait rien » en ne précisant ni le moment ni ce qu’est que le rien (parce que oui, il peut y avoir plusieurs riens)
      -  je vous demander plus de précision pour voir à résoudre le pb, vous vous vexez.
      -  et après cela vous ne voulez pas que je trouve les moyens de résoudre le pb.

      Alors expliquez moi à quoi sert-il de poser une question si c’est pour qu’on ne trouve pas de solution ?

    • On arrête là, mon premier message n’avait rien d’agressif, il n’était que descriptif d’un rien (comme quand on appuie sur le bouton d’une machine pas branchée).

      Vous ne m’avez pas demandé des précisions... (et j’en ai données au cas où) bref il y a comme une incompréhension entre nous. Donc je m’excuse platement de ne pas vous avoir compris et de ne pas m’être fait comprendre etc. Cela dit, quand on me dit « je n’ai pas le temps de tester la base », je comprends qu’on n’aie pas le temps et je n’en demande pas plus et je ne vous le reproche pas. Cela me paraît normal. D’ailleurs ça ne me viendrait pas à l’idée de vous le demander d’ailleurs.

      Sinon, effectivement, je trouve toujours un peu idiot de commencer un commentaire par un bonjour ou bonsoir étant donné qu’on ne sait pas à quelle heure il sera lu et un« excusez-moi » pour signaler un bug dans un plugin ne me paraît pas très adaptée (mais c’est ma façon de comprendre le français sans doute).

      Alors à quoi sert-il de poser une question ? D’abord de vérifier qu’il y a un bien un souci (il y aurait pu y avoir un truc supplémentaire à faire ou par exemple), ensuite de voir s’il y a une solution possible ou pas du tout et dans ce dernier cas de contourner le problème ou de laisser tomber et de passer à autre chose. En l’occurrence quand il n’y a pas de réponse toute faite, il me semble normal et correct de ne pas en demander plus. Désolée que vous le preniez mal et je ne comprends pas bien que vous le preniez mal.

    • et ben non, quand on problème est là, on le masque pas. On essaie de le résoudre. Quitte à la résoudre plus tard quand on a pas le temps tout de suite.

      C’est seulement comme cela que ca peut fonctionner. Si toutes les personnes qui ont des problèmes disent « j’ai un problème mais je ne veux pas vous donner les moyens de le résoudre », et bien les gens auront toujours des problèmes.

      Et relisez vos messages. Vous êtes extrêment sarcastique dès votre premier email, je me permet de vous demander des précision, pour être sûr que j’ai été clair dans mon article, vous prenez la mouche.

      Donc je ne comprend pas que vous le preniez mal.

    • ps : quand à la politesse, le bonjour ou le bonsoir, ou même le salut, ce n’est pas l’heure qui compte, c’est juste faire l’effort de se rendre compte qu’il y a des êtres humains derrière le code... De même pour le excusez moi, ou toute phase d’atténuation. C’est peut-être idiot, mais ca prouve qu’on se rend compte que les personnes qui code sont des humains.

      Parceque commencez un message par « bien, bien » ca fait VRAIMENT sarcastique et pas poli.

    • Il y a vraiment un problème d’incompréhension...

      Cela dit mon gandiblog (la base date des débuts donc à mon avis elle est un chouïa foireuse avec des restes pas propres de dotclear 1 dedans qu’il ne doit pas être facile à enlever sans tout bousiller) pose trop de problèmes de récupération (rien à voir avec le plugin) pour qu’on perde plus de temps dessus. Parce que si on arrive à le passer en spip, j’imagine qu’il faudra ensuite corriger les liens internes, remettre les images etc. Et je ne me sens pas la force de m’y attaquer, et donc, là ce serait vraiment pas sympa et grossier de vous demander d’avoir travaillé dessus alors que je ne suis (verbe suivre, il devrait y avoir une forme qui diffère du verbe être) pas derrière.

      Merci d’avoir essayé.

    Répondre à ce message

  • 1

    Après avoir suivi le processus depuis dotclear2 vers spip 2.1 le plugin a récupéré les rubriques et les commentaires mais ni les billets ni les documents.

    • étrange :(

      peut tu m’envoyer par mail la BDD, j’essaierai de regarder dans le courant de la semaine …

    Répondre à ce message

  • 1

    Bonsoir,
    On m’a demandé de migrer un site Dotclaar vers Spip. Le plugin de Maïeul semble très bien faire ça et je vais l’utiliser.
    Maintenant, la question qui tue : comment migrer l’album photos de ce site, géré avec le module « Gallery » de Dotclear (des dizaines d’albums, des centaines de photos, des milliers de commentaires !) ?? Je n’ai rien trouvé jusqu’à présent. Si quelqu’un a une idée, une piste, une ébauche de commencement d’indice ... je suis preneur !
    Bien cordialement à tou(te)s !

    • a par faire ce que je fais, a savoir coder en php pour automatiser tout cela, je ne vois pas trop :-(

    Répondre à ce message

  • 4

    Salut Maïeul

    Petit retour d’expérience :

    Ca a été un peu laborieux car je partais d’un Dotclear 1.2.5 pour lequel j’ai du importer la base en local à l’aide de phpmyadmin (ça ne fonctionnait pas avec l’import/export de dotclear). Je n’ai d’ailleurs pas réussi à trouver l’archive zip d’une version 1.2.5.
    J’ai du passer ensuite en 1.2.8 avant de pouvoir migrer en 2.2.2... Faut surtout pas essayer de raccourcir les méthodes de mise à jour décrites sur le site de dotclear sinon on perd la table des médias dc_media sur laquelle se base le présent plugin.

    Lors du passage en dc2, tous les médias ont été recopié en vrac dans /public/ et donc les codes d’insertion d’images des billets étaient faux. Pour pallier à ce « désagrément », j’ai modifié la fonction dot_decomposer_chemin_media pour qu’elle renvoie $dossier=« . », la valeur présente dans la table dc_media

    Le champ media_upddt n’étant pas renseigné dans ma table dc_media, j’ai dû modifier le source dans dot_medias.php pour utiliser plutôt le champ media_dt

    Il manque le plugin Iterateurs dans les « necessite »

    Dans le cadre d’une utilisation sur un spip mutualisé, le dossier public est bien à placer au même niveau que le dossier ecrire et non dans sites/monsite

    • cool pour ce retour.

      honnettement je crois que l’organisation de DC est tellement complexe qu’on peut pas prévoir tout les cas.

      par contre ce plugin n’a pas besoin d’itrateur, vu qu’il ne l’utilise pas :p

      surtout qu’il était pas sorti quand je l’ai codé

    • Oui, c’est complexe, c’est pour ca que j’apporte ce petit témoignage, tant qu’a y avoir passé toute l’après midi autant que ca serve.

      Pour Itérateur, tu as raison, je me suis sans doute un peu mélangé les pinceaux

      Ah et une autre truc, les images avec des caractères accentués ou des espaces dans les noms de fichiers ne sont pas importées et y’a pas de message d’erreur. L’absence de message d’erreur est dû a Crub qui oublie de le signaler si la source n’existe pas. Dans la fonction crud_documents_create_dist, faudrait rajouter un else à if (intval($id = $id[0])). Je voudrais bien le faire mais je ne comprends rien au retour de cette fonction.

    • moi non plus j’y comprend rien ... faudrait envoyer un mail sur la zone

    • Oui, je l’ai fait

    Répondre à ce message

  • 1
    noé de naama

    A quoi sert le plugin crud ?
    Je suppose qu’il s"agit d’une surcouche aux fonctionsde gestion de base de données de spip mais qu’ajoute-t-il ?

    Répondre à ce message

  • 2

    Acceuil -> Accueil !

    Pour la migration DC1->DC2, il faut que je trouve l’outil de migration (indisponible sur le site de CD, voir mon message dans le forum SPIP).
    _

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom