Intégration complète de PHPBB3
PHPBB3 est l’un des forums les plus connus et utilisé sur le net malgrès les critiques auquelles il fait face. Pour un projet personnel je me suis retrouvé
à devoir intégrer ce forum à un site et me servir de ses routines, les documentations à ce sujet sont assez dispersées, pas toujours complètes et pas
toutes dans la même langue (une partie est en anglais). J’ai donc décidé de faire une série de tutoriaux autour de ce thème afin d’essayer de réunir toutes ces informations et de les mettre à disposition des personnes qui seraient intéréssées et de n’avoir moi même qu’un seul endroit ou trouver tout ce dont j’ai besoin.
1. Première étape.
Avant d’ attaquer la première chose à avoir est un forum phpbb3 d’ installé sur un serveur, pour ma part je réalise ce tutoriel sur Mamp (Lamp pour linux, wamp pour windows). Une fois l’installation terminée, le dossier install supprimé et le forum en fonctionnement nous allons pouvoir passer à l’étape suivante qui consiste à créer notre première page du site.
2. Deuxième étape, index.php.
Ayant installé mon forum dans le dossier /forums, de mon site web tous les exemples seront basés sur cette hiérarchie.
Je créé donc un fichier index.php à la racine de mon site dans lequel je vais commencer par importer tous les fichiers nécessaire au fonctionnement des sessions phpBB.
<?php
//Importe les fichiers nécessaires le fichier "common.php"
define('IN_PHPBB', true); //Necessaire pour inclure common.php
$phpbb_root_path = './forums/'; //Défini le chemin d'accès
$phpEx = substr(strrchr(__FILE__, '.'), 1); //Récupère l'extension du fichier.
include($phpbb_root_path . 'common.' . $phpEx); //Inclus le fichier.
?>
Maintenant que nous avons à notre disposition les sessions de phpbb, nous allons les démarrer en ajoutant le code suivant :
//Démarrage des sessions, ceci doit être fait avant tout affichage
$user->session_begin();
//Vérifie les permissions (sera certainement utile lors de la suite)
$auth->acl($user->data);
//Charge divers informations sur le forum
$user->setup();
3.Utilisation des sessions phpbb
Si nous récapitulons, nous avons inclus le fichier common.php, démarré la session de notre forum et allons donc pouvoir commencer à travailler avec, en effet maintenant à travers la variable $user, nous avons accès à une grande quantité d’informations sur l’utilisateur devant la page.
Par exemple si nous souhaitons connaitre l’identifiant de notre utilisateur il suffit d’utiliser :
echo $user->data['user_id'];
Ou si nous souhaitons afficher un message de bienvenue cela peu se faire simplement par :
echo "Bienvenue ".$user->data['username'];
La liste des informations accéssibles est plutot longue, en effet elle reprend toute la table user de phpbb je ne vais donc pas vous faire un exemple pour chacun d’eux mais voici tout de même la liste :
user_id – Identifiant de l’utilisateur.
user_type
group_id
user_permissions
user_perm_from
user_ip
user_regdate – Date d’enregistrement de l’utilisateur
username – Pseudo de l’utilisateur
username_clean – Version propre du pseudo de l’utilisateur
user_password – Mot de passe de l’utilisateur au format md5
user_passchg
user_pass_convert
user_email – Adresse mail de l’utilisateur
user_email_hash
user_birthday – Anniversaire de l’utilisateur
user_lastvisit
user_lastmark
user_lastpost_time
user_lastpage
user_last_confirm_key -
user_last_search – Timestamp de la dernière recherche effectuée par
l’utilisateur
user_warnings – Nombre d’avertissements
user_last_warning – Timestamp du dernier utilisateur
user_login_attempts – nombre de tentatives de login sur la session
user_inactive_reason
user_inactive_time
user_posts – Nombre de posts de l’utilisateur
user_lang – langue de l’utilisateur
user_timezone
user_dst
user_dateformat – d M Y H:i
user_style
user_rank
user_colour
user_new_privmsg
user_unread_privmsg
user_last_privmsg
user_message_rules
user_full_folder
user_emailtime
user_topic_show_days
user_topic_sortby_type
user_topic_sortby_dir
user_post_show_days
user_post_sortby_type
user_post_sortby_dir
user_notify
user_notify_pm
user_notify_type
user_allow_pm
user_allow_viewonline
user_allow_viewemail
user_allow_massemail
user_options
user_avatar
user_avatar_type
user_avatar_width
user_avatar_height
user_sig – Signature de l’utilisateur
user_sig_bbcode_uid
user_sig_bbcode_bitfield
user_from – Lieu de l’utilisateur
user_icq – Adresse ICQ de l’utilisateur
user_aim – Adresse AIM de l’utilisateur
user_yim – Yahoo messenger de l’utilisateur
user_msnm – MSN de l’utilisateur
user_jabber – Jabber de l’utilisateur
user_website – Site internet de l’utilisateur
user_occ – Occupation de l’utilisateur
user_interests
user_actkey
user_newpasswd
session_id – Identifiant de session
session_user_id
session_last_visit – Timestamp de la dernière connection
session_start – Timestamp du dernier demarrage de session de l’utilisateur
session_time – Timestamp du dernier click
session_ip – Adresse ip courante de l’utilisateur
session_browser – Navigateur de l’utilisateur (actuel)
session_forwarded_for
session_page
session_viewonline
session_autologin
session_admin
is_registered – état de connection
is_bot
Celles-ci sont toutes accessibles par $user->data['xxx'].
4.Et maintenant?
Maintenant que nous savons récupérer les informations utilisateur nous avons tout le nécessaire pour faire un petit espace membre personalisé avec un formulaire de connection (j’aborderai cette partie dans un second article).
2 Commentaires

Génial ! Voilà longtemps que je cherchais la marche à suivre pour une telle intégration.
Merci infiniment pour cet article, il me sera très utile !
Excellent,
Très bon début pour ce que je cherche à faire.
Merci à toi.