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 formulaireimporter_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.
Aucune discussion
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
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.
Suivre les commentaires : |