drupalのフォームオーバーライドテーマ機能
-
21-09-2019 - |
質問
私は小さなフォームを生成するモジュールを作成しました。 私はまた、標準的なテーマをオーバーライドし、テーマのフォームをする必要がある関数を作りました。 しかし、それはtheme_関数を呼び出していないいくつかの理由を形成します。私は何かを忘れているだろうか?
function mailinglist_menu() {
$items['mailinglist'] = array(
'title' => t('Beheer mailinglist'),
'page callback' => 'mailinglist_overzicht',
'access arguments' => array('access content'),
'type' => MENU_CALLBACK,
);
return $items;
}
function mailinglist_overzicht() {
return drupal_get_form('mailinglist_form');
}
function mailinglist_form($form_state) {
$form['to'] = array(
'#type' => 'fieldset',
'#title' => t('Aan'),
'#tree' => TRUE,
);
$form['to']['functies'] = array(
'#type' => 'checkboxes',
'#title' => t('Functies'),
'#options' => mailinglist_getFuncties(),
'#description' => t('Selecteer de functies die je wilt mailen.'),
);
return $form;
}
function theme_mailinglist_form($form) {
$output .= '<div class="foo" style="background-color: #000;">sdfsdfsdfdfs';
$output = drupal_render($form['to']['functies']);
$output .= '<div class="bar">';
$output .= '</div></div>';
$output .= drupal_render($form);
return $output;
}
解決
私はあなたがhook_themeを実装するために忘れてしまったと思います。これを追加してみてください。
function mailinglist_theme() {
return array(
'mailinglist_form' => array(
'arguments' => array('form' => NULL),
),
);
}
このコードを追加した後、あなたのテーマのレジストリを更新することを忘れないでください。
所属していません StackOverflow