我想将文件关联到节点。到现在为止还挺好。创建一个cck类型文件,问题解决了。但我不能这样做,我不希望用户选择该文件。有问题的文件已经在系统中。 我试图将文件作为#default_value字段放置并使用hook_form_FORM_ID_alter隐藏它,但是失败了。
function my_module_form_node_form_alter(&$form, $form_state, $form_id) {
if(isset($form['type']) && isset($form['#node'])) {
$type = $form['#node']->type;
if(stripos($type, 'node-type') === FALSE)
return;
switch($type) :
case 'node-type_xyz':
$fid = arg(3);
$file = file_load($fid);
// make a cck field_invoice a hidden field
$form['field_invoice']['#prefix'] = '<div style="display:none;">';
$form['field_invoice']['#suffix'] = '</div>';
$form['field_company']['und'][0]['value']['#default_value'] = 'ABC';
$form['field_account_number']['und'][0]['value']['#default_value'] = '09879';
break;
endswitch;
}
}
有人有什么建议吗?
答案 0 :(得分:0)
不要使用#prefix和#suffix来隐藏它。相反,将#access设置为false - 这样,人们就无法摆弄表单。您可以在hook_nodeapi或submit函数中设置值,或者将类型设置为'value',将#value设置为您的文件。