0

特定の条件下でのみ 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;
?>
4

1 に答える 1

0

ここ: switch(substr($_SERVER["REQUEST_URI"], 0) {、閉じ括弧がありません。

問題の一つかもしれません。


また、substr(ANYTHING, 0)これは何でも返すだけなので、ちょっと無意味だと思います。

于 2013-07-31T21:31:15.620 に答える