Le plugin d’importation massive de documents distants.

Ceci est une archive périmée mais qui reste intéressante, parfois autant pour l’article que les commentaires associés.

Un plugin pour importer beaucoup de documents d’un coup

Il est possible sous SPIP d’importer des documents situés sur un serveur distant. Cependant, on ne peut le faire que document par document.

Un plugin peut résoudre ce problème.

Nom du plugin : Importation massive de documents distants
Version : 1.1
Licence : GPL
Version minima de SPIP : SPIP 1.9.2
Auteur : Maïeul Rouquette — BobCaTT

Fonctionnalité

Ce plugin permet d’importer « beaucoup » de documents distants d’un seul coup, en les affectant à un article (ou une rubrique, ou une brève). À condition d’avoir récupéré toutes les urls des documents à ajouter. Il ne permet pas, par exemple, de récupérer tous les documents situés dans un dossier sur le net.

Installation du plugin

Récupérez le plugin zippé ci-joint, puis suivez la procédure d’installation classique.

Utilisation

Dans le menu édition, choisissez l’onglet « Importer massivement des documents distants ».

Vous accédez à une page contenant un formulaire.

Dans le champ principal, tapez la liste des urls des documents que vous souhaitez importer, chaque url étant séparée de la suivante par un  ; (point-virgule). Vous avez le droit de mettre des espaces et des sauts de lignes pour plus de commodités.

Choisissez dans le menu déroulant le type d’objet auquel vous souhaitez associer ces documents : au choix article ou rubrique.

Dans le petit champ à côté, indiquez le numéro de l’objet (l’id).

Depuis la version 1.1, vous pouvez cocher la case « vignettes locales » pour effectuer une recherche locale des vignettes des documents distants. Le principe de fonctionnement est le suivant :

La vignette locale est cherchée dans tmp/upload. Le nom du fichier est le nom du document distant (sans l’extension), terminée par .jpg, .png ou .gif.

1er exemple, une image distante :
-  doc distant : http://media.menfin.net/bobcatt/article_61/article_61b.jpg
-  vignette locale :

  • tmp/upload/article_61b.jpg
  • tmp/upload/article_61b.png
  • tmp/upload/article_61b.gif

2ème exemple :
-  doc distant :http://media.menfin.net/bobcatt/article_21_a5oNKqpewe.mp3
-  vignette locale :

  • tmp/upload/article_21_a5oNKqpewe.jpg
  • tmp/upload/article_21_a5oNKqpewe.png
  • tmp/upload/article_21_a5oNKqpewe.gif

Si la vignette locale n’est pas présente sur votre serveur, le document distant est inséré, mais sans vignette. Et ainsi de suite pour les documents suivants.

Quand l’insertion massive de vos documents est terminée, vous pouvez effacer les vignettes de votre répertoire tmp/upload/ car celles-ci ont été copiées. Ne vous inquiétez pas non plus de la duplication des noms de vos vignettes avec le répertoire IMG, le plugin se chargera de leur donner un nom unique.

Vous pouvez cocher la case « y retourner » si vous le souhaitez. Auquel cas, lors de validation, vous serez renvoyé vers la page correspondante.

Validez. Vous pouvez constater avec joie que vos documents ont bien été ajoutés. Si par hasard certains documents n’ont pas été ajoutés, vérifiez l’adresse.

Les petits plus

Sur la page de visualisation des articles de l’espace privé, vous trouvez dans la colonne de gauche un lien pour aller directement au formulaire d’importation massive.

Sur la page d’édition des rubriques [1], vous avez l’équivalent pour les rubriques. Attention ! Il ne faut pas avoir fait de modifications du texte de la rubrique avant, car elles seraient perdues.

Évolution et mise à jour

Le plugin est développé sur la zone. Voici quelque idées d’évolutions possible :

  • choix des titres
  • sélection de certains types de documents seulement
  • lecture automatique d’un fichier index.html

Principe de fonctionnement du code

Voici, en quelques lignes, le principe de base du code de ce plugin.

