0

포함 된 양식에서 렌더링하는 필드 컬렉션 필드를 숨기려고합니다. 이 양식은 몇 가지 다른 노드를 렌더링하지만 일부 노드 만 모든 필드를 필요로하기 때문에 그렇지 않은 노드에 숨기고 싶습니다.포함 된 양식의 필드 컬렉션 필드 숨기기

지금 당장 비주얼 훅 형식을 변경하려고 시도하고 있지만 필드 컬렉션 내에서 작동하지 않습니다.이 필드는 컬렉션과 필드를 공유하는 형식으로 정상적으로 렌더링됩니다.

function zenstrap_form_alter(&$form,&$form_state,$form_id){ 

    //Form we want to target 
    case ($form_id==="coh_pow_node_form"): 

    //Appears in Normal form and Field Collection 
    //Hides in normal 
    $form['field_last_name']['#access']=FALSE; 

    //Appears in Normal form and Field Collection 
    //Hides in normal 
    $form['field_street']['#access']=FALSE; 

    //Appears in Field Collection 
    //Does nothing 
    $form['field_veteran_retired']['#access']=FALSE; 

    break; 

} 

답변

1

필드 컬렉션 필드를 숨기려면 아래 코드를 확인하십시오.

function YOURMODULE_form_alter(&$form, &$form_state, $form_id) { 
    if($form_id == 'YOURFORMID') { 
     $delta = 0; 
     $max_delta = $form['field_YOUR_field_collection'][LANGUAGE_NONE]['#max_delta']; 
     while ($delta <= $max_delta) { 
      $form['field_YOUR_field_collection'][LANGUAGE_NONE][$delta]['field_YOURfield'][LANGUAGE_NONE][0]['#access'] = FALSE; 
      $delta++; 
     } 
    } 
} 

... 당신을 도움이되기를 바랍니다