In this example, we are theming Drupal form different from its
default layout. Suppose we have a search form with two fields search
textbox and category selectbox. We are assuming that our module name is “search“.
Step 1. Create search form using Drupal Form API.
function search_form() { $form['str'] = array( '#type' => 'textfield', '#size' => '32', ); $form['category'] = array( '#name' => t('category'), '#type' => 'select', '#options' => array('0' => t('All'), '1' => t('Bars'), '2' => t('Restaurants')), ); $form['submit'] = array( '#type' => 'submit', '#value' => t('Search'), ); return $form; }
Step 2. Register our theme in Drupal theme registry using hook_theme().
function search_theme() { global $theme; return array( 'search_form' => array( 'arguments' => array('form' => NULL, 'theme' => $theme), 'template' => 'search-form', ), ); }
Step 3. Create search-form.tpl.php file to theme this search form.
<table cellspacing="0"> <tr> <td class="container-inline"><strong><?php print t('Search');?></strong> <?php print drupal_render($form['str']); ?></td> <td class="container-inline"><strong><?php print t('Category');?></strong> <?php print drupal_render($form['category']); ?></td> <td><?php print drupal_render($form['submit']); ?></td> </tr> </table> <?php print drupal_render($form); ?>