[opgelost][Formbuilder] css class toevoegen

Nederlandse ondersteuning voor CMS Made Simple

Moderator: velden

vinyl
Forum Members
Forum Members
Posts: 149
Joined: Mon Jul 13, 2009 8:18 pm

[opgelost][Formbuilder] css class toevoegen

Post by vinyl »

Ik kan het helaas niet vinden, maar vraag me eigenlijk af of het mogelijk is in de formbuilder frontend een css class toe te voegen.

Zo niet, dan ben ik benieuwd waar het in de codebase te vinden is. Iemand een tip?

Gebruik CMS Made Simple icm een framework (Bootstrap) en deze heeft eigen classes die ik zou willen in zetten.

De submit knop heb ik al aangepast in de Form.class.php, nu de <form> tag nog vinden.
Last edited by vinyl on Sat Oct 27, 2012 2:02 pm, edited 3 times in total.
User avatar
velden
Dev Team Member
Dev Team Member
Posts: 3497
Joined: Mon Nov 28, 2011 9:29 am

Re: [Formbuilder] css class toevoegen

Post by velden »

Persoonlijk heb ik nog nooit in de code zelf hoeven krassen om iets met een form gedaan te krijgen.

Je kunt toch per 'veld' een eigen id meegeven? Volstaat dat niet.

En wat betreft de submit-button in css: input[type=submit]

Wat probeer je eigenlijk te bereiken als ik het vragen mag?
vinyl
Forum Members
Forum Members
Posts: 149
Joined: Mon Jul 13, 2009 8:18 pm

Re: [Formbuilder] css class toevoegen

Post by vinyl »

Als ik naar de code van een standaard formulier kijk dan zijn heel veel css classes al standaard bepaald in de code, ook de volgorde van elementen bijvoorbeeld.

Wat ik wil is een eigen formulier kunnen opbouwen, of de standaard classes kunnen beïnvloeden.
User avatar
velden
Dev Team Member
Dev Team Member
Posts: 3497
Joined: Mon Nov 28, 2011 9:29 am

Re: [Formbuilder] css class toevoegen

Post by velden »

Je kunt per veld een eigen css-class opgeven (tabblad 'geavanceerde instellingen' van het betreffende veld).

Opbouw van form kun je ook helemaal zelf bepalen door het template aan te passen (wordt het vaak minder dynamisch van). Ik doe dat vaak omdat wat designers bedenken meestal niet in een logische procedure is te verwerken. Dan maak ik een custom template waarin enkel de velden worden opgenomen waar ik het wil. Nadeel van die opzet is dan dat als een gebruiker een nieuw veld toevoegt, dit niet wordt meegenomen.

Voorbeeld:

Code: Select all

{* Custom formulier *}
{$fb_form_header}
	{* and now the form itself *}
	{$fb_form_start}
	<div>{$fb_hidden}</div>

<span class="frm_static frm">{$static_ug->input}</span>

<span class="frm_textinput frm {if $mailadres->valid != 1} invalid{/if}">
  <span class="label">* mailadres</span>
  <span class="textinput">{$mailadres->input}</span>
</span>

<span class="frm_textinput frm {if $naam->valid != 1} invalid{/if}">
  <span class="label">* naam</span>
  <span class="textinput">{$naam->input}</span>
</span>


{* beetje weggelaten als voorbeeld *}

<span class="frm_static frm">{$static_opleiding->input}</span>

<span class="frm_radiogroup frm {if $opleiding->valid != 1} invalid{/if}">
{section name=numloop loop=$opleiding->input}
{if $opleiding->input[numloop]->title ==  'BIJSCHOLING'}
  <span class="frm_static frm">BIJSCHOLING</span>
{else}
          			<span>{$opleiding->input[numloop]->input}&nbsp;{$opleiding->input[numloop]->name}</span>
{/if}
        	{/section}

</span>
<span class="frm_checkbox frm {if $chk_av->valid != 1} invalid{/if}">{$chk_av->input}</span>
<span class="frm_static frm frm_static_av">{$static_av->input}</span>

<span class="frm_submit frm">{$submit}</span>
<span class="frm_static frm"><h5>* verplichte velden</h5></span>

{$fb_form_end}
vinyl
Forum Members
Forum Members
Posts: 149
Joined: Mon Jul 13, 2009 8:18 pm

Re: [Formbuilder] css class toevoegen

Post by vinyl »

Oh kijk, dat is eigenlijk precies wat ik bedoel.

Daar kan ik wel mee uit de voeten, mijn dank is groot!

Als ik even snel wat aanpas naar mijn situatie en het probeer te versturen gebeurt er niets, moet ik nog ergens aan denken behalve het template aanpassen?
User avatar
velden
Dev Team Member
Dev Team Member
Posts: 3497
Joined: Mon Nov 28, 2011 9:29 am

Re: [Formbuilder] css class toevoegen

Post by velden »

You can edit it to make your form layout look any way you'd like. To make the form work, you'll need to always include the {$fb_hidden} and {$submit} tags.

You can access your form fields either using the $fields array or by directly accessing fields by their names (e.g., {$myfield->input} )
vinyl
Forum Members
Forum Members
Posts: 149
Joined: Mon Jul 13, 2009 8:18 pm

Re: [Formbuilder] css class toevoegen

Post by vinyl »

