主题Drupal通过表单API添加阻止表单

时间:2010-05-06 12:55:25

标签: php drupal drupal-6 drupal-fapi

有人可以建议我自定义添加阻止表单吗? (/管理/构建/块/添加)

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

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

谢谢, ħ

编辑 - 也许我不清楚 - 我很熟悉使用API​​中的各种表单挂钩,但我在这种情况下的问题是我无法识别要在我的函数中使用的数组元素。 devel模块似乎没有在块页面上起作用,而且弹出块的东西不太清楚。

3 个答案:

答案 0 :(得分: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中的字段。您可以编写$form['user_vis_settings']['#access'] = false;

,而不是将字段包装在div中

答案 1 :(得分:0)

答案 2 :(得分: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,
       );
      }
    }