diff --git a/lib/WebGUI/HTMLForm.pm b/lib/WebGUI/HTMLForm.pm index 8113b3bd4..549747736 100644 --- a/lib/WebGUI/HTMLForm.pm +++ b/lib/WebGUI/HTMLForm.pm @@ -15,7 +15,6 @@ package WebGUI::HTMLForm; =cut use strict; -use CGI::Util qw(rearrange); use WebGUI::Form; use WebGUI::International; use WebGUI::Pluggable; @@ -304,12 +303,37 @@ The UI level for this field. See the WebGUI developer's site for details. Defaul =cut -sub raw { - my ($self, @p) = @_; - my ($value, $uiLevel) = rearrange([qw(value uiLevel)], @p); - if ($self->_uiLevelChecksOut($uiLevel)) { - $self->{_data} .= $value; +sub _rearrange { + my $keys = shift; + my @keys = @$keys; + my @params = @_; + + for (@keys) { + s/^-//; + $_ = lc $_; + } + + if (ref $params[0] ne 'HASH') { + return @params; + } + else { + my $params = shift; + my %params; + for my $key (%$params) { + (my $newkey = lc $key) =~ s/^-//; + $params{$newkey} = $params->{$key}; } + return @params{@keys}; + } +} + +sub raw { + my $self = shift; + my ($value, $uiLevel) = _rearrange([qw(value uiLevel)], @_); + + if ($self->_uiLevelChecksOut($uiLevel)) { + $self->{_data} .= $value; + } }