J'ai pris le Ticket #1319 pour me remettre dans le bain et pour faire une petit pause dans le développement de so.cial.me.
Donc pour faire court, j'ai externalisé le plugin importExport livré avec Dotclear pour en faire une extension indépendante. J'ai ajouté l'import/export de fichier Zip (uniquement de DC2 vers DC2), j'ai modifié quelques broutilles pour respecter un peu plus la structure de Dotclear et mis les traductions Fr correspondantes dedans. Donc pour ceux qui veulent tester, vous trouverez une version d'essai du plugin en pièce jointe de ce billet.
PS: Normalement pas besoin de désinstaller la version d'origine.
J'attends vos retours.
Update du 09/07/2012 J'ai mis le remplaçant potentiel en pièce jointe de ce billet.
Extension importExport2
samedi 7 juillet 2012. Lien permanent Dotclear
Suite à quelques discussions sur une mailing-liste de Dotclear, je me suis penché sur un ticket presque au hasard et voila un premier résultat.
Fil des commentaires de ce billet
Ajouter un rétrolien
URL de rétrolien : http://jcd.lv/trackback/146

29 réactions
1 De mirovinben - 07/07/2012, 11:21
Je vais regarder ça ce week-end et te tiendrai au courant...
2 De JcDenis - 07/07/2012, 13:02
PS: J'ai fait une petite update pour corriger un nom de classe.
3 De mirovinben - 07/07/2012, 13:02
Premier retour après install 3.0-RC1 et relance admin DC2
Un blog en flat :
Fatal error: Class 'ie2DbExport' not found in M:\www\dc2plugins\importExport2\inc\class.ie2.export.flat.php on line 33
Tout en flat :
Fatal error: Class 'ie2DbExport' not found in M:\www\dc2plugins\importExport2\inc\class.ie2.export.flat.php on line 101
Un blog en zip :
Fatal error: Class 'ie2DbExport' not found in M:\www\dc2plugins\importExport2\inc\class.ie2.export.flat.php on line 33
Tout en zip :
Fatal error: Class 'ie2DbExport' not found in M:\www\dc2plugins\importExport2\inc\class.ie2.export.zip.php on line 101
4 De mirovinben - 07/07/2012, 13:08
Ok, j'y retourne...
5 De mirovinben - 07/07/2012, 13:39
Ça fonctionne nettement mieux...
J'ai procédé aux 4 types d'export (un/tout, flat/zip) et au 4 types d'import associés.
Les résultats semblent corrects : je n'ai pu comparer les différents fichiers d'export obtenus avec le plugin fourni avec DC2 et ceux obtenus avec le tien : les chemins sont différents dans le tien et tiennent compte de l'environnement du multi-blog d'import contrairement au plugin "officiel" qui ne touche pas aux différents chemins. Je ne sais si c'est voulu ou si c'est parce que la table des setting n'a pas été écrasée.
Je fait encore un test dans ce sens.
6 De mirovinben - 07/07/2012, 13:50
Test concluant, la table des settings est bien mise à jour avec les chemins qui correspondent à l'environnement de l'import (export en ligne, import en local) : URL du domaine, chemin absolu (utilisé notamment par le plugin related), public_path et themes_path.
C'est génial. Avant je devais passer par une moulinette perso.
Par contre ça couine (message d'erreur PHP) si je tente l'import zip d'un export flat (et réciproquement). Le couinement est normal mais que ce soit via un message d'erreur PHP n'est pas très sympa.
7 De mirovinben - 07/07/2012, 13:59
Dernier commentaire (?)
Rectificatif :
-1- si je tente l'import en mode flat d'un export en mode zip j'ai le message classique de DC2 (Le fichier n'est pas une sauvegarde DotClear.) Normal.
-2- Par contre si je tente un import en mode zip d'un export en mode flat j'ai ce genre de message :
Fatal error: Call to undefined method ie2ImportZip::close() in M:\www\dc2plugins\importExport2\inc\class.ie2.import.zip.php on line 167
A vous les studios...
8 De JcDenis - 07/07/2012, 16:01
Réponse première partie:
a) Je n'ai rien touché concernant les chemins de settings et autres,
b) Je suis déçu je croyais avoir levé toutes les erreurs dans dcError,
c) Je regarde et reviens...
9 De mirovinben - 07/07/2012, 16:27
Oups... concernant les setting, j'ai fait une erreur de manipulation dans mes tests en confondant différents fichiers d'export...
Je regarde et je reviens ©
10 De JcDenis - 07/07/2012, 16:37
Hop on upgrade le bouzin. J'ai encore corrigé une petite bourde et ajouté un message d'erreur.
11 De JcDenis - 07/07/2012, 16:43
Concernant les settings, ta requête va être difficilement acceptable, l'import ne regarde pas le contenu.
Ou alors faudrait y réfléchir un moment et ajouter un grosse couche de traitement...
12 De mirovinben - 07/07/2012, 16:45
Là j'ai refait tout bien posément en installant aussi ton plugin sur mon multiblog en ligne. J'obtiens bien un fichier dézippé (soit obtenu directement, soit en exportant un zip) identique à ce que renvoie le module fourni avec DC2. Donc je confirme que les setting ne sont pas modifiés et que ma moulinette doit être utilisée. Ce qui est normal, tout bien réfléchi.
Désolé pour l'erreur.
Côté ergonomie du truc :
-1- Pour l'export : je verrais mieux un bouton supplémentaire "exporter en mode compressé" à côté du bouton classique "Exporter" plutôt qu'un autre type d'export dans le panneau principal.
-2- pour l'import : une détection automatique en fonction de l'extension du fichier à importer (txt ou zip) serait plus agréable et sympa qu'un autre type d'import dans le panneau principal.
13 De JcDenis - 07/07/2012, 16:53
J'y ai pensé pour l'ergo, mais j'hésite...
Dit je peux voir ta moulinette ou c'est vraiment spécifique à ton environnement, parce que si on peut l’intégrer au plugin ça serait top.
14 De mirovinben - 07/07/2012, 16:55
Test de la 3.0-RC3 avec une tentative d'import d'un *.txt en mode "zip" : message d'erreur (normal) à la mode DC2. "Le Fichier est vide ou n'est pas un fichier compressé." Super !
Dans mes tests avec mon multiblog en ligne je constate un temps nettement plus court avant affichage de la fenêtre demandant où télécharger en mode zip qu'en mode flat.
15 De mirovinben - 07/07/2012, 17:00
Concernant ma moulinette, c'est vraiment spécifique (multi-blog avec un domaine principal et un domaine en alias), codé sûrement avec les pieds mais efficace. Je peux te l'envoyer par mail.
16 De JcDenis - 07/07/2012, 17:06
- Pour le temps d'attente, ça ne vient pas du plugin car c'est exactement les mêmes codes,
- Ok pour le mail, je vais voir si je peux en tirer un truc plus standard ou si ça me donne des idées.
17 De mirovinben - 07/07/2012, 17:19
- pour le temps d'attente, ça doit dépendre de mon hébergeur car j'avais adapté un script pour obtenir un export total zippé et le temps avant dowload s'était notablement amélioré, sans parler du temps de transfert bien sûr.
- le mail est parti.
18 De JcDenis - 07/07/2012, 17:53
Question concernant ta moulinette:
Si tu ne la passes pas après un import, est-ce que la partie admin (et plus particulièrement le plugin import/export) reste accessible ?
Si oui, je pense ajouter un formulaire en bas de page du plugin import/export qui propose de corriger les settings tels que tu le fais bien qu'à mon avis il suffit d'aller dans about:config et de modifier les valeurs :)
PS: Et ajouter une étape par exemple dans la partie "Importer un fichier" => "Multiples blogs" qui lit les settings trouvés et demande les corrections qu'on veut y apporter, me parait difficilement faisable.
19 De mirovinben - 08/07/2012, 07:00
-1- l'accès à l'admin (et au module d'import/export) fonctionne avant passage de la moulinette. Seule la partie publique est impactée (les chemins continuent à pointer vers le web et les chemins absolus ne fonctionnent pas.
-2- au début (2 blogs) je corrigeais les settings à la main. Comme, dans le pire des cas il y en a 4 par blog, devine ce que ça fait quand j'en suis à 5 blogs... D'où la création d'abord d'une requête dans phpmyadmin puis de cette moulinette. Je fais souvent des exports/imports pour synchroniser mon multiblog local avec le multiblog en ligne. D'où l'intérêt de tout ça.
Je pense, tout bien réfléchi, que la correction des settings n'est pas à ajouter dans ton plugin. Trop particulier, trop lourd. Je préfère une simplification de l'interface avec le truc des 2 boutons zip/flat en export et détection automatique zip/txt en import.
20 De JcDenis - 09/07/2012, 02:01
Hop une mise à jour pour simplifier l'interface d'administration, maintenant l'import de texte ou de zip se fait au même endroit de même que pour l'export.
21 De mirovinben - 09/07/2012, 06:17
J'ai testé tous les cas de figure tant en export qu'en import et je trouve ça parfait. Peut remplacer le module fourni avec DC2. Merci d'avoir pris en compte mon souhait.
22 De JcDenis - 09/07/2012, 14:55
J'ai mise en fichier attaché de ce billet la version final qui devrait remplacer importExport. Et qui donc n'est plus un clone renommé de ce dernier mais bien le remplaçant.
23 De mirovinben - 10/07/2012, 08:23
Je viens de le tester. S'il est destiné à remplacer le plugin fourni avec Dotclear, il y a deux "régressions" (?) au niveau de l'import d'un fichier de sauvegarde complet au format texte :
-1- la possibilité de choisir un fichier local dans le répertoire public a disparu. Perso ça ne me dérange pas car je ne m'en sers jamais.
-2- le message d'avertissement "Attention : Ceci va remettre à zéro tout le contenu, sauf les utilisateurs." a disparu...
24 De JcDenis - 10/07/2012, 09:02
Rien à disparu, la présentation a juste changé:
- Le message n'est plus en rouge mais est en présentation de sa partie (je trouvais l'ergo du plugin super moche, avec toutes les formes et couleurs imaginables pour une si petite page... illisible)
- La liste déroulante de choix de fichier dans le répertoire publique est toujours présente, elle ne s'affiche que si des fichiers susceptibles d'être des backups existent (au lieu d'afficher une liste vide en disable...)
Désolé si je casse l'ergo mais on en recausera quand cette partie avancera ;-)
25 De mirovinben - 10/07/2012, 09:40
Oups pour le message, l'est bien plus discret en effet, je ne l'avais point vu. Cohérent avec les autres infos.
Pour la liste déroulante, c'est une excellente idée.
Bravo !
26 De JcDenis - 10/07/2012, 09:49
Merci,
Pour une fois ou je ne fais pas trop de bêtises :p
27 De Tomek - 29/09/2012, 11:10
question subsidiaire : inclus-t'il les données de plugins style (au hasard) EventHandler ? Je me suis aperçu après avoir récupéré un fichier d'export total que je n'avais aucun événement d'importé... je travaille sur une nouvelle version en local d'un site déjà en ligne pour le rebalancer modifié en ligne + tard.
L'autre question étant : si j'envoie l'export complet sur le blog en ligne, ça ne devrait pas écraser le contenu de EventHandler ?
Désolé pour le glissement de la question... et ma non réaction ici, j'avais pas vu que tu avais bossé là-dessus. ;-)
28 De JcDenis - 30/09/2012, 17:20
@Tomek C'est aux plugins de venir se greffer sur imporExport. Je ne sais plus si EventHandler à l'importExport, à en croire tes dire, il ne l'a pas :( Ma faute. Je ne sais pas si je vais le faire un jour, j'ai lâché un peu le PC ces temps...
29 De Tomek - 03/10/2012, 00:39
Yo, vu ton post sur ton blog. Pas de souci :-)
Du coup je suis passé par la BDD, c'est passé nickel.
merci d'avoir répondu ;-)