PhpBB et pagination

Forum consacré à phpBB2. Comment tirer le meilleur de ce puissant forum.

Modérateur: Modérateurs

PhpBB et pagination

Messagede gowap » Sam Sep 30, 2006 4:13 pm

Les liens naturels de phpBB pour un sujet avec plusieurs pages sont du style :
viewtopic.php?t=xxx&start=yy
avec xxx le numero du topic et yy un multiple du nombre de messages par page.
Par defaut phpBB est configuré sur 20 messages par page.
Pour la premiere page d'un sujet paginé, il n'y a pas d'argument &start=
2eme page : &start=20
3eme page : &start=40

Jusque la...

Je viens de découvrir avec effroi que si on change la valeur de start= et qu'on met un nombre qui n'est pas un multiple du nombre de messages par page, par exemple &start=25 (quand le defaut est 20), phpBB va alors générer une page ou le premier message affiché sera celui donné en paramètre+1, soit le 26eme message du topic.

Je suis surpris, parce que je pensais intuitivement (naivement ?) qu'au lieu de faire cette gymnastique, avec start=25 phpBB allait m'afficher la page du multiple naturel (en l'occurence start=20) et se positionner eventuellement sur le topic précis. Comme ca se passe quand on fait un viewtopic.php?p=zzzz.

Je n'imaginais pas qu'il allait générer une page distincte de celles qu'on obtient si on suit les liens qui sont construits par le forum.
A ce compte la, si on transpose cette logique pour viewtopic.php?p=zzzz, au lieu de procéder comme il le fait, il devrait générer une page où le numero de post donné en paramètre serait le premier post de la page.

Pour en revenir a la pagination, quelqu'un peut donc artificiellement créer quantité de "doublons" tout simplement en incrémentant l'argument &start= :roll:
Gravure-News : la communauté francophone de la gravure de CD/DVD et son forum d'entraide.
Avatar de l’utilisateur
gowap
phpBB SEO Team
phpBB SEO Team
 
Messages: 1509
Inscription: Dim Mai 07, 2006 10:56 pm

Publicité

Messagede dcz » Lun Oct 02, 2006 10:09 am

En fait, phpBB calcul la page exacte ou se trouve un post quand on lui demande une URL de message, ce qui nous vaut une requête un bon poil plus lourde dans viewtopic.php.

Tout se passe après ce commentaire dans viewtopic.php :

Code: Tout sélectionner
// This rather complex gaggle of code handles querying for topics but
// also allows for direct linking to a post (and the calculation of which
// page the post is on and the correct display of viewtopic)


Ce calcul n'est pas effectué sur des URL de sujets, paginées ou non, dans ce cas la variable start est bêtement envoyée dans la requête :

Code: Tout sélectionner
   LIMIT $start, ".$board_config['posts_per_page'];


du coup tu te retrouve effectivement avec une pagination bizarre, et oui cela peut entraîner des duplicates.

Je regarderais ce point pour le Zéro duplicate final, il doit bien y avoir moyen de n'accepter que des multiples de $board_config['posts_per_page'] ce qui réglerait le problème.

++
Useful links :
SEO Forum || SEO Directory || SEO phpBB || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Recherche
dcz
Admin
Admin
 
Messages: 21238
Inscription: Ven Avr 28, 2006 9:03 pm


Retourner vers Le Forum phpBB2

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 32 invités