modificación de campos de formulario de edición de un nodo en Drupal

Copiado de

http://carlos.rinconsanchez.com/como-modificar-el-formulario-de-un-tipo…

Ponemos en el fichero template.php del theme lo siguiente:

<php>
function phptemplate_node_form($form) {
drupal_set_message("Reescribiendo el formulario de " . $form['#node']->type);
if($form['#node']->type) {
if(file_exists(path_to_theme() . '/forms/form-' . $form['#node']->type . '.tpl.php')) {
drupal_set_message("Encuentra el fichero y lo reescribe");
return _phptemplate_callback('forms/form-' . $form['#node']->type, array('form' => $form));
}
else {
return theme_node_form($form);
}
}

}
</php>

Luego creamos un directorio forms en el directorio del theme y allí ponemos las plantillas de nuestros formularios con nombres que sean: form-nombre_del_tipo_de_contenido.tpl.php. Por ejemplo, si tenemos un tipo de contenido que se llama articulos el formulario se llamará form-articulos.tpl.php

Dentro de ese archivo tenemos la variable $form que es un array con cada uno de los campos del formulario. Lo esencial de ese archivo es lo siguiente:
<php>
<?php
print drupal_render($form);
?>
</code>
Esto imprime todo el formulario. Pero por ejemplo nosotros podemos imprimir primero un campo y luego imprimir el resto:

</php>
<php>
<?php
print '<div class="hola">' . drupal_render($form['trozo_del_formulario') . '</div>';
print drupal_render($form);
?>
</php>

Etiquetas