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 :
vous devez d’abord choisir l’article où vous voulez prendre les documents et l’article où vous voulez les mettre.
Ensuite, vous choisissez les documents que vous souhaitez associer et validez.
Et VOILA.
ATTENTION
Il faut tout de même faire attention à deux choses :
- 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.
- 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.
Discussions par date d’activité
5 discussions
Premièrement bravo pour cette magnifique contribution !!!
Sur la 1.8.3 j’ai utilisé cette contrib en y apportant les modifs mentionnées ci-dessous par thierrybo en août 2005.
Par contre il me laisse une erreur concernant la variable texte_vignette_document à la ligne 104 du script. Ligne qui doit probablement afficher les vignettes des images.
Il faudrait donc mettre à jour le fichier avec les modifications ci-dessous et ajuster ce problème à la ligne 104. Penser également à la version 1.9 et le système de plugins car cette contribution est très utile pour les sites en plusieurs langues.
Moi j’ai simplement effacé cette ligne, cela ne m’a pas permis de voir les vignettes des images que je devais sélectionner mais pas grave il restait leur nom, et ca à marché !!! Merci
oui, la fonction d’affichage des vignettes à changer il y a qq temps.
ça fait longtemps que je n’ai pas utilisé/mis à jour cette contrib.
je regarderai à la passer en plugin comme certaines autres... j’attend un peu que la 1.9b se stabilise tout de même.
Bonjour,
je viens d’avoir à nouveau besoin de cette contribution, et pour que çà marche sur la 1.8.3 avec affichage de toutes les images en vignettes, faire cette modif :
Remplacer toutes les lignes de 90 (après le commentaire ’Récupérer le vignette’) à 119 (
echo "</div>";
) par cette ligne unique :echo integre_image($id_document, ’center’, ’IMG’) ;
Répondre à ce message
Je viens de le tester sur SPIP 1.8.2, et... çà marche !
Pourtant j’ai quand même cette erreur affichée une fois que je clique VALIDER :
Ce composant s’ajoute, mais ne remplace pas à mon avis le composant qui ajoute le bouton ’Galerie’ à la barre typographique qui lui insère la balise doc.
Juste une petite remarque, quand l’article source comporte des images en ’images’ jointes et d’autres en ’documents’ (portfolio), sur votre écran, la distinction n’est pas faite, on ne sait plus d’où elles viennent.
Je préfère quand même l’insertion d’une balise car tant que SPIP ne testera pas, lorsqu’on supprime un document, s’il est encore lié à d’autres (même par une balise ), votre méthode restera très risquée en environnement multi utilisateur (et même si on est seul à éditer les messages).
Non obstant ma remarque ci-dessus, çà serait parfait si cela était directement intégré à SPIP...
Merci pour toutes ces remarques tout à fait pertinantes.
Quand j’aurais un peu de temps, je ferais une vraie mise à jour de la contrib pour la dernière version de spip.
Ah, çà y est, j’ai travaillé dessus et maintenant çà marche avec SPIP 1.8.2. Voici les modifications à apporter :
Par exemple,
signifie remplacer l’ancienne ligne 152 (commençant par
) par la nouvelle (commençant pas
) à la ligne 152. Les anciennes lignes sont séparées des nouvelles par
.
Répondre à ce message
pas utilisable avec un prefixe de tables différents de spip contrairement à ce qui est dit (il reste des spip_types_documents dans le code par exemple) (le prefixe différent vient de l’installation de plusieurs spip sur la même base).
rebonjour, en fait avant de poster le message d’avant je voulais signaler que l’idée était bonne mais peu pratique à l’usage. Sur le site ou je voulais l’utiliser j’ai déjà 300 articles, ce qui ne me semble pas énorme, le choix dans le menu déroulant prend un temps fou.
J’ai aussi constaté que parfois j’avais l’aperçu des images et parfois non (va comprendre...) mais bon ça on peut s’en sortir. Je vais réfléchir à ces questions pour voir si j’arrive à faire quelque chose pour améliorer l’ergonomie, faut déjà que je lise (et comprenne) le code.
Répondre à ce message
Super...
mais pourquoi personne ne l’avais fait avant...
il ne manque plus que la gestions de points évoqués dans « Attention »... et intégrer ce type de gestionnaire en natif dans SPIP
Répondre à ce message
Merci beaucoup pour cette conrib, c’est exactement ce que je cherchais pour mon site world vtt et mobcustom.
En effet jusqu’à maintenant j’envoyais plusieurs fois des documents identiques.
ça serait bien d’intégrer un gestionnaire de document sur une prochaine version de spip. Un tel gestionnaire permettrait d’envoyer ses documents puis de les joindre ensuite aux articles concernés.
Qu’est ce que vous en pensez ?
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 :
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 : |