links —
Interchange 5.9.0:
Source: code/Widget/links.widget
Lines: 12
# Copyright 2005-2007 Interchange Development Group and others # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. See the LICENSE file for details. # # $Id: links.widget,v 1.3 2007-03-30 23:40:58 pajamian Exp $ CodeDef links Widget 1 CodeDef links Description Build links CodeDef links MapRoutine Vend::Form::links
Source: lib/Vend/Form.pm
Lines: 387
sub links { my($opt, $opts) = @_; $opt->{joiner} = Vend::Interpolate::get_joiner($opt->{joiner}, "<br$Vend::Xtrailer>"); my $name = $opt->{name}; my $default = defined $opt->{value} ? $opt->{value} : $opt->{default}; $opt->{extra} = " $opt->{extra}" if $opt->{extra}; my $template = $opt->{template} || <<EOF; <a href="{URL}"{EXTRA}>{SELECTED <b>}{LABEL}{SELECTED </b>}</a> EOF my $o_template = $opt->{o_template} || <<EOF; <b>{TVALUE}</b> EOF my $href = $opt->{href} || $Global::Variable->{MV_PAGE}; $opt->{form} = "mv_action=return" unless $opt->{form}; my $no_encode = $opt->{pre_filter} eq 'decode_entities' ? 1 : 0; my @out; for(@$opts) { #warn "iterating links opt $_ = " . uneval_it($_) . "\n"; my $attr = { extra => $opt->{extra}}; s/\*$// and $attr->{selected} = 1; ($attr->{value},$attr->{label}) = @$_; encode($attr->{label}, $ESCAPE_CHARS::std) unless $no_encode; if($attr->{value} =~ /^\s*\~\~(.*)\~\~\s*$/) { my $lab = $1; $lab =~ s/"/"/g; $opt->{tvalue} = $lab; $opt->{tlabel} = $lab; push @out, attr_list($o_template, $opt); next; } next if ! $attr->{value} and ! $opt->{empty}; if( ! length($attr->{label}) ) { $attr->{label} = $attr->{value} or next; } if ($default) { $attr->{selected} = $default eq $attr->{value} ? 1 : ''; } my $form = $opt->{form}; $attr->{label} =~ s/\s/ /g if $opt->{nbsp}; $attr->{url} = Vend::Interpolate::tag_area( $href, undef, { form => "$name=$attr->{value}\n$opt->{form}", secure => $opt->{secure}, }, ); push @out, attr_list($template, $attr); } return join $opt->{joiner}, @out; }