2014-06-20 6 views
0

후크 테마를 구현할 때 의미론을 완전히 파악하기 어려워 결과적으로 전처리/프로세스 기능을 만드는 방식을 이해하는 데 어려움이 있습니다. 나는 (기술적으로) 다음 코드가/define /을 구현하고 테마 함수를 출력해야한다고 기술하는 "The Definitive Guide to Drupal 7"을 사용하고 있습니다.드루팔 (Drupal Preprocess/Hook Confusion)

/** 
* Implements hook_theme(). 
**/ 

<?php 
// core/module_urtheme() - kiwi is the themesname 
function node_kiwi(){ 
return array(
'addBlock' => array(
    'block' => 'content' 
), 
); 
} 
//define theme_functionName/ should it be theme_addBlocK? 
function kiwi_addBlock($block){ 
return '<div class="kiwi-block">'.$block.'</div>';} 
//use 
print theme('addBlock',$block) 

내 문제는 구문 전처리 기능에 관해서 나의 완전한 혼란에있다가 있습니다

<?php 
/** 
    * Implements template_preprocess_THEMEHOOK(). 
    */ 
    function HOOK_preprocess_THEMEHOOK(&$variables) { 
    // Changes go here. 
    } 

가 궁극적으로 내가 모두 HOOKTHEMEHOOK이 자리 표시 자입니다 알고 있어요,하지만이 HOOK에 대한 교체해야 모듈/템플릿/테마? THEMEHOOK - 함수의 이름/테마 /? 위의 테마 훅 구현을 비교해 보았지만, 더 혼란 스러웠습니다. 내가 전에 말했던 순진한 실수에 대해 미리 사과드립니다. 모든 도움이 될 것입니다 :).

답변

1

내가 아는 한, HOOK는 모듈 또는 테마의 이름이고 THEMEHOOK은 hook_theme() 내부에 정의 된 후크이며 일반적인 것은 "블록", "노드"... 등입니다. 예를 들면 다음과 같습니다. Yourmodule_preprocess_node (& $ 변수).

+1

글자 그대로, node.module을 자세히 읽고 읽은 후에도 똑같은 결론에 도달했지만, 내 생각을 재확인 해 주셔서 감사합니다. D ... 나는 팬시링하기 전에 좀 더 시도해야했습니다. P – Bakajuice