【问题标题】:drupal 7 - attach file to a node by codedrupal 7 - 通过代码将文件附加到节点
【发布时间】:2011-07-08 16:55:42
【问题描述】:

我想将一个文件关联到一个节点。到目前为止,一切都很好。创建一个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;
    }
}

有人有什么建议吗?

【问题讨论】:

    标签: file drupal drupal-7 cck


    【解决方案1】:

    不要使用#prefix 和#suffix 来隐藏它。相反,将 #access 设置为 false - 这样,人们就无法摆弄表单。您可以在 hook_nodeapi 或提交函数中设置值,或者将类型设置为 'value' 并将 #value 设置为您的文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多