2010-05-06 3 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

편집 - 나는 API에서 다양 한 형태의 후크를 사용하여 comforable 해요,하지만이 경우 내 문제는 내가 식별 할 수 있다는 것입니다 - 아마도 내가 분명하지 않다 내 함수에서 사용할 배열 요소. devel 모듈은 블록 페이지에서 작동하지 않는 것처럼 보이고 테마 팝업 블록은 명확하지 않습니다. modules/block/block.admin.inc에서

답변

3

, 기능 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;

+0

I didn ' 그 말하려고한다! 나는 내 대답을 분명히 할 것이다. – dusan

+0

멋진 두산, 두산을 응원하는 것을 생각하지 않았습니다. 그리고 그래, 거기에 내 편집을하지 않을 것이라고 걱정하지 마세요, 그것은 내 template.php 테마 template.php 함수를 만드는 것이 분명해야합니다. 부정적인 투표를 할 필요가 없습니다! – MrFidge

+0

포인트가 반환되었습니다. 초보자 용으로 drupal 코드를 해킹하지 마십시오. :) – Nikit

0
+0

그래, 테마를 수행하기위한 하나의 옵션이지만 실제로 배열의 요소를 식별하여 기능을 추가하는 데 도움이 필요합니다. Devel 모듈을 사용하여 해당 페이지에서 작동하지 않는 것으로 나타 났으므로이를 식별 할 수 없습니다. – MrFidge

+0

dpm ($ form) in hook_form_alter devel (print_r이 아닌 경우)을 사용하면 양식의 내부 데이터를 모두 볼 수 있습니다. 양식 요소를 추가하고 자체 유효성 검사 및 호출을 추가하십시오. 자세한 내용은 다음을 참조하십시오. 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, 
     ); 
     } 
    }