Import/export avec Snippets

Fournit une API d’import/export xml de contenu

Avertissement : Ce plugin est au stade « proof of concept », il mérite d’être complété. Mais il est déjà assez fonctionnel.

Auteur

Cédric Morin

Snippets

Le plugin Snippets a été développe initialement pour Forms & Tables, mais il est aussi utilisable de manière autonome.

Installation

Le zip de Snippets est disponible sur l’espace de téléchargement de la Zone en 2 versions :

L’installation est à faire comme tous les autres plugins, cf. http://www.spip.net/fr_article3396.html

Présentation

Reprise du post « article comme modèle » du 1er juin 2007 sur la liste spip-dev

le plugin snippets fournit une API d’import/export xml de contenu

J’y ai écris l’import export d’article. Dans F&T, je l’utilise pour l’import/export des formulaires. On peut l’utiliser pareil pour les brèves, mots cles, rubriques, etc ... Le principe est que ca permet d’exporter en xml l’objet. Pour l’import on a le choix entre donner un xml que l’on a, ou choisir un déjà présent sur le serveur

Il y a 2 modes d’import : la création et l’ajout, par ex :

-  depuis une page rubrique, importer un article en crée un nouveau
-  depuis une page article, importer un article ajoute le contenu de l’import champ a champ a l’article existant.

Cédric

Exemple d’utilisation : transférer un article d’un spip à un autre

-  1) installer le plugin snippets sur chacun des spip
-  2) cliquer sur exporter dans la page d’administration d’un article du spip source et enregistrez le fichier. Vous pouvez le placer dans le répertoire /articles du spip source si vous souhaitez l’utiliser régulièrement. Il sera alors proposé systématiquement dans le spip cible.
-  3) cliquer sur importer dans l’espace d’administration de la rubrique du spip cible pour créer un article ou bien cliquez sur importer dans l’espace d’administration d’un article pour le mettre à jour
-  4) sélectionner alors le fichier précédemment enregistré pour en importer le contenu. Pour cela, utiliser le formulaire de sélection d’un fichier local, ou bien cliquer un article proposé dans la listes des articles du répertoire /articles.

Note : les auteurs sont géré depuis le commit de BoOz, mais les mots clés et les documents ne sont pas (encore) gérés.

Exemple d’utilisation : transférer les articles d’une rubrique d’un spip à un autre

-  copier le squelette articles/exporter.html pour l’adapter a vos besoins et l’enregistrer sous un nouveau nom dans le rep du plugin : exporter_rubrique.html par exemple.
-  Modifier le squelette pour prendre tous les articles de la rubrique

<BOUCLE_article(ARTICLES){id_rubrique}{tout}>

-  exécuter ce fichier spip.php?page=exporter_rubrique&id_rubrique=12 et enregistrer le résultat.

-  Importer ce fichier depuis l’interface de gestion d’une rubrique du spip cible.

Quelques définitions


-  « Que sont les snippets ? Des petits morceaux de code bien astucieux qu’on utilise souvent dans nos programmes. » dixit http://www.developpez.net/forums/sh...
-  selon wikipédia : http://fr.wikipedia.org/wiki/Snippet

Discussion

