Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 11. Oktober 2012 14:33

COR9
Server-Pate
Ort: Dresden
Registriert: 09. November 2010
Beiträge: 281

[GELÖST] Formbuilder: CSS-Klasse des Formulars ändern

Habe zwar dieses Thema gelesen, schaffe es aber trotzdem nicht, die CSS-Klasse (Standard: cms_form) des Formulars zu ändern. Komme nicht an den Formularstart oder den Header ran. Wahrscheinlich wende ich regex|replace falsch an. Hat jemand einen Tipp?

Formbuilder-Version: 0.7.3

Offline

#2 11. Oktober 2012 14:40

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: [GELÖST] Formbuilder: CSS-Klasse des Formulars ändern

Blöde Frage: Wozu willst Du die CSS Klasse des Formulars ändern?
Kannst Du nicht einfach Dein CSS entsprechend anpassen?


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#3 11. Oktober 2012 14:43

Klenkes
Server-Pate
Ort: 89428 Syrgenstein
Registriert: 17. Dezember 2010
Beiträge: 1.437

Re: [GELÖST] Formbuilder: CSS-Klasse des Formulars ändern

Falls du es ändern willst, funktioniert dies schon:

{$fb_form_start|replace:"cms_form":"hurra"}

Offline

#4 11. Oktober 2012 14:48

antibart
Server-Pate
Registriert: 14. Dezember 2010
Beiträge: 880

Re: [GELÖST] Formbuilder: CSS-Klasse des Formulars ändern

Ich weiß nicht, ob sich da was in den allerneusten Version was geändert hat, aber eigentlilch geht das ganz einfach über

Formbuilder->Hauptseite>Details des Hauptformulars> "CSS-Klasse für dieses Formular."

Ich selbst habe die Klasse aber nie gebraucht, um meine Formulare zu gestalten.

...

Beitrag geändert von antibart (11. Oktober 2012 16:34)

Offline

#5 11. Oktober 2012 14:58

nicmare
Server-Pate
Registriert: 15. Dezember 2010
Beiträge: 1.314
Webseite

Re: [GELÖST] Formbuilder: CSS-Klasse des Formulars ändern

antibart schrieb:

Ich weiß nicht, ob sich da was in den allerneusten Version was geändert hat, aber eigentlilch geht das ganz einfach über

Formbuilder->Hauptseite>Details des Hauptformulars> "CSS-Klasse für dieses Formular."

Ich selbst die Klasse aber nie gebraucht, um meine Formulare zu gestalten.

...

das wird aber nicht aufs <form> tag angewandt sondern auf den div innerhalb des form tags wink

Offline

#6 11. Oktober 2012 15:02

COR9
Server-Pate
Ort: Dresden
Registriert: 09. November 2010
Beiträge: 281

Re: [GELÖST] Formbuilder: CSS-Klasse des Formulars ändern

@ NaN: Ich arbeite mit YAML und möchte deshalb lieber das Fromular etwas dem CSS-Framework annähern und es auch bissl abspecken, anstatt umgekehrt die YAML-Klassen zu ändern.

@ Klenkes: Danke, das hat geklappt.

Offline

#7 11. Oktober 2012 17:48

Cherry
arbeitet mit CMS/ms
Registriert: 15. Dezember 2010
Beiträge: 529

Re: [GELÖST] Formbuilder: CSS-Klasse des Formulars ändern

Noch ne Ergänzeung:

Ich habe gerade vor kurzem ein Formular so umgebaut, daß es mit YAML funktioniert.
Die Idee dazu wie das gehen könnte kam mir beim Lesen von Jonathan Schmids Artikel

Mein Template sieht nun so aus:

