SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

289 Plugins, 197 contribs sur SPIP-Zone, 77 visiteurs en ce moment

Accueil > Squelettes > Tutoriels pour squelettes > Boucle pour récupérer l’article contenant un document

Boucle pour récupérer l’article contenant un document

8 octobre 2009 – par rpapa – 15 commentaires

12 votes

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.

Dernière modification de cette page le 8 octobre 2009

Retour en haut de la page

Vos commentaires

  • Le 6 janvier 2015 à 01:11, par DD En réponse à : Boucle pour récupérer l’article contenant un document

    Bonsoir,
    Je viens de passer un site de SPIP 2 À 3 et la boucle suivante n’affiche plus rien :

    <BOUCLE_d(DOCUMENTS documents_liens articles types_documents)
            {objet = article}
            {id_rubrique=35}
            {0, 1}>
    [<a href="#URL_DOCUMENT">
    (#FICHIER
       |image_passe_partout{255,165}
       |image_recadre{255,165,center}
       |image_aplatir{jpg,ffffff}
       |inserer_attribut{class,spip_documents_center})</a>]
    </BOUCLE_d>

    J’ai essayé les différents exemples alternatifs sur cette page sans succès (je ne sais plus trop quelle est la dernière version du coup) mais il semblerait que le code initial ne soit pas valide pour SPIP3.

    Merci
    dd

    Répondre à ce message

  • 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 :

      1. <BOUCLE_images(documents_liens documents){extension IN png,jpg,gif}{par hasard}{0, 5}{statut=publie}>
      2.                                                 <a href="[(#URL_ARTICLE{#ID_OBJET})]" [title="(#TITRE|attribut_html|couper{80})"] class="vignette_photos_menu">
      3.                                                [(#LOGO_DOCUMENT||image_reduire{0,104}|image_recadre{158,104,'center','999999'}|inserer_attribut{alt,[(#TITRE|attribut_html|couper{80})]})]
      4.                                             </a>
      5.                                         </BOUCLE_images>

      Télécharger

    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

    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)

    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_ARTICLE est 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_OBJET est 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_LIENS a la structure suivante

    Field Type Null Key Default Extra
    id_document bigint(21) NO PRI 0
    id_objet bigint(21) NO PRI 0
    objet varchar(25) NO PRI NULL
    vu enum(’non’,’oui’) NO non

    Dans 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_objet de 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

Répondre à cet article

Qui êtes-vous ?

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 Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Visualiser un PDF dans un article

    13 juin – commentaires

    SoyezCréateurs utilise un modèle pour afficher un PDF dans le corps d’un article Un peu d’histoire Avant, les navigateurs n’incluaient pas de lecteur PDF nativement ce qui avait conduit à la création du plugin Lecteur pdf javascript pdf.js. Mais, (...)

  • ScolaSPIP 4

    19 janvier 2016 – 346 commentaires

    ScolaSPIP est plugin-squelette responsive personnalisable pour sites Web d’établissements scolaires basé sur SPIPr Présentation de ScolaSPIP Ce plugin pour SPIP 3 est développé par la Dane de l’académie de Versailles pour les webmestres de cette (...)

  • Spipagram : Importer des images Instagram dans SPIP

    29 février 2016 – 10 commentaires

    Ce plugin permet d’importer des images Instagram comme articles SPIP dans la rubrique de votre choix avec le hashtag de votre choix. Installation Si vous n’avez pas déjà le dépôt externals dans votre SPIP, ajoutez le dépôt (...)

  • Formidable, le générateur de formulaires

    23 janvier 2012 – 2446 commentaires

    Un générateur de formulaires facilement configurable pour les non-informaticiens et facilement extensible pour les développeurs. Introduction L’objectif était de créer un plugin permettant de générer des formulaires. Historiquement, 2 plugins (...)

  • ORR v2

    21 mai 2013 – 106 commentaires

    ORR, le plugin d’Organisation des Réservations et des Ressources passe en version 2, avec quelques nouveautés attendues. Je ne reprendrai pas les explications données dans la version 1. Les nouveautés : 1. Gestion des autorisations Le principe (...)