Je souhaite afficher un message système lorsque je reçois ma demande ajax.
La demande ajax renvoie le bon message. Je peux le tester avec une alerte.
alert(result.message);
Joomla.renderMessages(result.message);
Il affichera maintenant le message de réussite ou d'erreur en tant que message système Joomla typique. Mais le Joomla.renderMessages
appel, ne montre aucun résultat. Le message système n'apparaîtra pas sur mon site.
Y at-il quelque chose qui cloche ou dois-je faire quelque chose de plus pour que cela fonctionne?
Toutes les choses mentionnées par @Bakual sont correctes, mais je remarque que vous ne faites que passer le result.message
À alert
et que [alert(message)][1]
s'attend à ce que message
soit un string
ou un object
peut être converti en un string
cela pourrait être le problème.
Si result.message
Est juste une chaîne, vous devrez alors l'envelopper dans un conteneur approprié, quelque chose comme ceci:
var jmsgs = [result.message]; // You can stack multiple messages of the same type
Joomla.renderMessages({'info': jmsgs });
La fonction JavaScript dépend de la présence d'un conteneur avec l'id system-message-container
. Certains modèles n'ont pas du tout ce conteneur, ou seulement s'il y a un message à afficher. Alors, vérifiez d'abord avec Protostar et voyez si cela fonctionne là-bas
De plus, vous devez vous assurer que vous avez bien chargé core.js
Avec votre extension. Ce n'est pas nécessaire chargé, surtout pas en front-end. Depuis Joomla 3.3, vous pouvez le charger avec JHtmlBehavior::core()
, dans les versions antérieures, vous utilisiez JHtmlBehavior::framework()
.