Тематическая форма Drupal Add Block через API форм - PullRequest
0 голосов
/ 06 мая 2010

Может кто-нибудь посоветовать мне настроить форму добавления блока? (/ Администратор / сборки / блок / добавить)

Я хочу скрыть «Настройки видимости для конкретного пользователя» и «Настройки видимости для определенной роли» от пользователей. Это то, что я получил до сих пор, но, очевидно, это неправильно, и я не могу понять, что это за массив. Кто-нибудь получил опыт по этому поводу?

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

Спасибо, H

РЕДАКТИРОВАТЬ - возможно, я не совсем понял - мне удобно использовать различные хуки форм из API, но моя проблема в этом случае заключается в том, что я не могу определить элементы массива для использования в моей функции. Модуль devel, кажется, не действует на странице блоков, а всплывающий блок themer не совсем понятен.

Ответы [ 3 ]

3 голосов
/ 06 мая 2010

In 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'].

EDIT:

Не трогай modules/block/block.admin.inc !! (Я только указывал, где я нашел имена полей формы). Скройте поля в вашем theme_add_block_form. Вместо того, чтобы оборачивать поля внутри div, вы можете написать $form['user_vis_settings']['#access'] = false;

0 голосов
/ 24 августа 2010

Это путь. Используя 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,
       );
      }
    }
0 голосов
/ 06 мая 2010
...