Searchform in Template-Datei angepasst: Einfache Anführungszeichen werden als ' ausgegeben
Eingetragen von tobi-berlin (857)
am 25.11.2010 - 18:28 Uhr in
am 25.11.2010 - 18:28 Uhr in
Hallo zusammen,
ich wollte das Standard-Suchformular anpassen, es soll sich im Suchfeld ein Text befinden, der verschwindet, sobald in das Suchfeld hineingeklickt wird. Ich hatte hier (http://drupal.org/node/45295) nun die dazugehörige Theme-Funktion gefunden und es kappt auch alles soweit, nur bei den beiden Eventhandlern gibt es Probleme. Aus folgendem Teil der Theme-Funktion...
// Set a default value for text inside the search box field.
$vars['form']['search_theme_form']['#value'] = t('Artikel, Marke, Sonstiges');
// Add a custom class and placeholder text to the search box.
$vars['form']['search_theme_form']['#attributes'] = array(
'onfocus' => "if (this.value == 'Artikel, Marke, Sonstiges') {this.value = '';}",
'onblur' => "if (this.value == '' {this.value = 'Artikel, Marke, Sonstiges';}");
... wird folgender Output, wenn die Seite aufgerufen wird (Attribute des Input-Tags):
value="Artikel, Marke, Sonstiges" onfocus="if (this.value == 'Artikel, Marke, Sonstiges') {this.value = '';}" onblur="if (this.value == '' {this.value = 'Artikel, Marke, Sonstiges';}"
Kann mir vielleicht jemand sagen, wie das kommt? Vielen Dank schon mal im Voraus für die Hilfe!
Viele Grüße,
Tobias
- Anmelden oder Registrieren um Kommentare zu schreiben
Jemand eine Idee?
am 26.11.2010 - 20:37 Uhr
Jemand eine Idee?
noch mal gepusht
am 01.12.2010 - 08:44 Uhr
noch mal gepusht
Hab Dir mal hier den
am 01.12.2010 - 08:53 Uhr
Hab Dir mal hier den Quellcode gepostet, den ich derzeit in einem Projekt verwende. Dieser funktioniert auch eiwandfrei
<?php
/**
* Override search_theme_form
*/
function THEMENAME_preprocess_search_theme_form(&$vars) {
$vars['form']['search_theme_form']['#title'] = '';
$vars['form']['search_theme_form']['#value'] = 'Suchbegriff';
$vars['form']['search_theme_form']['#attributes']['onblur'] = 'if (this.value == \'\') {this.value = \'Suchbegriff\';}';
$vars['form']['search_theme_form']['#attributes']['onfocus'] = 'if (this.value == \'Suchbegriff\') {this.value = \'\';}';
unset($vars['form']['search_theme_form']['#printed']);
$vars['search']['search_theme_form'] = drupal_render($vars['form']['search_theme_form']);
$vars['search_form'] = implode($vars['search']);
}
?>
Danke für den Tipp, aber das
am 01.12.2010 - 12:02 Uhr
Danke für den Tipp, aber das mit dem maskieren hatte ich auch schon probiert, hat die gleiche Wirkung: die " ' " werden zu '
Hat das vielleicht etwas damit zu tun, dass ich das Formular im Template über
<?php print $search_box; ?>
aufrufe?
Viele Grüße,
Tobias
In meiner page.tpl.php habe
am 01.12.2010 - 12:05 Uhr
In meiner page.tpl.php habe ich das einfach als div-Block ausgegeben, sollte also eigentlich keine Probleme machen.
<?php if (!empty($search_box)): ?>
<div id="search-box"><?php print $search_box; ?></div>
<?php endif; ?>