NAME

HTML::FormHandler::Render::Simple - Simple rendering routine

SYNOPSIS

This is a Moose role that is an example of a very simple rendering routine for HTML::FormHandler. It has almost no features, but can be used as an example for producing something more complex. The idea is that you will produce your own custom rendering roles.

In your Form class:

package MyApp::Form::Silly;
extends 'HTML::FormHandler::Model::DBIC';
with 'HTML::FormHandler::Render::Simple';

In a template:

[% form.render %]

or for individual fields:

[% form.field_render( 'title' ) %]

DESCRIPTION

This role provides HTML output routines for the 'widget' types defined in the provided FormHandler fields. Each 'widget' name has a 'widget_$name' method here.

These widget routines output strings with HTML suitable for displaying form fields.

The widget for a particular field can be defined in the form. You can create additional widget routines in your form for custom widgets.

render

To render all the fields in a form in sorted order (using 'sorted_fields' method).

render_field

Render a field by a field object

render_text

Output an HTML string for a text widget

The equivalent of:

<label class="label" for="[% f.name %]">[% f.label %]</label>
<input type="text" name="[% f.name %]" id="[% f.name %]" value="[% f.fif %]">

render_select

Output an HTML string for a 'select' widget

The equivalent of:

<label class="label" for="[% f.name %]">[% f.label %]</label>
<select name="[% f.name %]">
  [% FOR option IN f.options %]
    <option value="[% option.value %]" 
    [% IF option.value == f.fif %]
       selected="selected"
    [% END %]>
    [% option.label %]</option>
  [% END %] 
</select>

render_multiple

Output an HTML string for a 'multiple' widget

The equivalent of:

<label class="label" for="[% f.name %]">[% f.label || f.name %]</label>
<select name="[% f.name %]" multiple="multiple" size="5">
  [% FOR option IN f.options %]
    <option value="[% option.value %]" 
    [% FOREACH optval IN f.value %]
       [% IF optval == option.value %]
          selected="selected"
       [% END %]
    [% END %]>
    [% option.label %]</option>
  [% END %] 
</select>

render_checkbox

Output an HTML string for a 'checkbox' widget

The equivalent of:

<input type="checkbox" name="[% f.name %]" value="1"
    [% IF f.fif == 1 %]checked="checked"[% END %] />

render_radio

Output an HTML string for a 'radio' widget

AUTHORS

Gerda Shank, gshank@cpan.org

COPYRIGHT

This library is free software, you can redistribute it and/or modify it under the same terms as Perl itself.