13 discussions

  • 1

    Bonjour,

    Je tente d’exporter des formulaires forms&tables sur un SPIP 2.0.10 mais lorsque je clique sur le bouton d’export j’obtiens cette erreur :
    Erreur : filtre « Array » non défini

    Suis-je la seule ?! Je ne trouve aucune info ni sur l’endroit où ce filtre est employé ni sur le plugin qui est sensé le gérer :/

    Merci

    • Bonjour

      J’ai également des difficultés pour importer des formulaires F&T. Je n’ai pas de messages d’erreur. J’ai rien.
      Je choisis le fichier xml, je clique sur télécharger, la page se rafraichit et... RIEN

    Répondre à ce message

  • 1

    est-ce qu’une mise à jour pour spip 3 est prévue ?

    le plugin odt2spip (en version SVN il est vrai) , une fois ajouté au répertoire plugin de spip 3 beta 2 est indiqué comme compatible (du moins, il n’est pas indiqué comme incompatible).

    mais quand on veux l’activer, spip affiche le message suivant « Le plugin odt2spip dépend de SNIPPETS [0.1 ;] »

    Or Snippets 0.2, même en version SVN est indiqué comme incompatible avec spip 3.

    merci d’avance.

    • Oui ce serait bien, le plugin odt2spip est vraiment utile ..

    Répondre à ce message

  • 2
    monsieurL

    Bonjour,

    Je cherche un plugin pour SPIP 1.9.2 qui me permettent d’importer/expoter des articles (d’un site à un autre, différents et dont l’un va disparaitre) comme ce plugin, mais avec les documents associés (j’en ai un avec près de 200 photos commentées).
    Aussi incroyable que cela puisse paraitre, je n’en trouve aucun !!!???
    Vais devoir transférer et commenter une à une les photos ???

    help....merci d’avance !
    Cordialement.

    • Hello,

      Tu peux regarder comment sont transférés les mots clés et t’en inspirer pour coder la même chose sur les documents (snippet ne le fait pas encore).

      Moi j’utilise une autre méthode. Je règle les snippets pour garder les mêmes id_articles dans les deux sites (on peut regler ca dans le code) et ensuite je recopie la table des documents tel que.

      Have fun ^^

    • Bonjour,

      J’ai installé snippets sur un spip ... Et je l’utilise pour la partie des articles.

      Mon pb est comment faire la même chose avec les mots-clés.

      Affichage du formulaire d’import ?

      Merci d’avance de votre aide

    Répondre à ce message

  • 1

    Bonjour,

    Jérome Escoffier est à bout touchant dans l’adaptation du plugin Forms&Tables à SPIP 2.

    Dans ce contexte nous essayons le plugin Snippets décrit ici :

    Il ajoute à la page /ecrire/ ?exec=forms_tous une colonne de boutons « exporter » qui permet d’exporter les formulaires au format xml.

    Par contre nous ne trouvons nul part un bouton pour les importer ?

    Quelqu’un a-t-il la réponse ?

    FDG

    • dans la page ?exec=forms_tous , cliquez sur formulaire dans la colonne de gauche, et magie une boite en dessous apparait avec la possibilité d’importer...

    Répondre à ce message

  • Bonjour,

    à vue de nez, cela pourrait fournir la base (et même un peu plus) d’un plugin d’import de fichier ical ?

    Bravo pour le travail
    R Burton

    Répondre à ce message

  • monsieurL

    Bonjour,

    Et merci..., j’ai finalement bidouillé avec les bases.. l’horreur avec les accents... C’est du bricolage, mais ça marche. Un plugin genre SIEPS pour spip 1.9.2 ne serait pas de trop !!!

    A+

    Répondre à ce message

  • Pierre Roger

    Bonjour,

    Pratique ce petit snippet...

    Mais lors de l’importation du Web vers localhost, malgré un message d’erreur(cf ci-dessous), j’obtiens finalement l’importation mais sans les mots-clés ni les documents associés. (peut-être normal ?)

    Objet non trouvé !

    L’URL requise n’a pu etre trouvée sur ce serveur. La référence sur la page citée semble être erronée ou perimée. Nous vous prions d’informer l’auteur de cette page de cette erreur.

    Si vous pensez qu’il s’agit d’une erreur du serveur, veuillez contacter le gestionnaire du site.
    Error 404
    localhost
    Tue Jun 30 18:19:45 2009
    Apache/2.2.11 (Unix) DAV/2 mod_ssl/2.2.11 OpenSSL/0.9.8k PHP/5.2.9 mod_apreq2-20051231/2.6.0 mod_perl/2.0.4 Perl/v5.10.0

    L’adresse indique 2 fois ecrire. Est-ce normal ?
    http://localhost/monsite{{/ecrire/ecrire/ ?exec=naviguer&id_rubrique=4

    De localhost vers le Web, j’obtiens l’erreur :

    Warning : preg_replace() [function.preg-replace] : Delimiter must not be alphanumeric or backslash in /homez.83/monsit/plugins/snippets/inc/snippets.php on line 158

    HTTP 302

    Si votre navigateur n’est pas redirigé, cliquez ici pour continuer.

    Puis

    Not Found

    The requested URL /ecrire/ecrire/ was not found on this server.

    L’article a néanmoins été importé.

    Avez-vous constaté quelque chose d’équivalent ?

    Sous SPIP 2.0.8 [13982]

    Répondre à ce message

  • ivandps

    bonjour
    est ce compatible avec spip 20 ?

    Répondre à ce message

  • Salut, merci pour ce plugin,

    Je suis en ce qui me concerne à la recherche d’un api pour créer des topic des catégories de topic et des réponse dans le forum par code

    Existe-il une telle api ?

    Répondre à ce message

  • 2

    Désolé, mais la routine actuelle ne retient que le premier article de la rubrique.
    Pouvez vous détailler les modalités plus clairement svp.

    Merci d’avance

    • Serait il possible d’avoir au minimum une réponse pour l’ensemble des questions posées ?
      Ou bien le développeur n’a t il pas de temps à consacrer à ce genre de « niaiseries » ?

    • ça marche ...
      Merci de la correction ;-))))

    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