Dove è il posto migliore per inserire funzionalità di logout supplementare?
Domanda
Per inserire ulteriore logica quando un utente accede al largo uno potrebbe guardare function user_logout()
in user.pages.inc. Questo codice essere in un modulo di base, non si dovrebbe modificare, ma funziona molto bene ... per esempio aggiungendo il seguente codice alla parte superiore del 'user_logout ()' funzione ...
$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));
}
... ho la cache eliminato e cron periodo se cron non è stato eseguito nelle ultime 24 ore. Va bene, non è l'ideale per cron, ma questa è un'altra questione.
Dove è il posto migliore per aggiungere questo piccolo frammento? Potrei semplicemente implementare la mia voce di menu di logout ... ma io non sono molto entusiasta di questa soluzione.
Grazie in anticipo.
Soluzione
Invece di modificare nucleo, è possibile implementare hook_user()
in un modulo personalizzato. Quindi è possibile controllare il parametro $op
per vedere se è uguale a "Logout". Questo codice verrà eseguito ogni volta che un utente si disconnette, indipendentemente da ciò che la voce di menu o collegare fanno clic per uscire.
Si noti che questo è diverso tra il Drupal 6 e 7. La domanda è stata contrassegnata con Drupal 6, ma se si sta utilizzando Drupal 7, o piano per poi, essere consapevoli che questo libro è stato sostituito con hook_user_logout()
.
Altri suggerimenti
Potrebbe voler controllare il modulo Poor Mans Cron .