【问题标题】:Drupal Preprocess/Hook ConfusionDrupal 预处理/钩子混淆
【发布时间】:2014-06-20 18:56:38
【问题描述】:

我很难完全掌握实现钩子主题的语义,因此难以理解创建预处理/处理函数的方式。我正在使用“The Definitive Guide to 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 - 函数的名称/主题/?我尝试比较上面的主题挂钩实现,但这让我更加困惑。 对于我可能犯/说过的任何幼稚错误,我提前道歉。任何和所有的帮助将不胜感激:)。

【问题讨论】:

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


    【解决方案1】:

    据我所知,HOOK是模块或主题的名称,而THEMEHOOK是在hook_theme()内部定义的钩子,典型的有“block”、“node”...等。例如:Yourmodule_preprocess_node (&$变量)。

    【讨论】:

    • 是的,在进一步阅读并查看 node.module 之后,实际上刚刚得出了同样的结论,但感谢您再次确认我的想法:D ...我应该在恐慌之前再尝试一点:P
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-01
    • 2017-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多