Kwiki
view release on metacpan or search on metacpan
lib/Kwiki/Preferences.pm view on Meta::CPAN
if @_;
return defined $self->{value}
? $self->{value}
: $self->default;
}
sub value_label {
my $choices = $self->choices
or return '';
return ${{@$choices}}{$self->value} || '';
}
sub form_element {
my $type = $self->type;
return $self->$type;
}
sub input {
my $name = $self->owner_id . '__' . $self->id;
my $value = $self->value;
my $size = $self->size;
return <<END
<input type="text" name="$name" value="$value" size="$size" />
END
}
sub boolean {
my $name = $self->owner_id . '__' . $self->id;
my $value = $self->value;
my $checked = $value ? 'checked="checked"' : '';
return <<END
<input type="checkbox" name="$name" value="1" $checked />
<input type="hidden" name="$name-boolean" value="0" $checked />
END
}
sub radio {
my $i = 1;
my @choices = @{$self->choices};
my @values = grep {$i++ % 2} @choices;
my $value = $self->value;
join "\n",
'<table bgcolor="#e0e0e0"><tr><td align="left">',
CGI::radio_group(
-name => $self->owner_id . '__' . $self->id,
-values => \@values,
-default => $value,
-labels => { @choices },
-override => 1,
-linebreak=>'true',
),
'</td></tr></table>';
}
sub pulldown {
my $i = 1;
my @choices = @{$self->choices};
my @values = grep {$i++ % 2} @choices;
my $value = $self->value;
CGI::popup_menu(
-name => $self->owner_id . '__' . $self->id,
-values => \@values,
-default => $value,
-labels => { @choices },
-override => 1,
);
}
__DATA__
=head1 NAME
Kwiki::Preferences - Kwiki Preferences Base Class
=head1 SYNOPSIS
=head1 DESCRIPTION
=head1 AUTHOR
Brian Ingerson <INGY@cpan.org>
=head1 COPYRIGHT
Copyright (c) 2004. Brian Ingerson. All rights reserved.
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
See http://www.perl.com/perl/misc/Artistic.html
=cut
( run in 1.116 second using v1.01-cache-2.11-cpan-364913b4093 )