Skip to content

Commit

Permalink
BUGFIX #6162 CMSMain::publishall() fails when over 30 pages (thanks n…
Browse files Browse the repository at this point in the history
…atmchugh!) (from r114940)

git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/cms/branches/2.4@114941 467b73ca-7a2a-4603-9d3b-597d59a354a9
  • Loading branch information
Sean Harvey authored and Sam Minnee committed Feb 2, 2011
1 parent 357b868 commit 77c5701
Show file tree
Hide file tree
Showing 3 changed files with 62 additions and 20 deletions.
32 changes: 15 additions & 17 deletions code/CMSMain.php
Expand Up @@ -1251,23 +1251,21 @@ function publishall($request) {
$start = 0;
$pages = DataObject::get("SiteTree", "", "", "", "$start,30");
$count = 0;
if($pages){
while(true) {
foreach($pages as $page) {
if($page && !$page->canPublish()) return Security::permissionFailure($this);

$page->doPublish();
$page->destroy();
unset($page);
$count++;
$response .= "<li>$count</li>";
}
if($pages->Count() > 29) {
$start += 30;
$pages = DataObject::get("SiteTree", "", "", "", "$start,30");
} else {
break;
}
while($pages) {
foreach($pages as $page) {
if($page && !$page->canPublish()) return Security::permissionFailure($this);

$page->doPublish();
$page->destroy();
unset($page);
$count++;
$response .= "<li>$count</li>";
}
if($pages->Count() > 29) {
$start += 30;
$pages = DataObject::get("SiteTree", "", "", "", "$start,30");
} else {
break;
}
}
$response .= sprintf(_t('CMSMain.PUBPAGES',"Done: Published %d pages"), $count);
Expand Down
4 changes: 2 additions & 2 deletions tests/CMSMainTest.php
Expand Up @@ -38,7 +38,7 @@ function testPublish() {
$response = $this->get("admin/cms/publishall?confirm=1");

$this->assertContains(
sprintf(_t('CMSMain.PUBPAGES',"Done: Published %d pages"), 8),
sprintf(_t('CMSMain.PUBPAGES',"Done: Published %d pages"), 30),
$response->getBody()
);

Expand Down Expand Up @@ -225,4 +225,4 @@ function testCreationOfTopLevelPage(){
// TODO Logout
$this->session()->inst_set('loggedInAs', NULL);
}
}
}
46 changes: 45 additions & 1 deletion tests/CMSMainTest.yml
Expand Up @@ -13,6 +13,50 @@ Page:
Parent: =>Page.page3
page4:
Title: Page 4
page5:
Title: Page 5
page6:
Title: Page 6
page7:
Title: Page 7
page8:
Title: Page 8
page9:
Title: Page 9
page10:
Title: Page 10
page11:
Title: Page 11
page12:
Title: Page 12
page13:
Title: Page 13
page14:
Title: Page 14
page15:
Title: Page 15
page16:
Title: Page 16
page17:
Title: Page 17
page18:
Title: Page 18
page19:
Title: Page 19
page20:
Title: Page 20
page21:
Title: Page 21
page22:
Title: Page 22
page23:
Title: Page 23
page24:
Title: Page 24
page25:
Title: Page 25
page26:
Title: Page 26
home:
Title: Home
URLSegment: home
Expand Down Expand Up @@ -82,4 +126,4 @@ RedirectorPage:
page5:
Title: Page 5
RedirectionType: External
ExternalURL: http://www.google.com
ExternalURL: http://www.google.com

0 comments on commit 77c5701

Please sign in to comment.