我有這個代碼爲durpal搜索表單實現了hook_form_alter,並在那裏添加了幾個新元素。我也在上述表單的template.php中添加了主題覆蓋代碼。除此之外,我還在那裏傳遞表單元素。一切工作正常 - 增加了新元素,使用主題;但是,這是問題所在。當我嘗試使用drupal_render呈現每個表單元素時,它不會顯示任何內容。我已經檢查過$ form數組的內容,它具有所有必要的表單數據。這是除了我的代碼 -drupal_render不渲染表單元素
mymod.module
function mymod_form_alter(&$form, $form_state, $form_id) {
switch ($form_id) {
case 'search_theme_form':
$form['prop_type'] = array(
'#type' => 'select',
'#default_value' => 'Selection A',
'#options' => array("Selection A","Selection B"),
'#attributes' => array('class'=>'Bold'),
);
break;
}
}
的template.php -
function mytheme_theme() {
return array(
'search_theme_form' => array(
'arguments' => array('form' => NULL),
'template' => 'search_myblock_form',
),
);
}
而且也有一個奇怪的問題,這是中,devel的帝斯曼也說不清楚顯示$ form中的內容。我不得不使用print_r首先獲取字符串值並將其提供給dsm進行顯示。值得一提的是,在我的主題模板中,有這個變量($ search_form)和所有我的表單元素呈現。因爲我想用不同的方式來表達個人元素的主題,所以我不能使用它;我喜歡自己呈現個人元素。
'dsm()'遵循權限。沒有「訪問開發信息」權限的用戶不會看到dsm()輸出。 – berkes 2010-10-25 09:37:35
我以管理員身份登錄。所以訪問權不是問題。 – Andrew 2010-10-26 14:02:27