J'ai créé mon propre module appelé "cssswitch". J'essaye de créer ma propre disposition html pour montrer la partie de forme d'admin du module. Je comprends comment utiliser le hook_form_alter() pour modifier les éléments du formulaire, mais j'ai besoin de créer l'ensemble du formulaire pour que certains champs apparaissent les uns à côté des autres. Il semble que j'ai besoin de quelque chose comme la vue frontale du nœud affiché avec theme_cssswitch_display(), mais pour la partie admin du nœud.mise en page en drupal depuis un module
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;
}
Merci pour toute aide
Merci de m'indiquer dans la bonne direction. Je sens que je l'ai presque maintenant, mais ma forme n'est pas thématisée avec la fonction dans mon module.J'ai ajouté le nom de la fonction de thème dans la fonction de formulaire comme ceci: $ form ['# theme'] = 'cssswitch_form'; fonction cssswitch_theme() { \t réseau de retour ( \t 'cssswitch_display' => array ( \t 'arguments' => array ('noeud'), \t), \t 'cssswitch_form' => array ( \t 'arguments' => array(), \t), \t \t); } function theme_cssswitch_form ($ form) { $ output = ' test 123'; $ output. = Drupal_render ($ form); return $ output; } – EricP
@EricP N'oubliez pas d'effacer le cache, c'est le problème le plus normal avec les fonctions de thème. – googletorp