2011-03-18 2 views
0
내가이 파일에 직접 사용할 수있는 변수와 객체 알아야 할 방법

(예 : $ 노드, $ 기간이 ....). 감사합니다.드루팔 template.php

+0

에 덤프 기능을 추가하세요 drupal.stackexchange.com입니다. – kiamlaluno

답변

1

에 대한 문서를 살펴보면 그리고 거기 드루팔 질문에 대해 사용자 정의 모듈

/* 
* Custom dump function 
* 
* @param $vars 
* An string or array containing the data. 
* @param $keys 
* If true6 function will return keys of $vars array 
* @return a dump of $vars as drupal message. 
*/ 
function _vdump($var, $keys = FALSE) { 
    if($keys){ 
    drupal_set_message('<pre>' . print_r(array_keys($var), 1) . '</pre>'); 
    } 
    else { 
    drupal_set_message('<pre>' . print_r($var, 1) . '</pre>'); 
    } 
} 
+0

감사합니다. 그러나 출력 결과를 볼 수있는 페이지를 모르겠습니다. – enjoylife

+0

모든 페이지에서 결과를 볼 수 있습니다. – dobeerman

0

난 당신이 테마를 수정/만드는 방법에 대해 얘기 같은데요. standard Drupal globals의 대부분을 사용할 수 있습니다. get_defined_vars을 사용하여 다른 변수가 정의되어 있는지 확인할 수 있습니다.

+0

감사합니다. template.php에서 $ term, $ node 객체를 사용할 수 있습니까? – enjoylife

+0

저는 그렇게 생각하지 않습니다. 나는 당신이 [page.tpl.php] (http://drupal.org/node/11812) 또는 [node.tpl.php] (http://drupal.org/node/11816) – Thomas4019

0

template.php 파일에는 이러한 변수가 없습니다. $node, $terms을 page.tpl.php 또는 node.tpl.php에서 찾으십니까?

예인 경우 해당 변수는 preprocess 함수에서 생성됩니다.

모듈은 이러한 파일에서 직접 사용할 수있는 새 변수를 정의하기 위해 이러한 훅을 구현하거나 template.php에서 새로운 변수를 정의 할 수도 있습니다.

것은 template.php

/** 
* Override or insert PHPTemplate variables into the templates. 
*/ 
function phptemplate_preprocess_node(&$vars) { 
    _vdump(get_defined_vars(), 1); 
} 

/** 
* Override or insert PHPTemplate variables into the templates. 
*/ 
function phptemplate_preprocess_page(&$vars) { 
    _vdump(get_defined_vars(), 1); 
} 

에서 preprocess

+0

을 사용해야한다고 생각합니다. ($ node_taxonomy) { if ($ node_taxonomy) { foreach ($ node_taxonomy AS $ term) { $ links [$ term-> vid] [ 'taxonomy_term_']이 코드는 template.php에있는 누군가의 코드입니다. $ term-> tid] .... 그는 $ term 객체를 직접 사용할 수 있습니다. – enjoylife