1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
<%doc>
Example:
include('/elements/init_overlib.html')
include( '/elements/popup_link_onclick.html', { #hashref or a list, either way
#required
'action' => 'content.html', # uri for content of popup
#alternately, use instead of action
'js_action' => 'url', # javascript variable or expression
#strongly recommended
'actionlabel => 'You clicked', # popup title
#opt
'width' => 540,
'height' => 336,
'color' => '#ff0000',
'closetext' => 'Go Away', # the value '' removes the link
#uncommon opt
'frame' => 0, #bool
'scrolling' => 'yes', #scrollbars:
# 'auto' (default if omitted), 'yes' or 'no'.
'nofalse' => 0, #bool, eliminates "return false;"
} )
</%doc>
% if ($action) {
<% $onclick |n %>\
% }
<%init>
my( $action, $actionlabel, $frame ) = ( '', '', '' );
my( $width, $height ) = ( 540, 336 );
my $closetext = emt('Close');
my $color = '#333399';
my $scrolling = 'auto';
my $params;
if (ref($_[0]) eq 'HASH') {
#$params = { %$params, %{ $_[0] } };
$params = shift;
} else {
#$params = { %$params, @_ };
$params = { @_ };
}
$action = q(') . $params->{'action'} . q(') if exists $params->{'action'};
$action = $params->{'js_action'} if exists $params->{'js_action'};
$actionlabel = $params->{'actionlabel'} if exists $params->{'actionlabel'};
$width = $params->{'width'} if exists $params->{'width'};
$height = $params->{'height'} if exists $params->{'height'};
$color = $params->{'color'} if exists $params->{'color'};
$closetext = $params->{'closetext'} if exists $params->{'closetext'};
$frame = $params->{'frame'} if exists $params->{'frame'};
$scrolling = $params->{'scrolling'} if exists $params->{'scrolling'};
#stupid safari is caching the "location" of popup iframs, and submitting them
#instead of displaying them. this should prevent that.
my $popup_name = 'popup-'.time. "-$$-". rand() * 2**32;
my $onclick =
"overlib( OLiframeContent($action, $width, $height, '$popup_name', 0, '$scrolling' ), ".
"CAPTION, '$actionlabel', STICKY, AUTOSTATUSCAP, MIDX, 0, MIDY, 0, ".
"DRAGGABLE, CLOSECLICK, ".
"BGCOLOR, '$color', CGCOLOR, '$color', FGCOLOR, '#f8f8f8', ".
"CLOSETEXT, '$closetext'".
( $frame ? ", FRAME, $frame" : '' ).
");";
$onclick .= " return false;"
unless $params->{'nofalse'};
</%init>
|