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

ber*_*ert 2 drupal pathauto drupal-blocks

我创建了一个名为node-mynode.tpl.php的自定义模板.每当请求mynode类型的节点时,都会自动使用node-mynode.tpl.php.

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

问题:如何为特定内容类型分配块?

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

nhy*_*ted 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
   }
?>
Run Code Online (Sandbox Code Playgroud)

这应该工作....

  • 旁注:自Drupal 4.7以来,这已经成为可能.有关使用PHP进行块可见性和大量代码示例的更多信息,请参阅http://drupal.org/node/60317. (3认同)