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 :
Exemple 34-1. 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.
Exemple 34-2. Mettre en place l'objet
- <?php
- require_once('Auth/PrefManager.php');
- $dsn = 'mysql://utilisateur:motdepasse@localhost/database';
- $options = array('serialize' => true);
- $prefmanager = new Auth_PrefManager($dsn, $options);
-
- ?>
|
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.
Exemple 34-3. Mettre en place l'objet
- <?php
- $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.
Exemple 34-4. Utilisation de la personalisation
- <?php
- $username = "guest";
- <h1>Bienvenue aux habitant du/de
- <?php echo $prefmanager->getPref($username, 'country')?>!</h
- ?>
|
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.
Exemple 34-5. Définition des préférences
- <?php
- <h1>Attribuer un pays</h1>
- 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" />
- </for
- ?>
|
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
Exemple 34-6. Le code source de la page d'exemple
- <?php
- <h1>Fixer le pays</h1>
- <?php
- require_once('Auth/PrefManager.php');
-
- $dsn = 'mysql://user:password@localhost/database';
- $options = array('serialize' => true);
- $prefmanager = new Auth_PrefManager($dsn, $options);
-
- $prefmanager->setDefaultPref('country', 'Terre');
-
- 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" />
- </for
- ?>
|