Tutoriel

Tutoriel – Un petit guide d'utilisation de Auth_PrefManager

Mettre en place la base de données

La première étape est de mettre en place la base de données qui va acceuillir les données. Pour ce tutorial, on considére que vous connaissez déjà les bases de l'utilisation de la classe PEAR DB.

Pour créer la table par défaut, exécutez la requète sql suivante :

SQL pour créer la table

CREATE TABLE `preferences` (
`user_id` varchar( 255 ) NOT NULL default '',
`pref_id` varchar( 32 ) NOT NULL default '',
`pref_value` longtext NOT NULL ,
PRIMARY KEY ( `user_id` , `pref_id` )
);

Mettre en place votre premier objet PrefManager

Pour utiliser Auth_PrefManager, nous devons d'abord créér une instance de l'objet de base, comme présenté ci-dessous.

Mettre en place l'objet

<?php
     
require_once('Auth/PrefManager.php');
     
$dsn 'mysql://utilisateur:motdepasse@localhost/database'// Changez le DSN selon votre SGBD.
     
$options = array('serialize' => true);                      // Activer la sérialisation des données sauvegardée, cela assure qu'elle seront retrouvée proprement.
$prefmanager = new Auth_PrefManager($dsn$options); // Création de l'objet.
?>

Fixer et mettre en place les preferences par défaut

Maintenant que nous avons l'objet PrefManager, nous pouvons l'utiliser pour fixer certaines valeurs.

Pour ce tutorial nous allons permettre aux utilisateurs de spécifier leur pays, et considérer que tout utilisateur qui n'a pas choisi de pays est quelque part sur la terre.

Premièrement nous devons fixer les valeurs en utilisant setDefaultPref.

Mettre en place l'objet

<?php
// Continued from example 1.
$prefmanager->setDefaultPref("country""Earth");
?>

Maintenant que les valeurs par défaut sont données, nous pouvons créer une page (très) basique, pour accueillir les utilisateurs avec un message personalisé.

Actuellement le message "Bienvenue aux habitant de la planète!" ne sera plus affiché qu'aux utilisateurs n'ayant pas configuré leur pays.

Utilisation de la personalisation

$username = "guest";
<h1>Bienvenue aux habitant du/de 
 <?php echo $prefmanager->getPref($username'country')?>!</h1>

Fixer les préférences d'un utilisateur

Finalement, nous avons besoin de donner aux gens un moyen de choisir le pays dans le quel ils sont.

Cela va être fait avec un simple text box, et vous devriez évidemment faire un peu plus attention dans une vraie application au sujet des permissions aux utilisateurs de fixer les préférences des autres personnes!

Le bouton "Reset Country" va éffacer la personalisation de l'utilisateur, et provoquer le réaffichage du message par défaut.

Définition des préférences

<h1>Attribuer un pays</h1>
// Permettre aux utilisateurs de choisir leur pays et nom d'utilisateur.
if (isset($_POST['submit'])) {
$username = htmlspecialchars($_POST['username']);
$prefmanager->setPref($username, 'country', $_POST['country']);
} else if (isset($_POST['reset'])) {
$username = htmlspecialchars($_POST['username']);
$prefmanager->deletePref($username, 'country');
} else {
$username = 'invité';
}
?>
<h1>
 Bienvenue aux habitants de/du 
 <?php echo $prefmanager->getPref($username'country')?>!
</h1>
<h2>Indiquez votre nom d'utilisateur et votre pays</h2>
<form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']) ?>">
 <label for="username">Nom d'utilisateur</label> 
 <input name="username" value="<?php echo $username?>" />
 <br />
 <label for="country">Pays</label>
 <input name="country" value="<?php echo $prefmanager->getPref($username'country')?>"/><br />
 
 <input type="submit" name="submit" value="Choisi le pays" /> 
 <input type="submit" name="reset" value="Reset le pays" />
</form>

Maintenant, chaque nouvel utilisateur encodera son nom d'utilisateur, et son pays, Et quand il se connectera, il recevra un accueil personnalisé.

Le code source complet

Le code source de la page d'exemple

<h1>Fixer le pays</h1>
<?php
require_once('Auth/PrefManager.php');

// Création de l'objet PrefManager
$dsn 'mysql://user:password@localhost/database';   // Changer le dsn pour celui de votre base.
$options = array('serialize' => true);               // Activer la linéarisation des données avant l'enregistrement, cela assure que les valeurs seront proprement récupérables.
$prefmanager = new Auth_PrefManager($dsn$options); // Créer l'objet.

// Fixer la valeur par défaut (cela ne doit pas être fait chaque fois que le script tourne).
$prefmanager->setDefaultPref('country''Terre');

// Permettre aux utilisateurs de spécifier leur pays et nom d'utilisateur.
if (isset($_POST['submit'])) {
$username htmlspecialchars($_POST['username']);
$prefmanager->setPref($username'country'$_POST['country']);
} else if (isset(
$_POST['reset'])) {
$username htmlspecialchars($_POST['username']);
$prefmanager->deletePref($username'country');
} else {
$username 'invité';
}
?>
<h1>Bienvenue aux personnes de <?php echo $prefmanager->getPref($username"country")?>!</h1>
<h2>Sélectionnez votre pays et nom d'utilisateur</h2>
<form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']) ?>">

 <label for="username">Nom d'utilisateur</label> :
 <input name="username" value="<?php echo $username?>" />
 <br />
 <label for="country">Pays</label> :
 <input name="country" value="<?php echo $prefmanager->getPref($username'country')?>"/>
 <br />
 <input type="submit" name="submit" value="Enregistrer" />
 <input type="submit" name="reset" value="Réinitialiser" />
</form>
Auth_PrefManager est une simple classe pour gérer les préférences d'un utilisateur ou d'une application à partir d'une base de données compatible DB. (Previous) Constructeur (Next)
Last updated: Sun, 29 Aug 2010 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report or add a note.
View this page in:

User Notes:

There are no user contributed notes for this page.