Créer une page “les auteurs”

Une boucle permettant de lister tous les auteurs présents sur votre site avec début de leur bio et nombre d’articles qu’ils ont écrit.

Type de boucle très utile pour des sites présentant des recueils de poèmes ou encore une mini bibliothèque, comme sur un de mes sites...

Pour faciliter l’accès aux textes par auteur, j’avais besoin d’une page regroupant tous les auteurs présents sur mon site, qui affiche le début de leur biographie ainsi que le nombre de textes écrit par chacun et proposé à la lecture, avec lien vers leur page “auteur” : bio complète et détail de leurs textes.

Voici la boucle utilisée pour cette page :

<BOUCLE_AUTEUR_GENERALE(AUTEURS){par nom}>
	[<a href="#URL_AUTEUR">(#LOGO_AUTEUR|right)</a>]
		[<h2 class="titre-texte"><a href="#URL_AUTEUR">(#NOM)</a></h2>]
			<BOUCLE_nb_articles(ARTICLES){id_auteur}{plat}></BOUCLE_nb_articles>
			<B>[(#TOTAL_BOUCLE) <:articles:>]</B>	
			<//B_nb_articles>
	[<div class="texte"><div class="extrait">(#BIO|couper{350})<br><br>]
	<B><a href="#URL_AUTEUR">[<:suite:> ...]</a></B></div><br>
	<br><br>
	</div>
</BOUCLE_AUTEUR_GENERALE>

updated on 25 June 2018

Discussion

2 discussions

  • 1

    Bonjour,

    Avec le changement concernant les couples de fichiers .html et .PHP3 de Spip 1.9.2B, il semblerait que ceci ne fonctionne plus.....

    Quelqu’un peut-il m’en dire plus avant que je ne me lance dans l’installation de la nouvelle version de Spip car j’ai de nombreux “couples” de fichiers ainsi (que j’intègre dans le plan en créant un article avec redirection) ?

    Grand merci par avance !

    Reply to this message

  • 14
    magali (retirer le AT pourle mail)

    Bonjour, si je comprends bien , il faut auparavant crer une rubrique “auteur”?

    merci pour cette boucle

    • non non, inclure cette boucle dans une page spéciale rubrique et créer une rubrique pour n’est pas une obligation.
      C’est ce que j’ai fait sur ce site pour que la page “les auteurs” apparaisse dans le plan automatique du site plan et dans le menu à gauche de toutes les pages menu, menu d’ailleurs directement pris dans cette contrib : Une arborescence dynamique et contextuelle
      Donc pour que ça se présente automatiquement dans le plan du site et dans le menu, j’ai en effet créé une rubrique n°38, et une page rubrique=38.html contenant la boucle en question, mais tu peux tout aussi bien mettre cette boucle dans une page que tu crées et que tu appelles “lesauteurs.html” en n’oubliant pas de créer aussi la page “lesauteurs.php3” qui aille avec et qui contienne :


      <?php
      $fond = "auteur";
      $delais = 24 * 3600;
      
      include ("inc-public.php3");
      
      ?>

      Tu suis ?

      J’ai moi aussi à mes débuts patouillé un peu en utilisant spip, donc si c’est ton cas et que tu as besoin de plus d’explications, n’hésites pas à le dire. Donne-moi l’adresse de ton site, et de ta page “article.html” par exemple, et je te poste ci-dessous une page “lesauteurs.html” avec ton design perso, que tu n’auras plus qu’à intégrer via ftp.

      Bien à toi

      Soÿ

    • magali (retirer le AT pourle mail)

      OK, je pense avoir compris et vais me mettre immédiatement au travail.. je risque de revenir ;-) parce que ton site, oui j’ai bien regardé mais j’en suis arrivée à poser ma question;

      Je devrais avoir honte de dire que j’utilise SPIP depuis un moment maintenant, mais je bute parce que les bases informatiques m’échappent. Je fais du copié collé pour les boucles, et c’est très frustrant, je préfèrerai comprendre!!

    • me revoilà: j’ai fait (en local), ce qui est dit + haut; la page s’affiche avec le code de la boucle mais pas le résultat qu’elle doit afficher: la liste des auteurs. Je me demande si le fait d’avoir déjà une boucle auteur sur les pages “brèves” n’enp^chent pas cet affichage, c’est possible? ou alors j’ai une erreur dans ma page. :-(
      à suivre...

    • Tu as créé une page “lesauteurs.html” sans oublier la page “lesauteurs.php3”?

      Je te propose sinon, vu que tu as aussi un menu automatique, de créer une rubrique, mettons que si c’est la 59, de créer un fichier rubrique=59.html à mettre avec tes autres .html, de créer un article dans cette rubrique pour activer ta rubrique, tu le rediriges vers http://www.allocarpentras.com/rubrique.php3?id_rubrique=59 (toujours dans le cas où ta nouvelle rubrique est bien la 59) et tu y colles ceci dedans :

      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
      <html lang="fr">
      
      <head>
      <!-- Insertion des meta pour le référencement via meta.html, à personnaliser -->
      <INCLURE(meta.php3)>
      
      <script language="JavaScript" type="text/JavaScript">
      <!--
      function MM_reloadPage(init) {  //reloads the window if Nav4 resized
        if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
          document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
        else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
      }
      MM_reloadPage(true);
      //-->
      </script>
      <link href="istorhabreiz.css" rel="stylesheet" type="text/css">
      <link href="habillage-plan-site.css" rel="stylesheet" type="text/css">
      </head>
      
      <body bgcolor="#FFFFFF" style="margin:0; border-width:15; border-top-color:black; border-right-color:#C0C0C0; 
      border-bottom-color:#C0C0C0; 
      
      border-left-color:black; border-style:solid;"><p align="center"><!-- Titre du site et lien vers l'accueil -->
      	 <INCLURE(header.php3)>&nbsp;</p><table border="0" cellpadding="4" cellspacing="0" width="98%" align="center">
                     
              <tr>
      
                              <td width="240" valign="top" bgcolor="#FFFFFF" style="border-right-width:3; border-right-color:teal; border-right-style:solid;">
      
                               
               
        <!--Menu de navigation -->
        <INCLURE(menu.php3)>
      <br>
                              </td>
                  <td width="73%" valign="top">
                  <table align="center" border="0" cellpadding="0" cellspacing="0" width="98%">
                      <tr>
                          <td width="70%">
      
                              <p>&nbsp;</p>
                          </td>
                          <td width="2%">
                              <p></p>
                          </td>
                          <td width="20%" rowspan="3">
                              <BOUCLE_rubrique_principal(RUBRIQUES) {id_rubrique}>
      <table align="center" border="0" cellpadding="0" cellspacing="0" width="70%">
                                  <tr>
      
                                      <td>
                                          <p><BOUCLE_documents_joints(DOCUMENTS) {id_rubrique} {mode=document} {doublons} {><br>"}>
      [(#LOGO_DOCUMENT|#URL_DOCUMENT)][<br>(#TITRE)][ - (#DESCRIPTIF)]
      </BOUCLE_documents_joints>
      <br>
      </p><B_breves>
        <div class="date">
          Brèves <br>
          <BOUCLE_breves(BREVES) {id_secteur} {par date} {inverse} {0,5}>
                                  <ul>
      
          <li class="grasbeige"> <i>[(#DATE|affdate)]</i>: <a href="#URL_BREVE">#TITRE</a> 
              </li>
                                  </ul>
              </BOUCLE_breves>
      	</div></B_breves>
      
                                      </td>
      
                                  </tr>
                              </table>
                              <p>&nbsp;</p>
                              <p>&nbsp;</p>
                              <p>&nbsp;</p>
                              <p>&nbsp;</p>
                              <p>&nbsp;</p>
                              <p>&nbsp;</p>
                              <p>&nbsp;</p>
      
                          </td>
                      </tr>
                      <tr>
                          <td>
                              
        <p>[(#LOGO_RUBRIQUE|left)] <span class="titre">[(#TITRE)]</span><BR>
         </p>  [<p > (#TEXTE|justifier) </p>]
      
        
        
        <p><span class="titre2">Les auteurs des articles de ce site : </span> </p>
      
      
      
      <BOUCLE_AUTEUR_GENERALE(AUTEURS){par nom}>
      	[<a href="#URL_AUTEUR">(#LOGO_AUTEUR|right)</a>]
      		[<h2 class="titrearticle"><a href="#URL_AUTEUR">(#NOM)</a></h2>]
      			<BOUCLE_nb_articles(ARTICLES){id_auteur}{plat}></BOUCLE_nb_articles>
      			<B>[(#TOTAL_BOUCLE) <:articles:>]</B>	
      			<//B_nb_articles>
      	[<p class="spip" align='justify'>(#BIO|couper{350})</p>]
      	<p><B><a href="#URL_AUTEUR">[<:suite:> ...]</a></B></p><br>
      	<br><br>
      </BOUCLE_AUTEUR_GENERALE>
      
       
      
      </BOUCLE_rubrique_principal></p>
                              <p>&nbsp;</p>
                              <p>&nbsp;</p>
      
                          </td>
                          <td>
                              <p>&nbsp;</p>
                          </td>
                      </tr>
                      <tr>
                          <td>
                              <p>&nbsp;</p>
                          </td>
      
                          <td>
                              <p>&nbsp;</p>
                          </td>
                      </tr>
                  </table>
      <p> <p align="right"><a href="http://www.xiti.com/xiti.asp?s=134407" title="Mesurez votre audience" target="_blank">
      <script type="text/javascript">
      <!--
      Xt_param = 's=134407&p=rubrique';
      Xt_r = document.referrer;
      Xt_h = new Date();
      Xt_i = '<img width="39" height="25" border="0" ';
      Xt_i += 'src="http://logv24.xiti.com/hit.xiti?'+Xt_param;
      Xt_i += '&hl='+Xt_h.getHours()+'x'+Xt_h.getMinutes()+'x'+Xt_h.getSeconds();
      if(parseFloat(navigator.appVersion)>=4)
      {Xt_s=screen;Xt_i+='&r='+Xt_s.width+'x'+Xt_s.height+'x'+Xt_s.pixelDepth+'x'+Xt_s.colorDepth;}
      document.write(Xt_i+'&ref='+Xt_r.replace(/[<>"]/g, '').replace(/&/g, '$')+'" title="Analyse d\'audience">');
      //-->
      </script>
      <noscript>
      audit et mesure d'audience visiteurs internet par <img width="39" height="25" src="http://logv24.xiti.com/hit.xiti?s=134407&amp;p=lesauteurs" alt="Analyse d'audience" />
      
      </noscript></a><!-- Formulaire administrateur -->
                  <p>[(#FORMULAIRE_ADMIN)]</td>
          </table>
          <div class="copyright">
        	 <INCLURE(footer.php3)>
                              </div>
      </body>
      
      </html>

      et ça devrait marcher.

    • oups
      si tu ne passes pas par la création d’une rubrique, mais par la création d’un nouveau couple .html/.php3, après avoir créé la page “lesauteurs.html” la page “lesauteurs.php3” doit contenir :


      <?php
      $fond = "lesauteurs";
      $delais = 24 * 3600;
      
      include ("inc-public.php3");
      
      ?>

      et pas
      "$fond = “auteur”;

      désolée ...
      ton problème d’affichage vient peut être de là ...
      tu me dis si ça marche ?

    • magali (retirer le AT pourle mail)

      en effet, ça m’avait alerté le fait d’avoir auteur" au lieu de “lesauteurs”; g corrigé mais toujours rien. Ce qui me fait dire que je fais une erreur est que même le bouton “actualiser la page” apparaît en code [(#FORMULAIRE_ADMIN)] et pas en fonction active. Le menu de gache non plus ne sort pas, donc, je dois vérifier ce qui cloche et oui, je te tiendrai au courant, merci.

    • dis-moi, c’est bien la page “lesauteurs.php3” que tu appelles dans la barre d’adresse de ton navigateur pour vérifier si ça marche, et pas la page “lesauteurs.html” ... ?

    • en local sur easyPHP, je navigue sur le site exactement comme si j’étais en ligne. Dans le menu de gacuhe j’ai ajouté le lien pour lesauteurs.html, et c là qu’apparaît la page avec le code, pas le résultat final.

    • il faut que ton lien pointe vers “lesauteurs.php3” et pas vers “lesauteurs.html” ...

      <a href="http://www.allocarpentras.lesauteurs.php3" title="Tous les auteurs du site">Les auteurs du site</a>

    • <a href="lesauteurs.php3" title="Tous les auteurs du site">Les auteurs du site</a>

      d’ailleurs comme ça ça marchera et en local et en ligne ...

    • c’était ça l’erreur, moi je dirigeais le lien vers .HTML!! évidemment, du coup toutfonctionne. Evidemment, tu risque de te demander pourquoi j’ai coupé ta boucle, mais chez moi, les auteurs ont des “bios” inexistantes, et les logos ont toutes les tailles, c affreux! donc, allégée..
      Merciiiiiiiiiiiiiiiiii de m’avoir suivie. j’ai encore appris un peu de SPIP

    • Evidemment, tu risque de te demander pourquoi j’ai coupé ta boucle

      non non, je ne me le demande pas : c’est bien que tu en fasses ce que tu veux.

      Je suis heureuse que tu t’en sois sortie et que tout marche comme tu le souhaites.

    • Bonjour,
      Merci pour le travail accompli sur cette boucle...
      Cependant j’ai un problème :
      En local, tout marche bien, sur le serveur, la mise en page se déglingue.
      J’ai laissé l’URL de la page.
      J’ai créé le couple html/php3.
      J’ai fait plusieurs tentatives de création de page la plus light possible et je retrouve toujours la même rupture de mise en page.
      A mon avis un problème de

      mal placé. Mais je ne vois pas où. Merci de ta réponse IBK
    • Problème de typo...

      le “mal placé” c’était la balise div
      quant à l’url la voici
      http://www.hommes-et-faits.com/Dial/lesauteurs.php3

    Reply to this message

Comment on this article

Who are you?
  • [Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom