[interchange-cvs] interchange - heins modified lib/Vend/Menu.pm
interchange-core@icdevgroup.org
interchange-core@icdevgroup.org
Sun Aug 18 04:01:01 2002
User: heins
Date: 2002-08-18 08:00:20 GMT
Modified: lib/Vend Menu.pm
Log:
* Add "flydown" menu, with anchor_down=3D1 parameter.
* Fix bug in menu_group transform.
Revision Changes Path
2.12 +33 -8 interchange/lib/Vend/Menu.pm
rev 2.12, prev_rev 2.11
Index: Menu.pm
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /var/cvs/interchange/lib/Vend/Menu.pm,v
retrieving revision 2.11
retrieving revision 2.12
diff -u -r2.11 -r2.12
--- Menu.pm 15 Aug 2002 06:42:56 -0000 2.11
+++ Menu.pm 18 Aug 2002 08:00:19 -0000 2.12
@@ -1,6 +1,6 @@
# Vend::Menu - Interchange payment processing routines
#
-# $Id: Menu.pm,v 2.11 2002/08/15 06:42:56 mheins Exp $
+# $Id: Menu.pm,v 2.12 2002/08/18 08:00:19 mheins Exp $
#
# Copyright (C) 2002 Mike Heins, <mike@perusion.net>
#
@@ -21,7 +21,7 @@
=20
package Vend::Menu;
=20
-$VERSION =3D substr(q$Revision: 2.11 $, 10);
+$VERSION =3D substr(q$Revision: 2.12 $, 10);
=20
use Vend::Util;
use strict;
@@ -108,7 +108,7 @@
$c ||=3D $f;
$status =3D $status && (
! $row->{$f}
- or $row->{$f} =3D~ /$CGI::values{$c}/i
+ or $CGI::values{$c} =3D~ /$row->{$f}/i
);
}
};
@@ -339,6 +339,8 @@
padding: 2px;
EOF
=20
+ $opt->{anchor_down} =3D is_yes($opt->{anchor_down}) || 0;
+
=20
push @out, <<EOF;
<script language=3D"JavaScript1.3">
@@ -373,6 +375,7 @@
shift @levels;
=20
push @out, <<EOF;
+var anchor_down =3D $opt->{anchor_down};
var last_level =3D $levels[$#levels];
var link_class =3D '$opt->{link_class}';
var link_class_open =3D '$opt->{link_class_open}';
@@ -479,8 +482,12 @@
=20
function getRightX( obj )
{
+ var pos =3D 0;
if( browserType() =3D=3D "ie" )
- return obj.getBoundingClientRect().right - 2;
+ if(anchor_down =3D=3D 1)=20
+ pos =3D obj.getBoundingClientRect().right - 2;
+ else
+ pos =3D obj.getBoundingClientRect().left + 2;
else {
var n =3D 0;
var x =3D obj.offsetParent;
@@ -488,14 +495,21 @@
n +=3D x.offsetLeft;
x =3D x.offsetParent;
}
- return n + obj.offsetLeft + obj.offsetWidth;
+ pos =3D n + obj.offsetLeft;
+ if(anchor_down !=3D 1)
+ pos +=3D obj.offsetWidth;
}
+ return pos;
}
=20
function getTopX( obj )
{
+ var pos =3D 0;
if( browserType() =3D=3D "ie" )
- return obj.getBoundingClientRect().top - 2;
+ if(anchor_down)=20
+ pos =3D obj.getBoundingClientRect().bottom + 2;
+ else
+ pos =3D obj.getBoundingClientRect().top - 2;
else {
var n =3D 0;
var x =3D obj;
@@ -503,8 +517,11 @@
n +=3D x.offsetParent.offsetTop;
x =3D x.offsetParent;
}
- return n + obj.offsetTop;
+ pos =3D n + obj.offsetTop;
+ if(anchor_down)
+ pos +=3D obj.offsetHeight;
}
+ return pos;
}
=20=09
function mouseout( obj, level )
@@ -937,8 +954,16 @@
=20
$fields =3D $opt->{loopfields};
=20
+ if(defined $opt->{next_level}) {
+ return if $row->{mv_level} > $opt->{next_level};
+ undef $opt->{next_level};
+ }
+
for(@{$opt->{_transform}}) {
- return unless $transform{$_}->($row, $opt->{$_});
+ my $status =3D $transform{$_}->($row, $opt->{$_});
+ $opt->{next_level} =3D $row->{mv_level}
+ if ! $status;
+ return unless $status;
}
=20
if($row->{page} and $row->{page} !~ /^\w+:/) {