2017-09-16 24 views
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++; 
     } 
    } 
} 

は、それはあなたが

...ホープ
関連する問題