管理我正在工作的网站的人员希望能够决定哪些区块放在哪里。在Drupal中已经有了一个很好的界面(从下拉列表中选择区域),但我想隐藏该用户的某些块。这些是他不应该走动的街区。用于网站管理员块管理的Drupal模块?
Afaik这是不可能通过权限。有没有一个模块允许细粒度控制什么块可以由谁来管理?我宁愿不写一个自定义界面...
感谢, 燕姿
管理我正在工作的网站的人员希望能够决定哪些区块放在哪里。在Drupal中已经有了一个很好的界面(从下拉列表中选择区域),但我想隐藏该用户的某些块。这些是他不应该走动的街区。用于网站管理员块管理的Drupal模块?
Afaik这是不可能通过权限。有没有一个模块允许细粒度控制什么块可以由谁来管理?我宁愿不写一个自定义界面...
感谢, 燕姿
采取这些区块分布的地区,并且将它们嵌入到你的模板使用module_invoke()
手动。
$block = module_invoke('module_name', 'block', 'view', 'block name or ID');
print '<h2>' . $block['subject'] . '</h2>';
print $block['content'];
也许给Blockqueue试试吗?我从来没有使用它,但它似乎涵盖了你的用例。
嗯,你可以创建这样一个简单的自定义模块(与您的自定义模块的名称替换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_)access administration pages
和administer blocks
,但不应该有view special blocks
测试上的Drupal 6.6,应该对其他6.x的版本(也许5工作。 x有一些修改)
在D7中工作也...略有修改,因为hoom_perm已成为hook_permission;)谢谢! – SomethingOn
这将如何帮助网站管理员管理这些块? – stef
对不起,我明白你的意思了:隐藏模板中的“不允许”块,得到它。 如果有另一个选项ID喜欢听到它,否则这是可以接受的答案 – stef