14 Jun 2009 One Room: Submit-Button verschieben
Dirk hätte gern den Submit-Button im Kommentarformular von One Room verschoben. Ich kann den Wunsch nachvollziehen und halte das durchaus auch für eine sinnvolle Verbesserung – werde es aber dennoch in der „offiziellen“ Zip-Datei des Ports nicht umsetzen. Es widerspricht einfach meinem Prinzip, einen Port möglichst originalgetreu umsetzen zu wollen.
Ich gebe Dirk also keinen Fisch, zeige ihm (und allen anderen, die das eventuell auch stört) aber gerne, wie man angelt. Die folgende Anleitung funktioniert übrigens analog auch für das Kontaktformular, Hinweise dazu am Ende.
Die Vorlagedatei, die das Kommentarformular erzeugt, heißt commentform.tpl. Gucken wir uns dort den Code genauer an, stellen wir fest, dass das Formular im wesentlichen durch zwei <div> „aufgeteilt“ wird: .left-sidebar und .form-content. Wir müssen also den Teil des Formulars, den wird verschieben wollen, eigentlich nur aus dem einen <div> in den nächsten bewegen. Was also erzeugt den Submit-Button?
<p><input type="submit" name="serendipity[submit]" value="{$orsubmit}" tabindex="5" /></p>
<p><input type="submit" id="serendipity_preview" name="serendipity[preview]" value="{$CONST.PREVIEW}" tabindex="6" /></p>Die erste Zeile erzeugt den eigentlichen Submit-Button, die zweite einen weiteren, welcher das Formular aber nicht absendet, sondern lediglich „ans System sendet“, damit eine Vorschau des Kommentars erzeugt werden kann.
Den zu verschiebenden Button inklusive des einschließenden <p></p> schneiden wir an der urprünglichen Stelle im Formular aus und setzen ihn … ja, wohin eigentlich? Meines Erachtens macht es Sinn, den Button unter eventuell angezeigte Anweisungen und CAPTCHA zu setzen. All das fügt die Zeile
{serendipity_hookPlugin hook="frontend_comment" data=$commentform_entry}in das Kommentarformular ein, wir schieben den Submit-Button also zwischen dieser Zeile und das folgende </div> ein. Setzt man diese Änderungen analog in der Datei plugin_contactform.tpl um, ändert sich das Kontaktformular in s9 analog.





Das hat bestens funktioniert. Vielen Dank!