Phpbb3 è senza dubbio il piu’ usato, sicuro, diffuso, potente e sicuro php forum script del momento ( In gergo: Bulletin Board ) .
Per piccoli sviluppatori e webmaster una bella cosa che si potrebbe fare e’ integrare il sistema permessi/account del phpbb3 con semplici pagine del propio sito.
In questo articolo vorrei spiegarvi, in modo semplice e basilare, come fare ciò.
Per prima cosa installate normalmente il phpbb3 in una sottocartella del vostro sito(Es. Forums)
Ora passiamo ai codici.
In teoria: dobbiamo includere il file common.php del phpbb3, dopodichè possiamo sfruttare le semplici ed intuitive classi user e auth.
Nella pratica:
Obbligatoriamente, dobbiamo inserire all’inizio di tutte le pagine in cui vogliamo sfruttare i sistemi di permessi/account e le classi del phpbb3 questo codice:
<?php
define(‘IN_PHPBB’, true);
$phpbb_root_path = ‘./forum/’;//Se la cartella relativa in cui risiede il phpbb3 è diversa da “forum”, modificate questa variabile
$phpEx = substr(strrchr(__FILE__, ‘.’), 1);
include($phpbb_root_path . ‘common.’ . $phpEx);
$user->session_begin();
$auth->acl($user->data);
$user->setup();?>
Bene,
ora possiamo sfruttare tutte le classi e il sistema di permessi!
Iniziamo parlando della classe user,
possiamo sapere se è un’utente è loggato in questo modo:
Controllare se un’utente è loggato e in caso contrario mostrare il login form.
<?php
if ($user->data[‘is_registered’]){
echo “Ciao, sei un’utente loggato nel forum phpbb3!”;
} else {
?>
<form method=”post” action=”forum/ucp.php?mode=login”>
<label for=”username”>Username: </label> <input type=”text” name=”username” id=”username” size=”40″ /><br /><br />
<label for=”password”>Password: </label><input type=”password” name=”password” id=”password” size=”40″ /><br /><br />
<label for=”autologin”>Remember Me?: </label><input type=”checkbox” name=”autologin” id=”autologin” /><br /><br />
<input type=”submit” value=”Log In” name=”login” />
<input type=”hidden” name=”redirect” value=”../index.php” />
</form><?php
} ?>
Controllare se l’utente è loggato e ricavare informazioni e dati profilo.
Saputo questo controllo basilare, dovete sapere che possiamo ricavare tutte le informazioni che vogliamo dall’utente:
Ad esempio:
if ($user->data[‘is_registered’]){ //Controlliamo se l’utente è registrato
$username=$user->data[‘username’];
echo “Ciao, “;
echo $username; //Mostra l’username
echo $user->data[‘user_posts’]; //Numero di posts nel forum
echo $user->data[‘user_lang’]; //Lingua utente
echo $user->data[‘user_email’]; //Email utente
echo $user->data[‘user_msnm’]; //Msn Messenger Utente
//e cosi’ via.
} else {
echo “NOn sei registrato, <a href=’forum/ucp.php?mode=register’>registrati</a>”;
}
Potete vedere la lista completa delle variabili utilizzabile per stampare relative informazioni dell’utente in questa pagina.
Controllare se un’utente e’ amministratore.
Si può fare in due modi:
Primo Modo:
<?php
if ($user->data[‘session_admin’]){
echo “Ciao,”;
echo $user->data[‘username’];
echo “Sei amministratore!”;
} else {
echo “Messaggio negativo!”;
}
?>
Secondo Modo(Credo piu’ sicuro)
<?php
if ($auth->acl_get(‘a_’)){
echo “Ciao,”;
echo $user->data[‘username’];
echo “Sei amministratore!”;
} else {
echo “Messaggio negativo!”;
}
?>
Controllare se un’utente e’ moderatore
Per controllare se un’utente è moderatore globale:
<?php
if ($auth->acl_get(‘m_’)){
echo “Ciao, sei moderatore globale!!!”;
}
?>
Per controllare se un’utente è moderatore di un determinato forum:
<?php
$forum_id = 1; //Inserire qui l’id del forum, ad esempio “1”
if ($auth->acl_get(‘m_’, $forum_id)){
echo “Ciao, sei moderatore del forum che ha l’id: $forum_id”;
}
?>
