Les archives de FluxBB.fr
Vous n'êtes pas identifié(e).
Hello,
Bon voilà, je me rends compte que punbb crée par défaut des duplications de contenu et ça, google il aime pas du tout
.
Prenons un exemple concret sur ce forum :
http://www.punbb.fr/forums/viewtopic.ph … 937#p31937 mène exactement au même message que http://www.punbb.fr/forums/viewtopic.php?id=3999#p31937 bien que pid et id soient 2 variables différentes.
Le problème c'est que ces 2 url sont ainsi reconnues par google comme 2 pages distinctes par google... on est d'accord jusque là ? Ben voui, mais ça, c'est justement une duplication de contenu 
Mon envie : empêcher ceci 
Ma limite, je ne suis pas une vedette de MySQL ni de php.
Alors bon, j'ai réussi à faire le nécessaire sur viewforum.php en remplaçant (ligne 148) :
$last_post = '<a href="viewtopic.php?pid='.$cur_topic['last_post_id'].'#p'.$cur_topic['last_post_id'].'">'par
$last_post = '<a href="viewtopic.php?id='.$cur_topic['id'].'.html#p'.$cur_topic['last_post_id'].'">OK, ça, ça marche nickel. (vous pouvez tester ceci en cliquant sur le lien vers le dernier message ici)
Maintenant sur index.php c'est pas si simple... la ligne en cause est :
$last_post = '<a href="viewtopic.php?pid='.$cur_forum['last_post_id'].'#p'.$cur_forum['last_post_id'].'">et si je fais la même modif que là précédente, avec par exemple :
$last_post = '<a href="viewtopic.php?id='.$cur_topic['id'].'#p'.$cur_forum['last_post_id'].'">ou encore par
$last_post = '<a href="message-'.$cur_forum['id'].'.html#p'.$cur_forum['last_post_id'].'">Eh bien ça ne passe pas. je suppose que c'est normal et que c'est pas bien de remplacer un "cur_forum" par un "cur_topic" ou un id de forum par un id de topic...
Ma question donc : quelle est la modif' à réaliser pour que ça passe et qu'ainsi dans mon exemple http://www.punbb.fr/forums/viewtopic.ph … 937#p31937 se transforme en http://www.punbb.fr/forums/viewtopic.php?id=3999#p31937 ? [Ce qui permettra de faire disparaître tout risque de duplication de contenu]
Merci pour votre future aide.
Bertrand
J'ai édité : j'avais mal recopié mes modifs (vu que sur mon site j'ai rewrité le tout...)
Dernière modification par bertimus (29-12-2006 03:37:56)
Hors ligne
Salut,
Déjà pour bien démarrer, dans ce que tu as fait j'ai l'impression que tu mélange identifiant de topic et identifiant de post, évidément non ça ne s'intervertie pas comme ça
topic = tid = une discussion entière
post = pid = un message seulement
à mon avis pour éviter ce genre de chose c'est de squizer les pid et n'utiliser que les tid puisque c'est l'identifiant de la discussion qui est important et puis après pour faire le lien vers le message en particulier utiliser le #pid
Hors ligne
Hum écoute on est d'accord 
Non j'ai bien compris la différence entre tid et pid et effectivement je veux quelque chose de la forme ..tid.html#pid
Bon j'ai pas compris "squizer" par contre 
Bref, je veux bien modifier le bout de code suivant tiré de index.php :
...viewtopic.php?pid='.$cur_forum['last_post_id']...J'ai tenté
...viewtopic.php?id='.$cur_forum['tid']...ou encore
...viewtopic.php?id='.$cur_topic['tid']...mais ça ne passe pas, comment faire concrètement ?
Dernière modification par bertimus (29-12-2006 01:24:42)
Hors ligne
ok je vois, et bien en regardant rapidement comme ça y'a pas trop de solution car la requête utilise les colonnes last_* de la table forums et y'a pas le topic d'enregistrer
il faut donc modifier la requête je sais pas comment
mais si je comprend bien tu l'avais compris et on est pas plus avancés 
Hors ligne
en fait faudrait faire une autre requête pour récupérer l'id du topic en fonction de celui du post
un truc du genre :
$result = $db->query('SELECT topic_id FROM '.$db->prefix.'posts WHERE id='.$pid) or error('Impossible de retrouver les informations du message', __FILE__, __LINE__, $db->error());
if (!$db->num_rows($result))
message($lang_common['Bad request']);
$tid = $db->result($result);mais ça veut dire que tu va lancer une requête supplémentaire pour chaque forum sur ton index, si t'as 15 forums, 15 requête en sus
après y'a p'tete moyen de modifier la requête tout en haut mais ça dépasse mes compétence
Hors ligne
Ok c'est déjà très gentil de t'être penché sur mon cas... A 2 on progresse toujours mieux que tout seul 
Allez, quelqu'un de super calé aurait-il la gentillesse de me/nous donner le coup de pouce final afin de modifier la requête suivante et ainsi faire apparaître le N° de sujet ?
$result = $db->query('SELECT c.id AS cid, c.cat_name, f.id AS fid, f.forum_name, f.forum_desc, f.redirect_url, f.moderators, f.num_topics, f.num_posts, f.last_post, f.last_post_id, f.last_poster FROM '.$db->prefix.'categories AS c INNER JOIN '.$db->prefix.'forums AS f ON c.id=f.cat_id LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].') WHERE fp.read_forum IS NULL OR fp.read_forum=1 ORDER BY c.disp_position, c.id, f.disp_position', true) or error('Impossible de retrouver la liste des catégories et des forums', __FILE__, __LINE__, $db->error());
[C'est pour la bonne cause car ça fera du bien à tous les forums punbb de ne plus avoir de duplication de contenu
]
D'avance merci 
Bertrand
Dernière modification par bertimus (29-12-2006 03:39:30)
Hors ligne
En même temps, ça ne change pas grand chose... si tu vas par là,
http://www.punbb.fr/forums/viewtopic.php?pid=32182
http://www.punbb.fr/forums/viewtopic.php?pid=32190
http://www.punbb.fr/forums/viewtopic.php?pid=32192
http://www.punbb.fr/forums/viewtopic.php?pid=32194
etc. qui sont affiché comme dernier message de la discussion à chaque fois qu'un message est écrit vont vers la même page (avec un message de plus).
=> Plugins | Modifications | Liens utiles <=
.._ -Pandark- _..
Serial Dreamer
Hors ligne
Je suis d'avis de dire que dans ce genre de cas c'est à google de s'adapter mais ne le fait-il pas déjà ?
Il doit bien savoir reconnaître des modèles de forums ? Et indexer au minimum une fois la page c'est tout ce qu'on lui demande ?
:canon: Mangafan : Mettez un chat dans votre processeur ! 
Hors ligne
tu plaisante mangafan j'espère ?
Pandark, le but c'est justement de virer les adresses avec pid= pour n'avoir que des adresses avec tid= de façon à n'avoir qu'une seule adresse pour une même page et non pas autant d'adresses que de messages
Hors ligne
En même temps, ça ne change pas grand chose... si tu vas par là,
http://www.punbb.fr/forums/viewtopic.php?pid=32182
http://www.punbb.fr/forums/viewtopic.php?pid=32190
http://www.punbb.fr/forums/viewtopic.php?pid=32192
http://www.punbb.fr/forums/viewtopic.php?pid=32194
etc. qui sont affiché comme dernier message de la discussion à chaque fois qu'un message est écrit vont vers la même page (avec un message de plus).
Ben oui on est d'accord et c'est bien ça le problème : multiples liens qui mènent exactement au même sujet.
Résultat : non google ne s'adapte pas (hum c'est lui qui est en position de force hein
), il indexe toutes ces URL tout en les ignorant, c'est vraiment pas le pied puisqu'il considère ainsi que que nos forums ont beaucoup de pages mais que la majorité d'entre elles ne sont pas pertinentes donc sans intérêt...
Un modèle de "bonne méthode" c'est WebRankInfo, si on l'applique à punbb il faudrait que chaque dernier message posté mène non pas vers viewtopic.php?pid=32182#p32182 mais vers viewtopic.php?id=4046#p32182 et c'est bien ça que google nécessite pour que notre forum devienne son copain (seo friendly n'est-ce pas ?
)
Edit : Oops, presqu'au même moment Vin100 - Bon ben je vois que nos messages se rejoignent ce qui me rassure, je ne suis pas fou 
Dernière modification par bertimus (29-12-2006 19:09:16)
Hors ligne
tu plaisante mangafan j'espère ?
Pandark, le but c'est justement de virer les adresses avec pid= pour n'avoir que des adresses avec tid= de façon à n'avoir qu'une seule adresse pour une même page et non pas autant d'adresses que de messages
Dans ce cas là, il faudrait faire une division euclidienne et prendre ce nombre comme celui de la page (ce qui doit déjà être fait dans punBB pour les liens en haut et bas des discutions "pages: 1 2 ... 8 9")
=> Plugins | Modifications | Liens utiles <=
.._ -Pandark- _..
Serial Dreamer
Hors ligne
Un modèle de "bonne méthode" c'est WebRankInfo, si on l'applique à punbb il faudrait que chaque dernier message posté mène non pas vers viewtopic.php?pid=32182#p32182 mais vers viewtopic.php?id=4046#p32182 et c'est bien ça que google nécessite pour que notre forum devienne son copain (seo friendly n'est-ce pas ?
)
Ce n'est pas très logique de récupérer l'id d'un message dont on a rien à faire, autant récupérer celui de la discution + la partie entière de la division euclidienne du nombre de messages de la discussion par nombre de messages à afficher par page.
=> Plugins | Modifications | Liens utiles <=
.._ -Pandark- _..
Serial Dreamer
Hors ligne
Youpi je n'ai absolument rien compris
[Tu parles à un non programmeur]
Avec mes mots : ce qui n'est pas logique c'est d'avoir plusieurs adresses pour aller au même endroit... L'idée est d'avoir à chaque fois un seul chemin vers chacune des discussions, sujets et posts et je trouvais que l'ID du sujet était, à priori, l'élément le plus simple à mettre comme "clé" (vu qu'il y a bien le champ "topic_id" dans la table "posts")...
Mais bon, si tu as une autre solution je suis preneur... celle-ci est-elle simple à mettre en oeuvre ? Si oui, pourrais-tu nous communiquer les modifications à accomplir ?
Dernière modification par bertimus (29-12-2006 19:43:48)
Hors ligne
J'ai dit qu'il fallait récupérer l'id de la discussion (qui est dans la table post) et le numéro de la page (après, on garde l'id du message pour l'ancre -#[idmessage])
Ca donne viewtopic.php?id=4046&p=1#p32250
(Je ne suis pas plus programmeur
)
=> Plugins | Modifications | Liens utiles <=
.._ -Pandark- _..
Serial Dreamer
Hors ligne
Ben dans l'exemple que tu donnes, je ne vois pas l'intérêt : t'as déjà l'ID du sujet, je vois pas pourquoi s'embêter à lui ajouter l'id de la discussion... viewtopic.php?id=4046#p32250 me suffirait amplement 
La question de départ reste donc posée : comment récupérer l'ID du topic sur index.php ?
Dernière modification par bertimus (29-12-2006 20:20:00)
Hors ligne
Bah parce qu'on affiche jamais un message tout seul... l'id de la discussion est dans la table des messages dans la base de donnée... donc c'est plus simple.. en plus, on a besoin de l'id de la discution pour savoir quels messages afficher...
=> Plugins | Modifications | Liens utiles <=
.._ -Pandark- _..
Serial Dreamer
Hors ligne
Décidémment on a du mal à se comprendre
mais là ça vient de moi...
Bref, on est d'accord, je croyais que tu dissociais l'id de la discussion de ce que j'appelle l'id du sujet mais c'est exactement la même chose lol 
On en est par contre toujours au même point et le schimil, schimili, schimilibili, ick n'a toujours pas avancé 
Dernière modification par bertimus (29-12-2006 21:01:26)
Hors ligne
Bah sujet désigne uniquement l'intitulé d'une discussion dans punbb-fr 
=> Plugins | Modifications | Liens utiles <=
.._ -Pandark- _..
Serial Dreamer
Hors ligne
Ah voui mais je ne faisais pas référence au terme propre à punbb mais plus au terme général... rolala, bon c'est bon je sors 
Y'a-t-il un sauveur dans l'assemblée ?
Dernière modification par bertimus (29-12-2006 21:12:45)
Hors ligne
Pandark a raison il faut aussi prendre en compte le numéro de la page si la discussion s'étend sur plusieurs pages ; mais pour moi le schmilblick est le même : comment récupérer en une seul requête sur la page d'accueil les tid des derniers messages
en fait il faudrait modifier PunBB pour qu'il enregistre non pas seulement l'identifiant du dernier post mais aussi de sa discussion dans la table forums, ça serait bcp plus simple mais cela remet en cause le schéma de la base de données et quelques fonctions
Hors ligne
Ah voui, les choses se compliquent alors, hum d'accord, bien bien...
Hors ligne
Comme je l'ai dit, on récupère déjà le numéro des pages pour l'afficher et les liens avec id & p existent aussi 
=> Plugins | Modifications | Liens utiles <=
.._ -Pandark- _..
Serial Dreamer
Hors ligne
=> Plugins | Modifications | Liens utiles <=
.._ -Pandark- _..
Serial Dreamer
Hors ligne
oui mais pas sur l'index
Hors ligne
Bah oui, mais sur l'index, il utilise last_post_id du forum dans la BDD... (ce qui est un peu du bricollage). Donc on peut très bien faire pareil avec l'id de la discussion et de la page...
=> Plugins | Modifications | Liens utiles <=
.._ -Pandark- _..
Serial Dreamer
Hors ligne