Submitknopf durch Bild ersetzen


Der Submit Button ist ziemlich hässlich. Es kann machmal wünschenswert sein, diesen mit einem Bild zu ersetzen. Ganz einfach in Drupal. Bitte dazu auf keinen Fall den Core Code verändern, sondern wie folgt vorgehen:

  1. Ein neues Modul erstellen.

  2. In dieses Modul folgende Funktion reinkopieren:

<!–?php
function hook_form_alter(&$form, $form_state, $form_id){
switch ( $form_id ) {
case 'search_block_form':
$form['submit'] = array (
'#type' => 'image_button',
'#value' => t('Search'),
'#src' => drupal_get_path('theme','newsdrum').'/images/login_search_button.gif',
);
break;
}
}
?>

Hier ein paar Erklärungen dazu: $form ist das ganze Formular als Array, $form_id, der Name es Formulares. Für jedes Formular, welches auf der Seite vorkommt, wird diese Funktion aufgerufen. Über das Switchstatement wird jetzt das richtige Formular abgepasst. In unserem Fall wird das Suchformular abgepasst. PS: hook muss durch den Modulnamen ersetzt werden.

Am Besten einfach mal das Develmodul installieren und dann dsm($form) machen. So, all diese Werte können verändert werden. Returnwert ist nicht nötig. Um das Formular zu ändern kann es ganz nützlich sein, wenn man sich mal die Form API anschaut.

In unserem Fall wird das submit Element verändert und zwar der #type auf image_button und dazu wird noch eine Source (#src) angegeben. Das wäre es dann eigentlich auch bereits schon.