drupal 7

Drupal: Visualizzare come viene costruita in SQL una query dinamica

drupal

Se stiamo costruendo una query con il nuovo formato "dinamico", e vogliamo tradurre ciò che stiamo facendo nel caro e vecchio SQL per vedere se stiamo effettivamente ottenendo ciò che vogliamo, possiamo fare in 2 modi.

Stampare semplicemente la query come stringa: in questo modo otteniamo la query non parametrizzata. Possiamo ottenere i valori dei parametri con il methodo arguments().

$query = db_select('node', 'n') ...
print((string) $query);
print_r($query->arguments());

Oppure, se abbiamo il devel.module attivo, usare la funzione dpq, che mostra direttamente la query già parametrizzata:

dpq($query);

Drupal: redirect dopo il logout non funzionante

drupal

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');