Page 1 of 1

Formular-Template von Formbuilder anpassen

Posted: Tue Mar 10, 2009 9:31 pm
by mw1972
ich möchte das Formulartemplate von Formbuilder anpassen.

Wo kann man ein benutzerdefiniertes Template hinzufügen? Finde das nirgends.

Konkret stört mich die automatische Bezeichnung des tags. das kann man nirgends verstellen.

ich möchte das Formular mit YAML http://www.yaml.de/de/dokumentation/css-bausteine/formularbaukasten.html

aufbauen. Brauche dazu eigentlich nur an bestimmten Stellen Klassen setzen.

Das passt aber leider nicht so wie ich will, denn standardmäßig arbeitet der Formbuilder mit 1000 divs ...

also: wie und wo kann man das Template anpassen?

Re: Formular-Template von Formbuilder anpassen

Posted: Wed Mar 11, 2009 6:29 am
by antibart
mw1972 wrote:

also: wie und wo kann man das Template anpassen?
Unter dem Reiter  "Formular-Template" ... wie der Name schon vermuten lässt. Wichtig ist, dass alle smarty-relevante Tags und Variablen bleiben. Mit dem HTML drum herum kannst Du machen, was Du willst.

Re: Formular-Template von Formbuilder anpassen

Posted: Thu Mar 12, 2009 7:48 pm
by mw1972
Wo kann ich im Formbuilder dem -Tag, das standardmäßig vom Modul immer
eine ID erhält zusätzlich eine Klasse zuweisen?

Im Backend kann man das nirgends verstellen. Es muss aber doch irgendwo im Modul eine php-Datei sein, wo man das einstellen kann.

Re: Formular-Template von Formbuilder anpassen

Posted: Thu Mar 12, 2009 8:12 pm
by NaN
mw1972 wrote: Danke. Die Frage war aber nicht WO, sonder WIE!
Es tut mir unendlich leid, dass antibart sich nicht dazu hat hinreißen lassen Deine Arbeit zu machen.
Wie man das Formbuilder-Template YAML-tauglich machen kann, kann ich Dir leider auch nicht so genau sagen, da ich nicht mit CSS-Frameworks arbeite.
Wir helfen hier wirklich gerne, aber, wie Cyberman schonmal richtig formulierte, leisten wir hier meistens "Hilfe zur Selbsthilfe".
Wenn Du etwas nicht verstehst, dann frag einfach.
Aber bitte höflich.

Nun zu Deinem Problem:

Wenn Du in einem Template den Tag {get_template_vars} einfügst, dann siehst Du alle verfügbaren Variablen inklusive deren Inhalte.
Somit kannst Du Dir ganz genau ausgeben lassen wie die Variable heißt, deren Ausgabe Du evtl. entfernen möchtest bzw. was genau z.B. in der Variable {$fb_form_header} so alles drinsteht.
mw1972 wrote: Beispiel: ich möchte, dass im Tag eine CSS-Klasse eingefügt wird. Ich finde aber den Tag im Formulartemplate garnicht, sprich der steht explizit garnicht drin.
Doch, allerdings gehört zum form-Tag auch das action-Attribut.
Und das beinhaltet eine dynamisch generierte URL.
Daher wird eine Variable namens {$fb_form_start} verwendet, die all das enthält, was zum Absenden des Formulars nötig ist:
...
{* and now the form itself *}
  {$fb_form_start}
...
  {$fb_form_end}
Ich habe bisher immer einen Bogen um den Formbuilder gemacht.
Gerade weil er eben nicht so einfach zu handhaben ist.
Ich weiß jetzt nicht, ob es auch eine Variable gibt, die z.B. nur die URL ohne Form-Tag beinhaltet.
Falls ja, dann kannst Du Dir den Form-Tag so selber basteln:

Code: Select all

<form action="{$die_formular_url}" class="Deine_Klasse">
Wie gesagt, schau Dir dazu mal die Ausgabe des {get_template_vars}-Tags an.

Falls es keine solche Variable gibt, dann pack das Ganze doch in ein mit Deiner Klasse und greife im Stylesheet dann mit

Code: Select all

div.deine-klasse form {...}
darauf zu.
Aber genau das macht der Formbuilder bereits damit:

Code: Select all

