Frage

So fügen Sie zusätzliche Logik ein, wenn sich ein Benutzer anmeldet, sich anmelden könnte function user_logout() in user.Pages.inc. Dieser Code befindet sich in einem Kernmodul, Sie sollten ihn nicht bearbeiten, funktionieren aber sehr gut ... indem Sie den folgenden Code an die Spitze der Funktion 'user_logout ()' 'hinzufügen ...

$last_run = variable_get('cron_last', 0);  
if(time() - $last_run > 86400) {  
    include_once './includes/bootstrap.inc';  
    drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);  
    drupal_cron_run();  
    drupal_flush_all_caches();  
    watchdog('user', 'cron set to run and cache to be cleared on user logout', array('%name' => $user->name));  
}

... Ich bekomme den Cache gelöscht und Cron Run, wenn Cron in den letzten 24 Stunden nicht gelaufen ist. Okay, nicht ideal für Cron, aber das ist ein weiteres Problem.

Wo ist der beste Ort, um diesen kleinen Ausschnitt hinzuzufügen? Ich könnte einfach meinen eigenen Meldungsmenüelement implementieren ... aber ich bin nicht für diese Lösung interessiert.

Danke im Voraus.

War es hilfreich?

Lösung

Anstatt den Kern zu ändern, können Sie implementieren hook_user() in einem benutzerdefinierten Modul. Dann können Sie die überprüfen $op Parameter, um festzustellen, ob es "logout" entspricht. Dieser Code wird ausgeführt, wenn sich ein Benutzer anmeldet, unabhängig davon, welcher Menüelement oder welcher Link er klickt, um sich anzumelden.


Beachten Sie, dass dies zwischen Drupal 6 und 7 unterschiedlich ist hook_user_logout().

Andere Tipps

Vielleicht möchten Sie sich das ansehen Arme Mann Cron Modul.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit drupal.stackexchange
scroll top