Tutorial Punbb

Changer les titres, balise title

Tuto: changer la gestion des titres des topics de punbb:


titre forum punbbSi vous avez un forum punbb, vous avez pu remarquer que le titre de toutes les pages commence par "nom_de_votre_board" suivi soit du nom du topic soit de celui de la catégorie. Or on sait que les premiers mots de la balise title comptent le plus et qu'ils sont pondérés en fonction de leurs nombre, plus il y en a moin ils ont d'importance aux yeux des moteurs de recherche et les premiers comptent plus que les derniers. Or par defaut les titres sont longuets et ne favorisent donc pas le réferencement.
On va donc voir comment modifier simplement le code php de certaines pages afin d'obtenir des titres plus attractifs et plus rentables en terme de visibilité et de pertinence.

Tout le Wifi chez Wifi-Highpower: cartes, antennes, routeurs, Alfa Network, Awus036H...

1:// $page_title:

Le titre de chaque pages de punbb est généré différemment selon que l'on est en presence d'un topic, d'un forum, d'un profil ... Mais dans tous les cas il est placé dans une variable $page_title qui est récuperée dans le fichier header.php (car présent sur toutes le pages ;) ) sous cette forme.

<title><?php echo $page_title ?></title>

 

2:// Changer le titre des sujets punbb:


Pour changer le titre des sujets par exemple, nous allons modifier le fichier viewtopic.php.
On recherche donc la variable $page_title pour pouvoir la modifier.
Par défaut elle se trouve ligne 163 mais un ctrl+f serait pas superflu ;)

Par défaut le code est:

$page_title = pun_htmlspecialchars($pun_config['o_board_title'].' / '.$cur_topic['subject']);

$pun_config['o_board_title'] correspond donc au nom du forum et
$cur_topic['subject'] correspond au titre du sujet

Donc si par exemple on souhaite que les titres de pages soient simplement composés du titre du sujet (ceci a un bon impact pour le référencement car c'est lui qui contient les mots clefs et non pas le titre du forum) il suffit donc de modifier le code par exemple cette manière:

$page_title = pun_htmlspecialchars($cur_topic['subject']);

On peut aussi varier et faire à sa guise avec d'autres types de titres en utilisant d'autres variables et en introduisant une expession

$page_title = pun_htmlspecialchars(.$cur_topic['forum_name'].' / '.$cur_topic['subject'].' repondez');

Ce qui donnera quelquechose comme "nomduforum / titredusujet repondez"
Biensur, les possibilitées sont multiples et à vous et votre imagination de les explorer. Par exemple on peu faire quelque chose du type Voici le sujet $cur_topic['subject'] du forum $cur_topic['forum_name'] ....

Mais le mieux reste un titre court et allant à l'essentiel donc en principe le titre du topic reste l'idéal.

3:// Viewforum, userlist, profil ...:

Pour toutes ces pages, la technique est la même mais méfiez vous. Par exemple la variable apparait 12 fois dans profil.php :s.
Elle apparait en fait pour chaques conditions ( si vous êtes admin, si vous essayer de magouiller ... selon l'onglet ou vous vous trouvez ...).
Deux solutions donc, soit on décide de les changer une par une en tenant compte du cas ou non soit on sort la variable de la condition et on lui affecte une valeure qui sera donc toujours vrai.
Rien n'empeche bien entendu à cette valeure de titre d'être dynamique.

- Exemple de profil.php avec recuperation de données sql

Le titre de la page de profil d'un utilisateur est à la base "nom_de_la_board / Profil"
Donc si vous avez 300 membres vous avez donc trois cent pages qui portent le même nom ... Pas tip top on va dire.
On va donc voir un exemple pour modifier ce titre et le remplacer par "Profil de username_du_profile"
Première chose on va donc supprimmer les 12 occurences de $page title pour les remplacer par une seule que l'on va placer aux alentour de la ligne 43 (vous pouvez aussi toutes les modifier come vu précedement).
On rajoute donc

$page_title = $lang_common['Profile'];

avant:

if ($action == 'change_pass')
{
    if (isset($_GET['key']))

Il peut être interressant que la balise title de la page du profil d'un utilisateur punbb contienne le nom de celui-ci.
On va donc aller le récuperer directement dans la base de données en utilisant simplement la synthaxe punbb:

$result = $db->query('SELECT username FROM '.$db->prefix.'users WHERE id='.$id) or error('Unable to fetch user info', __FILE__, __LINE__, $db->error());
$username = $db->result($result);

Et on le place juste au dessus de la modification précédente.
Il suffit juste donc ensuite de bidouiller à sa guise la variable page_title pour y inclure le nom d'utilisateur.
Par exemple:

$page_title = pun_htmlspecialchars('Profil de '.$username);

Libre à vous ensuite par exemple d'afficher dans le titre le groupe auquel appartient l'utilisateur.
De même la requète suivante nous permet de le récuperer:

$result = $db->query('SELECT group_id FROM '.$db->prefix.'users WHERE id='.$id) or error('Unable to fetch user info', __FILE__, __LINE__, $db->error());
$group_id = $db->result($result)

Il suffit donc juste de la placer elle aussi au dessus de la variable page_title et de modifier cette derniere comme ceci par exemple:

$page_title = pun_htmlspecialchars('Profil de '.$username.' membre du groupe '.$group_id );

Vous pouvez donc utiliser ces techniques dans tous les fichiers pour enjoliver vos titres à la sauce maison.
Les principaux fichiers à modifier:
viewtopic.php dont depend l'affichage des sujets (topics)
viewforum.php pour les catégories
index.php pour la page principale
profil.php pour la description des utilisateurs
userlist.php pour la liste complète des utilisateurs
register.php pour les enregistrement
....

J'ai personnelement experimenter cette methode, elle a l'avantage de vous offrir une bien meilleure visibilitée sur les moteurs de recherche.
J'ai notamment augmenter considerablement mon nombre de pages indexés peu de temps après la mise en place de ceci.

Pour de meilleurs résultats encor: veillez à ce que le titres de vos sujets soit pertinents et non pas Help et compagnie ;)


© Copyright 2005-2006 Tuto-fr.com par Billyboylindien
Déclaré à la cnil: Dossier nÝ 1142196
Rc v2.0