滚动
在特定内容类型的页面上显示区块
有时我们需要让某个区块只显示在特定内容类型的页面上。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');