- ^ Références
- ^ Les classes utilitaires
- jApp : chemins de l'application
- jDateTime : manipulation de dates et heures
- jFile : lire ou créer des fichiers
- jFilter : vérification et filtrage de données
- jHttp : faire des requête HTTP
- jImageModifier: Modifier une image
- jIniFileModifier: lire ou modifier des fichiers de configuration (ini)
- jMailer : envoi de mails
- jMessage : informations entre actions
- jPref : gérer vos préferences d'applications
- jSession : stockage de sessions
- jWiki : transformation de texte wiki
Section: jMessage : informations entre actions
« jMailer : envoi de mails | ^ Les classes utilitaires | jPref : gérer vos préferences d'applications » |
− 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 :
<ul class="jelix-msg">
<li class="jelix-msg-item-default">identification échouée : mot de passe incorrect</li>
</ul>
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.