2013-08-29 1 views
2

나는 드루팔 6에서 사용자를 생성하는 동안 두 개의 양식 필드의 유효성 검사를 무시할 필요하지만 어떻게 전혀 모르는 :드루팔 6 - 요구을 무시 양식 필드

$userinfo = array(
    'name' => $login, 
    'init' => $mail, 
    'mail' => $mail, 
    'pass' => $password, 
    'status' => 1, 
    'lastname' => "", //how to ignore those required fields that invalidate the form 
    'surname' => "" //how to ignore those required fields that invalidate the form 
); 

    // register a new user 
    $form_state = array(); 
    $form_state['values'] = $userinfo; 
    drupal_execute('user_register', $form_state); 
    $errors = form_get_errors(); // getting 2 required field errors 

참고가 내가 할 수있는 더 복잡한 형태로 다른 곳에서 사용되기 때문에 "필수"속성을 보완하지 않습니다.

감사

+0

두 가지 질문을 한 번에하지 마십시오. 두 가지 질문이 있으면 두 가지 질문을하십시오. –

+0

네가 맞아, 고마워. –

답변

1

...

양식 작성 프로세스를 사용하면 hook_form_alter()을 사용하여 필요한 상태를 제거 할 수 있지만 $form_state에 전달하는 컨텍스트에서만 가능합니다. 예 :

function MYMODULE_form_alter(&$form, &$form_state, $form_id) { 
    if ($form_id == 'user_register' && !empty($form_state['custom_execution'])) { 
    $form['lastname']['#required'] = FALSE; 
    // etc... 
    } 
} 

... 

$form_state = array(); 
$form_state['values'] = $userinfo; 
$form_state['custom_execution'] = TRUE; 
drupal_execute('user_register', $form_state); 
+0

나는 이것을 시험해 보겠다. 자세한 예제를 가져 주셔서 감사합니다. –

0

당신은 "필요한"속성을이 표시되지 않도록 hook_form_alter를 사용할 수 없습니다, 경우에만 그 "복잡한"형태로 사용되지에서?

예를 들어 "복잡한"양식이 사용 된 경로를 알고있는 경우 경로가 arg과 함께 제공되는지 확인할 수 있습니다. drupal_execute() 전체를 통해 당신을 밀어 때문에

더 나은 수표를 사용할 수 있습니다 ... 나는 그것이 작동 거라고 생각하지만,에이 테스트가 편리한 D6 사이트를 없어