我的主要博客页面(/博客)和各个博客页面本身都有一个块。
我希望该块继续显示在各个博客页面上的主要博客页面但不是。
例如,该块应显示在 - this page上,而不是this page。
块.PHP如下:
<?php
$path = isset($_GET['q']) ? $_GET['q'] : '<front>';
$link = url($path, array('absolute' => TRUE));
$findme = 'blog';
$pos = strpos($link, $findme);
if ($pos !== false) {
RETURN TRUE;
}
$node = node_load(arg(1));
if($node->type == 'blog') {
return TRUE;
}
?>
答案 0 :(得分:1)
转到/ admin / structure / blocks,搜索块的名称,配置,在Pages选项卡中,选择“仅列出的页面”,然后在文本区域中写下主要博客页面的标题
答案 1 :(得分:0)
不使用php过滤器选项,而是转到给定块的配置页面。
在可见性设置下,在&#39;页面内&#39;字段集。选择“仅在列出的页面上&#39;”。在下面的textarea中输入博客的路径,在您的示例&#39; blog&#39;中。 如果您希望此块仅显示在子页面上,则可以输入“博客/ *”#39;代替。
或者,如果这是一个以编程方式创建的块,则在hook_block_info的实现中。将以下键添加到块数组中。
'visibility' => BLOCK_VISIBILITY_LISTED,
'pages' => 'blog',
实施例
function hook_block_info() {
$blocks = array();
$blocks['example_block'] = array(
'info' => t('Example block'),
'status' => 1,
'region' => 'content',
'visibility' => BLOCK_VISIBILITY_LISTED,
'pages' => 'blog',
'cache' => DRUPAL_CACHE_GLOBAL,
'weight' => 3,
);
}