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. Ce n'est donc pas très optimisé niveau réferencement car on se retrouve avec des titres qui peuvent être tres longs. Or on sait que le titre d'une page oriente les moteur de recherche à environ 50% sur le contenu d'une page. C'est donc dans celui ci que doivent apparaitrent les mots clef.
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 ...).
On peut soit tous les modifier, soit tous les supprimmer et les remplacer par une seule occurence que l'on placera en dehors de la condition et 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']))

Disons donc que l'on souhaite que le titre de la page contienne le nom de l'utilisateur, il va falloir le récuperer dans la bdd.
Pour ceci, pourquoi faire compliquer on reprend le code de 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