[== Smarty ==]
{* Layout  / pure CSS *}
{literal}
<script>
function fbht(htid)
	{
		var fbhtc=document.getElementById(htid);
		if (fbhtc)
			{
			if (fbhtc.style.display == 'none')
				{
				fbhtc.style.display = 'inline';
				}
			else
				{
				fbhtc.style.display = 'none';
				}
			}
}
</script>
{/literal}
{$fb_form_header}
{if $fb_form_done == 1}
	{* This first section is for displaying submission errors *}
	{if isset($fb_submission_error) && $fb_submission_error}
		<div class="error_message">{$fb_submission_error}</div>
		{if isset($fb_show_submission_errors) && $fb_show_submission_errors}
			<div class="error" role="alert">
			<ul>
			{foreach from=$fb_submission_error_list item=thisErr}
				<li>{$thisErr}</li>
			{/foreach}
			</ul>
		</div>
		{/if}
	{/if}
{else}
	{* this section is for displaying the form *}
	{* we start with validation errors *}
	{if isset($fb_form_has_validation_errors) && $fb_form_has_validation_errors}
		<div class="error_message">
		<ul>
		{foreach from=$fb_form_validation_errors item=thisErr}
			<li>{$thisErr}</li>
		{/foreach}
		</ul>
		</div>
	{/if}
	{if isset($captcha_error) && $captcha_error}
		<div class="error_message" role="alert">{$captcha_error}</div>
	{/if}

	{* and now the form itself *}
	{* hier geaendert fuer yaml form classes *}
	{eval var=$fb_form_start|replace:"cms_form":"ym-form ym-columnar linearize-form" }
	{*geaendert bis hier *}
	<div>{$fb_hidden}</div>
	<div{if $css_class != ''} class="{$css_class}"{/if}>
	{if $total_pages gt 1}<span>{$title_page_x_of_y}</span>{/if}
	{foreach from=$fields item=entry}
		{if $entry->display == 1}
			{strip}
			{if $entry->needs_div == 1}
				<div required="required" aria-required="true"
				{if $entry->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->hide_name == 0}
				<label{if $entry->multiple_parts != 1} for="{$entry->input_id}"{/if}>{$entry->name}
				{if $entry->required_symbol != ''}
					{$entry->required_symbol}
				{/if}
				</label>
			{/if}
			{if $entry->multiple_parts == 1}
				{section name=numloop loop=$entry->input}
					{if $entry->label_parts == 1}
						<div>{$entry->input[numloop]->input}&nbsp;{$entry->input[numloop]->name}</div>
					{else}
						{$entry->input[numloop]->input}
					{/if}
					{if isset($entry->input[numloop]->op) && $entry->input[numloop]->op}{$entry->input[numloop]->op}{/if}
				{/section}
			{else}
			{* http://www.i-do-this.com/blog/38/Qualify-FormBuilder-for-HTML5 *}
{if $entry->smarty_eval == '1'}{if $entry->required == 1}{eval var=$entry->input|replace:'<input':'<input required="required" aria-required="true"'|replace:'<textarea':'<textarea required="required"'}{else}{eval var=$entry->input}{/if}{else}{if $entry->required == 1}{$entry->input|replace:'<input':'<input required="required" aria-required="true"'|replace:'<textarea':'<textarea required="required"'}{else}{$entry->input}{/if}{/if}
			{* changes bis hier *}
			{/if}
			{if $entry->helptext != ''}&nbsp;<a href="javascript:fbht('{$entry->field_helptext_id}')"><img src="modules/FormBuilder/images/info-small.gif" alt="Help" /></a>
					<span id="{$entry->field_helptext_id}" style="display:none" class="fbr_helptext">{$entry->helptext}</span>{/if}
			{if $entry->valid == 0} <span>{$entry->error}</span>{/if} 
			{if $entry->needs_div == 1}
				</div>
			{/if}
			{/strip}
		{/if}
	{/foreach}
	{if $has_captcha == 1}
		<div class="captcha">{$graphic_captcha}{$title_captcha}<br />{$input_captcha}</div>
	{/if}
	<div class="submit">{$prev}{$submit}</div>
	</div>
	{$fb_form_end}
{/if}
{$fb_form_footer}

Zusätzlich zum Originaltemplate sind hier die require Attribute mit eingebaut, ebenso wie die aria-required Attribute.

Vielleicht hilft das ja mal jemandem.

Offline

#8 13. Oktober 2012 23:29

COR9
Server-Pate
Ort: Dresden
Registriert: 09. November 2010
Beiträge: 281

Re: [GELÖST] Formbuilder: CSS-Klasse des Formulars ändern

@ Cherry: Vielen Dank für den Tipp. Habe es bei mir noch etwas mehr den YAML-Klassen angepasst.

Beim Testen ist mir aufgefallen, dass Safari (5.1.7 Mac) keine HTML5-Formularvalidierung bringt und sofort in die JS-Variante springt. Weder die einfache Form required noch required="required" aria-required="true" funktionieren. Oder bevorzugt er etwa das JS, wenn es eins gibt? Chrome und Firefox basteln dagegen sofort ihre Feldlein rein.

Offline

#9 13. Oktober 2012 07:48

Cherry
arbeitet mit CMS/ms
Registriert: 15. Dezember 2010
Beiträge: 529

Re: [GELÖST] Formbuilder: CSS-Klasse des Formulars ändern

Bis alle Browser 'neue' Features unterstützen, müssen wir wohl wieder ne Weile warten :-(.
Bis dato sieht das so aus:
http://www.w3schools.com/html5/att_input_required.asp.

Das aria-required hilft vor allem Leuten, die auf Hilfstechnologien angewiesen sind.

Offline