Sto usando Webform 4. Usa i token di Drupal, non i suoi token% come una volta nella versione 3, e praticamente tutto quello che ho trovato riguardava il webform 3.
Di 'che voglio fare un modulo di iscrizione multi-pagina. Nella prima pagina c'è solo un campo e-mail. Sul secondo, voglio un markup che dirà qualcosa di simile:
Configurazione dettagliata dell'abbonamento per molot@example.com
Allo stesso modo, vorrei essere in grado di usarli come valori predefiniti per i campi futuri, come chiedere all'utente l'indirizzo di fatturazione e quindi l'indirizzo di consegna.
Ci sono dei token per quello? Quello che ho fatto per ora è:
function mymodule_token_info() {
$type = array(
'name' => t('Webform submitted values'),
'description' => t('Tokens related to $_POST[\'submitted\'].'),
);
$tokens = array();
if(isset($_POST['submitted'])) {
foreach($_POST['submitted'] as $key => $val) { //discard $val now
$tokens[$key] = array(
'name' => $key,
'description' => "\$_POST['submitted']['$key']",
);
}
}
return array(
'types' => array('webform_submitted' => $type),
'tokens' => array('webform_submitted' => $tokens),
);
}
function mymodule_tokens($type, $tokens, $data, $options) {
if($type == 'webform_submitted') {
$replacements = array();
foreach ($tokens as $name => $original) {
//Hide errors below. We don't care if it really exists yet. If empty, so be it.
@$replacements[$original] = (string)$_POST['submitted'][$name];
}
return $replacements;
}
}
Funziona, ma mostra solo i valori di un passaggio precedente, quindi richiede alcuni trucchi sporchi con campi nascosti per trasportare il valore dell'email attraverso più passaggi. Lo ammetto: è stato solo veloce e sporco. Esiste un modo integrato per farlo o un modulo fornito correttamente gestito per questo? O un modo per far funzionare questo codice in modo indipendente $_POST['submitted']
, per far sì che porti valori attraverso molti passaggi e per renderlo visibile (dagli elementi Webform disponibili) nell'elenco dei token nelle finestre di modifica?