Intégrer FluxBB dans le code de votre site web est facile si vous connaissez un petit peu PHP. En incluant le script common.php de FluxBB, vous accédez à toutes les variables globales de FluxBB comme $db et $pun_user. Cependant, afin d'inclure ce fichier, vous devez définir une constante appelée PUN_ROOT. Cette constante devra fixer le chemin relatif vers votre répertoire de forums FluxBB. Par exemple, si votre page d'accueil de votre site est localisée dans /home/user/public_html/ et vos forum sont dans /home/user/public_html/forums/, votre PUN_ROOT devrait alors être ./forums/
Le code PHP pour accomplir ceci pourrait ressembler à quelque chose comme ça :
define('PUN_ROOT', './forums/'); require PUN_ROOT.'include/common.php';
Une fois que vous avez inclus common.php, vous pouvez accéder et utiliser toutes les variables globales et fonctions de FluxBB. Typiquement, vous serez le plus intéressé par le tableau $pun_user. Ce tableau contient des informations sur l'utilisateur courant. Une autre variable intéressante est l'objet de base de données $db. Comment employer ces variables dans vos propres scripts est hors du propos de ce document, mais voici un petit exemple vous montrant comment afficher un message simple saluant l'utilisateur courant sur votre page d'accueil :
Bonjour <?php echo pun_htmlspecialchars($pun_user['username']); ?> !
En plus de définir PUN_ROOT, vous pouvez définir un certain nombre d'autres constantes pour changer le comportement de FluxBB en incluant common.php. Les deux plus intéressantes de ces constantes sont PUN_TURN_OFF_MAINT et PUN_QUIET_VISIT.
PUN_TURN_OFF_MAINT est défini en incluant common.php, si les forums sont en mode maintenance, FluxBB ne bloquera pas pour afficher le message de maintenance. Vous ne voulez généralement pas que ce message s'affiche sur votre page d'accueil, pour cela définir cette constante est une bonne idée.PUN_QUIET_VISIT, empêche FluxBB de mettre à jour les données de dernière visite de l'utilisateur courant dans la base de données de sorte qu'une visite à la page d'accueil ne compte pas comme visite dans les forums. C'est également un comportement souhaitable dans la plupart des cas.Exemple:
define('PUN_TURN_OFF_MAINT', 1); define('PUN_QUIET_VISIT', 1);
Veuillez noter que ces constantes doivent être définies avant que common.php soit inclus.
Après avoir inclus le fichier common.php sur vos pages comme indiqué ci-dessus, vous pouvez mettre en place des zones qui s'affichent en fonction du groupe des utilisateurs.
FluxBB comporte 4 groupes d'utilisateurs pré-définis : Administrateurs, Modérateurs, Invités et Membres. À chacun de ces groupe correspond un identifiant numérique :
Ces identifiants sont stockés dans la base de données mais “une copie” est placée dans des constantes afin d'accéder facilement à ces identifiants partout dans le script. Ces constantes sont définies dans le fichier common.php
<?php define('PUN_ADMIN', 1); define('PUN_MOD', 2); define('PUN_GUEST', 3); define('PUN_MEMBER', 4); ?>
Donc la constante PUN_ADMIN est égale à l'identifiant du groupe administrateur, PUN_MOD est égale à l'identifiant du groupe modérateur par défaut, etc.
Ainsi, avec une petite comparaison vous pouvez facilement créer des pages (ou des morceaux de code) accessibles seulement aux administrateur ou seulement au membres etc. Ci-dessous quelques exemples.
Afficher des données différentes si l'utilisateur est un administrateur :
<?php if ($pun_user['g_id'] == PUN_ADMIN) echo 'Vous êtes administrateur.'; else echo 'Vous n'êtes pas administrateur.'; ?>
Avec l'ajout de la possibilité de créer plusieurs groupes de modérateurs, il n'est plus possible d'utiliser une condition simple sur l'identifiant du groupe. Il existe cependant une nouvelle valeur en provenance de la table groups qui nous permet de distinguer facilement les groupes modérateurs des autres groupes : g_moderator
<?php if ($pun_user['g_moderator']) echo 'Vous êtes modérateur'; else echo 'Vous n'êtes pas modérateur.'; ?>
Si vous souhaitez créer une partie accessibles uniquement aux administrateurs et aux modérateurs, il existe une valeur vous permettant de le détecter à l'aide d'une seule condition : is_admmod :
<?php if($pun_user['is_admmod']) echo 'Vous êtes modérateur ou administrateur.'; else echo 'Vous n'êtes ni modérateur, ni administrateur.'; ?>
Il peut arriver que l'on veuille empêcher les invités (visiteurs non connectés au forum) d'accéder à certaines portions de notre site. Le tableau de données utilisateur contient là aussi une valeur pour le détecter : is_guest.
On peut ainsi afficher par exemple des données uniquement pour les invités :
<?php if ($pun_user['is_guest']) echo 'Vous n'êtes pas identifié'; else echo 'Vous êtes identifié en tant que '.pun_htmlspecialchars($pun_user['username']); ?>
Vous trouverez ci-dessous une liste des valeurs disponibles dans la variable $pun_user. Elles proviennent presque intégralement des tables users et groups. Tous les champs que vous rajouterez dans l'une de ces deux tables seront automatiquement accessibles dans cette variable.
Rapportez-vous aux sections appropriées de cette documentation pour les informations spécifiques.
| Index | Valeurs | Description |
|---|---|---|
| id | Numérique | Identifiant numérique unique de l'utilisateur, clé primaire de la table users |
| group_id | Numérique | Identifiant du groupe de l'utilisateur, clé primaire de la table groups |
| username | Alphanumérique | Pseudonyme de l'utilisateur |
| password | Alphanumérique | Mot de passe de l'utilisateur (crypté comme dans la base de données) |
| Alphanumérique | Adresse email de l'utilisateur | |
| title | Alphanumérique | Rang de l'utilisateur |
| realname | Alphanumérique | Nom de l'utilisateur si précisé dans son profil |
| url | Alphanumérique | Site web de l'utilisateur si précisé dans son profil |
| jabber | ||
| icq | ||
| msn | ||
| aim | ||
| yahoo | ||
| location | ||
| signature | ||
| disp_topics | ||
| disp_posts | ||
| email_setting | ||
| notify_with_post | ||
| auto_notify | ||
| show_smilies | Booléen | Afficher / masquer les émoticones dans les messages |
| show_img | Booléen | Afficher / masquer les images dans les messages |
| show_img_sig | Booléen | Afficher / masquer les images dans les signatures |
| show_avatars | Booléen | Afficher / masquer les avatars |
| show_sig | Booléen | Afficher /masquer les signatures |
| timezone | Numérique | |
| dst | ||
| time_format | ||
| date_format | ||
| language | Alphanumérique | Langue choisie pour le forum |
| style | Alphanumérique | Nom du style utilisé sur le forum |
| num_posts | Numérique | Nombre de messages postés sur le forum |
| last_post | Numérique | Timestamp du dernier message posté |
| last_search | Numérique | Timestamp de la dernière recherche effectuée |
| last_email_sent | Numérique | Timestamp du dernier email envoyé |
| registered | Numérique | Timestamp de l'inscription de l'utilisateur |
| registration_ip | Alphanumérique | Adresse IP de l'utilisateur au moment de son inscription |
| last_visit | Numérique | Timestamp de la dernière visite (déconnexion) de l'utilisateur |
| admin_note | Alphanumérique | Note de l'administrateur |
| activate_string | Alphanumérique | |
| activate_key | ||
| g_id | Numérique | Identifiant du groupe de l'utilisateur, clé primaire de la table groups |
| g_title | Alphanumérique | Nom du groupe de l'utilisateur |
| g_user_title | Alphanumérique | Titre du groupe de l'utilisateur |
| g_moderator | Booléen | |
| g_mod_edit_users | Booléen | |
| g_mod_rename_users | Booléen | |
| g_mod_change_passwords | Booléen | |
| g_mod_ban_users | Booléen | |
| g_read_board | Booléen | |
| g_view_users | Booléen | |
| g_post_replies | Booléen | Autorisé ou pas à poster des messages |
| g_post_topics | Booléen | Autorisé ou pas à créer des discussions |
| g_edit_posts | Booléen | Autorisé ou pas à modifier ses propres messages |
| g_delete_posts | Booléen | Autorisé ou pas à supprimer ses propres messages |
| g_delete_topics | Booléen | Autorisé ou pas à supprimer ses propres discussions |
| g_set_title | Booléen | Autorisé ou pas à modifier son titre utilisateur |
| g_search | Booléen | Autorisé ou pas à utiliser la recherche |
| g_search_users | Booléen | Autorisé ou pas à recherche des utilisateurs |
| g_send_email | Booléen` | Autorisé ou pas à envoyé des email aux autres utilisateurs |
| g_post_flood | Numérique | Intervalle de temps minimum entre deux messages |
| g_search_flood | Numérique | Intervalle de temps minimum entre deux recherches |
| g_email_flood | Numérique | Intervalle de temps minimum entre deux envois d'email |
| logged | Numérique | |
| is_guest | Booléen | Est visiteur/invité |
| is_admmod | Booléen | Est admin ou modérateur |