SPIP - Contrib

[ar] [en] [es] [fr] [it]



Accueil du site > Rédaction > Documents pour rédaction > Importation massive de documents distants

Le plugin d’importation massive de documents distants.

vendredi 2 mars 2007, par BobCaTT, Maïeul. Dernier ajout mercredi 1er août 2007


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/art...
- 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/art...
- 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

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

[2] implacable de logique, non ?


Répondre à cet article



Suivre la vie du site RSS 2.0 | Plan du site | Espace privé | Charte et vie SPIP-Contrib | SPIP | L'autre.net