Php $match=TRUE-无法降低Drupal中的块可见性

Php $match=TRUE-无法降低Drupal中的块可见性,php,drupal,Php,Drupal,尝试仅在某些条件下为Drupal显示块-我尝试编写一些内容,如果内容类型是文章或是其中一个归档页面(格式/archive monthname)或新闻页面(/news),则允许使用$match=TRUE) 由于某些原因,它没有显示在任何所需的页面上 代码如下: <?php $match = FALSE; $types = array('article' => 1); if (arg(0) == 'node' && is_numeric(arg(1))) { $nid

尝试仅在某些条件下为Drupal显示块-我尝试编写一些内容,如果内容类型是文章或是其中一个归档页面(格式
/archive monthname
)或新闻页面(
/news
),则允许使用
$match=TRUE

由于某些原因,它没有显示在任何所需的页面上

代码如下:

<?php
$match = FALSE;
$types = array('article' => 1);
if (arg(0) == 'node' && is_numeric(arg(1))) {
  $nid = arg(1);
  $node = node_load($nid);
  $type = $node->type;
  if (isset($types[$type])) {
    $match = TRUE;
  }
}


switch (substr($_SERVER["REQUEST_URI"], 0) {

case "/archive-january":
$match = TRUE;
break;
case "/archive-february":
$match = TRUE;
break;
case "/archive-march":
$match = TRUE;
break;
case "/archive-april":
$match = TRUE;
break;
case "/archive-may":
$match = TRUE;
break;
case "/archive-june":
$match = TRUE;
break;
case "/archive-july":
$match = TRUE;
break;
case "/archive-august":
$match = TRUE;
break;
case "/archive-september":
$match = TRUE;
break;
case "/archive-october":
$match = TRUE;
break;
case "/archive-november":
$match = TRUE;
break;
case "/archive-december":
$match = TRUE;
break;
case "/news":
$match = TRUE;
break;
}
return $match;
?>
此处:
开关(substr($\u SERVER[“REQUEST\u URI”],0){
,您缺少一个结束括号

可能是问题之一



另外,
substr(ANYTHING,0)
只返回这个anythis,所以我认为它有点毫无意义。

您不需要在每个
案例中重复
$match=TRUE;
。只需保存所有案例,然后
$match=TRUE;中断;
一次即可。