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 )