-
Notifications
You must be signed in to change notification settings - Fork 0
drupal.block.visibility.control
404 edited this page Sep 14, 2010
·
1 revision
如何在drupal中控制block如何显示
选择: 当下列 PHP 代码返回 TRUE 时显示(PHP-模式,专家适用
<?php
$node = node_load(arg(1));
if($node->type == "zuowen_shida_xieshou" || $node->type == "forum" || $node->type == "zuowen_cansai" || $node->type == "zuowen_ziyou_shangchuan"){
return TRUE;
}
双引号内的就是content type中的内容类型对应的machine name。
node_load(arg(1))中的arg(1)应该是path中的第2个参数。也就是说,如果当前的uri是 example.com/node/1234 那么path就是 node/1234,arg从0开始,因此arg(0)对应node,arg(1)对应1234。把1234传给node_load,就相当于取得了1234这个nid的node对象。该对象信息中会包括这个node的内容类型是什么。在这里我默认uri是node/nid这种形式。并不是所有站点都是这样。因此这个方法不同用?
node_load的api文档: http://api.drupal.org/api/function/node_load/6
<?php
$node = node_load(arg(1));
$type = $node->type;
return in_array($type,array('ctype1','ctype2','ctype3'));
?>
http://drupal.org/node/134425#comment-3003814
其中ctype1是我们要的content type的machine name。