The editing form of a node is themed using theme('node_form'), which is implemented by the theme_node_form() function in Drupal core's node module and can be overridden by adding a <theme_name>_node_form() function in the theme's template.php file. However, this is less convenient and less powerful than taking advantage of Drupal's templating system. Why not be able to override by placing a node-form.tpl.php file in the theme's folder and allow modules to use preprocess functions for customization? This module allows exactly that.

If you want, take a peek at the module's default node-form.tpl.php implementation, which includes documentation you might find useful before deciding if you want to use this module.

This module also lets you have type-specific tpl files. For example, a node-form-story.tpl.php file if you want to customize the node editing form for story nodes only. However, to take advantage of this, you need to have a copy of a default node-form.tpl.php in the same folder as the type-specific one. This is due to drupal's way of handling template suggestions.

As an alternative to this module, you might want to check out the node form columns module, which provides a different API for themers and also a pretty cool UI for customizing the node form entirely through point-and-click. For now, however, these two modules are entirely incompatible with each other -- you cannot have both enabled on the same site. Hugo (the maintainer of node form columns) and I hope to have a solution to this at some point.

Note if upgrading from beta1 to beta2: Thanks to a recommendation from webchick, the tpl file is now more themer-friendly. However, it's not backwards compatible with beta1, so when you upgrade, you'll also need to update the node-form.tpl.php file in your theme's folder, if you have one there.

Beta2 introduced a critical bug #437114: Author Information Form Element disappears and author of nodes is allways "guest", so upgrading to beta3 is strongly encouraged.

Project Information