1

他のフィールドに加えて無制限のファイルフィールド フィールドを持つコンテンツ タイプがあります。ノードの保存/送信時に、フィールド内の各ファイルに追加のノードを作成し、そのファイルフィールドをそれに割り当てたいと思います。nodeapi フックとプログラムによるノードの作成には問題ありませんが、ノードからファイルフィールドのコンテンツにアクセスできません。hook_node_insert 内からファイルフィールドの内容を出力すると、次のようになります: ...

 (
    [fid] => 38
    [display] => 1
    [description] => 
    [upload_button] => Upload
    [remove_button] => Remove
    [upload] => 
    )

....

通常表示されるフォーマットされた続行フィールドではありません。私の疑いでは、フォームから何らかの方法でこれにアクセスし、変更後にフォームを送信できますが、これを行う方法がわからず、最善の方法ではない可能性があります。これに関するヒントがあれば教えてください。よろしくお願いします。

4

1 に答える 1

1

データを[fid]入力したので、 file_load($fid)を使用してファイル オブジェクトをロードできます。次に、このファイル オブジェクトを配列にキャストし、新しく作成されたノードのファイル フィールドにアタッチします。

配列をループし、$fid遭遇するたびに..

$file = file_load($fid);    
$new_node= new StdClass();
$new_node->type = 'image';
$new_node->language = LANGUAGE_NONE;
node_object_prepare($new_node);

// add additional data about new node.

$new_node->field_custom_files[LANGUAGE_NONE][] = array($file);

node_submit($new_node);
node_save($new_node);

私はこれをテストしていませんが、問題が発生した場合はお知らせください。

于 2013-03-02T12:23:28.277 に答える