PHP block visibilityの書き方

ブロックの表示設定のところにPHPコードを書くことで動的な条件を指定することができます。このblock visibilityはブロックの設定以外に、CSS InjecterやJS Injecterのような拡張モジュールでも使われています。詳しい使い方は http://drupal.org/node/64135http://drupal.org/node/60317 も参考にしてください。

特定のユーザ名以外のときに有効にする(6.x)

ユーザ名が「aaa」か「admin」でないときに有効にする場合は以下のようにします。ユーザ名はグローバル変数の$userに入っています。

<?php
global $user;
if (!in_array($user->name, array('aaa', 'admin'))) {
  return true;
}
?>

タームごとにブロックの表示を切り替える(6.x)

表示されているノードのタームによってブロックの表示を切り替えたい場合は以下のように書きます。表示しているノードやtaxonomyの情報はarg()で取得します。$nodeを取りたいなら自分でnode_load()する必要があります。

<?php
$term_id = 1;

// taxonomy/term/id のページで表示したいなら 
if ((arg(0) == 'taxonomy') && (arg(1) == 'term') && (arg(2) == $term_id)) {
  return true;
}

// ノードのページで表示したいなら 
if ((arg(0) == 'node') && is_numeric(arg(1))) {
  $terms = taxonomy_node_get_terms(arg(1));
  foreach ($terms as $term) {
    if ($term->tid == $term_id) {
      return true;
    }
  }
}
return false;
?>

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2009年07月07日 23:16