Embperl
view release on metacpan or search on metacpan
Embperl/Form/Control/inputjoin.pm view on Meta::CPAN
###################################################################################
#
# Embperl - Copyright (c) 1997-2008 Gerald Richter / ecos gmbh www.ecos.de
# Embperl - Copyright (c) 2008-2015 Gerald Richter
# Embperl - Copyright (c) 2015-2023 actevy.io
#
# You may distribute under the terms of either the GNU General Public
# License or the Artistic License, as specified in the Perl README file.
#
# THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
# $Id$
#
###################################################################################
package Embperl::Form::Control::inputjoin ;
use strict ;
use base 'Embperl::Form::Control' ;
use Embperl::Inline ;
use vars qw{%fdat} ;
# ------------------------------------------------------------------------------------------
#
# init_data - daten aufteilen
#
sub init_data
{
my ($self, $req) = @_ ;
my $fdat = $req -> {docdata} || \%fdat ;
my $name = $self -> {name} ;
my $split = $self -> {split} || $self -> {join} ;
my $num = $self -> {numinputs} || 1 ;
my $i = 0 ;
my @vals = split /$split/, $fdat->{$name} ;
for (my $i = 0; $i < $num; $i++)
{
$fdat->{"$name-_-$i"} = $vals[$i] ;
}
}
# ------------------------------------------------------------------------------------------
#
# prepare_fdat - daten zusammenfuehren
#
sub prepare_fdat
{
my ($self, $req) = @_ ;
my $fdat = $req -> {form} || \%fdat ;
my $name = $self -> {name} ;
my $join = $self -> {join} ;
my $num = $self -> {numinputs} || 1 ;
my @vals ;
my $ok = 0 ;
for (my $i = 0; $i < $num; $i++)
{
$ok = 1 if (exists $fdat->{$name}) ;
push @vals, $fdat->{"$name-_-$i"} ;
}
$fdat->{$name} = join ($join, @vals) if ($ok) ;
}
1 ;
__EMBPERL__
[# ---------------------------------------------------------------------------
#
# show_control - output the control
#]
[$ sub show_control ($self)
my $class = $self -> {class} ;
my $numinputs = $self -> {numinputs} ;
my $size = $self -> {size} ||= 80 / ($self -> {width} || 2) / $numinputs ;
my $sep = $self -> {separator} || ' ' ;
my $i = 0 ;
$]
[$ while ($i < $numinputs) $]
<input type="text" class="cBase cControl [+ $class +]" name="[+ $self->{name} +]-_-[+ $i +]"
[$if $size $]size="[+ $size +]"[$endif$]
[$if $self -> {maxlength} $]maxlength="[+ $self->{maxlength} +]"[$endif$]
[+ do { local $escmode = 0 ; $self -> {eventattrs} } +]>[+ $i + 1 < $numinputs?$sep:'' +]
[- $i++ -]
[$endwhile$]
( run in 5.083 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )