我試圖通過主題表單構建表單元素。drupal 6表單模塊不調用hook_theme
我已經創建了一個帶有9個元素的類型#type textfield:a1,a2,a3,b1,b2,b3,c1,c2,c3。
我想將它們放入使用theme_table($ header,$ row)的表格中。
爲此,我創建了一個_theme(){}函數和另一個爲表單創建$ header和$ rows的函數,並使用drupal_render創建窗體。只有當我在窗體鉤子中返回$ form時,表單纔會呈現。但是,我真的不想在那裏渲染表單,但後來在drupal_render($ form)的theme_module中。但這並不實際。
function name_menu() {
$items['name/form'] = array(
'title' => t('Name'),
'page callback' => 'drupal_get_form',
'page arguments' => array('name_form'),
'access callback' => 'user_access',
'type' => MENU_CALLBACK,
);
return $items;
}
function name_theme() {
return array('name_form' => array('arguments' => array('form' => NULL),),);
}
function theme_name_form($form){
$output = '',
$header = array(
array('data' => t('Header1')),
array('data' => t('Header2')),
array('data' => t('Header3')),
);
$rows = array(
array($form['a1'],$form['b1'],$form['c1']),
array($form['a2'],$form['b2'],$form['c2']),
array($form['a3'],$form['b3'],$form['c3']),
);
$form['items'] = array(
'#type' => 'markup', '#value' => theme_table($header,$rows),
);
$output .= drupal_render($form); //form rendered
}
function name_form(&$form_state) {
$form['a1'] = array('#type' => 'textfield');
$form['a2'] = array('#type' => 'textfield');
$form['a3'] = array('#type' => 'textfield');
$form['b1'] = array('#type' => 'textfield');
$form['b2'] = array('#type' => 'textfield');
$form['b3'] = array('#type' => 'textfield');
$form['c1'] = array('#type' => 'textfield');
$form['c2'] = array('#type' => 'textfield');
$form['c3'] = array('#type' => 'textfield');
$form['#theme'] = 'theme_name_form';
}
我把所有代碼將這些提供給有類似問題的人員。 – ingrid 2013-02-27 06:36:29