2010-12-14 6 views
0

여러 cck 텍스트 필드에 '표시'확인란을 추가하려고합니다. 아래 코드는 필드를 추가하지만 양식을 제출할 때 양식을 확인할 때 $ form_state 배열의 값이 표시되지 않습니다.프로그래밍 방식으로 CCK 텍스트 필드 변경

내가 잘못 할 수 있습니까?

<?php 

/** 
* Implementation of hook_form_FORM_ID_alter(). 
*/ 
function leghist_form_paleghist_node_form_alter(&$form, &$form_state) { 

    //Add function to manipulate cck node form 
    $form['#after_build'][] = 'leghist_cck_after_build'; 
} 


/** 
* Implementation of hook after_build(); 
*/ 
function leghist_cck_after_build ($form, &$form_state) { 

    //Add display option to titles 
    foreach (element_children($form['field_lg_pop_names']) as $key) { 

    $form['field_lg_pop_names'][$key]['display'] = array(
     '#type' => 'checkbox', 
     '#title' => t('Display'), 
     '#process' => array('leghist_display_process') 
    ); 

    } 

    return $form; 
} 

/** 
* Implementation of hook element_process 
*/ 
function leghist_display_process($element) { 
    dsm('yuk'); 
} 

?> 

답변

0

도 볼 아웃을하는 함정에 hook_form_alter() and CCK fields를 읽고 나는 본질적으로 그들이 제공 정확히 무엇을하고 있어요 때문에 hook_form, 나는 여전히 문제가 계속되는 한 CCK에 변경 사용하는 경우에 대한 후.

나는 결국 다른 방법을 시도하기로 결정, 다음과 같은 변화는 나를 위해 일한 :

<?php 

//Changed from hook_form_FORM_ID_alter to hook_form_alter 
/** 
* Implementation of hook_form_FORM_ID_alter(). 
*/ 
function leghist_form_alter(&$form, &$form_state, $form_id) { 

    if ($form_id == 'paleghist_node_form') { 
    //Add function to manipulate cck node form 
    leghist_cck_alter($form); 

    } 

} 


/** 
* Adds Element to $form 
*/ 
function leghist_cck_alter (&$form) { 

    //Add display option to titles 
    foreach (element_children($form['field_lg_pop_names']) as $key) { 

    $form['field_lg_pop_names'][$key]['display'] = array(
     '#type' => 'checkbox', 
     '#title' => t('Display'), 
     '#process' => array('leghist_display_process') 
    ); 

    } 

} 

/** 
* Implementation of hook element_process 
*/ 
function leghist_display_process ($element) { 

    return $element; 
} 
0

#after_build 기능에 나쁜 생각을 같은 형태로되어 변경하면. 양식 요소는 페이지에 표시 될 수 있지만 양식의 일부로 처리되지 않습니다.

사용자 정의 모듈에 대해 똑 바른 형식 변경 및 높은 모듈 가중치로 원하는 것을 얻을 수 있어야합니다.

관련 문제