Tutoriel
--
Un petit guide pour utiliser Auth_PrefManager
Mettre en place la base
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:
<?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.
<?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.
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.
<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 serialization 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 gens 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>