Drupal:将块分配给特定的内容类型

时间:2010-04-20 19:52:49

标签: drupal drupal-blocks pathauto

我制作了一个名为node-mynode.tpl.php的自定义模板 每当请求mynode类型的节点时,则node-mynode.tpl.php 自动使用。

但是,现在用户希望在这种情况下看到特定的菜单块。

问题: 如何将块分配给特定的内容类型?

提示:我已经开始查看Pathauto的URL别名了。 我怀疑一个解决方案可能就是朝这个方向发展。

3 个答案:

答案 0 :(得分:7)

在Drupal 6中,您可以配置块的可见性设置。单击管理员后端中块旁边的“配置”链接,然后按照以下步骤操作 -

1)在“页面特定的可见性设置”选项卡下选择“显示以下PHP代码是否返回TRUE(仅限PHP模式,仅限专家)”选项。

2)输入以下PHP代码,该代码检查当前节点的节点类型并相应地返回TRUE -

<?php 
   if( arg(0) != 'node' || !is_numeric(arg(1)) )
   { return FALSE;
   }

   //load a fully-populated Drupal node object
   $temp_node = node_load(arg(1));

   if( $temp_node->type == 'mynode' )       //check the node type
   {   return TRUE;    //display block
   }
?>

这应该有效....

答案 1 :(得分:3)

您可以使用上下文模块

答案 2 :(得分:1)

为您的所有mynode类型节点提供一个以/mynode开头的自动别名,并使用该块的页面特定可见性设置,仅显示在以/mynode/*开头的页面上。