2013-04-11 4 views
0

사용자 정의 모듈에서 간단한 폼의 테마 함수를 등록하려고했지만 테마 함수가 호출되지 않았습니다. 방금 기본 양식을 얻습니다.drupal 7 폼 테마 함수가 호출되지 않음

function theme_kss_membership_payment_form($variables) { 
    // Isolate the form definition form the $variables array 
    $form = $variables['form']; 

    $output = '<h2>' . t('Please enter your information below') . '</h2>'; 
      $output .= '<div id="personal_details">'; 

    $output .= drupal_render($form['description']); 
    $output .= drupal_render($form['submit']); 
    // Additional template output goes here.... 
    $output .= '</div>'; 

    $output .= drupal_render_children($form); 
    return $output; 
} 

답변

2

만, 솔루션에 매우 가까운 위치 :

function kss_membership_theme($existing, $type, $theme, $path){ 
    $items = array(); 
    $items['kss_membership_payment_form'] = array(
     'render element' => 'form', 
    ); 
    return $items; 
} 

이 양식 : 여기

내 hook_theme()의

/** 
* Returns the form for the second page of the payment process 
*/ 
function kss_membership_payment_form($form, &$form_state) { 
    $form['description'] = array(
    '#type' => 'item', 
    '#title' => t('We currently accept Paypal payments'), 
); 

    $form['submit'] = array(
    '#type' => 'submit', 
    '#value' => t('Submit'), 
    '#submit' => array('kss_membership_payment_form_submit'), 
); 

    $form['#theme'] = array('theme_kss_membership_payment_form'); 
    return $form; 
} 

여기에 테마 기능입니다 한 가지 문제가 있습니다.

테마 부름

$ 형태 [ '# 테마'] = 배열 ​​('theme_kss_membership_payment_form') 잘못;

당신은

$ 양식 [ '# 테마'] = 배열 ​​('kss_membership_payment_form')를 호출 할 필요가 있습니다;

그 후에는 admin => configuration => Performance => 캐시 지우기 버튼에서 캐시를 지워야합니다.

/** 
* Returns the form for the second page of the payment process 
*/ 
function kss_membership_payment_form($form, &$form_state) { 
    $form['description'] = array(
    '#type' => 'item', 
    '#title' => t('We currently accept Paypal payments'), 
); 

    $form['submit'] = array(
    '#type' => 'submit', 
    '#value' => t('Submit'), 
    '#submit' => array('kss_membership_payment_form_submit'), 
); 

    $form['#theme'] = array('kss_membership_payment_form'); 
    return $form; 
}