Доступ к значению поля в Drupal 7 на load_node в шаблоне - PullRequest
3 голосов
/ 03 июля 2011

В шаблоне для типа контента я загружаю узел из ссылки на узел.

Он загружается, и если я делаю print_r, я получаю это:

stdClass Object ( 
  [vid] => 40 
  [uid] => 14 
  [title] => Cover 
  [log] => 
  [status] => 1 
  [comment] => 0 
  [promote] => 1 
  [sticky] => 0 
  [nid] => 40 
  [type] => portfolio_image_main 
  [language] => en 
  [created] => 1309382711 
  [changed] => 1309382711 
  [tnid] => 0 
  [translate] => 0 
  [revision_timestamp] => 1309382711 
  [revision_uid] => 14 
  [field_portolio_image] => Array ( 
    [en] => Array ( 
      [0] => Array ( 
        [fid] => 5626 
        [alt] => 
        [title] => 
        [uid] => 14 
        [filename] => Cover.jpg 
        [uri] => public://Cover.jpg 
        [filemime] => image/jpeg 
        [filesize] => 147898 
        [status] => 1 
        [timestamp] => 1309382711 
      ) 
    ) 
  ) 
  [name] => jojo 
  [picture] => 0 
  [data] => a:1:{s:7:"contact";i:1;} 
) 

и я пытаюсь получить доступ к единственной переменной здесь:

$newImagePath1 = $newImage1->field_portfolio_image['en '][0]['filename'];

но пока ничего. Есть мысли?

Ответы [ 2 ]

2 голосов
/ 07 мая 2012

пожалуйста, попробуйте использовать ниже код

$keys = array_keys($arr[field_portolio_image][en]);
$arr[field_portolio_image][en][$keys][filename]; 
1 голос
/ 04 июля 2011

Существует вспомогательная функция для доступа к элементам поля на правильном языке пользователя (в противном случае вам придется жестко кодировать часть ['en']).

field_get_items ()

Таким образом, ваш код будет выглядеть примерно так:

$field_instances = field_get_info('node', $newImage1, 'field_portfolio_image');
// $field_instances should now be an array.
foreach ($field_instances as $field_instance) {
  print $field_instance['filepath'];
}
...