Как запросить поле cck в drupal?

У меня есть два типа контента (job_post и приложение), связанные с использованием узлов ссылки на узел + ссылки на узел URL-адреса. Когда я нажимаю ссылку в узле job_post, создается новый узел приложения, чтобы кандидаты могли заполнить свое заявление о приеме на работу. Моя цель - автоматически скопировать содержимое поля электронной почты cck из указанного узла job_post в поле электронной почты 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 возвращает пустое значение.

Когда я вношу в код следующие изменения:

//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]) в новое поле?

Большое спасибо!


person user512826    schedule 03.12.2010    source источник


Ответы (1)


Я могу что-то здесь неправильно понять, но Крумо, кажется, говорит вам, что $item_node->field_job_email[0] не имеет свойства 'view'.

Вы пробовали $item_email = $item_node->field_job_email[0]['safe'];?

person RotHorseKid    schedule 03.12.2010
comment
Это сработало! Большое спасибо за вашу огромную помощь (как вы уже догадались, я все еще новичок в PHP и Drupal). также работает с $ item_email = $ item_node- ›field_job_email [0] ['email']; - person user512826; 03.12.2010
comment
Содержимое «безопасного» свойства было пропущено через функции очистки PHP и Drupal, поэтому вы всегда должны использовать это свойство, чтобы быть в безопасности. - person RotHorseKid; 04.12.2010