FormBuilder Fieldset attribute and smarty variables

Have a question or a suggestion about a 3rd party addon module or plugin?
Let us know here.
Post Reply
JohnnyB
Dev Team Member
Dev Team Member
Posts: 731
Joined: Tue Nov 21, 2006 5:05 pm
Location: OH, USA

FormBuilder Fieldset attribute and smarty variables

Post by JohnnyB »

What variables are available when using the fieldset start and fieldset end fields in FormBuilder?

For example, how can I control the positioning and html output for the fieldset and legend tags generated?  I create my own custom css, list based forms and I can't seem to get the fieldset outside of the list....

thanks in advance for any suggestions.

EDIT:  here's an example of what I'm my custom template
{$hidden}


{foreach from=$fields item=entry}
{if $entry->display == 1}
  {strip}
required == 1 || $entry->css_class != ''}
class="{if $entry->required == 1}required{/if}
  {if $entry->required == 1 && $entry->css_class != ''} {/if}
  {if $entry->css_class != ''}{$entry->css_class}{/if}"{/if}>
{if $entry->hide_name == 0}
input_id}">{$entry->name}
{if $entry->required_symbol != ''}
{$entry->required_symbol}
{/if}
{/if}
{if $entry->multiple_parts == 1}

{foreach from=$entry->input item=part}
{$part->input} {$part->name}
{/foreach}

{else}
{$entry->input}
{/if}
{if $entry->valid == 0} <--- {/if}
{/strip}
{/if}
{/foreach}
{$submit}
This results in a form that looks like this (HTML excerpt):






  Your Information
  First and Last Name*

                  Company Name

    Website Address
And etc...

I'm trying to get the fieldset and legend (Marked in Bold above) outside of my list.  I've tried as much as I know and I can't figure it out... :'(
Last edited by JohnnyB on Tue Apr 24, 2007 1:56 am, edited 1 time in total.
"The art of life lies in a constant readjustment to our surroundings." -Okakura Kakuzo

--
LinkedIn profile
--
I only speak/write in English so I may not translate well on International posts.
--
calguy1000
Support Guru
Support Guru
Posts: 8169
Joined: Tue Oct 19, 2004 6:44 pm
Location: Fernie British Columbia, Canada

Re: FormBuilder Fieldset attribute and smarty variables

Post by calguy1000 »

As it says in the template documentation:  $field->type works:

Code: Select all

{literal}

<!-- below, you'll find the "standard CSS template" for displaying FormBuilder Forms
   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 {$hidden} and {$submit}
   tags.

   You can access your form fields either using the $fields array, as demonstrated below,
   or by directly accessing fields by their names (e.g., {$myfield->input} )


   Each field has the following attributes:
       field->display         = 1 if the field should be displayed, 0 otherwise
       field->required        = 1 if the field is required, 0 otherwise
       field->required_symbol = the symbol for required fields
       field->css_class       = the CSS class specified for this field
       field->valid           = 1 if this field has passed validation, 0 otherwise
       field->hide_name       = 1 if the field name should be hidden, 0 otherwise
       field->name            = the field's name
       field->input           = the field's input control (e.g., the input field itself)
       field->input_id        = the of the field's input (useful for <label for="">)
       field->type            = the field's data type
       field->multiple_parts  = 1 if the field->input is actually a collection of controls

   In certain cases, field->input is actually an array of objects rather than an input. This
   happens, for example, in CheckBoxGroups or RadioButtonGroups. For them, you
   can iterate through field->input->name and field->input->inputs.
    

       Additional smarty variables that you can use include:
       {$total_pages}       - number of pages for multi-page forms
       {$this_page}         - number fo the current page for multi-page forms
       {$title_page_x_of_y} - displays "page x of y" for multi-page forms
       {$css_class}         - CSS Class for the form
       {$form_name}         - Form name
       {$form_id}           - Form Database ID
       {$prev}              - "Back" button for multipart forms

       Dunno why you'd want some of those, but there you go...
-->

{/literal}


{$hidden}{assign var="cols" value="3"}
<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}
          <!-- {$entry|print_r} -->
	  {if $entry->display == 1}
	    	{strip}
                {* leading div before the tag *}
                {if $entry->type != "Fieldset Start" && $entry->type != "Fieldset End"}
	    	<div
	    	{if $entry->required == 1 || $entry->css_class != ''} class=" 
	    		{if $entry->required == 1}
	    			required
	    		{/if}
	    		{if $entry->required == 1 && $entry->css_class != ''} {/if}
	    		{if $entry->css_class != ''}
	    			{$entry->css_class}
	    		{/if}
	    		"
	    	{/if}
	    	>
                {/if}
                {* begin field output *}
	    	{if $entry->hide_name == 0}
	    		<label for="{$entry->input_id}">{$entry->name}</label>
	    		{if $entry->required_symbol != ''}
	    			{$entry->required_symbol}
	    		{/if}
	    	{/if}
	    	{if $entry->multiple_parts == 1}
    		<table>
					<tr>
				{section name=numloop loop=$entry->input}
	    			<td>{$entry->input[numloop]->input} {$entry->input[numloop]->name}</td>
	    			       {if not ($smarty.section.numloop.rownum mod $cols)}
                				{if not $smarty.section.numloop.last}
                        		</tr><tr>
                				{/if}
        					{/if}
       				{if $smarty.section.numloop.last}
                		{math equation = "n - a % n" n=$cols a=$entry->input|@count assign="cells"}
                		{if $cells ne $cols}
                			{section name=pad loop=$cells}
                        		<td> </td>
                			{/section}
               		 	{/if}
                		</tr>
        			{/if}
	    		{/section}
	    		</table>
	    	{else}
	    		{$entry->input}
	    	{/if}
	    	{if $entry->valid == 0} <--- {/if}
                {* trailing div *}
                {if $entry->type != "Fieldset Start" && $entry->type != "Fieldset End"}
	    	</div>
                {/if}
	    	{/strip}
	  {/if}
{/foreach}
<div class="submit">{$prev}{$submit}</div>
</div>
Follow me on twitter
Please post system information from "Extensions >> System Information" (there is a bbcode option) on all posts asking for assistance.
--------------------
If you can't bother explaining your problem well, you shouldn't expect much in the way of assistance.
JohnnyB
Dev Team Member
Dev Team Member
Posts: 731
Joined: Tue Nov 21, 2006 5:05 pm
Location: OH, USA

Re: FormBuilder Fieldset attribute and smarty variables

Post by JohnnyB »

Thanks.

I was using $entry->type.

I tried using $field->type but I guess I'm lost.

Is this the right way to us it?

Code: Select all

{if $field->type != "Fieldset Start" && $field->type != "Fieldset End"}
I've tried placing an if and/if in various places in my template but I'm not sure how to do it.
"The art of life lies in a constant readjustment to our surroundings." -Okakura Kakuzo

--
LinkedIn profile
--
I only speak/write in English so I may not translate well on International posts.
--
calguy1000
Support Guru
Support Guru
Posts: 8169
Joined: Tue Oct 19, 2004 6:44 pm
Location: Fernie British Columbia, Canada

Re: FormBuilder Fieldset attribute and smarty variables

Post by calguy1000 »

sorry, the docs are a bit out, but the example above works.

it's $entry->type
Follow me on twitter
Please post system information from "Extensions >> System Information" (there is a bbcode option) on all posts asking for assistance.
--------------------
If you can't bother explaining your problem well, you shouldn't expect much in the way of assistance.
Post Reply

Return to “Modules/Add-Ons”