6 use vars qw(@EXPORT_OK @EXPORT @ISA);
7 @EXPORT_OK = qw(escape_html escape_uri unescape_html unescape_uri popup_menu);
8 @EXPORT = qw(escape_html escape_uri unescape_html unescape_uri);
11 use HTML::Entities ();
14 HTML::Entities::encode(shift, '<>&"\x7F-\xFF');
18 HTML::Entities::decode(shift);
22 URI::Escape::uri_escape(shift);
26 URI::Escape::uri_unescape(shift);
33 or confess "No -name parameter";
35 my $html = '<select name="' . escape_html($opts{"-name"}) . '">';
36 my $labels = $opts{"-labels"} || {};
37 my $values = $opts{"-values"};
38 my $default = $opts{"-default"};
39 for my $value (@$values) {
40 my $option = "<option";
41 my $label = $labels->{$value};
43 $option .= ' value="' . escape_html($value) . '"';
44 $option .= ' checked' if defined($default) && $default eq $value;
45 $option .= '>' . escape_html($label);
48 $option .= ' checked' if defined($default) && $default eq $value;
49 $option .= '>' . escape_html($value);
51 $html .= $option . "\n";