2011-10-24 2 views
0

노드 필드의 값을 얻기 위해 드루팔 6에서 당신이 할 것 :드루팔 6 -> 드루팔 7 마이그레이션 필드 싶게의

$node->field_ajax_override[0]['value'] 

는 지금은 다음과 같습니다

$node->field_ajax_override['und'][0]['value'] 

이 단지가 될 것입니다 마이그레이션 할 고통이 있습니까? 아니면 더 좋은 방법이 있습니까? [ '놀이']를 통해 변수에 액세스하는 나쁜 이유

+0

행운이 있나요? –

답변

1

당신은 (다른 방법 사이) 대신 드루팔 7 echo render($content['field_ajax_override']);을 사용할 수 있습니다

기사 Rendering Drupal 7 Fields the right way는 설명합니다. 아래 발췌 부분을 참조하십시오.

는 우선, [ '싶게'] 요소 드루팔 7 (그 이상에 가보 Hojtsy에서이 문서를 참조)의 필드 제이션의 부분이고; 해당 값에 직접 액세스하면 모든 종류의 다국어 환경에서 문제가 발생할 수 있습니다. 우우.

직접 필드 값에 액세스하면 의 일반적인 필드 마크 업에 따라 올 수있는 모든 정보가 누락됩니다. 을 당신이 에게 루프의 일종을해야 할 것 다중 값 필드에서 모든 값을 원하는 경우 -

(가) [0] [safe_value] 명시 적으로 필드의 첫 번째 값에 액세스

.

일부 필드 (예 : 노드 참조)에는 sanitisation을 고려하지 않고 쉽게 인쇄 할 수있는 값인 값만 safe_value 요소가 없습니다. 이것은 위험합니다. 노드 참조 필드 에 위험한 데이터가 포함되어있는 것은 아니며 (특히 nid 일뿐), 특히 신규 개발자의 경우에는 도움이되는 습관이 아니기 때문에 위험합니다. 다른 필드 '값'유형은 매우 위험 할 수 있습니다.

이 기사는 당신이 이미 렌더링하고있는 노드에 액세스 할 경우 특히 render($content['field']);가 node.tpl.php 파일에 예를 들어, 충분합니다 field_view_field('node', $node, 'field_name');의하지만, 대부분의 경우에 사용을 옹호에 간다 또는 그것의 변형 중 하나입니다.

+0

"$ node = node_load (1);을 수행하는 경우"- "$ load_node = node_load (1);를 수행해야하는 경우에만 볼 수 있습니다. 그런 다음 field_view_field ('node', $ loaded_node, 'field_name'); 해당 필드에 액세스하십시오. –