/usr/local/CPAN/Embperl/Embperl/Form/Control/displaylink.pm
###################################################################################
#
# 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::displaylink ;
use strict ;
use base 'Embperl::Form::Control' ;
use Embperl::Inline ;
# ---------------------------------------------------------------------------
#
# show_control_readonly - output readonly control
#
sub show_control_readonly
{
my ($self, $req) = @_ ;
$self -> show_control ($req) ;
}
1 ;
__EMBPERL__
[# ---------------------------------------------------------------------------
#
# show_control - output the control
#]
[$ sub show_control ($self)
my $name = $self->{name};
my $hrefs = $self -> {href} ;
my $targets = $self -> {target} ;
my $opens = $self -> {open} ;
my $displays = $self -> {link} || $self -> {value} ;
my $form = $self -> form ;
my $showoptions = $self -> {showoptions} ;
$hrefs = [$hrefs] if (!ref $hrefs) ;
$targets = [$targets] if ($targets && !ref $targets) ;
$opens = [$opens] if ($opens && !ref $opens) ;
$displays = [$displays] if (!ref $displays) ;
my $dispn = 0 ;
$]
[$ foreach $display (@$displays) $]
[$if $opens -> [$dispn] $]
<a href="#" onclick="[+ $opens -> [$dispn] +][$if $hrefs -> [$dispn] $]('[+ $hrefs -> [$dispn] +]')[$endif$]">
[$else$]
<a href="[+ do {local $escmode=0;$hrefs -> [$dispn]} +]"
[$if $targets -> [$dispn] $]target="[+ $targets -> [$dispn] +]"[$endif$]>
[$endif$][+ $showoptions?$display:$form -> convert_text ($self, $display) +]</a>
[- $dispn++ -]
[$endforeach$]
__END__
=pod
=head1 NAME
Embperl::Form::Control::displaylink - A control to display links inside an Embperl Form
=head1 SYNOPSIS
{
type => 'displaylink',
text => 'blabla',
link => ['ecos', 'bb5000'],
href => ['http://www.ecos.de', 'http://www.bb5000.info']
}
=head1 DESCRIPTION
Used to create a control which displays links inside an Embperl Form.
See Embperl::Form on how to specify parameters.
=head2 PARAMETER
=head3 type
Needs to be set to 'displaylink'.
=head3 text
Will be used as label for the text display control.
=head3 link
Arrayref with texts for the links that should be shown to the user
=head3 href
Arrayref with hrefs
=head3 open
Arrayref, if a value is given for the link, the value will be used as
javascript function which is executed onclick. href will be pass as
argument.
=head3 target
Arrayref with targets
=head3 showtext
If set the texts from the link parameter will not be passed thru convert_text
=head1 Author
G. Richter (richter@dev.ecos.de)
=head1 See Also
perl(1), Embperl, Embperl::Form