diff --git a/modules/page-trail.pl b/modules/page-trail.pl index a13068c3..fbe8d914 100644 --- a/modules/page-trail.pl +++ b/modules/page-trail.pl @@ -20,7 +20,7 @@ use vars qw($PageTrailLength); $PageTrailLength = 10; -$ModulesDescription .= '
$Id: page-trail.pl,v 1.2 2004/01/30 21:35:44 as Exp $
'; +$ModulesDescription .= '$Id: page-trail.pl,v 1.3 2004/10/04 20:41:01 as Exp $
'; $CookieParameters{trail} = ''; $InvisibleCookieParameters{trail} = 1; @@ -38,10 +38,13 @@ sub NewPageTrailBrowsePage { sub UpdatePageTrail { my $id = shift; my $US = "\x1f"; - @PageTrail = split(/$US/, GetParam('trail', '')); - unshift(@PageTrail, $id); - @PageTrail = @PageTrail[0..$PageTrailLength-1] if $PageTrail[$PageTrailLength]; - SetParam('trail', join($US, @PageTrail)); + my @trail = ($id); + foreach my $page (split(/$US/, GetParam('trail', ''))) { + push(@trail, $page) unless $page eq $id; + } + @trail = @trail[0..$PageTrailLength-1] if $trail[$PageTrailLength]; + SetParam('trail', join($US, @trail)); + @PageTrail = @trail; } *OldPageTrailGetGotoBar = *GetGotoBar;