Drupal Preprocess / Hook混乱

时间:2014-06-20 18:56:39

标签: php drupal-7 drupal-modules drupal-theming drupal-hooks

我很难完全掌握实现钩子主题的语义,从而理解创建预处理/过程功能的方式。我正在使用" Drupal 7"的权威指南,它(技术上)声明以下代码应该实现/定义/输出主题函数。

/**
* 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 个答案:

答案 0 :(得分:1)

据我所知,HOOK是模块或主题的名称,而THEMEHOOK是hook_theme()中定义的钩子,典型的是“块”,“节点”......等等。例如:Yourmodule_preprocess_node (安培; $变量)。