summaryrefslogtreecommitdiff
path: root/httemplate/elements/popup_link_onclick.html
diff options
context:
space:
mode:
Diffstat (limited to 'httemplate/elements/popup_link_onclick.html')
-rw-r--r--httemplate/elements/popup_link_onclick.html74
1 files changed, 74 insertions, 0 deletions
diff --git a/httemplate/elements/popup_link_onclick.html b/httemplate/elements/popup_link_onclick.html
new file mode 100644
index 0000000..4c61a6c
--- /dev/null
+++ b/httemplate/elements/popup_link_onclick.html
@@ -0,0 +1,74 @@
+<%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
+
+ #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 = 'Close';
+my $color = '#333399';
+my $scrolling = 'auto';
+
+my $params;
+if (ref($_[0]) eq 'HASH') {
+ #$params = { %$params, %{ $_[0] } };
+ $params = shift;
+} else {
+ #$params = { %$params, @_ };
+ $params = { @_ };
+}
+
+$action = $params->{'action'} if exists $params->{'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', CLOSETEXT, '$closetext'".
+ ( $frame ? ", FRAME, $frame" : '' ).
+ ");";
+
+$onclick .= " return false;"
+ unless $params->{'nofalse'};
+
+</%init>