우리는 성공적인 제출시 URL로 리다이렉트하는 드루팔 (Drupal 7) 웹 폼을 가지고 있습니다.드루팔 (Drupal 7 Webform redirect
사용자가 동일한 웹 폼을 다시 방문하고 이미 제출 한 경우 사용자를 리디렉션해야합니다.
프로그래밍을 위해 모듈이 필요한가요?
미리 감사드립니다.
우리는 성공적인 제출시 URL로 리다이렉트하는 드루팔 (Drupal 7) 웹 폼을 가지고 있습니다.드루팔 (Drupal 7 Webform redirect
사용자가 동일한 웹 폼을 다시 방문하고 이미 제출 한 경우 사용자를 리디렉션해야합니다.
프로그래밍을 위해 모듈이 필요한가요?
미리 감사드립니다.
그래서 여기에 우리가 함께 한 해결책이 있습니다.
따라서 웹 양식은 제출시 올바르게 리디렉션되고 (웹 양식 설정에서 설정 됨) 사용자가 착륙하면 리디렉션됩니다 그 페이지에서 다시 웹 양식을 완성했습니다.
웹 폼 모듈을 살펴본 결과 사용자가 이미 양식을 제출 한 경우 사용자를 리디렉션하는 설정이 없으므로 프로그래밍 방식으로 처리해야한다고 생각합니다.
참고 : 규칙 모듈을 사용하면 맞춤 모듈 없이도 가능할 수 있습니다. 나는 이것을 시도하지 않았다.
프로그래밍 방식으로하려면 다음과 같이 할 수 있습니다. hook_node_view()
을 구현하고 webform API 함수 webform_get_submission_count()
을 사용하여 사용자가 이미 항목을 제출했는지 확인합니다. (편집 :이 예에서 사용자 정의 모듈은 example_webform라고 함) 그것이 양식이 제출 될 때 사용되는 페이지를 다시 사용 지금처럼
<?php
/**
* Implements hook_node_view().
*/
function example_webform_node_view($node, $view_mode, $langcode) {
global $user;
module_load_include('inc', 'webform', 'includes/webform.submissions');
$submission_count = webform_get_submission_count($node->nid, $user->uid);
if (!empty($submission_count) && $submission_count > 0) {
$redirect = $node->webform['redirect_url'];
drupal_goto($redirect);
}
}
, 그래서 당신이해야 할 선택하는 경우이 만들어 기억 성공 페이지는 이것을 반영합니다. 예를 들어 성공 페이지가 두 번째로 사용자가 올 경우 '귀하의 글이 저장되었습니다'라고 말하는 것이 이상 할 것입니다. 또는 $redirect
을 웹 폼 설정의 페이지가 아닌 다른 페이지로 바꿀 수 있습니다.
또한 웹 양식에는 "이 양식을 이미 제출했습니다. 이전 제출물을 봅니다."라는 메시지가 계속 추가됩니다. 이것이 가능하면.
고맙습니다. 모듈 솔루션을 찾지 못하면 이번 주에 테스트 할 것입니다. – user1689274