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