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.

È stato utile?

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 .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a drupal.stackexchange
scroll top