「PHP block visibilityの書き方」の編集履歴(バックアップ)一覧はこちら
追加された行は緑色になります。
削除された行は赤色になります。
*PHP block visibilityの書き方
ブロックの表示設定のところにPHPコードを書くことで動的な条件を指定することができます。このblock visibilityはブロックの設定以外に、CSS InjecterやJS Injecterのような拡張モジュールでも使われています。詳しい使い方は http://drupal.org/node/64135 や http://drupal.org/node/60317 も参考にしてください。
#contents
**特定のユーザ名以外のときに有効にする(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;
?>