我正在尝试在查看特定类型的节点时运行一些自定义代码。我以前用nodeapi实现的一些代码。这在Drupal 7中工作正常,但是由于我在ctools页面管理器中覆盖了node_view页面,因此不会触发。

function mymodule_node_view($node, $view_mode, $langcode) {
  if($node->type=='webform') {
    drupal_set_message('test');
    // actual code will go here
  }
}

是否可以使用其他核心功能?还是我没有找到的ctools页面管理器 Hook ?

我可能可以在某个地方的预处理主题中执行一些代码,但这并不是最好的选择。

最佳答案

除了使用预处理功能 THEME_preprocess_panels_pane()外,您还可以使用 hook_ctools_render_alter()

查看此用法示例:http://drupal.org/node/1233570#comment-4808224

附加阅读:

  • http://drupalcontrib.org/api/drupal/contributions!ctools!ctools.api.php/function/hook_ctools_render_alter/7
  • http://drupal.org/node/1359630
  • 10-04 15:06