0

任何人都可以建议我自定义“添加块”表单吗?(/admin/build/block/add)

我想对用户隐藏“用户特定的可见性设置”和“角色特定的可见性设置”。这就是我到目前为止所得到的,但显然它不正确,我无法弄清楚数组是什么。有人有这方面的经验吗?

function theme_add_block_form($form) {
    $form['roles']['#prefix'] = '<div class="hidden">';
    $form['roles']['#suffix'] = '</div>';
    return drupal_render($form);
}

谢谢,

编辑-也许我不清楚-使用API​​​​中的各种表单钩子我很舒服,但在这种情况下我的问题是我无法识别要在我的函数中使用的数组元素。开发模块似乎没有在块页面上起作用,并且主题弹出块的事情不太清楚。

4

3 回答 3

3

modules/block/block.admin.inc, 函数block_admin_configure:

$form['user_vis_settings'] = array(
    '#type' => 'fieldset',
    '#title' => t('User specific visibility settings'),
    '#collapsible' => TRUE,
  );

(...)

$form['role_vis_settings'] = array(
    '#type' => 'fieldset',
    '#title' => t('Role specific visibility settings'),
    '#collapsible' => TRUE,
  );

只是试图隐藏$form['user_vis_settings']$form['role_vis_settings']

编辑:

不要碰modules/block/block.admin.inc!!(我只是指着我找到表单字段名称的地方)。隐藏theme_add_block_form. 不用将字段包装在 div 中,您可以编写 $form['user_vis_settings']['#access'] = false;

于 2010-05-06T16:27:36.087 回答
0

http://api.drupal.org/api/function/hook_form_alter/6

于 2010-05-06T13:32:23.693 回答
0

这是要走的路。使用http://api.drupal.org/api/function/hook_form_alter/6作为另一个答案中的说法。您需要在 costum 模块中编写此代码。

<?php   
 function module_name_form_alter(&$form, $form_state, $form_id) {
      if ($form_id == 'block_admin_configure') {
       $form['user_vis_settings'] = array(
        '#type' => 'fieldset',
        '#title' => t('User specific visibility settings'),
        '#collapsible' => TRUE,
        '#access' = FALSE,
       );
       $form['role_vis_settings'] = array(
        '#type' => 'fieldset',
        '#title' => t('Role specific visibility settings'),
        '#collapsible' => TRUE,
        '#access' = FALSE,
       );
      }
    }
于 2010-08-24T19:02:23.497 回答