drupal 7 - прикрепить файл к узлу по коду - PullRequest
2 голосов
/ 08 июля 2011

Я хотел связать файл с узлом. Все идет нормально. создать файл типа 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;
    }
}

У кого-нибудь есть предложения?

1 Ответ

0 голосов
/ 19 июля 2011

Не используйте #prefix и #suffix, чтобы скрыть это. Вместо этого установите #access в false - таким образом, люди не могут возиться с формой. Вы можете установить значение в hook_nodeapi или в функции отправки или установить тип в значение «value» и #value для вашего файла.

...