FluxBB.fr

Le site des utilisateurs francophones de FluxBB.

Recherche rapide

Utilisation de ''common.php''

Inclure le fichier

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.

  • Si 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.
  • L'autre constante, 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.

Créer des zones en fonction du groupe des utilisateurs

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 :

  • Administrateurs : 1
  • Modérateurs : 2
  • Invités : 3
  • Membres : 4

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.

Zone pour administrateur

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.';
?>

Zone pour modérateur

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.';
?>

Zone mixte administrateur / 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.';
?>

Invités

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']);
?>

Valeurs disponibles

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)
email 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
 
fluxbb_1_4/integration_site/common.txt · Dernière modification: 2011/12/28 11:02 par adaur