¿Dónde está el mejor lugar para insertar la funcionalidad de cierre de sesión adicional?

drupal.stackexchange https://drupal.stackexchange.com/questions/310

  •  16-10-2019
  •  | 
  •  

Pregunta

Para insertar lógica adicional cuando un usuario cierra uno podría hacer en function user_logout() en user.pages.inc. Este código está en un módulo básico, no debe editar, pero funciona muy bien ... por ejemplo, añadiendo el código siguiente al principio de la 'user_logout ()' función ...

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

... Me da la caché despejado y cron cron plazo si no se ha ejecutado en las últimas 24 horas. De acuerdo, no es ideal para cron, pero eso es otro tema.

¿Dónde está el mejor lugar para añadir este pequeño fragmento? Podría simplemente aplicar mi propio elemento de menú de cierre de sesión ... pero no estoy interesado en esa solución.

Gracias de antemano.

¿Fue útil?

Solución

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


Tenga en cuenta que esto es diferente entre Drupal 6 y 7. Esta pregunta fue etiquetado Drupal 6, pero si usted está utilizando Drupal 7, o plan para más adelante, tenga en cuenta que este gancho fue sustituido por hook_user_logout() .

Otros consejos

posible que desee comprobar hacia fuera el módulo pobre sirve Cron .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a drupal.stackexchange
scroll top