$ match = TRUE - 无法减少Drupal中的块可见性

时间:2013-07-31 21:26:16

标签: php drupal

尝试仅在某些条件下显示Drupal的块 - 我试图在内容类型为文章的情况下写出允许$match = TRUE的内容,或者它是其中一个存档页面(格式) /archive-monthname)或新闻页面(/news)。

出于某种原因,它没有显示在任何所需的页面上。

以下是代码:

<?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;
?>

1 个答案:

答案 0 :(得分:0)

此处:switch(substr($_SERVER["REQUEST_URI"], 0) {,您错过了一个结束括号。

可能是其中一个问题。


此外,substr(ANYTHING, 0)只会返回此任意内容,所以我认为这有点毫无意义。