it-swarm-es.com

¿Cuál es el mejor lugar para insertar funciones de cierre de sesión adicionales?

Para insertar lógica adicional cuando un usuario cierra la sesión, se puede mirar function user_logout() en user.pages.inc. Este código está en un módulo principal, no debe editarlo, pero funciona muy bien ... por ejemplo, agregando el siguiente código en la parte superior de la función 'user_logout ()' ...

$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));  
}

... Obtengo el caché borrado y cron se ejecuta si cron no se ha ejecutado en las últimas 24 horas. De acuerdo, no es ideal para cron, pero ese es otro problema.

¿Cuál es el mejor lugar para agregar este pequeño fragmento? Simplemente podría implementar mi propio elemento de menú de cierre de sesión ... pero no estoy interesado en esa solución.

Gracias por adelantado.

2
clsturgeon

En lugar de modificar el núcleo, puede implementar hook_user() en un módulo personalizado. Luego puede verificar el parámetro $op Para ver si es igual a "cerrar sesión". Este código se ejecutará cada vez que un usuario cierre la sesión, independientemente del elemento del menú o enlace en el que haga clic para cerrar la sesión.


Tenga en cuenta que esto es diferente entre Drupal 6 y 7. Esta pregunta fue etiquetada Drupal 6, pero si está usando Drupal 7, o planea hacerlo más tarde, tenga en cuenta que este gancho fue reemplazado por hook_user_logout() .

10
Chaulky

Es posible que desee ver el módulo Poor Mans Cron .

0
mikeytown2