From 93afe6e6fff3e678da47954dca3ae35fc7c11ada Mon Sep 17 00:00:00 2001 From: Tom Rix Date: Mon, 1 Mar 2010 21:49:50 +0000 Subject: [PATCH] MINOR Custom meta tags on SubsiteVirtualPages no longer get overwritten. (from r87329) --- code/SubsitesVirtualPage.php | 2 ++ tests/SubsiteTest.yml | 1 + tests/SubsitesVirtualPageTest.php | 31 +++++++++++++++++++++++++++++++ 3 files changed, 34 insertions(+) diff --git a/code/SubsitesVirtualPage.php b/code/SubsitesVirtualPage.php index 1c97458..b154076 100644 --- a/code/SubsitesVirtualPage.php +++ b/code/SubsitesVirtualPage.php @@ -72,6 +72,8 @@ class SubsitesVirtualPage extends VirtualPage { foreach($fields as $k => $v) { if($v == 'SubsiteID') unset($fields[$k]); } + + foreach(self::$db as $field => $type) if (in_array($field, $fields)) unset($fields[array_search($field, $fields)]); return $fields; } diff --git a/tests/SubsiteTest.yml b/tests/SubsiteTest.yml index 3a84a24..09f6695 100644 --- a/tests/SubsiteTest.yml +++ b/tests/SubsiteTest.yml @@ -47,6 +47,7 @@ SiteTree: SubsiteID: =>Subsite_Template.main linky: Title: Linky + MetaTitle: Linky SubsiteID: =>Subsite_Template.main staff: Title: Staff diff --git a/tests/SubsitesVirtualPageTest.php b/tests/SubsitesVirtualPageTest.php index 9a8810c..48f66e8 100644 --- a/tests/SubsitesVirtualPageTest.php +++ b/tests/SubsitesVirtualPageTest.php @@ -163,4 +163,35 @@ class SubsitesVirtualPageTest extends SapphireTest { } } + /** + * Test custom metadata. Reloading Content should not + * obliterate our custom fields + */ + function testCustomMetadata() { + Subsite::$write_hostmap = false; + + $subsite = $this->objFromFixture('Subsite_Template', 'main'); + + Subsite::changeSubsite($subsite->ID); + + $orig = $this->objFromFixture('SiteTree', 'linky'); + + $svp = new SubsitesVirtualPage(); + $svp->CopyContentFromID = $orig->ID; + $svp->SubsiteID = $subsite->ID; + $svp->URLSegment = 'linky-'.rand(); + $svp->write(); + + $this->assertEquals($svp->MetaTitle, 'Linky'); + + $svp->CustomMetaTitle = 'SVPTitle'; + $svp->write(); + $this->assertEquals($svp->MetaTitle, 'SVPTitle'); + + $svp->copyFrom($svp->CopyContentFrom()); + $svp->write(); + + $this->assertEquals($svp->MetaTitle, 'SVPTitle'); + + } } \ No newline at end of file