From 436ca52676559e689ef497aa29247867aa4e5e6b Mon Sep 17 00:00:00 2001 From: Colin Kuskie Date: Wed, 31 Dec 2008 16:58:26 +0000 Subject: [PATCH] Fix a problem where an unviewable initial asset would throw off the indent_loop size by 1. In the nav templates, this would generate bad closing markup. --- docs/changelog/7.x.x.txt | 1 + lib/WebGUI/Asset/Wobject/Navigation.pm | 11 +++++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index 0b76ee934..4f3f4ac92 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -21,6 +21,7 @@ - refixed #9147: Misspellings in Account - fixed #9348: Required Upgrade Step Not Documented - 7.6.0 - fixed #8993: Gallery Image Details Overlap Image + - fixed #9380: CoolMenus template - invalid markup affecting page layouts 7.6.7 - fixed #9263: Thingy possibleValues processing, and List type autodetection. diff --git a/lib/WebGUI/Asset/Wobject/Navigation.pm b/lib/WebGUI/Asset/Wobject/Navigation.pm index 1117adc96..a6878d761 100644 --- a/lib/WebGUI/Asset/Wobject/Navigation.pm +++ b/lib/WebGUI/Asset/Wobject/Navigation.pm @@ -405,10 +405,6 @@ sub view { my $previousPageData = undef; my $eh = $self->session->errorHandler; foreach my $asset (@{$assets}) { - # Set absoluteDepthOfFirstPage - if ( !defined $absoluteDepthOfFirstPage ) { - $absoluteDepthOfFirstPage = $asset->getLineageLength; - } # skip pages we shouldn't see my $pageLineage = $asset->get("lineage"); @@ -426,6 +422,13 @@ sub view { $lineageToSkip = $pageLineage unless ($pageLineage eq "000001"); next; } + + # Set absoluteDepthOfFirstPage after we have determined if the first page is viewable! + # Otherwise, the indent loop calculation below will be off by 1 (or more) + if ( !defined $absoluteDepthOfFirstPage ) { + $absoluteDepthOfFirstPage = $asset->getLineageLength; + } + my $pageData = {}; my $pageProperties = $asset->get; while (my ($property, $propertyValue) = each %{ $pageProperties }) {