denisb | 19 Nov 17:09
Favicon
Gravatar

Re: [SPIP 2.0.9 -14394-] Image aléatoire.

Stephane a écrit :
> <BOUCLE_doc_image_principale(DOCUMENTS spip_documents_articles 
> spip_articles){id_rubrique IN 4,5,7}{par hasard} {extension==jpg}
> {mode=image} {doublons} {0,1}>
> #SET{current_id_art, #ID_ARTICLE}
> <a href="#URL_ARTICLE"><img src="IMG/[(#FICHIER)]" style="width:250px;" 
> /></a>
> </BOUCLE_doc_image_principale>

en 2.0.x
on devrait pouvoir faire, à condition de connaître
les id_rubrique à exclure :

<BOUCLE_d(DOCUMENTS_LIENS articles documents)
           {objet = article}
           {articles.id_rubrique !IN 3,5,16}
           {documents.extension = jpg}
           {documents.mode = image}
           {par hasard}
           {0, 1}>
   #SET{current_id_art, #ID_ARTICLE}
   <a href="#URL_ARTICLE">
   <img src="IMG/#FICHIER" style="width:250px;" />
   </a>
</BOUCLE_d>

requête sql générée :

     SELECT rand() AS alea,
            L1.id_article,
            L2.fichier
       FROM spip_documents_liens AS `documents_liens`
            INNER JOIN spip_documents AS L2
                    ON L2.id_document = documents_liens.id_document
            INNER JOIN spip_articles AS L1
                    ON L1.id_article = documents_liens.id_objet
                   AND documents_liens.objet='article'
      WHERE documents_liens.objet = 'article'
        AND L1.id_rubrique NOT IN (3,5,16)
        AND L2.extension = 'jpg'
        AND L2.mode = 'image'
   GROUP BY documents_liens.id_document,
            documents_liens.id_objet,
            documents_liens.objet
   ORDER BY alea
      LIMIT 0,1


Gmane