From e1bd43b02e887c20f1ac6c0febf107c62f383875 Mon Sep 17 00:00:00 2001 From: JT Smith Date: Thu, 1 Feb 2007 00:05:22 +0000 Subject: [PATCH] - fix: Added better error trapping for WikiMaster - fix: Wiki causes site to fail - fix: Wiki Error on plainblack.com --- docs/changelog/7.x.x.txt | 3 +++ lib/WebGUI/Asset/Wobject/WikiMaster.pm | 21 ++++++++++----------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index 2e6d3b56a..cca721502 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -11,6 +11,9 @@ and tested. - fix: Spectre needs new watch batteries - fix: Admin.pm (thanks to elnino) + - fix: Added better error trapping for WikiMaster + - fix: Wiki causes site to fail + - fix: Wiki Error on plainblack.com - fix: lack of testing for valid object creation - fix: No mention of intermediate upgrade step in gotcha's - fix: A newly released version of Html::Template fixes a bug with global diff --git a/lib/WebGUI/Asset/Wobject/WikiMaster.pm b/lib/WebGUI/Asset/Wobject/WikiMaster.pm index 38c436bbb..8dc31798c 100644 --- a/lib/WebGUI/Asset/Wobject/WikiMaster.pm +++ b/lib/WebGUI/Asset/Wobject/WikiMaster.pm @@ -23,16 +23,15 @@ sub appendMostPopular { my $self = shift; my $var = shift; my $limit = shift || $self->get("mostPopularCount"); - my $rs = $self->session->db->read("select distinct(asset.assetId) from asset left join WikiPage on WikiPage.assetId=asset.assetId - where lineage like ? and lineage<>? and revisionDate = (select max(revisionDate) from WikiPage where assetId = asset.assetId) - and state='published' - order by views desc limit ?", [$self->get("lineage").'%', $self->get("lineage"), $limit]); - while (my ($id) = $rs->array) { - my $asset = WebGUI::Asset->new($self->session, $id, "WebGUI::Asset::WikiPage"); - push(@{$var->{mostPopular}}, { - title=>$asset->getTitle, - url=>$asset->getUrl, - }); + while (my $asset = @{$self->getLineage(["children"],{returnObjects=>1, limit=>$limit, includeOnlyClasses=>["WebGUI::Asset::WikiPage"]})}) { + if (defined $asset) { + push(@{$var->{mostPopular}}, { + title=>$asset->getTitle, + url=>$asset->getUrl, + }); + } else { + $self->session->errorHandler->error("Couldn't instanciate wikipage for master ".$self->getId); + } } } @@ -42,7 +41,7 @@ sub appendRecentChanges { my $var = shift; my $limit = shift || $self->get("recentChangesCount") || 50; my $rs = $self->session->db->read("select asset.assetId, revisionDate from assetData left join asset on assetData.assetId=asset.assetId where - lineage like ? and lineage<>? order by revisionDate desc limit ?", [$self->get("lineage").'%', $self->get("lineage"), $self->get("recentChangesCount")]); + lineage like ? and lineage<>? and status='approved' order by revisionDate desc limit ?", [$self->get("lineage").'%', $self->get("lineage"), $self->get("recentChangesCount")]); while (my ($id, $version) = $rs->array) { my $asset = WebGUI::Asset->new($self->session, $id, "WebGUI::Asset::WikiPage", $version); my $user = WebGUI::User->new($self->session, $asset->get("actionTakenBy"));