Dotclear

Vous n'êtes pas identifié(e).

Annonce

13 février 2024 Sortie de Dotclear 2.29

#1 2013-05-21 14:39:07

regis_floret
Membre
Lieu : Saint Leu de la Réunion
Inscription : 2013-05-16
Site Web

Création d'un plugin d'importation Wordpress. Un peu d'aide...

Bonjour

Mise en situation:
Je viens de migrer vers Dotclear pour un de mes blogs depuis Wordpress.com. J'ai un peu farfouillé à droite et je me suis rendu compte que le seul moyen était de passer par la base de données. J'ai donc décidé de créer mon premier plugin d'importation des fichiers XML de WP vers DC.

J'arrive parfaitement à importer le fichier XML et le traiter.

Problème
Il en fallait bien un.  J'essaye de créer des catégories à la volée de cette manière:

    private function _addCategories($categories) {
        $cur = $this->core->con->openCursor($this->core->prefix,'category');
        foreach($categories as $category) {
            try {
                $cur->cat_title = $category['name'];
                $cur->cat_url = $category['url'];
                $this->core->callBehavior('adminBeforeCategoryCreate', $cur);
                $id = $this->core->blog->addCategory($cur);
    			$this->core->callBehavior('adminAfterCategoryCreate',$cur,$id);
            } catch (Exception $e) {
                $this->core->error->add($e->getMessage() . ' : ' . $category['url']);
            }
        }
    }

Et là c'est l'horreur ! Dotclear m'insulte en me disant

Table 'dc_' was not locked with LOCK TABLES (1100) : ICI LES CATEGORIES - EN FAIT TOUTE

est-ce que quelqu'un peu m'aider pour trouver les informations qui me manque (je ne cherche pas forcément la solution ici, mais un début de piste).

Cdt et merci d'avance

Hors ligne

#2 2013-05-22 09:17:10

osku
Membre
Lieu : 28
Inscription : 2005-06-15

Re : Création d'un plugin d'importation Wordpress. Un peu d'aide...

Hello, bienvenue.

Pourquoi n'appelles tu pas tout simplement la fonction du $core  addCategory   ?

Hors ligne

#3 2013-05-22 17:45:24

regis_floret
Membre
Lieu : Saint Leu de la Réunion
Inscription : 2013-05-16
Site Web

Re : Création d'un plugin d'importation Wordpress. Un peu d'aide...

C'est ce que je fais.

$this->core

est le $core de l'index.php du plugin.

Je crée mon cursor
$category est un array (je suppose que tout le monde avait deviné)
Je lance un event 'adminBeforeCategoryCreate'
J'appelle le core
je lance un event 'adminAfterCategoryCreate

Et j'ai mon erreur avec LOCK TABLE. Je pense qu'il y a une subtilité que je ne comprends pas.  Il est vrai que je suis pas mal rouillé avec PHP après 5 ans de Django sans discontinuer.

Et en passant, chose qui n'a rien à voir avec la choucroute, où est-ce que je soumets mes patchs (j'en ai un petit).

Hors ligne

#4 2013-05-22 19:39:15

Jean-Michel
Modérateur à ailes d'ange
Lieu : Paris
Inscription : 2006-08-22
Site Web

Re : Création d'un plugin d'importation Wordpress. Un peu d'aide...

regis_floret a écrit :

Et en passant, chose qui n'a rien à voir avec la choucroute, où est-ce que je soumets mes patchs (j'en ai un petit).

Il faut créer un compte MyDotclear et déposer un ticket sur l'espace de développement.

Hors ligne

#5 2013-05-23 11:09:36

osku
Membre
Lieu : 28
Inscription : 2005-06-15

Re : Création d'un plugin d'importation Wordpress. Un peu d'aide...

Autant pour moi, je n'avais pas regardé le détail de ta fonction.