Le fichier plugin.xml passe la fonction documents_distants_ajouter_boutons() dans le pipeline ajouter_boutons et la fonction documents_distants_affiche_gauche() dans le pipeline affiche_gauche [2].

Ces deux fonctions étant définies dans documents_distants_pipelines.php

La fonction ajouter_boutons() reçoit en entrée la liste des boutons, et la retourne en sortie, agrémentée d’un nouveau bouton.

La fonction affiche_gauche() reçoit en entrée le contenu de la colonne de gauche, et la renvoie en sortie, avec un petit élément en plus.

Le dossier exec contient un fichier documents_distants.php.

Celui-ci contient deux fonctions :

  • exec_documents_distants(), chargée de l’affichage du formulaire
  • importer_document(), chargé de l’importation massive des documents.

Pour faciliter l’écriture des pages de l’espace privé, je fais appel à la fonction recuperer_fond().

Celle-ci sert notamment à appeler le squelette documents_distants, qui contient le formulaire.

Notes

[1il n’y a pas à proprement parler de page de visualisation des rubriques

[2implacable de logique, non ?

Discussion

5 discussions

  • Olivier CARETTE

    Le bouton ne s’affiche pas et un texte d’array.. s’affiche en haut de la page de la section privé. Peut-être y a t il un problème avec d’autres plugin :

    -  Couteu suisse
    -  accès restreint
    -  agenda
    -  barre typo v2
    -  definitions de mots cles
    -  en travaux
    -  boites à outils pour articles
    -  spip listes et associés
    -  widget calendrier

    Répondre à ce message

  • Quelle est la différence avec l’import d’un fichier .zip ?

    Dans ce cas, Spip demande si on veux le décompressé et chaque élément qu’il contient est installé sur le site....

    Répondre à ce message

  • 2
    NothingHere

    Il est dommage que cet article ne fonctionne pas avec la version 1.9.2a.

    Chez moi, l’importation des pages par le formulaire n’exécute rien ...

    Voici plus d’informations : sur le formulaire d’import je me retrouve avec la colonne « Attribués à » et une sélection unique possible : article (pas de « rubrique »).
    Je ne coche pas la case « Y retourner » mais pourtant je me retrouve sur la même page après le rechargement (après avoir cliqué « enregistrer »).

    Dommage ...

    Quelqu’un a eu le même soucis ? ou peut m’aider ?

      • si vous n’avez pas l’option rubrique proposé, c’est que vous n’avez opas autorisé à joindre des documents aux rubriques (c’est dans la config de spip)
      • justement il faut cocher « y retourner » ... pour se retrouver à la page de modification de l’arrticle. En ne cochant pas y retourner, on se retrouve sur place

      peut-être un pb de formulation ... j’attends si vous avez des propositions alternatives :-)

    • NothingHere

      Ha effectivement, j’ai mal compris la formulation ! :)
      Peut être changer le texte de la case « Y retourner » par « Voir le résultat » ? Enfin c’est qu’une proposition :)

      D’autant plus que faut sélectionner l’ID d’un article EXISTANT, et c’est cela que j’avais mal compris ... :(
      Je pensais qu’il fallait lui donner une ID « libre » d’un article non existant.

      Enfin, ça « importe » le fichier .html dans l’article qui existe ... dommage, je pensais que ça injectais le code de l’url source en le transformant en un article SPIP ...

      Je me trompe encore ? j’ai rien compris ?

    Répondre à ce message

  • 1

    Quand j’essaie de lancer la fonction en cliquant sur le bouton « importer.. » j’obtiens ce message :

    Erreur... Fichier inc/commencer_page introuvable

    Ma version est SPIP 1.9.1

    que dois-je faire ?

    merci de ta réponse...

    Mikado

    Répondre à ce message

  • 2

    Quand j’essaie de lancer la fonction en cliquant sur le bouton « importer.. » j’obtiens ce message :

    Erreur...
    Fichier inc/commencer_page introuvable

    que dois-je faire ?

    merci

    jean

    • quel version de spip utiliser vous ? il faut au minimum 192.

    • Damned !
      je suis en 191 en production et en 192 en test !
      merci, avec mes excuses

      jean

    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