Drupal 7:如何从组件的prepocess函数中检索节点的内容类型?

时间:2017-11-21 06:07:58

标签: php drupal drupal-7

我有一个组件要求我获取组件出现的节点的内容类型。我看到有一个功能可以让我:

node_type_get_name($node)

但是,当我在组件预处理钩子中使用此功能时,例如:

 my_component_preprocess_my_component_theme(&$variables, $node) {
   dpm(node_type_get_name($node));
 }

我一无所获。

如果我dpm($node);我得到了组件的标题,而不是节点。

有谁知道如何检索节点的内容类型?

1 个答案:

答案 0 :(得分:3)

您可以像这样加载当前节点:

<?php
$node = menu_get_object();
if ( !empty($node) ) {
  print "Have node";
}
?>

因此,您已经加载了完整节点,可以检查它的类型($node->type)以及您需要的任何其他内容。

https://www.drupal.org/forum/support/post-installation/2010-07-28/how-to-get-node-object-or-nid-for-the-current-page

如果你没有它所意味的节点,当然,当前页面不是节点(可能是视图或某个自定义页面......)。