Drupal: redirect dopo il logout non funzionante

Tags: 

In Drupal 7.2 (e mi sa anche fino alla 7.7) impostare un trigger per effettuare un redirect dopo il logout non funziona.

O meglio: il redirect lo fa, ma non fa realmente il logout (basta tornare nel sito per notare che si è ancora autentificati).

Il problema è stato segnalato in http://drupal.org/node/1068360, ma al momento non sembra che a nessuno freghi un granchè.

 

L'errore è probabilmente dovuto al session_destroy() di user_logout() viene chiamato DOPO l'invocazione degli hook "user_logout".

Una soluzione semplice è questa:

1. si crea una pagina interna del sito, che fa questo codice php:

<?
session_destroy();
drupal_goto('http://SITO_ESTERNO');

2. si imposta l'action del trigger per fare il redirect a quella pagina interna invece che direttamente al sito esterno.

 

In alternativa, lato codice, si può operare tramite l'hook "user_logout"... ma in quel caso non ha nemmeno senso usare un trigger...

Aggiungi un commento