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 )