<div{if $css_class != ''} class="{$css_class}"{/if}>...</div>
Ob irgendeins der Elemente im Formular dann ebenfalls in ein gepackt wird, steht im Formbuilder-Template z.B. hier:
{if $entry->needs_div == 1}
              required == 1 || $entry->css_class != '' || $entry->valid == 0} class="
                    {if $entry->required == 1}required{/if}
                    {if $entry->css_class != ''} {$entry->css_class}{/if}
                    {if $entry->valid == 0} fb_invalid{/if}
                    "
              {/if}
              >
{/if}
...
{if $entry->needs_div == 1}
             
            {/if}
Ich weiß jetzt nicht, ob man das im Formbuilder als Eigenschaft der einzelnen Elemente zuweisen kann, oder ob das Modul das selber entscheidet.

Ich glaube nicht, dass der Formbuilder unbedingt YAML-tauglich ist bzw. dass sich die Probleme allein nur mit dem Modifizieren des Templates lösen lassen. Das Problem ist meiner Meinung nach, dass die Elemente alle lediglich mit {$entry->input} ausgegeben werden. Die CSS-Klassen erhalten sie alle durch die sie umgebenden divs.
Was ich eigentlich schade finde, zumal man die CSS-Klassen und IDs relativ einfach mit den zuständigen Core-Funktionen des CMS auch mit in die Ausgabe der Variablen integrieren könnte.
Eventuell sollte man dies dem Entwickler mal vorschlagen, damit sich das Modul auch problemlos mit CSS-Frameworks verwenden lässt.

Re: Formular-Template von Formbuilder anpassen

Posted: Thu Mar 12, 2009 8:18 pm
by NaN
Hey, wenn Du nochmal Deine Beiträge änderst, während ich antworte, dann... :D

Mal im ernst, wäre es nicht einfacher die Stylesheets an den Formbuilder anzupassen als umgekehrt?
Anstatt Du Dich nun durch das Template und die Smarty-Abfragen kämpfst könntest Du doch auch einfach die entsprechenden Styles im CSS ändern, oder?

Re: Formular-Template von Formbuilder anpassen

Posted: Fri Mar 13, 2009 1:56 pm
by mw1972
Hallo NaN,

danke für die ausführliche Antwort. Ich habe nicht gesehen, dass du gerade antwortest, als ich meinen Beitrag geändert habe.

Hab ihn angepasst, weil ich denke, dass kürzere Beiträge eher eine Antwort bekommen als längere.

Für etwaige verbale Entgleisungen entschuldige ich mich. War sicher nicht so gemeint.

Zu deiner Lösung: meist fällt es einem ein, wenn man grade nicht dran denkt.

Ich habe nun in der Tat das Stylesheet leicht modifiziert, und zwar derart, dass ich statt
form.yform
einfach
form div.yform
gesetzt habe.

Und alles war problemlos möglich. Manchmal denkt man einfach zu kompliziert.
Das CSS des Formbuilders passt eigentlich bis auf wenige Dinge sehr gut in den Formularbaukasten von YAML.

ich werde mir aber auf alle Fälle mal auch Lösung 1 ansehen, denn ich möchte CMSMADESIMPLE und was dahinter steckt
schließlich auch kapieren ...

Eine Frage am Rande: kennst du dich mit Silverstripe aus? soll ja "der Komet am CMS Himmel sein" ...?

Re: Formular-Template von Formbuilder anpassen

Posted: Fri Mar 13, 2009 2:42 pm
by antibart
Verdammt - verbale Entgleisungen gegen mich und ich hab sie verpasst  :'( ...
Dabei wollte ich doch zumindest bei diesen Teil der Frage behilflich sein..
mw1972 wrote:

also: wie und wo kann man das Template anpassen?
Egal .. Schwamm drüber .. was auch immer da stand ...

..

Re: Formular-Template von Formbuilder anpassen

Posted: Fri Mar 13, 2009 9:34 pm
by NaN
War ja nix schlimmes.
Nur dieses "Will ne Lösung! Keine Nachschlagewerke."
Egal.
War gestern etwas genervt.

Re: Formular-Template von Formbuilder anpassen

Posted: Tue Mar 17, 2009 10:13 pm
by cyberman
mw1972 wrote: Das CSS des Formbuilders passt eigentlich bis auf wenige Dinge sehr gut in den Formularbaukasten von YAML.
Wenn du schon so eingestiegen bist, solltest du evtl. auch mal für andere hier deine Lösung / Template präsentieren ;).
Eine Frage am Rande: kennst du dich mit Silverstripe aus? soll ja "der Komet am CMS Himmel sein" ...?
Naja, Kometen kommen und gehen ... hab mich zwar noch nicht so intensiv damit befasst, konnte aber bislang auch nix erkennen, was dieses CMS von anderen so dramatisch abhebt.