Thanks, had het al gevonden. Enige wat ik nog mis is een manier om de <form> tag zelf te beinvloeden. Daarvoor zal ik denk ik toch de code in moeten :)
User avatar
velden
Dev Team Member
Dev Team Member
Posts: 3497
Joined: Mon Nov 28, 2011 9:29 am

Re: [Formbuilder] css class toevoegen

Post by velden »

ligt er ook weer aan wat je wilt bereiken...

Ik ben nog nooit de code in hoeven duiken voor iets. Je kunt de class van het form zelf ook weer aanpassen. 'Start' tab van het formulier zelf.
vinyl
Forum Members
Forum Members
Posts: 149
Joined: Mon Jul 13, 2009 8:18 pm

Re: [Formbuilder] css class toevoegen

Post by vinyl »

Nee dat lukt helaas niet. Wat hij dan doet is die css tag gebruiken om een extra <div> te plaatsen met die css tag.
User avatar
velden
Dev Team Member
Dev Team Member
Posts: 3497
Joined: Mon Nov 28, 2011 9:29 am

Re: [Formbuilder] css class toevoegen

Post by velden »

Dan gebruik je die toch?

div.jouw-class form { width : 300px; }
deactivated010521

Re: [Formbuilder] css class toevoegen

Post by deactivated010521 »

----------
Last edited by deactivated010521 on Tue Mar 12, 2013 2:59 pm, edited 3 times in total.
vinyl
Forum Members
Forum Members
Posts: 149
Joined: Mon Jul 13, 2009 8:18 pm

Re: [Formbuilder] css class toevoegen

Post by vinyl »

Ik ben inmiddels eigenlijk wel zo ver dat ik alles kan beinvloeden, met als compromis dat ik sommige dingen handmatig in het formulier template zet.

De enige aanpassing die ik 'hard' in de code van smarty heb aangepast is de css class die deze gebruikt voor de <form> tag. Dit is te vinden in (vanuit de root van de site): lib/classes/module_support/modform.inc.php

De rest (met dank aan velden) heb ik in een custom template gestopt.

Bijvoorbeeld:

Code: Select all

 <div class="control-group {if $email->valid != 1} error{/if}">
    <label class="control-label" for="inputEmail">Email *</label>
    <div class="controls">
      {$email->input}
{if $email->valid != 1}
    <div class="help-inline">Zou u uw e-mailadres willen invullen?</div>
{/if}
    </div>
  </div>
Gelukkig richt ik deze site zelf in en kan ik dus alles wel op deze manier inrichten. Voor een nieuwe versie van deze module zou dit wel een grote wens zijn, alle classes zelf beinvloeden en de opbouw van <label> en <input> tags.

Ingrijpen in de codebase is geen hobby, want bij een update ben je dit natuurlijk kwijt zoals arnoud aangeeft. In dit geval is het echter geen probleem omdat ik deze wijzigingen even opneem in het update document wat ik opstel.
deactivated010521

Re: [Formbuilder] css class toevoegen

Post by deactivated010521 »

----------
Last edited by deactivated010521 on Tue Mar 12, 2013 3:00 pm, edited 1 time in total.
User avatar
velden
Dev Team Member
Dev Team Member
Posts: 3497
Joined: Mon Nov 28, 2011 9:29 am

Re: [Formbuilder] css class toevoegen

Post by velden »

arnoud wrote: Ik snap dat 'velden' de de weg van de minste weerstand kiest en statische code invoert in de Smarty template. Al met al werkt dit prima, meestal veranderen de velden van een formulier niet of nauwelijks.

Toch heb ik wel enige vraag tekens: de aardigheid van FormBuilder is dat een niet technische gebruiker een en ander kan aanpassen met statische code wordt dit teniet gedaan.
Punt is dat ik vaak ontwerpen krijg aangeleverd van een design-bureau. Die houden dan vaak geen rekening met de (on)mogelijkheden van de FormBuilder-module.

Praktijk is dat zo'n form zelden wijzigt en als dat wel het geval is, dan pas ik het óf zelf aan in 5 minuten, óf ik maak een stukje wel dynamisch.

Bedenk ook dat bijvoorbeeld het e-mail template aangepast moet worden als er een veld wordt toegevoegd of verdwijnt. Ik schat in dat een gemiddelde 'gebruiker' dat zo zou vergeten.

Enige dat ooit door gebruikers wordt aangepast is keuzelijst (radiobuttons) voor bijvoorbeeld cursus-aanbod. Binnen zo'n custom template is het eenvoudig omdat dynamisch te maken.
vinyl
Forum Members
Forum Members
Posts: 149
Joined: Mon Jul 13, 2009 8:18 pm

Re: [Formbuilder] css class toevoegen

Post by vinyl »

Je hebt natuurlijk helemaal gelijk dit met regex te doen. Dat is de manier om dat te doen. Why didn't I think of that.

Dat maakt het toevoegen van de classes die ik nodig heb een eitje.

Net als velden al aangeeft is het ook in mijn geval zo dat ik meestal de formulieren aanpas, en niet de eindgebruiker van het CMS. Daarom zijn de ingrepen eigenlijk geen enkel probleem.

Het mooiste zou inderdaad zijn als Formbuilder je helemaal vrij laat in wat je aan <div>'s en classes toevoegt. Vooralsnog vindt ik CMS Made Simple het allerfijnste en meest flexibele CMS wat ik gebruikt heb en neem ik deze dingen dus graag voor lief.
Post Reply

Return to “Dutch - Nederlands”