2010-05-06 2 views
0

Может ли кто-нибудь посоветовать мне настроить форму «Добавить блок»? (/ admin/build/block/add)Theming Drupal Добавить блочную форму через формы API

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

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

Спасибо, H

EDIT - возможно, я не совсем ясно - я comforable, используя различные формы крючки из API, но моя проблема в данном случае является то, что я не могу определить элементы массива, которые будут использоваться в моей функции. Модуль devel, похоже, не работает на странице блоков, а функция popup-блока для них меньше, чем ясна.

ответ

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

EDIT:

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

+0

Я didn ' я намерен сказать это! Я уточню свой ответ. – dusan

+0

Ницца, подбадривает Душана, не думал о том, чтобы смотреть туда. И да, не волнуйтесь, я бы не сделал там своих прав. Из моего сообщения должно быть ясно, что я все равно создавал тему template.php. Нет необходимости в отрицательном голосовании! – MrFidge

+0

баллы возвращены, никогда не показывать для новичков взломать код drupal :) – Nikit

0
+0

Да, это один из вариантов для выполнения тематики, но мне нужна помощь, фактически идентифицирующая элементы массива для ввода функции. Я не могу идентифицировать их с помощью модуля Devel, поскольку он, похоже, не действует на этой странице. – MrFidge

+0

dpm ($ form) в hook_form_alter, если у вас есть devel (print_r if not), вы увидите все внутренние данные для формы. Добавьте туда свои элементы формы и добавьте собственные подтверждения и отправьте вызовы. Изучите это более полезно: http://api.drupal.org/api/drupal/developer--topics--forms_api_reference.html/6 – Nikit

+0

Пробовал это уже - извините, должен был оставить это в примере кода :) – MrFidge

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, 
     ); 
     } 
    } 
Смежные вопросы