Embperl::Form::Control::inputjoin - A number of text input controls inside an Embperl Form


Embperl documentation Contained in the Embperl distribution.

Index


Code Index:

NAME

Top

Embperl::Form::Control::inputjoin - A number of text input controls inside an Embperl Form

SYNOPSIS

Top

  { 
  type      => 'input',
  text      => 'blabla', 
  name      => 'foo',
  size      => 10,
  maxlength => 50,
  numinputs => 4
  }

DESCRIPTION

Top

Used to create a number of input control inside an Embperl Form, which contents are joined. See Embperl::Form on how to specify parameters.

PARAMETER

type

Needs to be 'input'

name

Specifies the name of the control

text

Will be used as label for the text input control

size

Gives the size in characters

maxlength

Gives the maximum possible input length in characters

class

Alternative CSS class name

numinputs

Number of input boxes

join

Strings which is used to join the input fields

split

Regex which is used to split the data into the input fields. Default is /join/

separator

String to display between the input boxes

Author

Top

G. Richter (richter@dev.ecos.de)

See Also

Top

perl(1), Embperl, Embperl::Form


Embperl documentation Contained in the Embperl distribution.

###################################################################################
#
#   Embperl - Copyright (c) 1997-2010 Gerald Richter / ecos gmbh   www.ecos.de
#
#   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 $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 $name  = $self -> {name} ;
    my $join  = $self -> {join} ;
    my $num   = $self -> {numinputs} || 1 ;
    my @vals ;
    for (my $i = 0; $i < $num; $i++)
	{
	push @vals, $fdat{"$name-_-$i"} ;
	}
    $fdat{$name} = join ($join, @vals) ;
    }



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$]
[$endsub$]

__END__