- ^ Les classes utilitaires
- jFilter : vérification et filtrage de données
- jDateTime : manipulation de dates et heures
- jHttp : faire des requête HTTP
- jMailer : envoi de mails
- jWiki : transformation de texte wiki
- jSession : stockage de sessions
- jMessage : informations entre actions
- jFile : lire ou créer des fichiers
- jIniFileModifier: lire ou modifier des fichiers de configuration (ini)
Chapitre: jMessage : informations entre actions
« jSession : stockage de sessions | ^ Les classes utilitaires | jFile : lire ou créer des fichiers » |
− Table des matières
Très souvent, il est utile d'afficher les résultats/conséquences/erreurs d'une action dans une action ultérieure. Par exemple, quand vous renvoyez un utilisateur vers la page d'accueil après un échec de connexion, il serait intéressant de lui afficher les raisons de cette redirection.
jMessage
est conçu pour cela. En bref, jMessage stocke des messages en session et expose des méthodes statiques pour les ajouter, les récupérer où les effacer.
Variable de session ¶
jMessage utilise une variable de session dont le nom par défaut est : JELIX_MESSAGE.
Vous pouvez le modifier à travers le membre statique jMessage::session_name
.
Exemple :
jMessage::session_name = 'MONAPP_MESSAGE';
Ajouter un message ¶
Utilisez la méthode statique jMessage::add
pour ajouter un message à afficher ultérieurement. Vous passez votre message en premier argument. Notez qu'un second argument optionnel décrit le type du message.
Exemple :
// echec d'identification
jMessage::add( 'identification échouée : mot de passe incorrect');
// redirection vers la page d'accueil
Afficher un message ¶
Utilisez le plugin de template jMessage
pour afficher le(s) message(s) en attente.
Exemple :
// tpl de la page d'accueil
// affiche les messages en attente dans un tag <ul>
{jmessage}
le template ci-dessus donnera le fragment de html suivant :
Une autre option est d'utiliser la méthode statique jMessage::get
pour récupérer les messages dans un contrôleur.
Exemple :
// dans votre action affichant la page d'accueil
$messages = jMessage::get(); // récupère tous les messages du type par défaut
// transmission au template
$tpl->assign('messages', $messages);
Note : si vos messages ont été ajoutés avec un type particulier, vous devez appeler jMessage::get('montype')
pour les récupérer.
Vous pouvez aussi récupérer tous les messages quel que soit leur type avec jMessage::getAll()
.
Effacer les messages ¶
Pour effacer les messages et ainsi éviter de trop grossir les données de sessions, appelez jMessage::clearAll()
.
Vous pouvez aussi effacer un seul type de message avec jMessage::clear()
. cette méthode accepte un argument optionnel décrivant un type. Si le type est vide, la méthode effacera les messages du type default.