Boucles documents pour lister les images d’un site SPIP 1.9

Boucles d’affichage des documents de l’ensemble du site, avec accès privé ou public

Cet article cherche à répondre à des demandes comme celle parue dans le forum de Boucles documents pour lister les images d’un site SPIP pour porter ce type de contribution sous SPIP 1.9.

Description des fonctionnalités

Cette contribution est une série de squelettes qui gèrent l’affichage de divers types de documents dans l’entièreté du site. Ils sont entièrement constitués de boucles et balises SPIP à l’exception d’un peu de PHP destiné à gérér l’accès public ou privé.

Elle comporte six squelettes, une feuille de style et un fichier de langue propres à ces squelettes. Un de ces squelettes est une liste de liens vers les quatre autres qui servent à afficher chacun divers types de documents, et qui peuvent fonctionner totalement indépendamment les uns des autres.

Pour chaque document listé dans ces squelettes, est repris :
-  La rubrique et (si c’est le cas) l’article auquel est joint le document
-  Une miniature (s’il s’agit d’une image)
-  Le titre, l’URL dans le site, le type et le poids du document
-  Trois raccourcis SPIP rapidement réutilisables, du type <docXX|left> - <docXX|center> - <docXX|right>

Enfin, chacun des squelettes inclut les inc-head, inc-entete et inc-pied de votre dossier squelette.

Accès privé ou public

Les squelettes sont chacun indépendamment les uns des autres à accès privé (administrateurs et rédacteurs, par défaut) ou à accès public. A votre charge d’être cohérent. Il est très simple de configurer cet accès, squelette par squelette, au tout début du fichier :

Accès privé (défaut) :

   $accespublic = false;
   // $accespublic = true;

Accès public :

   // $accespublic = false;
   $accespublic = true;

NB : Attention novices en php, soyez très rigoureux sur la syntaxe : en php, un « ; » (point-virgule) qui manque, et c’est la page blanche !

Internationalisation

Les textes du squelettes sont internationalisé. Vous trouverez dans le package, un fichier local_fr-docsite.php3 qui contient les traductions en français. Deux solutions :
-  Vous n’avez pas de fichier ecrire/lang/local_fr.php3 : Vous renommez le fichier local_fr-docsite.php3 vers local_fr.php3, et vous le copiez ou déplacez vers votre répertoire ecrire/lang
-  Vous utilisez déjà un fichier ecrire/lang/local_fr.php3 pour d’autres besoins : Vous ajoutez alors de manière correcte les items du tableau du fichier local_fr-docsite.php3 dans le tableau de votre fichier ecrire/lang/local_fr.php3 (rappel : novices en php, soyez rigoureux sur la syntaxe !).

Liste des fichiers


-  squelettes/docsite.html : il reprend seulement la liste des liens vers les quatres autres squelettes.
-  squelettes/docimages.html : il liste toutes les images du site (jpg, gif, png) jointes en tant que document à un article ou une rubrique, avec une miniature.
-  squelettes/docimg.html : il liste toutes les images du site (jpg, gif, png) jointes en tant qu’image à un article ou une rubrique, avec une miniature.
-  squelettes/docmp3.html : il liste uniquement les document mp3.
-  squelettes/docpdf.html : il liste uniquement les documents pdf.
-  squelettes/docautres.html : il liste tous les autres documents (qui ne sont pas des images, des mp3 ou des pdf).
-  squelettes/docstyle.css : la feuille de style propres aux squelettes.
-  squelettes/local_fr-docsite.php3 : le fichier de langue (français).

NB : Bien entendu, les bidouilleurs pourront adapter rapidement ces squelettes à leurs besoins, en jouant par exemple sur le paramètre {extension=yxz} dans les appels de boucles.

Demo

Je n’ai malheureusement pas de site SPIP 1.9 en ligne, et donc ne peut offrir de démo :-/. Les squelettes ont été développés et testés sur une version locale et fonctionnent sans problèmes ; N’utilisant que des boucles SPIP (et un peu de php très courant) il y a peu de chance pour qu’il y ait un problème qui surviendrait lors d’une mise en ligne.

Maintenant, si quelqu’un utilise ces squelettes en accès public sur son site, qu’il n’hésite pas à proposer une démo à partir des forums....

Le paquet

Discussion

4 discussions

  • Excellent, merci pour ces fichiers et vos conseils :-)

    Répondre à ce message

  • J’ajoute ce message parce que je me suis cassé la tête un bon moment pour récupérer l’URL de l’article auquel le doc avait été joint sur une page de ce type.

    Voici la solution :

    <BOUCLE_documents_portfolio(DOCUMENTS) {mode=document} {extension IN png,jpg,gif} {par date} {inverse} {doublons} {0,10}>
      <div class="photo_list">
        [<h3 class="titre_photo">(#TITRE)</h3>]
        [(#FICHIER|copie_locale|image_reduire{500,500}|inserer_attribut{alt,[(#TITRE|couper{80}|texte_backend)]})]<br />
        [<div class="#EDIT{descriptif} spip_doc_descriptif">(#DESCRIPTIF)</div>]
        <div><small>photo ajout&eacute;e le [(#DATE|nom_jour) ][(#DATE|affdate)] 
          [(#REM) Lien vers l'article d'origine ]
          <BOUCLE_titre_article(ARTICLES){id_document}>
          <br />Lire l'article "<a class="spip_out" href="#URL_ARTICLE">[(#TITRE)]</a>"
          </BOUCLE_titre_article>
        </small></div>
      </div>
    </BOUCLE_documents_portfolio>

    Il suffit donc d’insérer une boucle ARTICLES avec l’argument id_document au sein de la boucle DOCUMENTS :

    <BOUCLE_titre_article(ARTICLES){id_document}>
    <br />Lire l'article "<a class="spip_out" href="#URL_ARTICLE">[(#TITRE)]</a>"
    </BOUCLE_titre_article>

    Répondre à ce message

  • 1

    Probléme sur l’archive ? Je n’arrive pas à la décompresser :-(

    • Oui, effectivement ; en fait, il y a des problèmes, semble-t-il, à télécharger des .tar.gz (et les .tar deviennent des .tar.zip).
      Voilà donc l’archive au format .zip.

    Répondre à ce message

  • 1

    Bonjour,

    merci de cette contribe qui m’intéresse beaucoup ; est-il possible d’avoir un peu plus d’explication sur son utilisation : on dépose les fichiers dans le répertoire squelette... et on les appelle par l’URL :...

    • on dépose les fichiers dans le répertoire squelette

      oui.

      et on les appelle par l’URL

      http://tonsite/spip?page=docsite

      Robert

    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 :

  • 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