| HTML-TurboForm documentation | Contained in the HTML-TurboForm distribution. |
Representation class for HTML Radiobox element.
Straight forward so no need for much documentation. See HTML::TurboForm doku for mopre details.
Arguments: $options
returns HTML Code for Radiobox.
Thorsten Domsch, tdomsch@gmx.de
| HTML-TurboForm documentation | Contained in the HTML-TurboForm distribution. |
package HTML::TurboForm::Element::Radio; use warnings; use strict; use Tie::IxHash; use base qw(HTML::TurboForm::Element); __PACKAGE__->mk_accessors( qw/ class special listmode pre post position labelclass/); sub render{ my ($self, $options, $view)=@_; if ($view) { $self->{view}=$view; } my $request=$self->request; my $result=''; my $disabled=''; my $class='form_radio'; if ($self->label) { $self->label(' ') if ($self->label eq ''); } else { $self->label(' '); } $class=$self->{class} if exists($self->{class}); $class=' class="'.$class.'" '; my $aha=$self->options; my $name=' name="'.$self->name.'" '; my $checked=''; if ($options->{frozen}){ $disabled=' disabled ' if ($options->{frozen} == 1) ; } my $pre=''; my $post=''; my $after=''; if ( $self->listmode ){ $result.='<ul>'; $pre='<li>'; $post='</li>'; $after='</ul>'; } $pre.=$self->pre if ($self->pre); $post.=$self->post if ($self->post); my $norm_hash=1; if ($self->options){ foreach (%{$self->options}){ $norm_hash=2 if (ref($_) eq 'HASH'); } if ($norm_hash==2){ for my $k2 ( sort{ $a <=> $b} keys %{$self->options} ) { while ( my( $key,$value) = each %{$self->options->{$k2}}){ my $values = $request->{ $self->name }; if (! $values){ $values = $self->default; } $values = [ $values ] unless ref( $values ) =~ /ARRAY/; $checked=''; if ([ $values ]) { $checked=' checked="true" ' if ( grep { $_ eq $value } @{ $values } ); } my $special=''; #$special='<input type="text" '.$name.'>' if ($self->special==$k2); $result.=$pre.'<input type="radio" '.$class.$checked.$disabled.$name.' value="'.$value.'">'.$key.$special.$post; $result.='<input type="hidden" '.$name.' value="'.$value.'">' if (($disabled ne '')&& ( $checked ne '')); } } } else { while ( my( $key,$value) = each %{$self->options}){ # if (ref($value) eq 'HASH'){ print "wkfndfkhvbkh";} my $values = $request->{ $self->name }; if (! $values){ $values = $self->default; } $values = [ $values ] unless ref( $values ) =~ /ARRAY/; $checked=''; if ([ $values ]) { $checked=' checked ' if ( grep { $_ eq $value } @{ $values } ); } $result.=$pre.'<input type="radio" '.$class.$checked.$disabled.$name.' value="'.$value.'">'.$key.$post; $result.='<input type="hidden" '.$name.' value="'.$value.'">' if (($disabled ne '')&& ( $checked ne '')); } } } if ($self->optionsnum){ foreach (@{$self->optionsnum}){ while( my ($key, $value) = each %$_ ) { my $values = $request->{ $self->name }; if (! $values){ $values = $self->default; } if($self->labelclass){ $key='<div class="'.$self->labelclass.'">'.$key.'</div>'; } my $keyr=$key; my $keyl=''; if ($self->position){ if ($self->position eq 'left') { $keyl=$key; $keyr=''; } } $values = [ $values ] unless ref( $values ) =~ /ARRAY/; $checked=''; if ([ $values ]) { $checked=' checked ' if ( grep { $_ eq $value if ($_) } @{ $values } ); } $result.=$pre.$keyl.'<input type="radio" '.$class.$checked.$disabled.$name.' value="'.$value.'">'.$keyr.$post; $result.='<input type="hidden" '.$name.' value="'.$value.'">' if (($disabled ne '')&& ( $checked ne '')); } } } $result.=$after; $result= $self->vor($options).$result.$self->nach if ($self->check_param('norow')==0); return $result; } 1; __END__