hook_form_alter es tu amigo aquí.
En archivo template.php de su tema puede añadir prefijos y sufijos a las formas, los elementos de formulario, etc.
A continuación se muestra un ejemplo de un sitio que hice recientemente.
function bhha_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == 'user_login') {
$form['#prefix'] = '<div class="loginForm">';
$form['#suffix'] = '</div>';
$form['name']['#title'] = Null; // Change text on form
$form['name']['#description'] = Null; // Change text on form
$form['name']['#attributes'] = array('placeholder' => t('username'));
$form['name']['#size'] = '30';
$form['pass']['#title'] = Null;
$form['pass']['#description'] = Null; // Change text on form
$form['pass']['#attributes'] = array('placeholder' => t('password'));
$form['pass']['#size'] = '30';
//$form['actions']['submit']['#value'] = t('password');
$form['actions']['submit'] = array('#type' => 'image_button', '#src' => base_path() . path_to_theme() . '/images/Login.png');
$form['links']['#markup'] = '<a class="user-password" href="'.url('user/password').'">' . t('Forgot your password?') . '</a>'; // Remove Request New Password from Block form
$form['links']['#weight'] = 540;
}
}
Inspeccione su código para obtener el formulario que desea para la id del tema. Reemplace los guiones bajos con guiones y debería poder usar el ejemplo anterior para hacer lo que quiera.
En su forma más básica que supongo que un ejemplo sería:
function THEME_NAME_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == 'FORM_ID') {
// Adds a wrapper div to the whole form
$form['#prefix'] = '<div class="loginForm">';
$form['#suffix'] = '</div>';
// Adds a wrapper div to the element NAME
$form['name']['#prefix'] = '<div class="formRow">';
$form['name']['#suffix'] = '</div>';
}
}
¿Has creado un formulario personalizado o quieres diseñar uno existente? Pruebe este [tutorial] (http://www.jaypan.com/tutorial/themeing-drupal-7-forms-including-css-and-js) o [este] (http://www.digett.com/blog/26/05/2011/how-theme-comment-form-drupal-7) –
He creado mi propio formulario personalizado usando la API de formulario pero no puedo darle el estilo que quiero porque necesito agrupe una carga de elemento, es decir, detalles personales (nombre, dirección, teléfono, etc., etc.). Básicamente quiero deslizar partes del formulario en la pantalla, cuando cada parte se completa, es por eso que necesito agregar un marcado HTML adicional. –
gracias por la respuesta. El primer tutorial enviado por JAYPAN funciona bien después de liberar tuve que reiniciar el módulo después de ciertos cambios. –