2010-12-03 12 views
2

ノード参照+ノード参照URLノードを使用して2つのコンテンツタイプ(job_postとapplication)がリンクされています。 job_postノード内のリンクをクリックすると、新しいアプリケーションノードが作成され、候補者は自分のジョブアプリケーションを記入できます。私の目標は、参照されたjob_postノードからアプリケーションノードのcck電子メールフィールドにcck電子メールフィールドの内容を自動的にコピーすることです。 drupalのcckフィールドを照会する方法は?

これを達成するために

は、私は、次のモジュールを作成しました:

// Implementation of hook_perm() 
     function mymodule_perm() { 
return array('copy cck field'); 
    } 

// Implementation of hook_node_api  

function mymodule_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL){ 
switch ($op) { 

//if the node is inserted in the database 

     case 'prepare': 
     //if node is a job application 
    if($node->type == 'application') { 

//get nid from referenced node (using url information  
    $item_nid = arg(3); 

//load and build node content 
    $item_node = node_load($item_nid); 
    $item_node = node_build_content($item_node); 

//retrieve data from cck email field in referenced job post node  
          $item_email = $item_node->field_job_email[0]['view']; 

//display result in website to check if value is correctly loaded 
          dsm($item_email); 

残念ながら、私はこのコードDSM戻り、空の値を取得するとき。

私は、コードを次のように変更しますとき:私はkrumoで、以下の結果を得

//retrieve data from cck email field in referenced job post node  
          $item_email = $item_node->field_job_email; 

//display result in website to check if value is correctly loaded 
          dsm($item_email); 

を:

... (Array, 1 element) 
    0 (Array, 2 elements) 
      email(string, 9 characters) [email protected] 
      safe (string, 9 characters) [email protected] 

CCK電子メールアドレスフィールドの内容をロードする方法上の任意の提案([email protected])を新しいフィールドに追加しますか?

ありがとうございました!

答えて

0

ここでは何かが間違っているかもしれませんが、には 'view'プロパティがありません。

$item_email = $item_node->field_job_email[0]['safe'];を試しましたか?

+0

これは機能しました。私はまだPHPとDrupalの新機能だと分かっていたので、あなたの大きな助けに感謝します。 $ item_email = $ item_node-> field_job_email [0] ['email']でも動作します。 – user512826

+0

'安全な'プロパティの内容は、PHPとDrupalのサニタイズ関数を介して実行されていたので、常にセキュアな側に置くようにしてください。 – RotHorseKid

関連する問題