我正在尝试隐藏以嵌入形式呈现的字段集合字段。这个表单在几个不同的节点上呈现,但只有一些节点需要所有的字段,所以我想将它们隐藏在那些不需要的节点上。
现在我正在尝试使用钩形式更改但它在字段集合中不起作用,它将在正常呈现的表单上工作,该表单与集合共享字段。
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;
}
答案 0 :(得分: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++;
}
}
}
希望它对你有所帮助......