Apache-HeavyCGI
view release on metacpan or search on metacpan
lib/Apache/HeavyCGI.pm view on Meta::CPAN
$self->escapeHTML($value),
$checked ? qq{ checked="checked"} : ""
);
}
# pause_1999::main
sub checkbox_group {
my($self,%arg) = @_;
my $name = $arg{name};
my @sel = $self->{CGI}->param($name);
unless (@sel) {
if (exists $arg{default}) {
my $default = $arg{default};
@sel = ref $default ? @$default : $default;
}
}
my %sel;
@sel{@sel} = ();
my @m;
$name = $self->escapeHTML($name);
my $haslabels = exists $arg{labels};
my $linebreak = $arg{linebreak} ? "<br />" : "";
for my $v (@{$arg{values} || []}) {
push(@m,
sprintf(
qq{<input type="checkbox" name="%s" value="%s"%s />%s%s},
$name,
$self->escapeHTML($v),
exists $sel{$v} ? qq{ checked="checked"} : "",
$haslabels ? $arg{labels}{$v} : $self->escapeHTML($v),
$linebreak,
)
);
}
join "", @m;
}
sub escapeHTML {
my($self, $what) = @_;
return unless defined $what;
my %escapes = qw(& & " " > > < <);
$what =~ s[ ([&"<>]) ][$escapes{$1}]xg; # ]] cperl-mode comment
$what;
}
sub file_field {
my($self) = shift;
$self->text_pw_field(FIELDTYPE=>"file", @_);
}
sub hidden_field {
my($self) = shift;
$self->text_pw_field(FIELDTYPE=>"hidden", @_);
}
sub password_field {
my($self) = shift;
$self->text_pw_field(FIELDTYPE=>"password", @_);
}
# pause_1999::main
sub radio_group {
my($self,%arg) = @_;
my $name = $arg{name};
my $value;
my $checked;
my $sel = $self->{CGI}->param($name);
my $haslabels = exists $arg{labels};
my $values = $arg{values} or Carp::croak "radio_group called without values";
defined($checked = $arg{checked})
or defined($checked = $sel)
or defined($checked = $arg{default})
or $checked = "";
# some people like to check the first item anyway:
# or ($checked = $values->[0]);
my $escname=$self->escapeHTML($name);
my $linebreak = $arg{linebreak} ? "<br />" : "";
my @m;
for my $v (@$values) {
my $escv = $self->escapeHTML($v);
if ($DEBUG) {
warn "escname undef" unless defined $escname;
warn "escv undef" unless defined $escv;
warn "v undef" unless defined $v;
warn "\$arg{labels}{\$v} undef" unless defined $arg{labels}{$v};
warn "checked undef" unless defined $checked;
warn "haslabels undef" unless defined $haslabels;
warn "linebreak undef" unless defined $linebreak;
}
push(@m,
sprintf(
qq{<input type="radio" name="%s" value="%s"%s />%s%s},
$escname,
$escv,
$v eq $checked ? qq{ checked="checked"} : "",
$haslabels ? $arg{labels}{$v} : $escv,
$linebreak,
));
}
join "", @m;
}
# pause_1999::main
sub scrolling_list {
my($self, %arg) = @_;
# name values size labels
my $size = $arg{size} ? qq{ size="$arg{size}"} : "";
my $multiple = $arg{multiple} ? q{ multiple="multiple"} : "";
my $haslabels = exists $arg{labels};
my $name = $arg{name};
my @sel = $self->{CGI}->param($name);
if (!@sel && exists $arg{default} && defined $arg{default}) {
my $d = $arg{default};
@sel = ref $d ? @$d : $d;
}
my %sel;
@sel{@sel} = ();
my @m;
( run in 0.753 second using v1.01-cache-2.11-cpan-bbe5e583499 )