Data-MuForm
view release on metacpan or search on metacpan
lib/Data/MuForm/Renderer/Base.pm view on Meta::CPAN
die "layout method '$layout' not found" unless $layout_meth;
my $out = '';
$out .= $layout_meth->($self, $rargs);
return $out;
}
sub layout_lbl_ele_err {
my ( $self, $rargs ) = @_;
my $out = '';
$out .= $self->render_label($rargs);
$out .= $self->render_element($rargs);
$out .= $self->render_errors($rargs);
return $out;
}
sub layout_lbl_wrele_err {
my ( $self, $rargs ) = @_;
my $out = '';
$out .= $self->render_label($rargs);
my $ele .= $self->render_element($rargs);
$out .= $self->element_wrapper($rargs, $ele);
$out .= $self->render_errors($rargs);
return $out;
}
sub layout_no_label {
my ( $self, $rargs ) = @_;
my $out = '';
$out .= $self->render_element($rargs);
$out .= $self->render_errors($rargs);
return $out;
}
#==============================
# Wrappers
#==============================
sub wrapper_simple {
my ( $self, $rargs, $rendered ) = @_;
my $tag = $rargs->{wrapper_attr}{tag} || $self->wrapper_tag;
my $out = qq{\n<$tag };
$out .= process_attrs($rargs->{wrapper_attr}, ['tag']);
$out .= qq{>};
$out .= $rendered;
$out .= qq{\n</$tag>};
return $out;
}
sub wrapper_fieldset {
my ( $self, $rargs, $rendered ) = @_;
my $id = $rargs->{id} if ($rargs->{is_compound});
my $label = $self->localize($rargs->{label});
my $out = qq{\n<fieldset };
$out .= qq{id="$id" } if $id;
$out .= process_attrs($rargs->{wrapper_attr});
$out .= qq{>};
$out .= qq{<legend class="label">$label</legend>};
$out .= $rendered;
$out .= qq{\n</fieldset>};
return $out;
}
sub element_wrapper {
my ( $self, $rargs, $rendered ) = @_;
my $out = qq{\n<div };
$out .= process_attrs($rargs->{element_wrapper_attr});
$out .= qq{>$rendered</div>};
return $out;
}
sub render_layout_list {
my ( $self, $rargs ) = @_;
my $fif = $rargs->{fif} || [];
my $size = $rargs->{size};
$size ||= (scalar @{$fif} || 0) + ($rargs->{num_extra} || 0);
$size ||= 2;
my $out = $self->render_label($rargs);
my $index = 0;
while ( $size ) {
my $value = shift @$fif;
$value = defined $value ? $value : '';
my $element = $self->render_input({%$rargs, fif => $value, id => $rargs->{id} . $index++ });
$out .= $self->element_wrapper($rargs, $element);
$size--;
}
return $out;
}
sub render_layout_display {
my ( $self, $rargs ) = @_;
# render the field layout
my $layout = $rargs->{layout} || $self->display_layout;
my $layout_meth = $self->can("layout_$layout");
die "layout method '$layout' not found" unless $layout_meth;
my $out = '';
$out .= $layout_meth->($self, $rargs);
return $out;
}
sub layout_span {
my ( $self, $rargs ) = @_;
my $out= '<span';
$out .= ' id="' . $rargs->{id} . '"';
$out .= process_attrs($rargs->{element_attr});
$out .= '>';
$out .= $rargs->{fif};
$out .= '</span>';
return $out;
}
1;
__END__
( run in 3.474 seconds using v1.01-cache-2.11-cpan-56fb94df46f )