diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index 16d37a664..357a820b5 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -53,6 +53,7 @@ error. - fix: RSS feeds should now process HTML characters properly for RSS 2.0 standard - fix: Corner case which could cause WeatherData.pm to fail has been fixed. + - fix: wiki pagination broken (perlDreamer Consulting, LLC) 7.3.8 - Fixed a template variable rewriting problem with HTML::Template::Expr diff --git a/lib/WebGUI/Asset/Wobject/WikiMaster.pm b/lib/WebGUI/Asset/Wobject/WikiMaster.pm index 8dc31798c..0fbf74e90 100644 --- a/lib/WebGUI/Asset/Wobject/WikiMaster.pm +++ b/lib/WebGUI/Asset/Wobject/WikiMaster.pm @@ -23,7 +23,7 @@ sub appendMostPopular { my $self = shift; my $var = shift; my $limit = shift || $self->get("mostPopularCount"); - while (my $asset = @{$self->getLineage(["children"],{returnObjects=>1, limit=>$limit, includeOnlyClasses=>["WebGUI::Asset::WikiPage"]})}) { + foreach my $asset (@{$self->getLineage(["children"],{returnObjects=>1, limit=>$limit, includeOnlyClasses=>["WebGUI::Asset::WikiPage"]})}) { if (defined $asset) { push(@{$var->{mostPopular}}, { title=>$asset->getTitle, @@ -421,13 +421,19 @@ sub www_search { addPageUrl=>$self->getUrl("func=add;class=WebGUI::Asset::WikiPage"), }; my $queryString = $self->session->form->process('query', 'text'); + if (defined $queryString) { + $self->session->scratch->set('wikiSearchQueryString', $queryString); + } + else { + $queryString = $self->session->scratch->get('wikiSearchQueryString'); + } $self->appendSearchBoxVars($var, $queryString); if (length $queryString) { my $search = WebGUI::Search->new($self->session); $search->search({ keywords => $queryString, lineage => [$self->get('lineage')], classes => ['WebGUI::Asset::WikiPage'] }); - my $rs = $search->getPaginatorResultSet; + my $rs = $search->getPaginatorResultSet($self->getUrl("func=search"),5); $rs->appendTemplateVars($var); my @results = (); foreach my $row (@{$rs->getPageData}) { diff --git a/lib/WebGUI/Paginator.pm b/lib/WebGUI/Paginator.pm index 0bb05a6ac..49a3a34ac 100644 --- a/lib/WebGUI/Paginator.pm +++ b/lib/WebGUI/Paginator.pm @@ -461,7 +461,7 @@ sub getRowCount { #------------------------------------------------------------------- -=head2 new ( session, currentURL [, paginateAfter, pageNumber, formVar ] ) +=head2 new ( session, currentURL [, paginateAfter, formVar, pageNumber ] ) Constructor. @@ -477,14 +477,14 @@ The URL of the current page including attributes. The page number will be append The number of rows to display per page. If left blank it defaults to 25. -=head3 pageNumber - -By default the page number will be determined by looking at $self->session->form->process("pn"). If that is empty the page number will be defaulted to "1". If you'd like to override the page number specify it here. - =head3 formVar Specify the form variable the paginator should use in it's links. Defaults to "pn". +=head3 pageNumber + +By default the page number will be determined by looking at $self->session->form->process("pn"). If that is empty the page number will be defaulted to "1". If you'd like to override the page number specify it here. + =cut sub new { diff --git a/lib/WebGUI/Search.pm b/lib/WebGUI/Search.pm index 9c47a1bbe..8e73ece7d 100644 --- a/lib/WebGUI/Search.pm +++ b/lib/WebGUI/Search.pm @@ -151,7 +151,7 @@ sub getPaginatorResultSet { if $self->{_columns}; my $query = $self->_getQuery(\@columns); - my $paginator = WebGUI::Paginator->new($self->session, $url, $paginate, $pageNumber, $formVar); + my $paginator = WebGUI::Paginator->new($self->session, $url, $paginate, $formVar, $pageNumber); $paginator->setDataByQuery($query, undef, undef, $self->{_params}); return $paginator; }