Comment puis-je récupérer un message de succès dans Magento?
Comment puis-je récupérer un message de succès dans Magento?
Array
(
[core] => Array
(
[_session_validator_data] => Array
(
[remote_addr] => 192.168.151.102
[http_via] =>
[http_x_forwarded_for] =>
[http_user_agent] => Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.70 Safari/533.4
)
[session_hosts] => Array
(
[technova2] => 1
)
[messages] => Mage_Core_Model_Message_Collection Object
(
[_messages:protected] => Array
(
)
[_lastAddedMessage:protected] => Mage_Core_Model_Message_Success Object
(
[_type:protected] => success
[_code:protected] => Your review has been accepted for moderation
[_class:protected] =>
[_method:protected] =>
[_identifier:protected] =>
[_isSticky:protected] =>
)
)
[just_voted_poll] =>
[visitor_data] => Array
(
[] =>
[server_addr] => -1062692990
[remote_addr] => -1062693018
[http_secure] =>
[http_host] => technova2
[http_user_agent] => Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.70 Safari/533.4
[http_accept_language] => en-US,en;q=0.8
[http_accept_charset] => ISO-8859-1,utf-8;q=0.7,*;q=0.3
[request_uri] => /~rahuls/sextoys/index.php/review/product/list/id/169/
[session_id] => 21bq2vtkup5m1gtghknlu1tit42c6dup
[http_referer] => http://technova2/~rahuls/sextoys/index.php/review/product/list/id/169/
[first_visit_at] => 2010-06-16 05:49:56
[is_new_visitor] =>
[last_visit_at] => 2010-06-16 06:00:00
[visitor_id] => 935
[last_url_id] => 23558
)
[last_url] => http://technova2/~rahuls/sextoys/index.php/review/product/list/id/169/
)
)
Après la publication de la revue, je veux afficher le message: "Votre commentaire a été accepté par la modération". Il apparaît dans $_SESSION, mais comment puis-je le récupérer? S'il vous plaît aider. Merci à l'avance.
- Pourriez-vous s'il vous plaît marquer cette question comme résolu par le choix d'une réponse comme solution? Merci!
Vous devez vous connecter pour publier un commentaire.
C'est une combinaison de toutes vos réponses. Cela fonctionne pour moi, à partir de n'importe quel bloc:
De crédit en raison de:
http://www.magentocommerce.com/boards/viewthread/40324/ (Où j'ai posté la réponse)
et
http://www.deepcodeonline.com/blog/magento/how-to-display-error-success-and-notice-messages-in-magento/
Le code suivant fonctionne pour moi:
set message du contrôleur:
init message dans le contrôleur de l'endroit où vous souhaitez récupérer les
message:
Récupérer le message dans votre modèle (
.phtml
) fichier:Mage::getSingleton('customer/session')
Il semble que ce que vous demandez existe déjà dans Magento. Une fois que l'utilisateur a posté un commentaire sur un produit, "Votre commentaire a été accepté par la modération" message s'affiche par défaut comme indiqué dans app/code/core/Mage/Review/controllers/ProductController.php à la ligne 188 (Magento 1.4.0.1)
De toute façon, si vous souhaitez afficher les messages (avis, le succès, erreur, avertissement) juste à l'utiliser, par exemple dans le cas d'un message de succès:
Le message sera stocker dans la session automatiquement et apparaissent sur le frontend aussi longtemps que le modèle de fichier de la page a l' $this->getMessagesBlock()->getGroupedHtml() code qui est le cas dans tous les défaut phtml pages livré avec Magento. Si vous n'avez pas vraiment la peine.
Bien sûr, dans l'exemple ci-dessus, vous pouvez modifier
par
addError($message)
ouaddWarning($message)
ouaddNotice($message)
en fonction de la nature de l'info que vous voulez afficher.Depuis le message est stocké dans la
core
sous-matrice, vous allez utiliser la base Magento bloc de message pour le récupérer. Dans votre présentation, vous devriez être capable de voir cette ligne (en page.xml):Cela signifie que la page appelle le bloc de message et récupère les messages à partir de ce noyau de la matrice. Ensuite, dans vos modèles, vous devriez être en mesure de voir la ligne qui appelle en fait la sortie:
Ce fait, les échos de l'normale des blocs de message pour les messages dans la session. Si vous ne trouvez pas ces blocs, les ajouter dans. Si vous avez besoin pour obtenir le message dans un contexte différent (ce qui peut interférer avec d'autres site de l'opération), essayez ceci dans un fichier phtml:
Espère que ça aide!
Grâce,
Joe
Supposons que vous souhaitez récupérer un message de réussite à partir d'un catalogue de session:
Alors que vous aviez pour récupérer des messages de session comme suit:
Mettre
false
de ne pas effacer vos messages de collecte de session. Si vous souhaitez effacer tous les messages après la récupération de l'utilisationtrue
à la place.La
$messages
est deMage_Core_Model_Message_Collection
type. Vous pouvez récupérer votre besoin de taper des messages à partir de ce par:Vous pouvez faire une boucle par le biais de ces messages par:
('customer/session')
.J'ai trouvé le bloc ci-dessous page.xml
J'ai utilisé le ci-dessous deux lignes dans mon code pour le message de succès, mais sans succès.
getChildHtml('global_messages') ?>
getLayout()->createBlock('base/messages')->toHtml(); ?>