Tu initialises le curseur avant la création en rafale de tes catégories.
Tu peux essayer d'initialiser le curseur avant chaque appel de la fonction du $core comme suit :

    private function _addCategories($categories) {
        foreach($categories as $category) {
            try {
                $cur = $this->core->con->openCursor($this->core->prefix,'category');
                $cur->cat_title = $category['name'];
                $cur->cat_url = $category['url'];
                $this->core->callBehavior('adminBeforeCategoryCreate', $cur);
                $id = $this->core->blog->addCategory($cur);
    			$this->core->callBehavior('adminAfterCategoryCreate',$cur,$id);
                unset($cur);
            } catch (Exception $e) {
                $this->core->error->add($e->getMessage() . ' : ' . $category['url']);
            }
        }
    }

Hors ligne

#6 2013-05-23 15:33:34

regis_floret
Membre
Lieu : Saint Leu de la Réunion
Inscription : 2013-05-16
Site Web

Re : Création d'un plugin d'importation Wordpress. Un peu d'aide...

Merci pour ta réponse mais ce n'était pas ça. Mais par contre ton intervention m'a bien fait voir le problème.

J'ai ouvert le curseur avec

$this->core->prefix , 'category'

mais j'aurais du écrire

$this->core->prefix . 'category'

Un point de concaténation et pas une virgule !

Je vais mettre le projet de plugin sur GitHub (auto promo,  toussa, toussa) . Je pense que c'est un projet qui intéresse le projet DotClear dans son ensemble.

Le reste, je vais savoir me débrouiller. Je vous tiens au courant, mais je suis très très très occupé en ce moment.

Cordialement et merci encore

Hors ligne

#7 2013-05-23 19:49:32

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : Création d'un plugin d'importation Wordpress. Un peu d'aide...

regis_floret a écrit :

Je vais mettre le projet de plugin sur GitHub (auto promo,  toussa, toussa) . Je pense que c'est un projet qui intéresse le projet DotClear dans son ensemble.

Tout à fait d'accord pour l'utilité du plugin. Ensuite, GitHub est chouette pour le développement, mais il ne faut pas oublier Dotaddict pour la visibilité ;)

Hors ligne

#8 2013-05-24 06:14:42

regis_floret
Membre
Lieu : Saint Leu de la Réunion
Inscription : 2013-05-16
Site Web

Re : Création d'un plugin d'importation Wordpress. Un peu d'aide...

amalgame a écrit :

Tout à fait d'accord pour l'utilité du plugin. Ensuite, GitHub est chouette pour le développement, mais il ne faut pas oublier Dotaddict pour la visibilité ;)

toutafé.

Le dépôt https://github.com/regisf/Wordpress2Dotclear

Je vais le mettre sous la même licence que DC sans oublié DotAddict.org.

Hors ligne

#9 2013-07-11 09:34:11

luciole135
Membre
Inscription : 2013-07-11

Re : Création d'un plugin d'importation Wordpress. Un peu d'aide...

J'ai un site sous WordPress chez FREE ce qui pose problème puisque WordPress nécéessite PHP 5.2.4 et je voudrais essayer en local votre plugin pour transformer mon blog WordPress en DotClear, comment faut-il faire ?

Hors ligne

#10 2013-07-11 20:58:48

BG
Membre
Lieu : 17
Inscription : 2005-05-11
Site Web

Re : Création d'un plugin d'importation Wordpress. Un peu d'aide...

Tu devrais contacter l'auteur par email, je ne suis pas sûr qu'il surveille ce sujet.

Tu peux aussi importer tes articles dans import/export par le biais du flux RSS mais tu ne pourras pas récupérer les commentaires dans ce cas.


Installer votre premier blog : http://abc.dotaddict.org
Documentation Dotclear2:    http://fr.dotclear.org/documentation/2.0/
Astuces (Tips), Plugins, Thèmes: http://dotaddict.org/

Hors ligne

#11 2013-07-25 07:48:16

regis_floret
Membre
Lieu : Saint Leu de la Réunion
Inscription : 2013-05-16
Site Web

Re : Création d'un plugin d'importation Wordpress. Un peu d'aide...

