troty_master
troty_master

Reputation: 315

How to override non-theme function in Drupal

I need to change the function that dictates the behavior of my Search form. I want the text to be "GO" instead of "Search" and the input type to be search instead of text.

Now, I already done that by editing the search.module, but is there a more convenient way? I want the theme to be 1 package deal and ready to go, not to have to edit other files from the Drupal installation.

It is for Drupal v.7.16

Thank you!

Upvotes: 1

Views: 78

Answers (2)

Xano
Xano

Reputation: 62

For more background information about Tanis' solution, see the API documentation for hook_form_alter() and hook_form_FORM_ID_alter().

Upvotes: 2

Bryan Herbst
Bryan Herbst

Reputation: 67259

In your theme's template.php you can override any part of the search form by implement MYTHEME_form_alter.

For your example, it might look something like this:

function MYTHEME_form_alter(&$form, &$form_state, $form_id) {
    if ($form_id == 'search_block_form') {
        // Change form submit text
        $form['actions']['submit']['#value'] = t('GO!');

        // Change type to 'search'
        $form['search_block_form']['#type'] = 'search';
    }
}

Upvotes: 3

Related Questions