Я создал свой собственный модуль под названием «cssswitch». Я пытаюсь создать свой собственный html-макет для отображения части модуля администратора модуля. Я понимаю, как использовать hook_form_alter() для изменения элементов формы, но мне нужно создать весь макет формы, чтобы некоторые поля отображались рядом друг с другом. Кажется, мне нужно что-то вроде того, как у меня есть внешний вид узла, отображаемого с помощью theme_cssswitch_display(), но для административной части узла.вид формы в drupal с модуля
function cssswitch_form_alter(&$form, $form_state, $form_id) {
switch($form_id) {
case 'cssswitch_node_form':
$form['hour_start']['#prefix'] = '<div class="start-box">';
$form['ampm_start']['#suffix'] = '</div>';
$form['ampm_start']['#attributes'] = array("style" => "border-width:2px;");
break;
}
}
function cssswitch_theme() {
return array(
'cssswitch_display' => array(
'arguments' => array('node'),
),
);
}
// to display the view of the node
function theme_cssswitch_display($node) {
$output = '<div class="cssswitch-cssfilename">Filename: '.
check_plain($node->cssfilename). '</div>';
$output .= '<div class="cssswitch-time_start">Start: '.
check_plain($node->hour_start). ':'.check_plain($node->minute_start).' '.check_plain($node->ampm_start).'</div>';
$output .= '<div class="cssswitch-time_end">End: '.
check_plain($node->hour_end). ':'.check_plain($node->minute_end).' '.check_plain($node->ampm_end).'</div>';
return $output;
}
спасибо за любую помощь
Спасибо, что указал мне в правильном направлении. Я чувствую, что у меня почти есть это сейчас, но моя форма не связана с функцией в моем модуле.Я добавил имя функции темы в функцию формы следующим образом: $ form ['# theme'] = 'cssswitch_form'; функция cssswitch_theme() { \t возврата массива ( \t 'cssswitch_display' => Array ( \t 'аргументы' => массив ('узел'), \t), \t 'cssswitch_form' => Array ( \t 'arguments' => array(), \t), \t \t); } function theme_cssswitch_form ($ form) { $ output = ' тестирование 123'; $ output. = Drupal_render ($ form); return $ output; } – EricP
@EricP не забудьте очистить кеш, это самая обычная проблема с функциями темы. – googletorp