滚动
在特定内容类型的页面上显示区块
有时我们需要让某个区块只显示在特定内容类型的页面上。Drupal 的标准区块可见性设置只能根据路径或用户角色进行控制。通过启用 PHP 模式并在区块的可见性设置中添加以下代码,我们可以让区块只在指定内容类型的页面上显示。
<?php $match = false; if (arg(0) == 'node' && is_numeric(arg(1))) { $nid = arg(1); $node = node_load(array('nid' => $nid)); $type = $node->type; if (isset($types[$type])) { $match = TRUE; } } if (substr($_SERVER["REQUEST_URI"], 0, 6) == '/page/') { $match = TRUE; } if (substr($_SERVER["REQUEST_URI"], 0) == "/node/add/page") { $match = TRUE; } return $match; ?>
例如,上述代码会让区块仅显示在内容类型为 Page 的页面以及“添加 Page”页面上。变量 $types
是一个包含内容类型机器名称的数组,例如:
$types = array('page' => 'page', 'news' => 'news');