테마 레이어를 사용하여 프로그래밍 방식으로 노드 티저를 렌더링하는 방법은 무엇입니까?


10

테마 레이어를 사용하여 프로그래밍 방식으로 노드 티저를 렌더링하는 방법은 무엇입니까?

답변:


20

node_view() 노드를 렌더링하기위한 표준 함수입니다.

$node = node_load(1);
$view = node_view($node, 'teaser');
$rendered = drupal_render($view);

node노드 모듈 (in node_theme())에 의해 정의 된 테마 가 있지만 실제로 사용 된 것을 본 적이 없습니다.


1
node_theme () 아닌가 테마 시스템이 요소에 .tpl.php 파일을 사용하고 전처리 기능을 허용합니까?
mpdonadio

네, 테마 레이어를 우회하는 것이 걱정됩니다. 내가 그렇게하면 칩 인을 원하는 다른 모듈은 할 수 없습니다. 적어도 나는 그것이 맞다고 생각합니까?
Lester Peabody

1
api.drupal.org/api/drupal/modules%21node%21node.module/function/… 을 분석 할 때 구현 코드를 보면라는 곳 에서 Drupal에게 사용하도록 알려주 $build += array(#theme속성이 있습니다. 테마 시스템. 틀 렸으면 말해줘. 방금 Drupal API를 '얻기'시작했습니다.
Lester Peabody

@ MPD 그래, 나는 그것을 잘 설명하지 않았다. 나는 단지 theme('node', ...이전 과 같은 전화를 본 적이 없다는 것을 의미했다 . 실제로는 자체를 render element대신 사용 하는 것으로 정의하기 때문에 작동하지 않습니다 variables.
Clive

에 자리 @Lester, 테마 기능의 '정상적인'방법 (전화 2 가지 방법이있다 theme('theme_name', $args)소위 사용하여 등을 render element들. hook_theme()문서 꽤 잘 설명, 그것은 100 % 직관적 아니지만 당신이 알면, 정말 유용합니다. 사용 node_view()의지를 테마 레이어를 우회하지 마십시오. 당신은 괜찮을 것입니다 :)
Clive
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.