HTML- Code um Formularelemente entfernen
Eingetragen von axelf (110)
am 11.12.2009 - 18:06 Uhr in
am 11.12.2009 - 18:06 Uhr in
Hi,
ich erzeuge per Form-API ein Formular und gebe es über eine theme-funktion aus. jedoch wird um das Formularelement selber immer noch sehr viel Quellcode erzeugt, den ich nicht unbedingt brauche. Wie kann ich einfach nur ein bzw. erzeugen ohne diese ganzen div's drumherum?
- Anmelden oder Registrieren um Kommentare zu schreiben
Die <div>-Tags stören doch niemanden
am 11.12.2009 - 18:15 Uhr
Wie kann ich einfach nur ein bzw. erzeugen ohne diese ganzen div's drumherum?
Ich verstehe wohl diesen Satz nicht ganz richtig. Warum willst Du die
<div>-Tags
loswerden? Die sind doch für das Layouten mit CSS optimal.Gruss Roger
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen (1. Posting vom Thema) <==> das erleichtert das finden von Lösungen
Gruss Roger
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen (1. Posting vom Thema) <==> das erleichtert das finden von Lösungen
Schreibe Deine eigen
am 11.12.2009 - 18:38 Uhr
Schreibe Deine eigene Theme-Funktion, dann kannst Du genau das an html-Code ausgeben, was Du möchtest.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
eine eigene theme-Funktion
am 11.12.2009 - 19:10 Uhr
eine eigene theme-Funktion habe ich ja schon, aber trotzdem wird standardmässig immer noch Quelltext um die Formularelemente erzeugt.
Ein einfaches ... bekomme ich irgendwie nicht hin da steht immer noch etwas um die Elemente.
Rabbit69 schrieb Ich
am 11.12.2009 - 19:12 Uhr
Ich verstehe wohl diesen Satz nicht ganz richtig. Warum willst Du die
<div>-Tags
loswerden? Die sind doch für das Layouten mit CSS optimal.Gruss Roger
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen (1. Posting vom Thema) <==> das erleichtert das finden von Lösungen
Naja es sind aber immer so viele verschachtelte divs, die erzeugt werden, so viel braucht man nicht, daher wollte ich das etwas anpassen.
Dann arbeitest Du in Deiner
am 11.12.2009 - 20:07 Uhr
Dann arbeitest Du in Deiner Theme-Funktion mit weiteren Theme-Funktionen, die Du dort aufrufst. Das mußt Du allerdings nicht. Du kannst auch alle Elemente Deiner Form dort von Hand ausgeben, indem Du den benötigten HTML-Code in eine Ausgabe Variable schreibst und dann diesen von Dir erstellten HTML-Code zurückgibst. Ist zwar etwas mehr Aufwand, aber geht durchaus.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
ja, ich verwende
am 11.12.2009 - 22:16 Uhr
ja, ich verwende drupal_render($form['formfield']). Ich kann leider grad nicht ausprobieren, aber du meinst ich sollte nur $form['formfield'] schreiben? Bekomme ich dann nicht nur das Array zurück was ich zur Generierung des Feldes angegeben habe?
Nein, drupal_render darfst
am 11.12.2009 - 23:57 Uhr
Nein, drupal_render darfst du natürlich nicht verwenden, sondern Du mußt für dieses Formfeld den ganzen HTML-Code selbst schreiben. Du beklagst ja gerade, das drupal_render zuviel ausgibt. Es ist auch nichts mit $form['formfield']. Daraus nimmst Du Dir nur die nötigen Informationen. Du mußt selbst loslegen mit z.B. (in der Annahme, daß $output bereits existiert)
$output .= '<div class="...." id=".....">\n';
$output .= '<label for="...">mein Label: </label>\n';
$output .= '<input type="text" maxlength="40" name="feld1" id="edit-feld1" size="20" value="" class="..." />\n';
$output .= '</div>\n';
Dann hast Du auch nur das im Code der Webseite. ($output ist der Return Wert am Ende der theme-function)
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
ok, danke für deine hilfe.
am 12.12.2009 - 04:45 Uhr
ok, danke für deine hilfe. jetzt hab ichs verstanden :-)