2012-04-02 6 views
1

Ich habe ein Timeout-Modul, das einen Benutzer basierend darauf aufzeichnet, wenn sie inaktiv waren. Das Problem ist, dass das Modul module_invoke_all ('user_logout', $ user) aufruft; und ein anderes Modul beendet die Anmeldung des Benutzers, da dieses Modul tatsächlich die richtige Abmeldungs-Zielseite anzeigt.Wie zeige ich dem Benutzer eine benutzerdefinierte Nachricht an, wenn ein anderes Modul sie als Ergebnis von module_invoke_all abmeldet?

Wie kann ich mein Modul eine Nachricht auf der anderen Logout-Seite anzeigen lassen? Drupal_set_message funktioniert auch nicht, da der Benutzer ausgeloggt wird und drupal_set_message funktioniert so, dass Sie die richtige Sitzung zur Hand haben müssen.

Bitte informieren Sie mich Ihre Gedanken

Dank

+0

Dies ist ein bekanntes Problem in der Diskussion http: // d rupal.org/node/754560. In der Tat ist hier eine etwas hackische Möglichkeit http://drupal.org/node/754560#comment-3960328 – Grayside

Antwort

0

In hook_user_logout, setzen Sie ein Cookie mit der Nachricht, die Sie

<?php 
setcookie('my_message', t("Goodbye, have a nice evening!"), time() + (86400 * 30), "/"); 
?> 

... dann in hook_init, Anzeige, was in angezeigt werden soll ist der Cookie und löschen Sie den Cookie

<?php 

function MYMODULE_init() { 
    if(!empty($_COOKIE['my_message'])) { 
    drupal_set_message($_COOKIE['my_message']); 
    setcookie('my_message', '', time() - 3600); 
    } 
} 
?>