告诉Drupal使用哪个主题函数

通过为一个表单声明#theme属性,你可以命令Drupal使用一个不匹配“‘theme_’+表单ID名字”格式的主题函数:

 
// Now our form will be themed by the function
// theme_formexample_alternate_nameform().
$form['#theme'] = 'formexample_alternate_nameform';
 
或者,你也可以让Drupal为一个表单元素使用一个专门的主题函数:
 
// Theme this fieldset element with theme_formexample_coloredfieldset().
$form['color'] = array(
    '#title' => t('Color'),
    '#type' => 'fieldset',
    '#theme' => 'formexample_coloredfieldset'
);
 
    注意,在前面的两种情况中,你在#theme属性中定义的函数必须是主题注册表中注册过的;也就是说,必须在一个hook_theme()实现中对其进行了声明。
 
注意 Drupal将在你设定的#theme属性的字符串前面添加前缀“theme_”,所以我们将#theme设置为formexample_coloredfieldset而不是theme_formexample_coloredfieldset,尽管后者是所要调用的主题函数的名字。为什么这样呢?请参看第8章。
 

老葛的Drupal培训班 Think in Drupal

Drupal版本: