Webform 4를 사용하고 있습니다. Drupal의 토큰을 사용합니다. 버전 3에서 사용했던 것과 같은 % 토큰이 아닙니다.
여러 페이지로 된 구독 양식을 만들고 싶다고 가정 해 보겠습니다. 첫 페이지에는 이메일 필드 만 있습니다. 두 번째로 다음과 같은 마크 업을 원합니다.
molot@example.com에 대한 자세한 구독 구성
마찬가지로, 청구 지 주소를 요청한 다음 배달 주소를 묻는 등 미래 필드의 기본값으로 사용할 수 있기를 원합니다.
그것에 대한 토큰이 있습니까? 내가 지금 한 일은 :
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;
}
}
작동하지만 한 단계 이전의 값만 표시하므로 여러 단계에 걸쳐 이메일 값을 전달하기 위해 숨겨진 필드가있는 몇 가지 더러운 트릭이 필요합니다. 나는 인정한다-그것은 단지 빠르고 더러운 것이었다. 어떤 거기에 내장 그것을 할 방법, 또는 제대로 기여를 유지하기 위해 관리하는 이것에 대한 모듈은? 또는이 코드를 독립적으로 작동 $_POST['submitted']
하게하고 여러 단계에서 값을 전달하고 사용 가능한 Webform 요소의 토큰을 편집 창의 토큰 목록에 표시하는 방법은 무엇입니까?