Formular-Template von Formbuilder anpassen

Hilfe zu Modulen und Tags
Post Reply
mw1972
Forum Members
Forum Members
Posts: 79
Joined: Mon Apr 21, 2008 12:07 pm

Formular-Template von Formbuilder anpassen

Post 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?
antibart
Power Poster
Power Poster
Posts: 1155
Joined: Sun Aug 17, 2008 9:29 am

Re: Formular-Template von Formbuilder anpassen

Post 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.
mw1972
Forum Members
Forum Members
Posts: 79
Joined: Mon Apr 21, 2008 12:07 pm

Re: Formular-Template von Formbuilder anpassen

Post 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.
NaN

Re: Formular-Template von Formbuilder anpassen

Post 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.
NaN

Re: Formular-Template von Formbuilder anpassen

Post 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?
mw1972
Forum Members
Forum Members
Posts: 79
Joined: Mon Apr 21, 2008 12:07 pm

Re: Formular-Template von Formbuilder anpassen

Post 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" ...?
antibart
Power Poster
Power Poster
Posts: 1155
Joined: Sun Aug 17, 2008 9:29 am

Re: Formular-Template von Formbuilder anpassen

Post 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 ...

..
NaN

Re: Formular-Template von Formbuilder anpassen

Post by NaN »

War ja nix schlimmes.
Nur dieses "Will ne Lösung! Keine Nachschlagewerke."
Egal.
War gestern etwas genervt.
cyberman

Re: Formular-Template von Formbuilder anpassen

Post 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.
Post Reply

Return to “Module und Tags”