Skip to content

Commit

Permalink
MINOR refactored setting/getting strict hierarchy setting. (from r986…
Browse files Browse the repository at this point in the history
…54) (from r99064)

git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@102832 467b73ca-7a2a-4603-9d3b-597d59a354a9
  • Loading branch information
chillu committed Apr 14, 2010
1 parent 809072d commit 000d892
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 16 deletions.
16 changes: 6 additions & 10 deletions core/model/SiteTree.php
Original file line number Diff line number Diff line change
Expand Up @@ -198,15 +198,11 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
*/
private static $enforce_strict_hierarchy = true;

/**
* Getter and setter for enforce_strict_hierarchy. With no
* args it returns current value. Pass arg to set.
*
* @return bool
*/
public static function enforce_strict_hierarchy() {
$args = func_get_args();
if (count($args)) self::$enforce_strict_hierarchy = (bool) $args[0];
public static function set_enforce_strict_hierarchy($to) {
self::$enforce_strict_hierarchy = $to;
}

public static function get_enforce_strict_hierarchy() {
return self::$enforce_strict_hierarchy;
}

Expand Down Expand Up @@ -1420,7 +1416,7 @@ function onBeforeDelete() {
parent::onBeforeDelete();

// If deleting this page, delete all its children.
if(SiteTree::enforce_strict_hierarchy() && $children = $this->Children()) {
if(SiteTree::get_enforce_strict_hierarchy() && $children = $this->Children()) {
foreach($children as $child) {
$child->delete();
}
Expand Down
12 changes: 6 additions & 6 deletions tests/SiteTreeTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -307,7 +307,7 @@ public function testGetByLink() {
}

function testDeleteFromStageOperatesRecursively() {
SiteTree::enforce_strict_hierarchy(false);
SiteTree::set_enforce_strict_hierarchy(false);
$pageAbout = $this->objFromFixture('Page', 'about');
$pageStaff = $this->objFromFixture('Page', 'staff');
$pageStaffDuplicate = $this->objFromFixture('Page', 'staffduplicate');
Expand All @@ -317,7 +317,7 @@ function testDeleteFromStageOperatesRecursively() {
$this->assertFalse(DataObject::get_by_id('Page', $pageAbout->ID));
$this->assertTrue(DataObject::get_by_id('Page', $pageStaff->ID) instanceof Page);
$this->assertTrue(DataObject::get_by_id('Page', $pageStaffDuplicate->ID) instanceof Page);
SiteTree::enforce_strict_hierarchy(true);
SiteTree::set_enforce_strict_hierarchy(true);
}

function testDeleteFromStageOperatesRecursivelyStrict() {
Expand All @@ -333,7 +333,7 @@ function testDeleteFromStageOperatesRecursivelyStrict() {
}

function testDeleteFromLiveOperatesRecursively() {
SiteTree::enforce_strict_hierarchy(false);
SiteTree::set_enforce_strict_hierarchy(false);
$this->logInWithPermssion('ADMIN');

$pageAbout = $this->objFromFixture('Page', 'about');
Expand All @@ -351,11 +351,11 @@ function testDeleteFromLiveOperatesRecursively() {
$this->assertTrue(DataObject::get_by_id('Page', $pageStaff->ID) instanceof Page);
$this->assertTrue(DataObject::get_by_id('Page', $pageStaffDuplicate->ID) instanceof Page);
Versioned::reading_stage('Stage');
SiteTree::enforce_strict_hierarchy(true);
SiteTree::set_enforce_strict_hierarchy(true);
}

function testUnpublishDoesNotDeleteChildrenWithLooseHierachyOn() {
SiteTree::enforce_strict_hierarchy(false);
SiteTree::set_enforce_strict_hierarchy(false);
$this->logInWithPermssion('ADMIN');

$pageAbout = $this->objFromFixture('Page', 'about');
Expand All @@ -373,7 +373,7 @@ function testUnpublishDoesNotDeleteChildrenWithLooseHierachyOn() {
$this->assertTrue(DataObject::get_by_id('Page', $pageStaff->ID) instanceof Page);
$this->assertTrue(DataObject::get_by_id('Page', $pageStaffDuplicate->ID) instanceof Page);
Versioned::reading_stage('Stage');
SiteTree::enforce_strict_hierarchy(true);
SiteTree::set_enforce_strict_hierarchy(true);
}


Expand Down

0 comments on commit 000d892

Please sign in to comment.