From e378332ff3c781cda167d5f39a680448cbe8cf96 Mon Sep 17 00:00:00 2001 From: Damian Mooyman Date: Thu, 16 Jun 2016 16:57:19 +1200 Subject: [PATCH] API Update for new SilverStripe\ORM namespace --- code/batchactions/CMSBatchActions.php | 5 +++++ code/controllers/AssetAdmin.php | 8 ++++++-- code/controllers/CMSMain.php | 14 +++++++++++--- code/controllers/CMSPageAddController.php | 4 ++++ code/controllers/CMSPageHistoryController.php | 3 +++ code/controllers/CMSPagesController.php | 2 ++ code/controllers/CMSSiteTreeFilter.php | 3 +++ code/controllers/ContentController.php | 13 ++++++++++--- code/controllers/ErrorPageFileExtension.php | 3 +++ code/controllers/ModelAsController.php | 5 +++++ code/controllers/OldPageRedirector.php | 4 +++- code/controllers/RootURLController.php | 4 ++++ code/controllers/SilverStripeNavigator.php | 15 ++++++++++----- code/forms/SiteTreeURLSegmentField.php | 11 +++++++---- code/model/CurrentPageIdentifier.php | 3 +++ code/model/ErrorPage.php | 4 ++++ code/model/RedirectorPage.php | 3 +++ code/model/SiteTree.php | 16 ++++++++++++---- code/model/SiteTreeExtension.php | 2 ++ code/model/SiteTreeFileExtension.php | 7 ++++++- code/model/SiteTreeFolderExtension.php | 5 +++++ code/model/SiteTreeLinkTracking.php | 10 ++++++++-- code/model/VirtualPage.php | 4 ++++ code/reports/BrokenFilesReport.php | 3 +++ code/reports/BrokenLinksReport.php | 11 +++++++---- code/reports/BrokenRedirectorPagesReport.php | 3 +++ code/reports/BrokenVirtualPagesReport.php | 3 +++ code/reports/RecentlyEditedReport.php | 5 ++++- code/search/ContentControllerSearchExtension.php | 4 +++- code/search/SearchForm.php | 4 ++++ tasks/MigrateSiteTreeLinkingTask.php | 5 +++++ tasks/RemoveOrphanedPagesTask.php | 6 +++++- tasks/SiteTreeMaintenanceTask.php | 4 ++++ tasks/UpgradeSiteTreePermissionSchemaTask.php | 4 ++++ .../behat/features/bootstrap/FeatureContext.php | 6 ++++-- .../Cms/Test/Behaviour/FixtureContext.php | 6 ++++-- tests/controller/AssetAdminTest.php | 3 +++ tests/controller/CMSBatchActionsTest.php | 1 + tests/controller/CMSMainTest.php | 6 ++++++ .../controller/CMSPageHistoryControllerTest.php | 3 ++- tests/controller/CMSSiteTreeFilterTest.php | 3 +++ .../ContentControllerPermissionsTest.php | 3 +++ .../ContentControllerSearchExtensionTest.php | 5 ++++- tests/controller/ContentControllerTest.php | 3 +++ tests/controller/ModelAsControllerTest.php | 3 +++ tests/model/ErrorPageFileExtensionTest.php | 2 ++ tests/model/ErrorPageTest.php | 3 +++ tests/model/FileLinkTrackingTest.php | 3 +++ tests/model/SiteTreeActionsTest.php | 4 ++++ tests/model/SiteTreeBacklinksTest.php | 3 +++ tests/model/SiteTreeBrokenLinksTest.php | 5 +++++ tests/model/SiteTreePermissionsTest.php | 3 +++ tests/model/SiteTreeTest.php | 7 +++++++ tests/model/VirtualPageTest.php | 9 ++++++++- tests/reports/CmsReportsTest.php | 9 ++++++--- tests/search/SearchFormTest.php | 4 ++++ tests/tasks/MigrateSiteTreeLinkingTaskTest.php | 3 +++ tests/tasks/RemoveOrphanedPagesTaskTest.php | 3 +++ 58 files changed, 258 insertions(+), 42 deletions(-) diff --git a/code/batchactions/CMSBatchActions.php b/code/batchactions/CMSBatchActions.php index fc2648bb..f25b36cf 100644 --- a/code/batchactions/CMSBatchActions.php +++ b/code/batchactions/CMSBatchActions.php @@ -1,4 +1,9 @@ _t('AssetAdmin.SIZE', 'Size'), )); $columns->setFieldCasting(array( - 'Created' => 'SS_Datetime->Nice' + 'Created' => 'DBDatetime->Nice' )); $gridField->setAttribute( 'data-url-folder-template', @@ -484,7 +488,7 @@ class AssetAdmin extends LeftAndMain implements PermissionProvider{ // check addchildren permissions if( - singleton($class)->hasExtension('Hierarchy') + singleton($class)->hasExtension('SilverStripe\ORM\Hierarchy\Hierarchy') && isset($data['ParentID']) && is_numeric($data['ParentID']) && $data['ParentID'] diff --git a/code/controllers/CMSMain.php b/code/controllers/CMSMain.php index f24289a7..d404e353 100644 --- a/code/controllers/CMSMain.php +++ b/code/controllers/CMSMain.php @@ -1,5 +1,13 @@ setDisplayFields($fields); $columns->setFieldCasting(array( - 'Created' => 'SS_Datetime->Ago', - 'LastEdited' => 'SS_Datetime->FormatFromSettings', + 'Created' => 'DBDatetime->Ago', + 'LastEdited' => 'DBDatetime->FormatFromSettings', 'getTreeTitle' => 'HTMLText' )); diff --git a/code/controllers/CMSPageAddController.php b/code/controllers/CMSPageAddController.php index a0235361..0de1ecdc 100644 --- a/code/controllers/CMSPageAddController.php +++ b/code/controllers/CMSPageAddController.php @@ -1,4 +1,8 @@ setVal($date); return "
". _t('ContentController.ARCHIVEDSITEFROM') ."
" . $dateObj->Nice() . "
"; } diff --git a/code/controllers/ErrorPageFileExtension.php b/code/controllers/ErrorPageFileExtension.php index 574dface..458842c6 100644 --- a/code/controllers/ErrorPageFileExtension.php +++ b/code/controllers/ErrorPageFileExtension.php @@ -1,5 +1,8 @@ byId($parent) : $parent; + $parent = is_numeric($parent) ? SiteTree::get()->byId($parent) : $parent; $params = (array)$params; $URL = rawurlencode(array_shift($params)); if (empty($URL)) { return false; } diff --git a/code/controllers/RootURLController.php b/code/controllers/RootURLController.php index 59d4df7e..d15faa1d 100644 --- a/code/controllers/RootURLController.php +++ b/code/controllers/RootURLController.php @@ -1,4 +1,8 @@ record->hasExtension('Versioned')) return false; + if(!$this->record->hasExtension('SilverStripe\ORM\Versioning\Versioned')) return false; if(!isset($this->record->_cached_isArchived)) { $baseClass = $this->record->baseClass(); @@ -282,7 +287,7 @@ class SilverStripeNavigatorItem_StageLink extends SilverStripeNavigatorItem { public function canView($member = null) { return ( - $this->record->hasExtension('Versioned') + $this->record->hasExtension('SilverStripe\ORM\Versioning\Versioned') && $this->getDraftPage() // Don't follow redirects in preview, they break the CMS editing form && !($this->record instanceof RedirectorPage) @@ -333,7 +338,7 @@ class SilverStripeNavigatorItem_LiveLink extends SilverStripeNavigatorItem { public function canView($member = null) { return ( - $this->record->hasExtension('Versioned') + $this->record->hasExtension('SilverStripe\ORM\Versioning\Versioned') && $this->getLivePage() // Don't follow redirects in preview, they break the CMS editing form && !($this->record instanceof RedirectorPage) @@ -383,7 +388,7 @@ class SilverStripeNavigatorItem_ArchiveLink extends SilverStripeNavigatorItem { public function canView($member = null) { return ( - $this->record->hasExtension('Versioned') + $this->record->hasExtension('SilverStripe\ORM\Versioning\Versioned') && $this->isArchived() // Don't follow redirects in preview, they break the CMS editing form && !($this->record instanceof RedirectorPage) diff --git a/code/forms/SiteTreeURLSegmentField.php b/code/forms/SiteTreeURLSegmentField.php index b00c26d5..7b3b4c17 100644 --- a/code/forms/SiteTreeURLSegmentField.php +++ b/code/forms/SiteTreeURLSegmentField.php @@ -1,5 +1,7 @@ URLSegment property, and suggest input based on the serverside rules * defined through {@link SiteTree->generateURLSegment()} and {@link URLSegmentFilter}. @@ -9,7 +11,6 @@ * @package cms * @subpackage forms */ - class SiteTreeURLSegmentField extends TextField { /** @@ -73,6 +74,7 @@ class SiteTreeURLSegmentField extends TextField { /** * @param string $string The secondary text to show + * @return $this */ public function setHelpText($string){ $this->helpText = $string; @@ -88,7 +90,8 @@ class SiteTreeURLSegmentField extends TextField { } /** - * @param the url that prefixes the page url segment field + * @param string $url the url that prefixes the page url segment field + * @return $this */ public function setURLPrefix($url){ $this->urlPrefix = $url; @@ -96,7 +99,7 @@ class SiteTreeURLSegmentField extends TextField { } /** - * @return the url prefixes the page url segment field to show in template + * @return string the url prefixes the page url segment field to show in template */ public function getURLPrefix(){ return $this->urlPrefix; @@ -107,7 +110,7 @@ class SiteTreeURLSegmentField extends TextField { } /** - * @return Indicator for UI to respond to changes accurately, + * @return string Indicator for UI to respond to changes accurately, * and auto-update the field value if changes to the default occur. * Does not set the field default value. */ diff --git a/code/model/CurrentPageIdentifier.php b/code/model/CurrentPageIdentifier.php index b333f31c..152f39e2 100644 --- a/code/model/CurrentPageIdentifier.php +++ b/code/model/CurrentPageIdentifier.php @@ -1,4 +1,7 @@ "HTMLText", - "LastEdited" => "SS_Datetime", - "Created" => "SS_Datetime", 'Link' => 'Text', 'RelativeLink' => 'Text', 'AbsoluteLink' => 'Text', @@ -188,8 +196,8 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid private static $description = 'Generic content page'; private static $extensions = array( - "Hierarchy", - "Versioned", + 'SilverStripe\ORM\Hierarchy\Hierarchy', + 'SilverStripe\ORM\Versioning\Versioned', "SiteTreeLinkTracking" ); diff --git a/code/model/SiteTreeExtension.php b/code/model/SiteTreeExtension.php index 3fc7d26a..45284407 100644 --- a/code/model/SiteTreeExtension.php +++ b/code/model/SiteTreeExtension.php @@ -1,5 +1,7 @@ array( "title" => $dateTitle, - 'casting' => 'SS_Datetime->Full' + 'casting' => 'DBDatetime->Full' ), "BrokenReason" => array( "title" => _t('BrokenLinksReport.ColumnProblemType', "Problem type") @@ -128,8 +131,8 @@ class BrokenLinksReport extends SS_Report { 'Draft' => _t('BrokenLinksReport.CheckSiteDropdownDraft', 'Draft Site') )), new DropdownField( - 'Reason', - _t('BrokenLinksReport.ReasonDropdown', 'Problem to check'), + 'Reason', + _t('BrokenLinksReport.ReasonDropdown', 'Problem to check'), array( '' => _t('BrokenLinksReport.Any', 'Any'), 'BROKENFILE' => _t('BrokenLinksReport.ReasonDropdownBROKENFILE', 'Broken file'), diff --git a/code/reports/BrokenRedirectorPagesReport.php b/code/reports/BrokenRedirectorPagesReport.php index 050449e6..ed9b39ec 100644 --- a/code/reports/BrokenRedirectorPagesReport.php +++ b/code/reports/BrokenRedirectorPagesReport.php @@ -1,5 +1,8 @@ Format('U')); + $threshold = strtotime('-14 days', DBDatetime::now()->Format('U')); return DataObject::get("SiteTree", "\"SiteTree\".\"LastEdited\" > '".date("Y-m-d H:i:s", $threshold)."'", "\"SiteTree\".\"LastEdited\" DESC"); } diff --git a/code/search/ContentControllerSearchExtension.php b/code/search/ContentControllerSearchExtension.php index fcf4aa89..0ea13c4d 100644 --- a/code/search/ContentControllerSearchExtension.php +++ b/code/search/ContentControllerSearchExtension.php @@ -1,11 +1,13 @@ create('FixtureBlueprint', $class); $blueprint->addCallback('afterCreate', function($obj, $identifier, &$data, &$fixtures) { /** @var \SiteTree $obj */ - $obj->copyVersionToStage(\Versioned::DRAFT, \Versioned::LIVE); + $obj->copyVersionToStage(Versioned::DRAFT, Versioned::LIVE); }); $factory->define($class, $blueprint); } diff --git a/tests/behat/features/bootstrap/SilverStripe/Cms/Test/Behaviour/FixtureContext.php b/tests/behat/features/bootstrap/SilverStripe/Cms/Test/Behaviour/FixtureContext.php index d10d9ddf..38e8f586 100644 --- a/tests/behat/features/bootstrap/SilverStripe/Cms/Test/Behaviour/FixtureContext.php +++ b/tests/behat/features/bootstrap/SilverStripe/Cms/Test/Behaviour/FixtureContext.php @@ -10,7 +10,9 @@ use Behat\Behat\Context\ClosuredContextInterface, Behat\Behat\Exception\PendingException, Behat\Mink\Driver\Selenium2Driver, Behat\Gherkin\Node\PyStringNode, - Behat\Gherkin\Node\TableNode; + Behat\Gherkin\Node\TableNode, + SilverStripe\ORM\Versioning\Versioned; + /** * Context used to create fixtures in the SilverStripe ORM. @@ -39,7 +41,7 @@ class FixtureContext extends \SilverStripe\BehatExtension\Context\FixtureContext $obj = $this->fixtureFactory->createObject($class, $id, $fields); } $obj->write(); - $obj->copyVersionToStage(\Versioned::DRAFT, \Versioned::LIVE); + $obj->copyVersionToStage(Versioned::DRAFT, Versioned::LIVE); } /** diff --git a/tests/controller/AssetAdminTest.php b/tests/controller/AssetAdminTest.php index 29bf6948..16587c8a 100644 --- a/tests/controller/AssetAdminTest.php +++ b/tests/controller/AssetAdminTest.php @@ -1,5 +1,8 @@ update('File', 'create_table_options', array('MySQLDatabase' => 'ENGINE=InnoDB')); + Config::inst()->update('File', 'create_table_options', array('SilverStripe\ORM\Connect\MySQLDatabase' => 'ENGINE=InnoDB')); File::remove_extension('FulltextSearchable'); } diff --git a/tests/controller/ContentControllerTest.php b/tests/controller/ContentControllerTest.php index 0def5a3c..8da1bee5 100755 --- a/tests/controller/ContentControllerTest.php +++ b/tests/controller/ContentControllerTest.php @@ -1,4 +1,7 @@ objFromFixture('SiteTree', 'after'); $before = $this->objFromFixture('SiteTree', 'before'); @@ -60,7 +63,7 @@ class CmsReportsTest extends SapphireTest { $this->assertContains($after->ID, $r->records(array())->column('ID')); $this->assertNotContains($before->ID, $r->records(array())->column('ID')); - SS_DateTime::clear_mock_now(); + DBDatetime::clear_mock_now(); } /** diff --git a/tests/search/SearchFormTest.php b/tests/search/SearchFormTest.php index 2b6f6b38..98e8a577 100644 --- a/tests/search/SearchFormTest.php +++ b/tests/search/SearchFormTest.php @@ -1,4 +1,8 @@ Fixture tree *