Apache-PSP

 view release on metacpan or  search on metacpan

lib/Template/PSP/autoform.psp  view on Meta::CPAN

    # get keys and values as given
    @lookup_keys = keys %$lookup_ref;
    foreach my $k (@lookup_keys)
    {
      push (@lookup_values, $lookup_ref->{$k});
    }
  }  
}
else
{
  @lookup_keys   = ($lookup_ref);
  @lookup_values = ($lookup_ref);
}

# differentiate the field name
$diff = '_' . $af->{'field'}{$diff} if $diff;

# display the form field 
if ($multiple)
{
  print qq{<select name="$name$diff" multiple="$multiple" size="$size">\n};
}
else
{
  print qq{<select name="$name$diff">\n};
}

my $k = scalar(@lookup_keys) - 1;
for my $i (0..$k)
{
  my $key   = $lookup_keys[$i];
  my $value = $lookup_values[$i];
  print qq{<option value="$key" $selected{$key}>$value</option>\n};
}
print qq{</select>\n};


</perl>
</tag>

<tag name="autotextarea" body="1" global="1" 
     accepts="name, rows, cols, wrap">
<perl>

=head2 AutoFill textarea tag

The C<autotextarea> tag fills in a form field.

Usage: 

  <autotextarea name="explain" rows="5" cols="30" wrap="virtual" />

=cut

print "\n";
my $af = getpvar('autofill_data');

# set the value
my $value = $af->{'field'}{$name};

# escape any HTML-like characters
$value =~ s/&/&amp;/g;
$value =~ s/</&lt;/g;

print qq{<textarea name="$name" rows="$rows" cols="$cols">$value</textarea>\n};

</perl>
</tag>

<tag name="autoradio" body="1" global="1" 
     accepts="name, lookup, sortby">
<perl>

=head2 AutoFill radio button tag

The C<autoradio> tag fills in a form field.

Usage: 

  <autoradio name="kidding" 
             lookup="yesno" 
             sortby="value" />

=cut

print "\n";
my $af = getpvar('autofill_data');

# set the array of values
my $value = $af->{'field'}{$name};
my @values;
if (ref($value) eq 'ARRAY')
{
  @values = @$value;
}
else
{
  @values = ($value);
}

# record the values in the selected hash
my %selected;
$selected{$values[0]} = 'checked';

# get the lookup values
# and determine the sort order
$lookup ||= $name;
my @lookup_keys;
my @lookup_values;

my $lookup_ref = $af->{'lookup'}{$lookup};
if (ref($lookup_ref) eq 'ARRAY')
{
  @lookup_keys   = @$lookup_ref;
  @lookup_values = @$lookup_ref;
}
elsif (ref($lookup_ref) eq 'HASH')
{
  if ($sortby eq 'name')
  {
    # sort the values by hash key



( run in 0.655 second using v1.01-cache-2.11-cpan-ad19def0cd9 )