我有一个名为tf_decor的自定义模块。我从来没有看到调试语句,我不知道为什么。我已经尝试清除缓存(管理员/设置/性能),但它没有帮助。基本上我要做的就是在表格中放一张表。
function tf_decor_order_form($form_state)
{
//form elements
}
function theme_tf_decor_order_form($form)
{
watchdog(WATCHDOG_DEBUG, "HERE 2"); //This is NOT being called
}
function tf_decor_theme($existing, $type, $theme, $path) {
watchdog(WATCHDOG_DEBUG, "HERE 1"); //This is being called
return array(
'tf_decor_order_form' => array(
'arguments' => array('form' => NULL),
),
);
}
答案 0 :(得分:0)
对于Drupal 6我有同样的问题,通常的解决方案是清除缓存。但是这个解决方案并没有为我解决。
我为模块代码使用不同的文件。这些文件在我的.module文件中的hook_menu()中调用。在这些文件中,我使用了主题钩子函数'theme_tf_decor_order_form($ form)'。它没有被召唤。
解决方案是仅移动此函数:将theme_tf_decor_order_form($ form)函数移动到.module文件。清除了缓存并且它有效。