Vous n'êtes pas identifié(e).
13 février 2024 Sortie de Dotclear 2.29
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
Hello, bienvenue.
Pourquoi n'appelles tu pas tout simplement la fonction du $core addCategory ?
Hors ligne
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
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
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
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
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
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
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
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
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
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.
Thème minimal : http://themes.dotaddict.org/galerie-dc2/details/minimal
Thème pure : https://github.com/nicosomb/dotclear-pure/tree/master
Hors ligne
@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
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
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
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
Vous n'êtes pas identifié(e).