Affichage d'article par listes de 30 ou 50 ?

Bonjour,

Je souhaite afficher les articles contenu dans mes rubriques par listes de
30 ou 50 (et non tous les articles d'une rubrique).
J'ai repéré le critère {debut_...,b} expliqué succintement dans le manuel de
référence :
http://www.uzine.net/article900.html
J'ai aussi trouvé un message sur la liste, expliquant à nouveau comment
afficher la liste (pour les signatures d'une pétition).
Mais je ne trouve pas comment proposer de passer d'une page à une autre. Par
exemple consulter les articles 50 à 100, comme cela est fait dans
l'administration (mais directement en PHP). Quel est le code de SPIP
correspondant ?
Merci de votre réponse.

Raphaël

Salut Raphaël,

Tu pourras voir un exemple de ce fonctionnement à la page:
http://www.uzine.net/forumrub-91.html
(cela découpe des forums par paquets de 10 threads).

Ca n’est pas du tout évident, car cela fait appel à un peu de PHP pour afficher les liens entre les pages.

(1) Tout d’abord, il y a la boucle d’affichage avec un début décalé (ça ne commence pas forcément à zéro):

<BOUCLE_Forums(FORUMS){id_rubrique}{debut_forums,10}{par date}{inverse}>

La boucle affiche donc les valeurs comprises entre « debut_forums » (une variable passée en URL) et les 10 suivantes. Tu peux choisir n’importe quelle variable pour tes propres boucles, du moment qu’elle commence par « debut… ».

(2) Ensuite la difficulté consiste à créer les liens entre ces différentes « parties » de la liste, donc un affichage du genre [0-10] [11-20]… Là il faut un peu de PHP:

<?
<BOUCLE_compt_signatures(FORUMS){id_rubrique}>
$numero=#COMPTEUR_BOUCLE-1;
$total=#TOTAL_BOUCLE;
if (floor($numero/10)==$numero/10 AND $total>10){
echo "[<A HREF='forum.php3?id_rubrique=#ID_RUBRIQUE&debut_forums=$numero'>".($numero+1)."</A>] ";
}
</BOUCLE_compt_signatures>
?>

#TOTAL_BOUCLE est le nombre total de résultats dans la boucle.
#COMTEUR_BOUCLE est le compteur de la boucle (de un à #TOTAL_BOUCLE).

La ligne if (floor($numero/10) == $numero/10 … permet simplement de savoir qu’on a un numéro de boucle multime de 10, donc de faire l’affichage d’un lien hypertexte vers la même page, avec un « debut_forum » décalé de 10 à chaque fois (et là je me rends compte que j’ai mis « forum.php3 », alors que c’est « forumrub.php3 »…)

ARNO*

At 19:57 +0200 23/10/01, Raphaël Meyssan wrote:

Bonjour,

Je souhaite afficher les articles contenu dans mes rubriques par listes de

30 ou 50 (et non tous les articles d’une rubrique).

J’ai repéré le critère {debut_…,b} expliqué succintement dans le manuel de

référence :

[uZine 3] Les critères communs à toutes les boucles

J’ai aussi trouvé un message sur la liste, expliquant à nouveau comment

afficher la liste (pour les signatures d’une pétition).
Mais je ne trouve pas comment proposer de passer d’une page à une autre. Par
exemple consulter les articles 50 à 100, comme cela est fait dans
l’administration (mais directement en PHP). Quel est le code de SPIP

correspondant ?

Merci de votre réponse.

Raphaël


spip mailing list

spip@rezo.net

http://listes.rezo.net/mailman/listinfo/spip

Le Scarabée : http://www.scarabee.com
uZine 2 : http://www.uzine.net

DH/DSS, 0x11930F0B, DEEB 602D B344 644B AF88 BF73 85F4 2297 1193 0F0B

Re: [Spip] Affichage d'article par listes de 30 ou 50 Hello !

Merci Arno* pour le code. Cela fonctionne presque correctement : cela
affiche les 50 premiers articles et la liste des pages suivantes (articles
51-100, 101-150...). Mais aux pages suivantes, cela affiche toujours les 50
premiers articles....
Voici le code que j'ai utilisé :

****************************************************************************
************

<BOUCLE_articles(ARTICLES){id_rubrique}{debut_articles,50}>

  <p><FONT FACE="arial,helvetica,sans-serif" SIZE=2>
  <IMG SRC="puce.gif"> <A HREF="#URL_ARTICLE">#TITRE</A>
  </FONT></p>

  </BOUCLE_articles>

  <?

  <BOUCLE_compt_articles(ARTICLES){id_rubrique}>
  $numero=#COMPTEUR_BOUCLE-1;
  $total=#TOTAL_BOUCLE;
  if (floor($numero/50)==$numero/50 AND $total>50){
  echo "[<A
HREF='rubrique#ID_RUBRIQUE.html&debut_articles=$numero'>".($numero+1)."</A>]
";
  }
  </BOUCLE_compt_articles>

  ?>

****************************************************************************
************

PS : Je n'arrive pas, aussi, à utiliser les URLs personnalisées. Mon fichier
.htaccess fonctionne correctement (j'ai vérifié en tappant directement, par
exemple, rubrique25.html. Mais SPIP n'utilise pas ces URLs. Le fichier
inc-urls.php3 précise pourtant d'appeler "html"...