2011-07-03 4 views
3

콘텐츠 유형에 대한 템플릿에서 노드 참조에서 노드를로드하고 있습니다. 나는 인 print_r을 할 경우템플릿의 load_node에서 Drupal 7의 필드 값에 액세스

IT 부하와 나는이 얻을 :

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'];

하지만 지금까지 아무것도. 이견있는 사람?

답변

1

사용자의 올바른 언어로 필드 항목에 액세스하는 도우미 기능이 있습니다 (그렇지 않으면 [ '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']; 
} 
+0

감사를 사용 해보세요! 코드를 다음과 같이 변경했습니다 : $ field_instances = field_get_items ('node', $ newImage1, 'field_portfolio_image'); // $ field_instances는 이제 배열이어야합니다. foreach ($ field_instances as $ field_instance) { print $ field_instance [ 'filename']; } 오류를 던지는 것을 멈추지 만 여전히 값을 인쇄하지는 않습니다. – doctorstrange

+0

당신이 devel 모듈을 가지고 있다면 (매우 권할 만하다.)'krumo' 함수를 사용할 수있다. 그래서'print $ field_instance [ 'filepath']'는'krumo ($ field_instance [ 'filepath'])'가 될 것입니다. 이것은 훨씬 안정적입니다. 때로는 무언가가 '인쇄'(예 : 템플릿 언어 이외의 것을 반환하는 함수)인지 여부를 알 수 없기 때문입니다. – theunraveler

2

하는 코드 아래

$keys = array_keys($arr[field_portolio_image][en]); 
$arr[field_portolio_image][en][$keys][filename]; 
관련 문제