Recycler des documents

Ceci est une ARCHIVE, peut-être périmée. Vérifiez bien les compatibilités !

Une fois un document associé à un article, il est copié sur le site, mais on ne peut le réutiliser qu’a travers une balise <docXXX|...>. Voici un petit outil qui permet d’associer des documents déjà sur le site à d’autre article, sans les introduire dans le texte.

Motivations

Avec les versions actuelles de SPIP, il est possible d’afficher des documents avec les articles de deux façons :
-  en les attachant à l’article (les documents sont alors juste affiché en bas de l’article [1]),
-  en utilisant les balises <docXXX|...> pour insérer un document directement dans le texte.

Cette dernière méthode permet d’utiliser n’importe quel document, même si il n’est pas à l’origine attaché à l’article. Plusieurs contribs permettent déjà de parcourir tous les documents du site, pour trouver le bon ID.

Malheureusement, il y a des cas où l’on ne veut pas insérer le document dans le texte. Dans ce cas, il n’y a pour l’instant aucun moyen de réutiliser un document déjà sur le site. Il faut alors le re-télécharger et avoir un fichier en double sur le serveur. Si l’on fait cela avec beaucoup de documents, le quota du fournisseur va vite exploser.

Par exemple, sur mon site, je gère une galerie d’image avec le squelette qui suppose que les images à afficher soit associées à l’article, mais pas dans le texte — il n’y a pas de texte à une galerie. Si je veux donc avoir une image dans plusieurs galerie, je dois la télécharger plusieurs fois.

Un deuxième cas est la gestion des traductions. Quand on fait une traduction sur SPIP, on aimerait dans certain cas utiliser les mêmes documents dans chaque langue de l’article. Si ces documents n’ont pas pour but d’être insérés dans le texte, alors on est encore confronté au problème discuté ici.

Solutions

SPIP gère l’association des documents à un article à travers une table mysql très simple :

id_document id_article
234 1
235 1
345 2
... ...

On peut donc facilement associer des documents à des articles en ajoutant une nouvelle ligne :

INSERT INTO spip_documents_articles (id_document, id_article) VALUES ($id_document, $id_article)

Utilisation

Cette nouvelle page s’intègre à l’interface privée de SPIP, vous pouvez y accéder à partir de l’adresse :
votre_site.net/ecrire/associer_document.php
une fois le fichier installé.

L’association se passe en deux temps :

choix des articles

vous devez d’abord choisir l’article où vous voulez prendre les documents et l’article où vous voulez les mettre.

choix des documents

Ensuite, vous choisissez les documents que vous souhaitez associer et validez.

Et VOILA.

ATTENTION

Il faut tout de même faire attention à deux choses :

  1. Les documents sont associés à d’autres articles et peuvent donc être effacé par d’autres personnes. SPIP est fait de tel façon que si l’on efface un document dans un article, il sera effacé dans tous les articles.
  2. Ces autres articles peuvent être mis à la poubelle. Ils ne seront pas physiquement effacés et les documents qui y sont attachés ne seront pas touchés. Vous pouvez donc mettre un article à la poubelle sans que les documents qu’il partage soient enlevés des autres articles.

Notes

[1en fonction du squelette.

Les fichiers fournis en .php3 et .php marchent pour des versions antérieures à la 1.8. Ils ont été testés sur la 1.6, la 1.7 et la 1.7.2. Mais attention, pour ces versions, la contrib ne marche que si il n’y a pas de modification du prefix des tables spip.

La version 1.8 fournie permet d’utiliser la contrib même si on a un autre prefix de tables.

Discussion

Aucune discussion

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