Suchblock anpassen
am 12.01.2012 - 10:50 Uhr in
Guten Tag zusammen,
bin noch recht neu bei Drupal (gestern erst mit angefangen). Habe wie gewohnt ein Template zusammengesetzt und wollte es nun in die Struktur von Drupal bringen. Bin allerdings das Templaten bei Typo3 und XTC gewöhnt. Versuche meistens eine möglichst saubere Struktur umzusetzen und unnötige divs und andere Elemente zu vermeiden.
So habe ich für die Suchfunktion
<div id="search">
<form id="form1" name="form1" method="post" action="">
<input type="text" name="textfield" value="Suchen..." id="textfield" />
<input type="image" src="images/magnifier.jpg" />
</form>
</div>vorgesehen und auch dementsprechend per CSS formatiert.
Drupal allerdings baut mir massenhaft divs mit ein, die ich eigentlich nicht brauche und auch nicht haben möchte.
<div class="content">
<form action="" method="post" id="search-block-form" accept-charset="UTF-8"><div>
<div id="search">
<div class="form-item form-type-textfield form-item-search-block-form">
<input onblur="if (this.value == '') {this.value = 'Suche';}" onfocus="if (this.value == 'Suche') {this.value = '';}" type="text" id="edit-search-block-form--2" name="search_block_form" value="Suche" size="15" maxlength="128" class="form-text" />
</div>
<div class="form-actions form-wrapper" id="edit-actions"><input type="image" id="edit-submit" name="submit" src="/images/magnifier.jpg" class="form-submit" /></div><input type="hidden" name="form_build_id" value="" />
<input type="hidden" name="form_token" value="" />
<input type="hidden" name="form_id" value="search_block_form" />
</div></div></form> </div>
</div>
</div>Habe in der template.php folgendes:
function themename_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == 'search_block_form') {
unset($form['search_block_form']['#title']);
$form['search_block_form']['#title_display'] = 'invisible';
$form_default = t('Search');
$form['search_block_form']['#default_value'] = $form_default;
$form['actions']['submit'] = array('#type' => 'image_button', '#src' => base_path() . path_to_theme() . '/images/magnifier.jpg');
$form['search_block_form']['#attributes'] = array('onblur' => "if (this.value == '') {this.value = '{$form_default}';}", 'onfocus' => "if (this.value == '{$form_default}') {this.value = '';}" );
}
}Zusätzlich habe ich auch noch die Datei search-block-form.tpl.php mit folgendem Inhalt angelegt:
<?php if (empty($variables['form']['#block']->subject)) : ?>
<?php endif; ?>
<?php print $search_form; ?>Hätte da zufällig wer einen Rat für mich, wie ich einen saubereren Code bekomme, ohne im Core was zu ändern?
Beste Grüße
Julsen
- Anmelden oder Registrieren um Kommentare zu schreiben

Moin Moin, ich bin mir gerade
am 12.01.2012 - 11:45 Uhr
Moin Moin,
ich bin mir gerade nicht ganz so sicher, was du eigentlich genau brauchst, bzw. was du genau verändern willst/musst.
MfG Leagis
Moin, also ich möchte
am 12.01.2012 - 12:04 Uhr
Moin,
also ich möchte eigentlich nur die Suche anpassen. Meiner Meinung nach ist bei der aktuellen Suche zu viel overhead mit drinnen. Ich möchte das Formular der Suche nur in einem div haben und nicht in mehreren verschachtelt.
Ist in Typo3 irgendwie alles viel einfacher, übersichtlicher und verständlicher.
Beste Grüße
Julsen
Du hast die Möglichkeit, es
am 12.01.2012 - 12:44 Uhr
Du hast die Möglichkeit, es mit den Feldern zu machen.
<div class="search_text">
<?php print $search['search_block_form']; ?>
</div>
<div class="search_symbol">
<?php print $search['actions']; ?>
</div>
<?php print $search['hidden'] ?>
So sieht es z.B. bei mir aus.
So habe ich nur noch den vom System gegebenen Suchblock-Div
Kann man nicht irgendwie die
am 12.01.2012 - 13:14 Uhr
Kann man nicht irgendwie die vom System gegebenen Suchblock-Divs überschreiben oder deaktivieren? Und irgendwie sehe ich bei mir die Suchbox dann auch nur wenn ich eingeloggt bin, obwohl diese bei den Blockeinstellungen auf sichtbar stehen
Suchblock
am 12.01.2012 - 13:45 Uhr
dann muss du die Rechte eben mal schnell anpassen.
Verstehe ich nicht du willst Drupal schon anpassen, und kennst nicht mal die normalste Einstellung. Befasse dich ein wenig mit dem was Drupal bittet, und wenn du das alles kannst, kannst du dich mit unötigen Div's beschäftigen.
Meiner Meinung nach stehen
am 12.01.2012 - 14:03 Uhr
Meiner Meinung nach stehen die Rechte für alle auf sichtbar? Habe jedenfalls nirgendwo sonst was zum Einstellen der Suchbox gefunden.

Unter /admin/people/permissions konnte ichs aber auch noch mal einstellen. Schade das es bei dem ersten keinen Override gibt.
Suchblock Sichtbarkeit
am 12.01.2012 - 14:07 Uhr
/admin/people/permissions/list
dev ver. online www.veiner-photoclub.lu
Danke, hatte auf nen Override
am 12.01.2012 - 14:42 Uhr
Danke, hatte auf nen Override gehofft.
Jetzt noch mal zu dem DIV Problem.
Mit
<?PHP print($search['hidden']); ?><?php print $search['search_block_form']; ?>
<?PHP print($search['actions']); ?>
kann ich ja im "search-block-form.tpl.php" die Suche auf das Minimum beschränken. Sieht dann wie folgt aus:
<form action="" method="post" id="search-block-form" accept-charset="UTF-8"><div>
<input type="hidden" name="form_build_id" value="form" />
<input type="hidden" name="form_id" value="search_block_form" />
<div class="form-item form-type-textfield form-item-search-block-form">
<label class="element-invisible" for="edit-search-block-form--2">Suche </label>
<input title="Geben Sie die Begriffe ein, nach denen Sie suchen." type="text" id="edit-search-block-form--2" name="search_block_form" value="" size="15" maxlength="128" class="form-text" />
</div>
<div class="form-actions form-wrapper" id="edit-actions">
<input type="submit" id="edit-submit" name="op" value="Suche" class="form-submit" />
</div>
</div>
</form>
Jetzt möchte ich allerdings die 3 DIVS entfernen, sodass nurnoch
<form action="" method="post" id="search-block-form" accept-charset="UTF-8"><input type="hidden" name="form_build_id" value="form" />
<input type="hidden" name="form_id" value="search_block_form" />
<label class="element-invisible" for="edit-search-block-form--2">Suche </label>
<input title="Geben Sie die Begriffe ein, nach denen Sie suchen." type="text" id="edit-search-block-form--2" name="search_block_form" value="" size="15" maxlength="128" class="form-text" />
<input type="submit" id="edit-submit" name="op" value="Suche" class="form-submit" />
</form>
über bleibt. Per template.php kann ich ja die Funktionen zusätzlich umschreiben, z.B. aus dem submit type ein image_button machen ($form['actions']['submit'] = array('#type' => 'image_button', '#src' => base_path() . path_to_theme() . '/images/magnifier.jpg');) oder eben in anderen tpl Dateien abändern. Nur leider finde ich keinen Befehl für die DIVS und auch nicht die tpl Datei, wo ich die DIVS entfernen kann.