Non, je ne surveille pas le sujet. :) Tellement de chose à faire et si peu de temps.

Pour le moment, le plugin est relativement inutilisable. Les journées ne font que 24 heures auxquelles il faut retrancher 8 heures de sommeil ;)

Le problème principale est l'utilisation de PHP 5.3 et sup. Je vais regarder avec un PHP < 5.3

Hors ligne

#12 2013-07-25 08:13:36

nico_somb
Membre
Lieu : Rinxent
Inscription : 2004-10-26
Site Web

Re : Création d'un plugin d'importation Wordpress. Un peu d'aide...

J'ai migré de wp à dc la semaine passée sans utiliser de plugin : dc embarque de base un système d'import qui fonctionne relativement bien (en lui fournissant une base sql de wp).
@luciole135 : si t'as des questions à ce sujet, n'hésite pas, c'est encore presque frais dans ma tête.

Hors ligne

#13 2013-07-25 09:29:09

regis_floret
Membre
Lieu : Saint Leu de la Réunion
Inscription : 2013-05-16
Site Web

Re : Création d'un plugin d'importation Wordpress. Un peu d'aide...

@nico_somb : C'est finalement la solution que j'ai utilisé par manque de temps et le forcing du client.  Cependant ce plugin n'utilise que le fichier XML généré par WP. Très utile pour ceux qui changent aussi de fournisseur ou qui se sont fait piégés par leur WebMaster (c'est très courant à la Réunion ou j'habite).

J'ai trouvé le bug. Je voulais un très qui fonctionne du premier coup, donc un développement long, mais je pense que je vais faire un développement court. Faire en sorte que ça fonctionne même si c'est imparfait puis fignoler au fur et à mesure des besoins.

Hors ligne

#14 2013-07-28 07:22:12

regis_floret
Membre
Lieu : Saint Leu de la Réunion
Inscription : 2013-05-16
Site Web

Re : Création d'un plugin d'importation Wordpress. Un peu d'aide...

Bonjour

Je viens de mettre à jour le plugin de migration de Wordpress vers Dotclear. Il est maintenant fonctionnel.

L'adresse : https://github.com/regisf/Wordpress2Dotclear

Je vais le mettre sous peu sur le dépôt DotAddict (dès que j'ai mon compte).

Les bugs connus et fonctions manquantes sont :

* Pas de transfert d'utilisateurs
* Pas de hiérarchie dans les catégories.
* La hiérarchie des pages Wordpress ne sont pas pris en compte.
* Pas de transfert des commentaires (je bosse dessus).

Dès que j'ai fini de transférer mon blog (que j'ai fait avec mes petits doigts) sous DC, je crée une page spéciale, toussa, toussa.


Voili voilou

Hors ligne

#15 2015-01-13 22:59:16

Nana54330
Membre
Inscription : 2015-01-13

Re : Création d'un plugin d'importation Wordpress. Un peu d'aide...

Dans cette cas, vous pouvez crée un compte MyDotclear afin de déposer un ticket sur l'espace de développement.


Tout ce qui concerne miel de manuka et vinaigre de cidre

Hors ligne

#16 2015-01-14 11:03:35

i_love_dc
Membre
Inscription : 2007-07-13

Re : Création d'un plugin d'importation Wordpress. Un peu d'aide...

Nana54330 a écrit :

Dans cette cas, vous pouvez crée un compte MyDotclear afin de déposer un ticket sur l'espace de développement.

je ne crois pus que ce plugin soit d'actu...d’ailleurs dotclear est équipé d'une fonction d'importation wp > dc et regis_floret semble s’être rééquipé d'un WP et ne donne plus de signe de vie sur ce forum :(

Hors ligne

#17 2015-01-15 17:47:01

Tomek
Moderator
Inscription : 2006-04-12
Site Web

Re : Création d'un plugin d'importation Wordpress. Un peu d'aide...

@I_love_dc : ça sent le spam.

Hors ligne

Vous n'êtes pas identifié(e).

Pied de page des forums

Sites map