mirror of
https://github.com/silverstripe/silverstripe-subsites
synced 2024-10-22 09:05:55 +00:00
Merge branch '1'
This commit is contained in:
commit
cc064c43ce
@ -829,16 +829,35 @@ class Subsite extends DataObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Whenever a Subsite is written, rewrite the hostmap
|
* Whenever a Subsite is written, rewrite the hostmap and create some default pages
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function onAfterWrite()
|
public function onAfterWrite()
|
||||||
{
|
{
|
||||||
Subsite::writeHostMap();
|
Subsite::writeHostMap();
|
||||||
|
if ($this->isChanged('ID')) {
|
||||||
|
$this->createDefaultPages();
|
||||||
|
}
|
||||||
parent::onAfterWrite();
|
parent::onAfterWrite();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Automatically create default pages for new subsites
|
||||||
|
*/
|
||||||
|
protected function createDefaultPages()
|
||||||
|
{
|
||||||
|
$currentSubsite = Subsite::currentSubsiteID();
|
||||||
|
Subsite::changeSubsite($this->ID);
|
||||||
|
|
||||||
|
// Silence DB schema output
|
||||||
|
DB::quiet();
|
||||||
|
$siteTree = new SiteTree();
|
||||||
|
$siteTree->requireDefaultRecords();
|
||||||
|
|
||||||
|
Subsite::changeSubsite($currentSubsite);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the primary domain of this site. Tries to "normalize" the domain name,
|
* Return the primary domain of this site. Tries to "normalize" the domain name,
|
||||||
* by replacing potential wildcards.
|
* by replacing potential wildcards.
|
||||||
|
@ -36,6 +36,14 @@ class SiteTreeSubsitesTest extends BaseSubsiteTest
|
|||||||
SiteTree::class => ['Translatable'] // @todo implement Translatable namespace
|
SiteTree::class => ['Translatable'] // @todo implement Translatable namespace
|
||||||
];
|
];
|
||||||
|
|
||||||
|
protected function setUp()
|
||||||
|
{
|
||||||
|
// We have our own home page fixtures, prevent the default one being created in this test suite.
|
||||||
|
Config::modify()->set(SiteTree::class, 'create_default_pages', false);
|
||||||
|
|
||||||
|
parent::setUp();
|
||||||
|
}
|
||||||
|
|
||||||
public function testPagesInDifferentSubsitesCanShareURLSegment()
|
public function testPagesInDifferentSubsitesCanShareURLSegment()
|
||||||
{
|
{
|
||||||
$subsiteMain = $this->objFromFixture(Subsite::class, 'main');
|
$subsiteMain = $this->objFromFixture(Subsite::class, 'main');
|
||||||
|
@ -473,4 +473,15 @@ class SubsiteTest extends BaseSubsiteTest
|
|||||||
$subsite2->activate();
|
$subsite2->activate();
|
||||||
$this->assertEquals('MyNewAwesomePage', DataObject::get_by_id('Page', $page2->ID)->Title);
|
$this->assertEquals('MyNewAwesomePage', DataObject::get_by_id('Page', $page2->ID)->Title);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testDefaultPageCreatedWhenCreatingSubsite()
|
||||||
|
{
|
||||||
|
$subsite = new Subsite();
|
||||||
|
$subsite->Title = 'New Subsite';
|
||||||
|
$subsite->write();
|
||||||
|
$subsite->activate();
|
||||||
|
|
||||||
|
$pages = SiteTree::get();
|
||||||
|
$this->assertGreaterThanOrEqual(1, $pages->count());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user