Passare i valori alle funzioni tramite URI (invece del metodo GET)
-
27-10-2019 - |
Domanda
Sto scrivendo un modulo Drupal 6 che invia un ID utente + una stringa generata in modo casuale a una funzione tramite l'URI. Sto usando il menu hook:
function invites_menu() {
// ...
$items['invites/auth'] = array(
'title' => 'Are you human?',
'page callback' => 'invites_pageAuth',
'access arguments' => array('access invites content'),
'page arguments' => array(2),
'type' => MENU_CALLBACK
);
// ...
}
Sono nuovo in Drupal, ma a quanto ho capito (e potrei benissimo) questo dovrebbe passare due valori alla funzione di callback, che per scopi di test sembra attualmente questo:
function invites_pageAuth($auth = NULL, $uid = NULL) {
drupal_set_message("uid: $uid <br /> $auth");
}
L'URL che uso è "inviti/autentica/casuale/userid". Questo sembra ottenere il primo valore due volte; Sia $ auth che $ uid contengono "casuale".
Mi manca qualcosa di veramente semplice?
Grazie.
Soluzione
function invites_menu()
{
...
$items['invites/auth/%/%'] = array(
'title' => 'Are you human?',
'page callback' => 'invites_pageAuth',
'access arguments' => array('access invites content'),
'page arguments' => array(2, 3),
'type' => MENU_CALLBACK
);
...
}
Inoltre puoi usare Arg (3) come oggetto utente -> Usa % utente invece % e otterrai l'oggetto utente nel callback
$items['invites/auth/%/%user']
Altri suggerimenti
La mia lettura dei documenti è quella 'page_arguments' => array(2)
Mezzi: "Pass percorso numero 2 come il primo argomento al callback della pagina, seguito da qualsiasi argomento opzionale". Quindi otterresti: RANDOMSTRING
, RANDOMSTRING
, USERID
.
ATTENZIONE: non sono un esperto di Drupal e quanto sopra potrebbe essere sbagliato. Puoi controllarlo abbastanza facilmente dando invites_pageAuth
Un altro argomento, cambiando il 2
nel tuo page_arguments
, eccetera.