web-dev-qa-db-ja.com

フィールドAにフィールドBの内容を入力する

複数のフィールドを持つコンテンツタイプがあります。 phone1およびphone2。

このコンテンツタイプのインスタンスの作成時に、別のタイプのフィールド「table_field」に最初の2つのフィールドの値を自動的に入力したいと思います。

何が最善の方法でしょうか?トークンを使用してこれを実行できますか?お時間をいただき、ありがとうございます。これは私の最初のプロジェクトです。巨大な学習曲線、そしてそれを楽しんでいます。

3
Punchy

Drupal 6では、そのために Computed Field を使用できますが、残念ながら、まだ完全には準備ができていませんDrupal 7はまだです。

hook_node_presave を実装するカスタムモジュールを作成して、「フィールドB」の値に基づいて「フィールドA」の値を設定することもできます。このメソッドを選択する場合は、hook_form_alterを実装して、フィールドAをノードフォームから非表示にすることもできます。

4
marcvangend

今計算フィールドはDrupal 7バージョンです。動的フィールドと比較して、それが良いです。この投稿をチェックしてください。 計算フィールドを使用してフィールド値を計算Drupal 7

そして、これが hook_node_presave の使用例です。

function MODULE_NAME_node_presave($node){
  if ($node->type === 'NODE_TYPE'){
    $node->FIELD_COMPUTED['und'][0]['value'] = 
    $node->FIELD_COMPUTED_A['und'][0]['value'] +
    $node->FIELD_COMPUTED_B['und'][0]['value'];
  }
}
3
Hana J. Chang