管理我正在工作的网站的人希望能够决定哪些区块在哪里。在Drupal中有一个很好的界面(从下拉列表中选择区域),但我想隐藏这个用户的某些块。这些是他不应该四处走动的障碍。
Afaik通过权限无法做到这一点。是否有一个模块允许对谁可以管理哪些块进行细粒度控制?我宁愿不写自定义界面......
谢谢, 燕姿
答案 0 :(得分:3)
好吧,您可以创建一个这样的简单自定义模块(显然,将my_module替换为自定义模块的名称):
function my_module_perm()
{
return array('view special blocks');
}
function my_module_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == 'block_admin_display_form') {
if(!user_access('view special blocks')) {
$special_blocks = array( ); // Specially hidden blocks go here
foreach($special_blocks as $block) {
unset($form[$block]);
}
}
}
}
然后:
$special_blocks
数组中(它基本上是块的div减去block_的id)access administration pages
和administer blocks
,但不应拥有view special blocks
在Drupal 6.6上测试过,应该适用于其他6.x版本(可能还有5.x,只需要一些修改)
答案 1 :(得分:0)
将这些区域移出区域,然后使用module_invoke()
手动将它们嵌入到模板中。
$block = module_invoke('module_name', 'block', 'view', 'block name or ID');
print '<h2>' . $block['subject'] . '</h2>';
print $block['content'];
答案 2 :(得分:-1)
也许试试Blockqueue?我从来没有使用它,但它似乎涵盖了你的用例。