2011-07-08 99 views
2

我想將文件關聯到節點。到現在爲止還挺好。創建一個cck類型的文件,問題就解決了。但我不能這樣做,我不希望用戶選擇文件。有問題的文件已經在系統中。 我嘗試將該文件放置爲#default_value字段,並用hook_form_FORM_ID_alter將其隱藏,但失敗。drupal 7 - 通過代碼將文件附加到節點

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

請勿使用#prefix和#suffix來隱藏它。相反,將#access設置爲false - 這樣,人們無法擺弄表單。您可以在hook_nodeapi或提交函數中設置值,或者將類型設置爲'value',並將#value設置爲您的文件。

相關問題