Une petite boucle utile qui permet de récupérer l’article contenant une image prise au hasard.
La boucle ici recherche dans la table de jointure entre les documents DOCUMENTS_LIENS et les différents objets de spip (article, rubrique, ...) susceptible de contenir un document.
Merci à la liste qui m’a permis de résoudre ce problème.



Vos commentaires
# Le 14 septembre 2011 à 18:36, par Pascale
En réponse à : Boucle pour récupérer l’article contenant un document
J’ai voulu adapter ce script pour lier un document donné à l’article (au moins un) auquel il est lié. Je n’arrive pas à faire apparaitre le titre de l’article, voici ce que j’ai tenté :
<BOUCLE_origine(documents_liens documents){objet = article}
{id_document}
{0, 1}>
[<a href="[(#URL_ARTICLE{#ID_OBJET})]">Lire l'article[ (#TITRE{#ID_OBJET})]</a>]
</BOUCLE_origine>
Manifestement
[ (#TITRE{#ID_OBJET})]ne convient pas…# Le 14 septembre 2011 à 18:49, par Pascale
En réponse à : Boucle pour récupérer l’article contenant un document
J’ai trouvé finalement, voici la boucle :
<BOUCLE_origine(documents_liens documents){objet = article}{id_document}{0, 1}><a href="[(#URL_ARTICLE{#ID_OBJET})]">Lire l'article<BOUCLE_queltitre(ARTICLES){id_article=#ID_OBJET}>[ : (#TITRE)]</BOUCLE_queltitre></a>
</BOUCLE_origine>
Si ça peut servir…
Répondre à ce message
# Le 22 janvier 2011 à 05:21, par robomatix
En réponse à : Boucle pour récupérer l’article contenant un document
Voici la boucle qui a finalement marché sous spip 2.1.5 :
<BOUCLE_images(documents_liens documents){objet = article}
{extension IN png,jpg,gif}
{0, 5}
{statut=publie}
>
<a href="[(#URL_ARTICLE{#ID_OBJET})]" [title="(#TITRE|attribut_html|couper{80})"] class="vignette_photos_menu"> [(#LOGO_DOCUMENT||image_reduire{0,104}|inserer_attribut{alt,[(#TITRE|attribut_html|couper{80})]})]
</a>
</BOUCLE_images>
# Le 22 janvier 2011 à 05:59, par robomatix
En réponse à : Boucle pour récupérer l’article contenant un document
Voici la boucle qui marche vraiment pour avoir un affichage aléatoire :
Répondre à ce message
# Le 7 juillet 2010 à 21:34, par Itinerrant
En réponse à : Boucle pour récupérer l’article contenant un document
Bonjour,
J’utilise en effet cette boucle qui fonctionne très bien pour afficher une image au hasard, avec un lien vers l’article qui la contient. En revanche, elle ne semble pas tenir compte du statut (publié, en cours de rédaction, etc.) de l’article en question, ce qui fait qu’on se retrouve parfois avec un lien vers un article non publié, et donc inopérant.
Quelqu’un aurait-il une idée pour circonvenir ce problème ?
Merci,
Itinerrant
# Le 7 juillet 2010 à 22:49, par Maïeul
En réponse à : Boucle pour récupérer l’article contenant un document
{objet = article}
{par hasard}{extension==jpg|png|gif}
{0, 1}{statut=publie}>
[<a href="#URL_ARTICLE{#ID_OBJET}">
(#LOGO_DOCUMENT|span>>inserer_attribut{alt, #TITRE}|inserer_attribut{class, right photo}) </a> ]
</BOUCLE_d>
pas sûr que ca marche en 2.0 mais ca marche en 2.1
si ca marche pas en 2.0, testez ceci :
{objet = article}
{par hasard}{extension==jpg|png|gif}
{0, 1}{articles.statut=publie}>
[<a href="#URL_ARTICLE{#ID_OBJET}">
(#LOGO_DOCUMENT|span>>inserer_attribut{alt, #TITRE}|inserer_attribut{class, right photo}) </a> ]
</BOUCLE_d>
# Le 8 juillet 2010 à 18:09, par Itinerrant
En réponse à : Boucle pour récupérer l’article contenant un document
Bonjour,
La seconde solution a l’air de fonctionner en 2.0, merci beaucoup !
Itinerrant
# Le 8 juillet 2010 à 21:07, par erational
En réponse à : Boucle pour récupérer l’article contenant un document
tu peux aussi regarder cette contribution
Afficher une planche contact des images du site
Répondre à ce message
# Le 1er juin 2010 à 07:54, par iredg
En réponse à : Boucle pour récupérer l’article contenant un document
Bonjour,
Cette boucle (très utile) ne fonctionne plus avec Spip 2.1.
Quelqu’un saurait il comment la rendre compatible ?
Merci :o)
# Le 7 juillet 2010 à 22:45, par Maïeul
En réponse à : Boucle pour récupérer l’article contenant un document
remplacez
DOCUMENTS_LIENSparspip_DOCUMENTS_LIENSou bien (l’un ou l’autre)
dans mes_options.php
$table_des_tables['documents_liens']='documents_liens';
Répondre à ce message
# Le 10 octobre 2009 à 08:00, par Manu
En réponse à : Boucle pour récupérer l’article contenant un document
Merci de ta réponse... claire mais qui ne m’éclaire pas tant que ça. J’avais bien compris la requète. C’est l’écriture
#URL_ARTICLE{#ID_OBJET}qui m’épatait !Je me demandais comment elle fonctionnait.
#URL_ARTICLEest une balise dynamique qui reconstitue d’une manière un peu magique à mes yeux l’url d’un article et on peut un peu s’attendre à une écriture du genre#URL_ARTICLE{#ID_ARTICLE}. Là, la présence de#ID_OBJETc’est un peu inattendu et je souhaitais savoir si c’était documenté quelque part... Peut-être faut-il tout simplement penser que#ID_OBJETest tout simplement un objet plus général englobant tous les objets (articles, rubriques, documents...) de SPIP ?# Le 10 octobre 2009 à 08:35, par denisb
En réponse à : Boucle pour récupérer l’article contenant un document
non non.
rien de magique ici.
dans la table de liaison spip_documents_liens, id_objet est l’id de l’objet (article, rubrique, mot, site...) pour lequel il existe un lien avec le document d’id id_document.
+-------------+----------+----------+-----+! id_document ! id_objet ! objet ! vu !
+-------------+----------+----------+-----+
! 14 ! 36 ! article ! oui !
! 363 ! 66 ! rubrique ! non !
! ... ! ... ! ... ! ... !
ici, le document d’id 14 est inclu (« vu = oui ») dans l’article (objet = article) dont l’url est
#URL_ARTICLE{36}(id_article étant construit à partir de « id_objet = 36 »)voir une explication peut-être plus complète dans ce thread de la liste spip.user http://thread.gmane.org/gmane.comp....
Répondre à ce message
# Le 9 octobre 2009 à 20:33, par rpapa
En réponse à : Boucle pour récupérer l’article contenant un document
La table
DOCUMENTS_LIENSa la structure suivanteDans la boucle, on cherche le document pris
{par hasard},à condition que ce soit une image{extension==jpg|png|gif}et que l’objet (c’est à dire ici le contenant de l’image) soit un article{objet = article}. La boucle retourne alors l’
id_objetde l’objet article.J’espère que c’est clair !!!_
SPIP reconstruit ensuite l’url à partir de la balise
#URL_ARTICLE.Répondre à ce message
# Le 9 octobre 2009 à 15:10, par Manu
En réponse à : Boucle pour récupérer l’article contenant un document
Une petite explication de texte pour l’écriture pour aider à comprendre comment « marche » cette écriture... ?
#URL_ARTICLE{#ID_OBJET}C’est documenté qqpart ?
Merci d’avance
Répondre à ce message