diff --git a/.upgrade.yml b/.upgrade.yml
new file mode 100644
index 00000000..f2ffe8a6
--- /dev/null
+++ b/.upgrade.yml
@@ -0,0 +1,67 @@
+mappings:
+ CMSBatchAction_Publish: SilverStripe\CMS\BatchActions\CMSBatchAction_Publish
+ CMSBatchAction_Unpublish: SilverStripe\CMS\BatchActions\CMSBatchAction_Unpublish
+ CMSBatchAction_Archive: SilverStripe\CMS\BatchActions\CMSBatchAction_Archive
+ CMSBatchAction_Restore: SilverStripe\CMS\BatchActions\CMSBatchAction_Restore
+ CMSBatchAction_Delete: SilverStripe\CMS\BatchActions\CMSBatchAction_Delete
+ AssetAdmin: SilverStripe\CMS\Controllers\AssetAdmin
+ AssetAdmin_DeleteBatchAction: SilverStripe\CMS\Controllers\AssetAdmin_DeleteBatchAction
+ CMSMain: SilverStripe\CMS\Controllers\CMSMain
+ CMSPageAddController: SilverStripe\CMS\Controllers\CMSPageAddController
+ CMSPageEditController: SilverStripe\CMS\Controllers\CMSPageEditController
+ CMSPageHistoryController: SilverStripe\CMS\Controllers\CMSPageHistoryController
+ CMSPagesController: SilverStripe\CMS\Controllers\CMSPagesController
+ CMSPageSettingsController: SilverStripe\CMS\Controllers\CMSPageSettingsController
+ CMSSiteTreeFilter: SilverStripe\CMS\Controllers\CMSSiteTreeFilter
+ CMSSiteTreeFilter_PublishedPages: SilverStripe\CMS\Controllers\CMSSiteTreeFilter_PublishedPages
+ CMSSiteTreeFilter_DeletedPages: SilverStripe\CMS\Controllers\CMSSiteTreeFilter_DeletedPages
+ CMSSiteTreeFilter_ChangedPages: SilverStripe\CMS\Controllers\CMSSiteTreeFilter_ChangedPages
+ CMSSiteTreeFilter_StatusRemovedFromDraftPages: SilverStripe\CMS\Controllers\CMSSiteTreeFilter_StatusRemovedFromDraftPages
+ CMSSiteTreeFilter_StatusDraftPages: SilverStripe\CMS\Controllers\CMSSiteTreeFilter_StatusDraftPages
+ CMSSiteTreeFilter_StatusDeletedPages: SilverStripe\CMS\Controllers\CMSSiteTreeFilter_StatusDeletedPages
+ CMSSiteTreeFilter_Search: SilverStripe\CMS\Controllers\CMSSiteTreeFilter_Search
+ ContentController: SilverStripe\CMS\Controllers\ContentController
+ ErrorPageControllerExtension: SilverStripe\CMS\Controllers\ErrorPageControllerExtension
+ ErrorPageFileExtension: SilverStripe\CMS\Controllers\ErrorPageFileExtension
+ LeftAndMainPageIconsExtension: SilverStripe\CMS\Controllers\LeftAndMainPageIconsExtension
+ ModelAsController: SilverStripe\CMS\Controllers\ModelAsController
+ OldPageRedirector: SilverStripe\CMS\Controllers\OldPageRedirector
+ RootURLController: SilverStripe\CMS\Controllers\RootURLController
+ SilverStripeNavigator: SilverStripe\CMS\Controllers\SilverStripeNavigator
+ SilverStripeNavigatorItem: SilverStripe\CMS\Controllers\SilverStripeNavigatorItem
+ SilverStripeNavigatorItem_CMSLink: SilverStripe\CMS\Controllers\SilverStripeNavigatorItem_CMSLink
+ SilverStripeNavigatorItem_StageLink: SilverStripe\CMS\Controllers\SilverStripeNavigatorItem_StageLink
+ SilverStripeNavigatorItem_LiveLink: SilverStripe\CMS\Controllers\SilverStripeNavigatorItem_LiveLink
+ SilverStripeNavigatorItem_ArchiveLink: SilverStripe\CMS\Controllers\SilverStripeNavigatorItem_ArchiveLink
+ SiteTreeURLSegmentField: SilverStripe\CMS\Forms\SiteTreeURLSegmentField
+ SiteTreeURLSegmentField_Readonly: SilverStripe\CMS\Forms\SiteTreeURLSegmentField_Readonly
+ CurrentPageIdentifier: SilverStripe\CMS\Model\CurrentPageIdentifier
+ ErrorPage: SilverStripe\CMS\Model\ErrorPage
+ ErrorPage_Controller: SilverStripe\CMS\Model\ErrorPage_Controller
+ RedirectorPage: SilverStripe\CMS\Model\RedirectorPage
+ RedirectorPage_Controller: SilverStripe\CMS\Model\RedirectorPage_Controller
+ SiteTree: SilverStripe\CMS\Model\SiteTree
+ SiteTreeExtension: SilverStripe\CMS\Model\SiteTreeExtension
+ SiteTreeFileExtension: SilverStripe\CMS\Model\SiteTreeFileExtension
+ SiteTreeFolderExtension: SilverStripe\CMS\Model\SiteTreeFolderExtension
+ SiteTreeLinkTracking: SilverStripe\CMS\Model\SiteTreeLinkTracking
+ SiteTreeLinkTracking_Parser: SilverStripe\CMS\Model\SiteTreeLinkTracking_Parser
+ VirtualPage: SilverStripe\CMS\Model\VirtualPage
+ VirtualPage_Controller: SilverStripe\CMS\Model\VirtualPage_Controller
+ BrokenFilesReport: SilverStripe\CMS\Reports\BrokenFilesReport
+ SideReport_BrokenFiles: SilverStripe\CMS\Reports\SideReport_BrokenFiles
+ BrokenLinksReport: SilverStripe\CMS\Reports\BrokenLinksReport
+ SideReport_BrokenLinks: SilverStripe\CMS\Reports\SideReport_BrokenLinks
+ BrokenRedirectorPagesReport: SilverStripe\CMS\Reports\BrokenRedirectorPagesReport
+ SideReport_BrokenRedirectorPages: SilverStripe\CMS\Reports\SideReport_BrokenRedirectorPages
+ BrokenVirtualPagesReport: SilverStripe\CMS\Reports\BrokenVirtualPagesReport
+ SideReport_BrokenVirtualPages: SilverStripe\CMS\Reports\SideReport_BrokenVirtualPages
+ EmptyPagesReport: SilverStripe\CMS\Reports\EmptyPagesReport
+ SideReport_EmptyPages: SilverStripe\CMS\Reports\SideReport_EmptyPages
+ RecentlyEditedReport: SilverStripe\CMS\Reports\RecentlyEditedReport
+ SideReport_RecentlyEdited: SilverStripe\CMS\Reports\SideReport_RecentlyEdited
+ ContentControllerSearchExtension: SilverStripe\CMS\Search\ContentControllerSearchExtension
+ SearchForm: SilverStripe\CMS\Search\SearchForm
+ MigrateSiteTreeLinkingTask: SilverStripe\CMS\Tasks\MigrateSiteTreeLinkingTask
+ RemoveOrphanedPagesTask: SilverStripe\CMS\Tasks\RemoveOrphanedPagesTask
+ SiteTreeMaintenanceTask: SilverStripe\CMS\Tasks\SiteTreeMaintenanceTask
diff --git a/_config.php b/_config.php
index e5201d8a..c96a49fb 100644
--- a/_config.php
+++ b/_config.php
@@ -10,16 +10,18 @@ define('CMS_PATH', BASE_PATH . '/' . CMS_DIR);
/**
* Register the default internal shortcodes.
*/
-ShortcodeParser::get('default')->register('sitetree_link', array('SiteTree', 'link_shortcode_handler'));
+ShortcodeParser::get('default')->register(
+ 'sitetree_link',
+ array('SilverStripe\\CMS\\Model\\SiteTree', 'link_shortcode_handler')
+);
-File::add_extension('SiteTreeFileExtension');
+File::add_extension('SilverStripe\\CMS\\Model\\SiteTreeFileExtension');
// TODO Remove once we can configure CMSMenu through static, nested configuration files
-CMSMenu::remove_menu_item('CMSMain');
-CMSMenu::remove_menu_item('CMSPageEditController');
-CMSMenu::remove_menu_item('CMSPageSettingsController');
-CMSMenu::remove_menu_item('CMSPageHistoryController');
-CMSMenu::remove_menu_item('CMSPageReportsController');
-CMSMenu::remove_menu_item('CMSPageAddController');
+CMSMenu::remove_menu_class('SilverStripe\\CMS\\Controllers\\CMSMain');
+CMSMenu::remove_menu_class('SilverStripe\\CMS\\Controllers\\CMSPageEditController');
+CMSMenu::remove_menu_class('SilverStripe\\CMS\\Controllers\\CMSPageSettingsController');
+CMSMenu::remove_menu_class('SilverStripe\\CMS\\Controllers\\CMSPageHistoryController');
+CMSMenu::remove_menu_class('SilverStripe\\CMS\\Controllers\\CMSPageAddController');
CMSMenu::remove_menu_item("SiteConfigLeftAndMain");
diff --git a/_config/adminpanels.yml b/_config/adminpanels.yml
index 61f80591..e1fedb34 100644
--- a/_config/adminpanels.yml
+++ b/_config/adminpanels.yml
@@ -1,2 +1,2 @@
AdminRootController:
- default_panel: 'CMSPagesController'
+ default_panel: 'SilverStripe\CMS\Controllers\CMSPagesController'
diff --git a/_config/cmslogging.yml b/_config/cmslogging.yml
index 958f17f6..2e9ef01a 100644
--- a/_config/cmslogging.yml
+++ b/_config/cmslogging.yml
@@ -6,4 +6,4 @@ Except:
---
Injector:
FriendlyErrorFormatter:
- class: SilverStripe\Cms\Logging\ErrorPageErrorFormatter
+ class: SilverStripe\CMS\Logging\ErrorPageErrorFormatter
diff --git a/_config/config.yml b/_config/config.yml
index 03c711e4..0d85794f 100644
--- a/_config/config.yml
+++ b/_config/config.yml
@@ -1,12 +1,12 @@
LeftAndMain:
extensions:
- - LeftAndMainPageIconsExtension
+ - SilverStripe\CMS\Controllers\LeftAndMainPageIconsExtension
Controller:
extensions:
- - ErrorPageControllerExtension
+ - SilverStripe\CMS\Controllers\ErrorPageControllerExtension
Form:
extensions:
- - ErrorPageControllerExtension
+ - SilverStripe\CMS\Controllers\ErrorPageControllerExtension
File:
extensions:
- - ErrorPageFileExtension
+ - SilverStripe\CMS\Controllers\ErrorPageFileExtension
diff --git a/_config/injector.yml b/_config/injector.yml
new file mode 100644
index 00000000..9ef9fec5
--- /dev/null
+++ b/_config/injector.yml
@@ -0,0 +1,6 @@
+---
+Name: cmsinjector
+---
+Injector:
+ SiteTreeLinkTracking_Parser:
+ class: SilverStripe\CMS\Model\SiteTreeLinkTracking_Parser
diff --git a/_config/legacy.yml b/_config/legacy.yml
new file mode 100644
index 00000000..ed183c24
--- /dev/null
+++ b/_config/legacy.yml
@@ -0,0 +1,6 @@
+---
+Name: cmslegacy
+---
+SilverStripe\ORM\DatabaseAdmin:
+ classname_value_remapping:
+ SiteTree: 'SilverStripe\CMS\Model\SiteTree'
diff --git a/_config/routes.yml b/_config/routes.yml
index 3e6f707f..607ae686 100644
--- a/_config/routes.yml
+++ b/_config/routes.yml
@@ -5,10 +5,10 @@ After: '#rootroutes'
---
Director:
rules:
- '': 'RootURLController'
- 'RemoveOrphanedPagesTask//$Action/$ID/$OtherID': 'RemoveOrphanedPagesTask'
- 'SiteTreeMaintenanceTask//$Action/$ID/$OtherID': 'SiteTreeMaintenanceTask'
- '$URLSegment//$Action/$ID/$OtherID': 'ModelAsController'
+ '': 'SilverStripe\CMS\Controllers\RootURLController'
+ 'RemoveOrphanedPagesTask//$Action/$ID/$OtherID': 'SilverStripe\CMS\Tasks\RemoveOrphanedPagesTask'
+ 'SiteTreeMaintenanceTask//$Action/$ID/$OtherID': 'SilverStripe\CMS\Tasks\SiteTreeMaintenanceTask'
+ '$URLSegment//$Action/$ID/$OtherID': 'SilverStripe\CMS\Controllers\ModelAsController'
---
Name: legacycmsroutes
After: '#adminroutes'
diff --git a/code/batchactions/CMSBatchActions.php b/code/BatchActions/CMSBatchActions.php
similarity index 96%
rename from code/batchactions/CMSBatchActions.php
rename to code/BatchActions/CMSBatchActions.php
index 1ae73625..5dba652f 100644
--- a/code/batchactions/CMSBatchActions.php
+++ b/code/BatchActions/CMSBatchActions.php
@@ -1,9 +1,14 @@
$id
));
if($liveRecord) {
diff --git a/code/controllers/AssetAdmin.php b/code/Controllers/AssetAdmin.php
similarity index 95%
rename from code/controllers/AssetAdmin.php
rename to code/Controllers/AssetAdmin.php
index adee40ff..dcf11681 100644
--- a/code/controllers/AssetAdmin.php
+++ b/code/Controllers/AssetAdmin.php
@@ -1,5 +1,7 @@
removeExtraClass('cms-previewable');
+ /** @skipUpgrade */
$form->Fields()->removeByName('SilverStripeNavigator');
// File listing
@@ -588,7 +634,7 @@ class AssetAdmin extends LeftAndMain implements PermissionProvider{
// The root element should explicitly point to the root node.
// Uses session state for current record otherwise.
- $items[0]->Link = Controller::join_links(singleton('AssetAdmin')->Link('show'), 0);
+ $items[0]->Link = Controller::join_links($this->Link('show'), 0);
// If a search is in progress, don't show the path
if($this->getRequest()->requestVar('q')) {
diff --git a/code/controllers/CMSMain.php b/code/Controllers/CMSMain.php
similarity index 89%
rename from code/controllers/CMSMain.php
rename to code/Controllers/CMSMain.php
index 801a25e3..e4eb4992 100644
--- a/code/controllers/CMSMain.php
+++ b/code/Controllers/CMSMain.php
@@ -1,6 +1,10 @@
getRequest()->isAjax()) {
- Translatable::choose_site_locale(array_keys(Translatable::get_existing_content_languages('SiteTree')));
+ Translatable::choose_site_locale(array_keys(Translatable::get_existing_content_languages('SilverStripe\\CMS\\Model\\SiteTree')));
}
parent::init();
@@ -109,11 +162,11 @@ class CMSMain extends LeftAndMain implements CurrentPageIdentifier, PermissionPr
]
]);
- CMSBatchActionHandler::register('publish', 'CMSBatchAction_Publish');
- CMSBatchActionHandler::register('unpublish', 'CMSBatchAction_Unpublish');
- CMSBatchActionHandler::register('delete', 'CMSBatchAction_Delete');
- CMSBatchActionHandler::register('archive', 'CMSBatchAction_Archive');
- CMSBatchActionHandler::register('restore', 'CMSBatchAction_Restore');
+ CMSBatchActionHandler::register('publish', 'SilverStripe\\CMS\\BatchActions\\CMSBatchAction_Publish');
+ CMSBatchActionHandler::register('unpublish', 'SilverStripe\\CMS\\BatchActions\\CMSBatchAction_Unpublish');
+ CMSBatchActionHandler::register('delete', 'SilverStripe\\CMS\\BatchActions\\CMSBatchAction_Delete');
+ CMSBatchActionHandler::register('archive', 'SilverStripe\\CMS\\BatchActions\\CMSBatchAction_Archive');
+ CMSBatchActionHandler::register('restore', 'SilverStripe\\CMS\\BatchActions\\CMSBatchAction_Restore');
}
public function index($request) {
@@ -182,7 +235,7 @@ class CMSMain extends LeftAndMain implements CurrentPageIdentifier, PermissionPr
}
public function LinkPages() {
- return singleton('CMSPagesController')->Link();
+ return CMSPagesController::singleton()->Link();
}
public function LinkPagesWithSearch() {
@@ -190,37 +243,43 @@ class CMSMain extends LeftAndMain implements CurrentPageIdentifier, PermissionPr
}
public function LinkTreeView() {
- return $this->LinkWithSearch(singleton('CMSMain')->Link('treeview'));
+ return $this->LinkWithSearch($this->Link('treeview'));
}
public function LinkListView() {
- return $this->LinkWithSearch(singleton('CMSMain')->Link('listview'));
+ return $this->LinkWithSearch($this->Link('listview'));
}
public function LinkGalleryView() {
- return $this->LinkWithSearch(singleton('CMSMain')->Link('galleryview'));
+ return $this->LinkWithSearch($this->Link('galleryview'));
}
public function LinkPageEdit($id = null) {
- if(!$id) $id = $this->currentPageID();
+ if(!$id) {
+ $id = $this->currentPageID();
+ }
return $this->LinkWithSearch(
- Controller::join_links(singleton('CMSPageEditController')->Link('show'), $id)
+ Controller::join_links(CMSPageEditController::singleton()->Link('show'), $id)
);
}
public function LinkPageSettings() {
if($id = $this->currentPageID()) {
return $this->LinkWithSearch(
- Controller::join_links(singleton('CMSPageSettingsController')->Link('show'), $id)
+ Controller::join_links(CMSPageSettingsController::singleton()->Link('show'), $id)
);
+ } else {
+ return null;
}
}
public function LinkPageHistory() {
if($id = $this->currentPageID()) {
return $this->LinkWithSearch(
- Controller::join_links(singleton('CMSPageHistoryController')->Link('show'), $id)
+ Controller::join_links(CMSPageHistoryController::singleton()->Link('show'), $id)
);
+ } else {
+ return null;
}
}
@@ -239,7 +298,7 @@ class CMSMain extends LeftAndMain implements CurrentPageIdentifier, PermissionPr
}
public function LinkPageAdd($extra = null, $placeholders = null) {
- $link = singleton("CMSPageAddController")->Link();
+ $link = CMSPageAddController::singleton()->Link();
$this->extend('updateLinkPageAdd', $link);
if($extra) {
@@ -276,8 +335,8 @@ class CMSMain extends LeftAndMain implements CurrentPageIdentifier, PermissionPr
*/
public function SiteTreeAsUL() {
// Pre-cache sitetree version numbers for querying efficiency
- Versioned::prepopulate_versionnumber_cache("SiteTree", "Stage");
- Versioned::prepopulate_versionnumber_cache("SiteTree", "Live");
+ Versioned::prepopulate_versionnumber_cache("SilverStripe\\CMS\\Model\\SiteTree", "Stage");
+ Versioned::prepopulate_versionnumber_cache("SilverStripe\\CMS\\Model\\SiteTree", "Live");
$html = $this->getSiteTreeFor($this->stat('tree_class'));
$this->extend('updateSiteTreeAsUL', $html);
@@ -291,7 +350,7 @@ class CMSMain extends LeftAndMain implements CurrentPageIdentifier, PermissionPr
public function TreeIsFiltered() {
$query = $this->getRequest()->getVar('q');
- if (!$query || (count($query) === 1 && isset($query['FilterClass']) && $query['FilterClass'] === 'CMSSiteTreeFilter_Search')) {
+ if (!$query || (count($query) === 1 && isset($query['FilterClass']) && $query['FilterClass'] === 'SilverStripe\\CMS\\Controllers\\CMSSiteTreeFilter_Search')) {
return false;
}
@@ -355,15 +414,17 @@ class CMSMain extends LeftAndMain implements CurrentPageIdentifier, PermissionPr
$actions = new FieldList(
FormAction::create('doSearch', _t('CMSMain_left_ss.APPLY_FILTER', 'Search'))
->addExtraClass('ss-ui-action-constructive'),
- Object::create('ResetFormAction', 'clear', _t('CMSMain_left_ss.CLEAR_FILTER', 'Clear'))
+ ResetFormAction::create('clear', _t('CMSMain_left_ss.CLEAR_FILTER', 'Clear'))
);
// Use to allow full jQuery UI styling on the all of the Actions
foreach($actions->dataFields() as $action) {
+ /** @var FormAction $action */
$action->setUseButtonTag(true);
}
// Create the form
+ /** @skipUpgrade */
$form = Form::create($this, 'SearchForm', $fields, $actions)
->addExtraClass('cms-search-form')
->setFormMethod('GET')
@@ -388,7 +449,7 @@ class CMSMain extends LeftAndMain implements CurrentPageIdentifier, PermissionPr
protected function getPageTypes() {
$pageTypes = array();
foreach(SiteTree::page_type_classes() as $pageTypeClass) {
- $pageTypes[$pageTypeClass] = _t($pageTypeClass.'.SINGULARNAME', $pageTypeClass);
+ $pageTypes[$pageTypeClass] = SiteTree::singleton($pageTypeClass)->i18n_singular_name();
}
asort($pageTypes);
return $pageTypes;
@@ -424,14 +485,14 @@ class CMSMain extends LeftAndMain implements CurrentPageIdentifier, PermissionPr
$json = '';
$classes = SiteTree::page_type_classes();
- $cacheCanCreate = array();
- foreach($classes as $class) $cacheCanCreate[$class] = singleton($class)->canCreate();
+ $cacheCanCreate = array();
+ foreach($classes as $class) $cacheCanCreate[$class] = singleton($class)->canCreate();
- // Generate basic cache key. Too complex to encompass all variations
- $cache = SS_Cache::factory('CMSMain_SiteTreeHints');
- $cacheKey = md5(implode('_', array(Member::currentUserID(), implode(',', $cacheCanCreate), implode(',', $classes))));
- if($this->getRequest()->getVar('flush')) $cache->clean(Zend_Cache::CLEANING_MODE_ALL);
- $json = $cache->load($cacheKey);
+ // Generate basic cache key. Too complex to encompass all variations
+ $cache = SS_Cache::factory('CMSMain_SiteTreeHints');
+ $cacheKey = md5(implode('_', array(Member::currentUserID(), implode(',', $cacheCanCreate), implode(',', $classes))));
+ if($this->getRequest()->getVar('flush')) $cache->clean(Zend_Cache::CLEANING_MODE_ALL);
+ $json = $cache->load($cacheKey);
if(!$json) {
$def['Root'] = array();
$def['Root']['disallowedChildren'] = array();
@@ -496,22 +557,27 @@ class CMSMain extends LeftAndMain implements CurrentPageIdentifier, PermissionPr
foreach($classes as $class) {
$instance = singleton($class);
- if($instance instanceof HiddenClass) continue;
+ if($instance instanceof HiddenClass) {
+ continue;
+ }
// skip this type if it is restricted
- if($instance->stat('need_permission') && !$this->can(singleton($class)->stat('need_permission'))) continue;
+ if($instance->stat('need_permission') && !$this->can(singleton($class)->stat('need_permission'))) {
+ continue;
+ }
$addAction = $instance->i18n_singular_name();
// Get description (convert 'Page' to 'SiteTree' for correct localization lookups)
- $description = _t((($class == 'Page') ? 'SiteTree' : $class) . '.DESCRIPTION');
+ $i18nClass = ($class == 'Page') ? 'SilverStripe\\CMS\\Model\\SiteTree' : $class;
+ $description = _t($i18nClass . '.DESCRIPTION');
if(!$description) {
$description = $instance->uninherited('description');
}
if($class == 'Page' && !$description) {
- $description = singleton('SiteTree')->uninherited('description');
+ $description = SiteTree::singleton()->uninherited('description');
}
$result->push(new ArrayData(array(
@@ -626,6 +692,7 @@ class CMSMain extends LeftAndMain implements CurrentPageIdentifier, PermissionPr
}
// Added in-line to the form, but plucked into different view by LeftAndMain.Preview.js upon load
+ /** @skipUpgrade */
if($record instanceof CMSPreviewable && !$fields->fieldByName('SilverStripeNavigator')) {
$navField = new LiteralField('SilverStripeNavigator', $this->getSilverStripeNavigator());
$navField->setAllowHTML(true);
@@ -747,7 +814,7 @@ class CMSMain extends LeftAndMain implements CurrentPageIdentifier, PermissionPr
protected function getQueryFilter($params) {
if(empty($params['FilterClass'])) return null;
$filterClass = $params['FilterClass'];
- if(!is_subclass_of($filterClass, 'CMSSiteTreeFilter')) {
+ if(!is_subclass_of($filterClass, 'SilverStripe\\CMS\\Controllers\\CMSSiteTreeFilter')) {
throw new InvalidArgumentException("Invalid filter class passed: {$filterClass}");
}
return $filterClass::create($params);
@@ -830,7 +897,7 @@ class CMSMain extends LeftAndMain implements CurrentPageIdentifier, PermissionPr
return sprintf(
'%s ',
Controller::join_links(
- singleton('CMSPageEditController')->Link('show'),
+ CMSPageEditController::singleton()->Link('show'),
(int)$item->ID
),
$item->TreeTitle // returns HTML, does its own escaping
@@ -1039,13 +1106,13 @@ class CMSMain extends LeftAndMain implements CurrentPageIdentifier, PermissionPr
}
$id = (int) $data['ID'];
- $restoredPage = Versioned::get_latest_version("SiteTree", $id);
+ $restoredPage = Versioned::get_latest_version("SilverStripe\\CMS\\Model\\SiteTree", $id);
if(!$restoredPage) {
throw new SS_HTTPResponse_Exception("SiteTree #$id not found", 400);
}
/** @var SiteTree $record */
- $record = Versioned::get_one_by_stage('SiteTree', 'Live', array(
+ $record = Versioned::get_one_by_stage('SilverStripe\\CMS\\Model\\SiteTree', 'Live', array(
'"SiteTree_Live"."ID"' => $id
));
@@ -1085,7 +1152,7 @@ class CMSMain extends LeftAndMain implements CurrentPageIdentifier, PermissionPr
*/
public function delete($data, $form) {
$id = $data['ID'];
- $record = DataObject::get_by_id("SiteTree", $id);
+ $record = SiteTree::get()->byID($id);
if($record && !$record->canDelete()) {
return Security::permissionFailure();
}
@@ -1116,7 +1183,7 @@ class CMSMain extends LeftAndMain implements CurrentPageIdentifier, PermissionPr
public function archive($data, $form) {
$id = $data['ID'];
/** @var SiteTree $record */
- $record = DataObject::get_by_id("SiteTree", $id);
+ $record = SiteTree::get()->byID($id);
if(!$record || !$record->exists()) {
throw new SS_HTTPResponse_Exception("Bad record ID #$id", 404);
}
@@ -1212,7 +1279,7 @@ class CMSMain extends LeftAndMain implements CurrentPageIdentifier, PermissionPr
// Can be used in different contexts: In normal page edit view, in which case the redirect won't have any effect.
// Or in history view, in which case a revert causes the CMS to re-load the edit view.
// The X-Pjax header forces a "full" content refresh on redirect.
- $url = Controller::join_links(singleton('CMSPageEditController')->Link('show'), $record->ID);
+ $url = Controller::join_links(CMSPageEditController::singleton()->Link('show'), $record->ID);
$this->getResponse()->addHeader('X-ControllerURL', $url);
$this->getRequest()->addHeader('X-Pjax', 'Content');
$this->getResponse()->addHeader('X-Pjax', 'Content');
@@ -1279,7 +1346,7 @@ class CMSMain extends LeftAndMain implements CurrentPageIdentifier, PermissionPr
if(!SecurityToken::inst()->checkRequest($request)) return $this->httpError(400);
$start = 0;
- $pages = DataObject::get("SiteTree", "", "", "", "$start,30");
+ $pages = SiteTree::get()->limit("$start,30");
$count = 0;
while($pages) {
foreach($pages as $page) {
@@ -1293,9 +1360,9 @@ class CMSMain extends LeftAndMain implements CurrentPageIdentifier, PermissionPr
$count++;
$response .= "$count ";
}
- if($pages->Count() > 29) {
+ if($pages->count() > 29) {
$start += 30;
- $pages = DataObject::get("SiteTree", "", "", "", "$start,30");
+ $pages = SiteTree::get()->limit("$start,30");
} else {
break;
}
@@ -1331,7 +1398,7 @@ class CMSMain extends LeftAndMain implements CurrentPageIdentifier, PermissionPr
}
$id = (int)$data['ID'];
- $restoredPage = Versioned::get_latest_version("SiteTree", $id);
+ $restoredPage = Versioned::get_latest_version("SilverStripe\\CMS\\Model\\SiteTree", $id);
if(!$restoredPage) return new SS_HTTPResponse("SiteTree #$id not found", 400);
$restoredPage = $restoredPage->doRestoreToStage();
@@ -1353,7 +1420,7 @@ class CMSMain extends LeftAndMain implements CurrentPageIdentifier, PermissionPr
if(!SecurityToken::inst()->checkRequest($request)) return $this->httpError(400);
if(($id = $this->urlParams['ID']) && is_numeric($id)) {
- $page = DataObject::get_by_id("SiteTree", $id);
+ $page = SiteTree::get()->byID($id);
if($page && (!$page->canEdit() || !$page->canCreate(null, array('Parent' => $page->Parent())))) {
return Security::permissionFailure($this);
}
@@ -1375,7 +1442,7 @@ class CMSMain extends LeftAndMain implements CurrentPageIdentifier, PermissionPr
array('title' => $newPage->Title)
))
);
- $url = Controller::join_links(singleton('CMSPageEditController')->Link('show'), $newPage->ID);
+ $url = Controller::join_links(CMSPageEditController::singleton()->Link('show'), $newPage->ID);
$this->getResponse()->addHeader('X-ControllerURL', $url);
$this->getRequest()->addHeader('X-Pjax', 'Content');
$this->getResponse()->addHeader('X-Pjax', 'Content');
@@ -1391,7 +1458,7 @@ class CMSMain extends LeftAndMain implements CurrentPageIdentifier, PermissionPr
if(!SecurityToken::inst()->checkRequest($request)) return $this->httpError(400);
increase_time_limit_to();
if(($id = $this->urlParams['ID']) && is_numeric($id)) {
- $page = DataObject::get_by_id("SiteTree", $id);
+ $page = SiteTree::get()->byID($id);
if($page && (!$page->canEdit() || !$page->canCreate(null, array('Parent' => $page->Parent())))) {
return Security::permissionFailure($this);
}
@@ -1407,7 +1474,7 @@ class CMSMain extends LeftAndMain implements CurrentPageIdentifier, PermissionPr
array('title' => $newPage->Title)
))
);
- $url = Controller::join_links(singleton('CMSPageEditController')->Link('show'), $newPage->ID);
+ $url = Controller::join_links(CMSPageEditController::singleton()->Link('show'), $newPage->ID);
$this->getResponse()->addHeader('X-ControllerURL', $url);
$this->getRequest()->addHeader('X-Pjax', 'Content');
$this->getResponse()->addHeader('X-Pjax', 'Content');
diff --git a/code/controllers/CMSPageAddController.php b/code/Controllers/CMSPageAddController.php
similarity index 89%
rename from code/controllers/CMSPageAddController.php
rename to code/Controllers/CMSPageAddController.php
index 31d6d037..b3b69f2d 100644
--- a/code/controllers/CMSPageAddController.php
+++ b/code/Controllers/CMSPageAddController.php
@@ -1,10 +1,26 @@
ID;
}
- if(is_numeric($parentID) && $parentID > 0) $parentObj = DataObject::get_by_id("SiteTree", $parentID);
- else $parentObj = null;
+ if(is_numeric($parentID) && $parentID > 0) {
+ $parentObj = SiteTree::get()->byID($parentID);
+ } else {
+ $parentObj = null;
+ }
- if(!$parentObj || !$parentObj->ID) $parentID = 0;
+ if(!$parentObj || !$parentObj->ID) {
+ $parentID = 0;
+ }
if(!singleton($className)->canCreate(Member::currentUser(), array('Parent' => $parentObj))) {
return Security::permissionFailure($this);
@@ -181,7 +202,7 @@ class CMSPageAddController extends CMSPageEditController {
return $this->getResponseNegotiator()->respond($this->getRequest());
}
- $editController = singleton('CMSPageEditController');
+ $editController = CMSPageEditController::singleton();
$editController->setCurrentPageID($record->ID);
Session::set(
@@ -190,11 +211,10 @@ class CMSPageAddController extends CMSPageEditController {
);
Session::set("FormInfo.Form_EditForm.formError.type", 'good');
- return $this->redirect(Controller::join_links(singleton('CMSPageEditController')->Link('show'), $record->ID));
+ return $this->redirect(Controller::join_links($editController->Link('show'), $record->ID));
}
public function doCancel($data, $form) {
- return $this->redirect(singleton('CMSMain')->Link());
+ return $this->redirect(CMSMain::singleton()->Link());
}
-
}
diff --git a/code/controllers/CMSPageEditController.php b/code/Controllers/CMSPageEditController.php
similarity index 85%
rename from code/controllers/CMSPageEditController.php
rename to code/Controllers/CMSPageEditController.php
index 1bbf826a..d05cee14 100644
--- a/code/controllers/CMSPageEditController.php
+++ b/code/Controllers/CMSPageEditController.php
@@ -1,14 +1,18 @@
addFieldToTab('Root.Main',
new LiteralField('CurrentlyViewingMessage', $this->customise(array(
- 'Content' => $message,
+ 'Content' => DBField::create_field('HTMLFragment', $message),
'Classes' => 'notice'
))->renderWith(array('CMSMain_notice'))),
"Title"
@@ -227,7 +244,7 @@ class CMSPageHistoryController extends CMSMain {
$versionsHtml = $vd->customise(array(
'Versions' => $versions
- ))->renderWith('CMSPageHistoryController_versions');
+ ))->renderWith($this->getTemplatesWithSuffix('_versions'));
}
$fields = new FieldList(
@@ -255,9 +272,11 @@ class CMSPageHistoryController extends CMSMain {
);
// Use to allow full jQuery UI styling
- foreach($actions->dataFields() as $action) $action->setUseButtonTag(true);
+ foreach($actions->dataFields() as $action) {
+ /** @var FormAction $action */
+ $action->setUseButtonTag(true);
+ }
- $negotiator = $this->getResponseNegotiator();
$form = Form::create(
$this,
'VersionsForm',
@@ -279,16 +298,16 @@ class CMSPageHistoryController extends CMSMain {
/**
* Process the {@link VersionsForm} compare function between two pages.
*
- * @param array
- * @param Form
- *
- * @return html
+ * @param array $data
+ * @param Form $form
+ * @return SS_HTTPResponse|DBHTMLText
*/
public function doCompare($data, $form) {
$versions = $data['Versions'];
- if(count($versions) < 2) return null;
+ if(count($versions) < 2) {
+ return null;
+ }
- $id = $this->currentPageID();
$version1 = array_shift($versions);
$version2 = array_shift($versions);
@@ -305,7 +324,7 @@ class CMSPageHistoryController extends CMSMain {
}
// non javascript, redirect the user to the page
- $this->redirect(Controller::join_links(
+ return $this->redirect(Controller::join_links(
$this->Link('compare'),
$version1,
$version2
@@ -319,7 +338,7 @@ class CMSPageHistoryController extends CMSMain {
* @param array
* @param Form
*
- * @return html
+ * @return DBHTMLText|SS_HTTPResponse
*/
public function doShowVersion($data, $form) {
$versionID = null;
@@ -328,8 +347,11 @@ class CMSPageHistoryController extends CMSMain {
$versionID = array_shift($data['Versions']);
}
- if(!$versionID) return;
+ if(!$versionID) {
+ return null;
+ }
+ $request = $this->getRequest();
if($request->isAjax()) {
return $this->customise(array(
"EditForm" => $this->ShowVersionForm($versionID)
@@ -340,7 +362,7 @@ class CMSPageHistoryController extends CMSMain {
}
// non javascript, redirect the user to the page
- $this->redirect(Controller::join_links(
+ return $this->redirect(Controller::join_links(
$this->Link('version'),
$versionID
));
@@ -373,12 +395,13 @@ class CMSPageHistoryController extends CMSMain {
$fromVersion = $versionID;
}
- if(!$toVersion || !$toVersion) {
- return false;
+ if(!$toVersion || !$fromVersion) {
+ return null;
}
$id = $this->currentPageID();
- $page = DataObject::get_by_id("SiteTree", $id);
+ /** @var SiteTree $page */
+ $page = SiteTree::get()->byID($id);
if($page && $page->exists()) {
if(!$page->canView()) {
@@ -388,8 +411,8 @@ class CMSPageHistoryController extends CMSMain {
$record = $page->compareVersions($fromVersion, $toVersion);
}
- $fromVersionRecord = Versioned::get_version('SiteTree', $id, $fromVersion);
- $toVersionRecord = Versioned::get_version('SiteTree', $id, $toVersion);
+ $fromVersionRecord = Versioned::get_version('SilverStripe\\CMS\\Model\\SiteTree', $id, $fromVersion);
+ $toVersionRecord = Versioned::get_version('SilverStripe\\CMS\\Model\\SiteTree', $id, $toVersion);
if(!$fromVersionRecord) {
user_error("Can't find version $fromVersion of page $id", E_USER_ERROR);
@@ -399,31 +422,30 @@ class CMSPageHistoryController extends CMSMain {
user_error("Can't find version $toVersion of page $id", E_USER_ERROR);
}
- if(isset($record)) {
- $form = $this->getEditForm($id, null, null, true);
- $form->setActions(new FieldList());
- $form->addExtraClass('compare');
+ if(!$record) {
+ return null;
+ }
+ $form = $this->getEditForm($id, null, null, true);
+ $form->setActions(new FieldList());
+ $form->addExtraClass('compare');
- // Comparison views shouldn't be editable.
- // Its important to convert fields *before* loading data,
- // as the comparison output is HTML and not valid values for the various field types
- $readonlyFields = $form->Fields()->makeReadonly();
- $form->setFields($readonlyFields);
+ // Comparison views shouldn't be editable.
+ // Its important to convert fields *before* loading data,
+ // as the comparison output is HTML and not valid values for the various field types
+ $readonlyFields = $form->Fields()->makeReadonly();
+ $form->setFields($readonlyFields);
- $form->loadDataFrom($record);
- $form->loadDataFrom(array(
- "ID" => $id,
- "Version" => $fromVersion,
- ));
+ $form->loadDataFrom($record);
+ $form->loadDataFrom(array(
+ "ID" => $id,
+ "Version" => $fromVersion,
+ ));
- foreach($form->Fields()->dataFields() as $field) {
- $field->dontEscape = true;
- }
-
- return $form;
+ foreach($form->Fields()->dataFields() as $field) {
+ $field->dontEscape = true;
}
- return false;
+ return $form;
}
public function Breadcrumbs($unlinked = false) {
diff --git a/code/controllers/CMSPageSettingsController.php b/code/Controllers/CMSPageSettingsController.php
similarity index 93%
rename from code/controllers/CMSPageSettingsController.php
rename to code/Controllers/CMSPageSettingsController.php
index fbbe0b33..ab06decc 100644
--- a/code/controllers/CMSPageSettingsController.php
+++ b/code/Controllers/CMSPageSettingsController.php
@@ -1,15 +1,19 @@
getRecord($id ?: $this->currentPageID());
diff --git a/code/controllers/CMSPagesController.php b/code/Controllers/CMSPagesController.php
similarity index 88%
rename from code/controllers/CMSPagesController.php
rename to code/Controllers/CMSPagesController.php
index 2e7c29d8..16334f03 100644
--- a/code/controllers/CMSPagesController.php
+++ b/code/Controllers/CMSPagesController.php
@@ -1,6 +1,12 @@
getRequest()->getVar('ParentID')) {
- $page = DataObject::get_by_id('SiteTree', $parentID);
+ $page = SiteTree::get()->byID($parentID);
//build a reversed list of the parent tree
$pages = array();
@@ -50,7 +59,7 @@ class CMSPagesController extends CMSMain {
));
foreach($pages as $page) {
$params['ParentID'] = $page->ID;
- $item = new StdClass();
+ $item = new stdClass();
$item->Title = $page->Title;
$item->Link = Controller::join_links($this->Link(), '?' . http_build_query($params));
$items->push(new ArrayData($item));
diff --git a/code/controllers/CMSSiteTreeFilter.php b/code/Controllers/CMSSiteTreeFilter.php
similarity index 87%
rename from code/controllers/CMSSiteTreeFilter.php
rename to code/Controllers/CMSSiteTreeFilter.php
index 655aee99..90d7f219 100644
--- a/code/controllers/CMSSiteTreeFilter.php
+++ b/code/Controllers/CMSSiteTreeFilter.php
@@ -1,6 +1,15 @@
_cache_highlight_ids[$page->ID])) {
return 'filtered-item';
}
+
+ return null;
}
/**
@@ -144,7 +157,7 @@ abstract class CMSSiteTreeFilter extends Object implements LeftAndMain_SearchFil
}
while(!empty($parents)) {
- $q = Versioned::get_including_deleted('SiteTree', '"RecordID" in ('.implode(',',array_keys($parents)).')');
+ $q = Versioned::get_including_deleted('SilverStripe\\CMS\\Model\\SiteTree', '"RecordID" in ('.implode(',',array_keys($parents)).')');
$list = $q->map('ID', 'ParentID');
$parents = array();
foreach($list as $id => $parentID) {
@@ -171,7 +184,7 @@ abstract class CMSSiteTreeFilter extends Object implements LeftAndMain_SearchFil
* @return DataList Filtered query
*/
protected function applyDefaultFilters($query) {
- $sng = singleton('SiteTree');
+ $sng = SiteTree::singleton();
foreach($this->params as $name => $val) {
if(empty($val)) continue;
@@ -215,7 +228,7 @@ abstract class CMSSiteTreeFilter extends Object implements LeftAndMain_SearchFil
/**
* Maps a list of pages to an array of associative arrays with ID and ParentID keys
*
- * @param DataList $pages
+ * @param SS_List $pages
* @return array
*/
protected function mapIDs($pages) {
@@ -262,9 +275,9 @@ class CMSSiteTreeFilter_PublishedPages extends CMSSiteTreeFilter {
* @return SS_List
*/
public function getFilteredPages() {
- $pages = Versioned::get_including_deleted('SiteTree');
+ $pages = Versioned::get_including_deleted('SilverStripe\\CMS\\Model\\SiteTree');
$pages = $this->applyDefaultFilters($pages);
- $pages = $pages->filterByCallback(function($page) {
+ $pages = $pages->filterByCallback(function(SiteTree $page) {
return $page->getExistsOnLive();
});
return $pages;
@@ -296,7 +309,7 @@ class CMSSiteTreeFilter_DeletedPages extends CMSSiteTreeFilter {
}
public function getFilteredPages() {
- $pages = Versioned::get_including_deleted('SiteTree');
+ $pages = Versioned::get_including_deleted('SilverStripe\\CMS\\Model\\SiteTree');
$pages = $this->applyDefaultFilters($pages);
return $pages;
}
@@ -315,7 +328,7 @@ class CMSSiteTreeFilter_ChangedPages extends CMSSiteTreeFilter {
}
public function getFilteredPages() {
- $pages = Versioned::get_by_stage('SiteTree', 'Stage');
+ $pages = Versioned::get_by_stage('SilverStripe\\CMS\\Model\\SiteTree', 'Stage');
$pages = $this->applyDefaultFilters($pages)
->leftJoin('SiteTree_Live', '"SiteTree_Live"."ID" = "SiteTree"."ID"')
->where('"SiteTree"."Version" <> "SiteTree_Live"."Version"');
@@ -341,9 +354,9 @@ class CMSSiteTreeFilter_StatusRemovedFromDraftPages extends CMSSiteTreeFilter {
* @return SS_List
*/
public function getFilteredPages() {
- $pages = Versioned::get_including_deleted('SiteTree');
+ $pages = Versioned::get_including_deleted('SilverStripe\\CMS\\Model\\SiteTree');
$pages = $this->applyDefaultFilters($pages);
- $pages = $pages->filterByCallback(function($page) {
+ $pages = $pages->filterByCallback(function(SiteTree $page) {
// If page is removed from stage but not live
return $page->getIsDeletedFromStage() && $page->getExistsOnLive();
});
@@ -370,9 +383,9 @@ class CMSSiteTreeFilter_StatusDraftPages extends CMSSiteTreeFilter {
* @return SS_List
*/
public function getFilteredPages() {
- $pages = Versioned::get_by_stage('SiteTree', 'Stage');
+ $pages = Versioned::get_by_stage('SilverStripe\\CMS\\Model\\SiteTree', 'Stage');
$pages = $this->applyDefaultFilters($pages);
- $pages = $pages->filterByCallback(function($page) {
+ $pages = $pages->filterByCallback(function(SiteTree $page) {
// If page exists on stage but not on live
return (!$page->getIsDeletedFromStage() && $page->getIsAddedToStage());
});
@@ -409,10 +422,10 @@ class CMSSiteTreeFilter_StatusDeletedPages extends CMSSiteTreeFilter {
* @return SS_List
*/
public function getFilteredPages() {
- $pages = Versioned::get_including_deleted('SiteTree');
+ $pages = Versioned::get_including_deleted('SilverStripe\\CMS\\Model\\SiteTree');
$pages = $this->applyDefaultFilters($pages);
- $pages = $pages->filterByCallback(function($page) {
+ $pages = $pages->filterByCallback(function(SiteTree $page) {
// Doesn't exist on either stage or live
return $page->getIsDeletedFromStage() && !$page->getExistsOnLive();
});
@@ -438,7 +451,7 @@ class CMSSiteTreeFilter_Search extends CMSSiteTreeFilter {
*/
public function getFilteredPages() {
// Filter default records
- $pages = Versioned::get_by_stage('SiteTree', 'Stage');
+ $pages = Versioned::get_by_stage('SilverStripe\\CMS\\Model\\SiteTree', 'Stage');
$pages = $this->applyDefaultFilters($pages);
return $pages;
}
diff --git a/code/controllers/ContentController.php b/code/Controllers/ContentController.php
similarity index 88%
rename from code/controllers/ContentController.php
rename to code/Controllers/ContentController.php
index bb264021..ecc81e70 100755
--- a/code/controllers/ContentController.php
+++ b/code/Controllers/ContentController.php
@@ -1,8 +1,11 @@
hasMethod("Title")) $dataRecord->Title = $this->Title();
+ if($this->hasMethod("Title")) {
+ $dataRecord->Title = $this->Title();
+ }
$dataRecord->URLSegment = get_class($this);
$dataRecord->ID = -1;
}
@@ -89,10 +112,13 @@ class ContentController extends Controller {
$parent = SiteTree::get_by_link($parentRef);
if(!$parent && is_numeric($parentRef)) {
- $parent = DataObject::get_by_id('SiteTree', $parentRef);
+ $parent = DataObject::get_by_id('SilverStripe\\CMS\\Model\\SiteTree', $parentRef);
}
- if($parent) return $parent->Children();
+ if($parent) {
+ return $parent->Children();
+ }
+ return null;
}
/**
@@ -107,9 +133,11 @@ class ContentController extends Controller {
parent::init();
// If we've accessed the homepage as /home/, then we should redirect to /.
- if($this->dataRecord && $this->dataRecord instanceof SiteTree
- && RootURLController::should_be_on_root($this->dataRecord) && (!isset($this->urlParams['Action']) || !$this->urlParams['Action'] )
- && !$_POST && !$_FILES && !$this->redirectedTo() ) {
+ if( $this->dataRecord instanceof SiteTree
+ && RootURLController::should_be_on_root($this->dataRecord)
+ && (!isset($this->urlParams['Action']) || !$this->urlParams['Action'] )
+ && !$_POST && !$_FILES && !$this->redirectedTo()
+ ) {
$getVars = $_GET;
unset($getVars['url']);
if($getVars) $url = "?" . http_build_query($getVars);
@@ -118,15 +146,19 @@ class ContentController extends Controller {
return;
}
- if($this->dataRecord) $this->dataRecord->extend('contentcontrollerInit', $this);
- else singleton('SiteTree')->extend('contentcontrollerInit', $this);
+ if($this->dataRecord) {
+ $this->dataRecord->extend('contentcontrollerInit', $this);
+ } else {
+ SiteTree::singleton()->extend('contentcontrollerInit', $this);
+ }
if($this->redirectedTo()) return;
// Check page permissions
/** @skipUpgrade */
if($this->dataRecord && $this->URLSegment != 'Security' && !$this->dataRecord->canView()) {
- return Security::permissionFailure($this);
+ Security::permissionFailure($this);
+ return;
}
}
@@ -140,6 +172,7 @@ class ContentController extends Controller {
* @throws SS_HTTPResponse_Exception
*/
public function handleRequest(SS_HTTPRequest $request, DataModel $model) {
+ /** @var SiteTree $child */
$child = null;
$action = $request->param('Action');
$this->setDataModel($model);
@@ -151,7 +184,7 @@ class ContentController extends Controller {
// See ModelAdController->getNestedController() for similar logic
if(class_exists('Translatable')) Translatable::disable_locale_filter();
// look for a page with this URLSegment
- $child = $this->model->SiteTree->filter(array(
+ $child = SiteTree::get()->filter(array(
'ParentID' => $this->ID,
'URLSegment' => rawurlencode($action)
))->first();
@@ -170,7 +203,11 @@ class ContentController extends Controller {
// a potentially nested URL chain.
if(class_exists('Translatable')) {
$locale = $request->getVar('locale');
- if($locale && i18n::validate_locale($locale) && $this->dataRecord && $this->dataRecord->Locale != $locale) {
+ if( $locale
+ && i18n::validate_locale($locale)
+ && $this->dataRecord
+ && $this->dataRecord->Locale != $locale
+ ) {
$translation = $this->dataRecord->getTranslation($locale);
if($translation) {
$response = new SS_HTTPResponse();
@@ -234,7 +271,7 @@ class ContentController extends Controller {
$stack = array($parent);
if($parent) {
- while($parent = $parent->Parent) {
+ while(($parent = $parent->Parent()) && $parent->exists()) {
array_unshift($stack, $parent);
}
}
@@ -321,11 +358,15 @@ HTML;
} else {
if($date = Versioned::current_archived_date()) {
Requirements::css(CMS_DIR . '/client/dist/styles/SilverStripeNavigator.css');
+ /** @var DBDatetime $dateObj */
$dateObj = DBField::create_field('Datetime', $date);
// $dateObj->setVal($date);
- return "". _t('ContentController.ARCHIVEDSITEFROM') ." " . $dateObj->Nice() . "
";
+ return "" .
+ _t('ContentController.ARCHIVEDSITEFROM') .
+ " " . $dateObj->Nice() . "
";
}
}
+ return null;
}
public function SiteConfig() {
@@ -382,11 +423,11 @@ HTML;
$templates = array_merge(
// Find templates by dataRecord
- SSViewer::get_templates_by_class(get_class($this->dataRecord), $action, "SiteTree"),
+ SSViewer::get_templates_by_class(get_class($this->dataRecord), $action, "SilverStripe\\CMS\\Model\\SiteTree"),
// Next, we need to add templates for all controllers
SSViewer::get_templates_by_class(get_class($this), $action, "Controller"),
// Fail-over to the same for the "index" action
- SSViewer::get_templates_by_class(get_class($this->dataRecord), "", "SiteTree"),
+ SSViewer::get_templates_by_class(get_class($this->dataRecord), "", "SilverStripe\\CMS\\Model\\SiteTree"),
SSViewer::get_templates_by_class(get_class($this), "", "Controller")
);
diff --git a/code/controllers/ErrorPageControllerExtension.php b/code/Controllers/ErrorPageControllerExtension.php
similarity index 79%
rename from code/controllers/ErrorPageControllerExtension.php
rename to code/Controllers/ErrorPageControllerExtension.php
index a82ba780..2f5fce7f 100644
--- a/code/controllers/ErrorPageControllerExtension.php
+++ b/code/Controllers/ErrorPageControllerExtension.php
@@ -1,5 +1,13 @@
stat('icon');
- if(!$iconSpec) continue;
+ if(!$iconSpec) {
+ continue;
+ }
// Legacy support: We no longer need separate icon definitions for folders etc.
$iconFile = (is_array($iconSpec)) ? $iconSpec[0] : $iconSpec;
// Legacy support: Add file extension if none exists
- if(!pathinfo($iconFile, PATHINFO_EXTENSION)) $iconFile .= '-file.gif';
-
- $iconPathInfo = pathinfo($iconFile);
-
- // Base filename
- $baseFilename = $iconPathInfo['dirname'] . '/' . $iconPathInfo['filename'];
- $fileExtension = $iconPathInfo['extension'];
+ if(!pathinfo($iconFile, PATHINFO_EXTENSION)) {
+ $iconFile .= '-file.gif';
+ }
$selector = ".page-icon.class-$class, li.class-$class > a .jstree-pageicon";
diff --git a/code/controllers/ModelAsController.php b/code/Controllers/ModelAsController.php
similarity index 83%
rename from code/controllers/ModelAsController.php
rename to code/Controllers/ModelAsController.php
index 9bc0740e..dd75e3f8 100644
--- a/code/controllers/ModelAsController.php
+++ b/code/Controllers/ModelAsController.php
@@ -1,8 +1,26 @@
class == 'SiteTree') {
- $controller = "ContentController";
+ if ($sitetree->class == 'SilverStripe\\CMS\\Model\\SiteTree') {
+ $controller = "SilverStripe\\CMS\\Controllers\\ContentController";
} else {
$ancestry = ClassInfo::ancestry($sitetree->class);
while ($class = array_pop($ancestry)) {
if (class_exists($class . "_Controller")) break;
}
- $controller = ($class !== null) ? "{$class}_Controller" : "ContentController";
+ $controller = ($class !== null) ? "{$class}_Controller" : "SilverStripe\\CMS\\Controllers\\ContentController";
}
if($action && class_exists($controller . '_' . ucfirst($action))) {
@@ -41,13 +60,14 @@ class ModelAsController extends Controller implements NestedController {
}
public function init() {
- singleton('SiteTree')->extend('modelascontrollerInit', $this);
+ singleton('SilverStripe\\CMS\\Model\\SiteTree')->extend('modelascontrollerInit', $this);
parent::init();
}
protected function beforeHandleRequest(SS_HTTPRequest $request, DataModel $model) {
parent::beforeHandleRequest($request, $model);
// If the database has not yet been created, redirect to the build page.
+ /** @skipUpgrade */
if(!DB::is_active() || !ClassInfo::hasTable('SiteTree')) {
$this->getResponse()->redirect(Controller::join_links(
Director::absoluteBaseURL(),
@@ -75,6 +95,7 @@ class ModelAsController extends Controller implements NestedController {
}
// If the database has not yet been created, redirect to the build page.
+ /** @skipUpgrade */
if(!DB::is_active() || !ClassInfo::hasTable('SiteTree')) {
$this->getResponse()->redirect(Director::absoluteBaseURL() . 'dev/build?returnURL=' . (isset($_GET['url']) ? urlencode($_GET['url']) : null));
$this->popCurrent();
@@ -118,7 +139,8 @@ class ModelAsController extends Controller implements NestedController {
if(SiteTree::config()->nested_urls) {
$conditions[] = array('"SiteTree"."ParentID"' => 0);
}
- $sitetree = DataObject::get_one('SiteTree', $conditions);
+ /** @var SiteTree $sitetree */
+ $sitetree = DataObject::get_one('SilverStripe\\CMS\\Model\\SiteTree', $conditions);
// Check translation module
// @todo Refactor out module specific code
@@ -149,7 +171,7 @@ class ModelAsController extends Controller implements NestedController {
static public function find_old_page($URLSegment, $parent = null, $ignoreNestedURLs = false) {
Deprecation::notice('4.0', 'Use OldPageRedirector::find_old_page instead');
if ($parent) {
- $parent = SiteTree::get()->byId($parent);
+ $parent = SiteTree::get()->byID($parent);
}
$url = OldPageRedirector::find_old_page(array($URLSegment), $parent);
return SiteTree::get_by_link($url);
diff --git a/code/controllers/OldPageRedirector.php b/code/Controllers/OldPageRedirector.php
similarity index 88%
rename from code/controllers/OldPageRedirector.php
rename to code/Controllers/OldPageRedirector.php
index 0cb17528..847927e9 100644
--- a/code/controllers/OldPageRedirector.php
+++ b/code/Controllers/OldPageRedirector.php
@@ -1,6 +1,16 @@
allParams() only has a max of 4 params
$params = preg_split('|/+|', $request->getURL());
- $cleanURL = trim(Director::makeRelative($request->getURL(false), '/'));
+ $cleanURL = trim(Director::makeRelative($request->getURL(false)), '/');
$getvars = $request->getVars();
unset($getvars['url']);
@@ -46,14 +56,17 @@ class OldPageRedirector extends Extension {
* @return string|boolean False, or the new URL
*/
static public function find_old_page($params, $parent = null, $redirect = false) {
- $parent = is_numeric($parent) ? SiteTree::get()->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; }
+ if (empty($URL)) {
+ return false;
+ }
+ /** @var SiteTree $page */
if ($parent) {
- $page = SiteTree::get()->filter(array('ParentID' => $parent->ID, 'URLSegment' => $URL))->First();
+ $page = SiteTree::get()->filter(array('ParentID' => $parent->ID, 'URLSegment' => $URL))->first();
} else {
- $page = SiteTree::get()->filter(array('URLSegment' => $URL))->First();
+ $page = SiteTree::get()->filter(array('URLSegment' => $URL))->first();
}
if (!$page) {
diff --git a/code/controllers/RootURLController.php b/code/Controllers/RootURLController.php
similarity index 85%
rename from code/controllers/RootURLController.php
rename to code/Controllers/RootURLController.php
index d15faa1d..05813ced 100644
--- a/code/controllers/RootURLController.php
+++ b/code/Controllers/RootURLController.php
@@ -1,7 +1,19 @@
get('RootURLController', 'default_homepage_link');
+ self::$cached_homepage_link = Config::inst()->get('SilverStripe\\CMS\\Controllers\\RootURLController', 'default_homepage_link');
}
}
}
@@ -72,7 +84,7 @@ class RootURLController extends Controller {
*/
static public function set_default_homepage_link($urlsegment = "home") {
Deprecation::notice('4.0', 'Use the "RootURLController.default_homepage_link" config setting instead');
- Config::inst()->update('RootURLController', 'default_homepage_link', $urlsegment);
+ Config::inst()->update('SilverStripe\\CMS\\Controllers\\RootURLController', 'default_homepage_link', $urlsegment);
}
/**
@@ -83,7 +95,7 @@ class RootURLController extends Controller {
*/
static public function get_default_homepage_link() {
Deprecation::notice('4.0', 'Use the "RootURLController.default_homepage_link" config setting instead');
- return Config::inst()->get('RootURLController', 'default_homepage_link');
+ return Config::inst()->get('SilverStripe\\CMS\\Controllers\\RootURLController', 'default_homepage_link');
}
/**
@@ -96,7 +108,10 @@ class RootURLController extends Controller {
static public function should_be_on_root(SiteTree $page) {
if(!self::$is_at_root && self::get_homepage_link() == trim($page->RelativeLink(true), '/')) {
return !(
- class_exists('Translatable') && $page->hasExtension('Translatable') && $page->Locale && $page->Locale != Translatable::default_locale()
+ class_exists('Translatable')
+ && $page->hasExtension('Translatable')
+ && $page->Locale
+ && $page->Locale != Translatable::default_locale()
);
}
@@ -115,6 +130,7 @@ class RootURLController extends Controller {
self::$is_at_root = true;
+ /** @skipUpgrade */
if(!DB::is_active() || !ClassInfo::hasTable('SiteTree')) {
$this->getResponse()->redirect(Controller::join_links(
Director::absoluteBaseURL(),
@@ -136,6 +152,7 @@ class RootURLController extends Controller {
$this->beforeHandleRequest($request, $model);
if (!$this->getResponse()->isFinished()) {
+ /** @skipUpgrade */
if (!DB::is_active() || !ClassInfo::hasTable('SiteTree')) {
$this->getResponse()->redirect(Director::absoluteBaseURL() . 'dev/build?returnURL=' . (isset($_GET['url']) ? urlencode($_GET['url']) : null));
return $this->getResponse();
diff --git a/code/controllers/SilverStripeNavigator.php b/code/Controllers/SilverStripeNavigator.php
similarity index 96%
rename from code/controllers/SilverStripeNavigator.php
rename to code/Controllers/SilverStripeNavigator.php
index 04d5b383..4dcdae6f 100644
--- a/code/controllers/SilverStripeNavigator.php
+++ b/code/Controllers/SilverStripeNavigator.php
@@ -1,10 +1,22 @@
record->Version != $currentDraft->Version))
&& (!$currentLive || ($currentLive && $this->record->Version != $currentLive->Version))
);
-}
+ }
return $this->record->_cached_isArchived;
}
diff --git a/code/forms/SiteTreeURLSegmentField.php b/code/Forms/SiteTreeURLSegmentField.php
similarity index 92%
rename from code/forms/SiteTreeURLSegmentField.php
rename to code/Forms/SiteTreeURLSegmentField.php
index 7b3b4c17..29690f88 100644
--- a/code/forms/SiteTreeURLSegmentField.php
+++ b/code/Forms/SiteTreeURLSegmentField.php
@@ -1,6 +1,13 @@
URLSegment property, and suggest input based on the serverside rules
@@ -44,6 +51,10 @@ class SiteTreeURLSegmentField extends TextField {
return parent::Field($properties);
}
+ /**
+ * @param SS_HTTPRequest $request
+ * @return string
+ */
public function suggest($request) {
if(!$request->getVar('value')) {
return $this->httpError(405,
@@ -69,7 +80,9 @@ class SiteTreeURLSegmentField extends TextField {
*/
public function getPage() {
$idField = $this->getForm()->Fields()->dataFieldByName('ID');
- return ($idField && $idField->Value()) ? DataObject::get_by_id('SiteTree', $idField->Value()) : singleton('SiteTree');
+ return ($idField && $idField->Value())
+ ? SiteTree::get()->byID($idField->Value())
+ : SiteTree::singleton();
}
/**
diff --git a/code/logging/ErrorPageErrorFormatter.php b/code/Logging/ErrorPageErrorFormatter.php
similarity index 88%
rename from code/logging/ErrorPageErrorFormatter.php
rename to code/Logging/ErrorPageErrorFormatter.php
index 0a85b001..f6127ef2 100644
--- a/code/logging/ErrorPageErrorFormatter.php
+++ b/code/Logging/ErrorPageErrorFormatter.php
@@ -1,9 +1,9 @@
0
);
+ private static $table_name = 'ErrorPage';
+
private static $allowed_children = array();
private static $description = 'Custom content for different error cases (e.g. "Page not found")';
@@ -69,6 +86,7 @@ class ErrorPage extends Page {
*/
public static function response_for($statusCode) {
// first attempt to dynamically generate the error page
+ /** @var ErrorPage $errorPage */
$errorPage = ErrorPage::get()
->filter(array(
"ErrorCode" => $statusCode
@@ -93,6 +111,8 @@ class ErrorPage extends Page {
$response->setBody($content);
return $response;
}
+
+ return null;
}
/**
@@ -100,50 +120,62 @@ class ErrorPage extends Page {
* instance of ErrorPage with a 404 and 500 error code. If there is not,
* one is created when the DB is built.
*/
- public function requireDefaultRecords() {
+ public function requireDefaultRecords()
+ {
parent::requireDefaultRecords();
- if ($this->class === 'ErrorPage' && SiteTree::config()->create_default_pages) {
+ // Only run on ErrorPage class directly, not subclasses
+ if ($this->class !== 'SilverStripe\\CMS\\Model\\ErrorPage' || !SiteTree::config()->create_default_pages) {
+ return;
+ }
- $defaultPages = $this->getDefaultRecords();
+ $defaultPages = $this->getDefaultRecords();
- foreach($defaultPages as $defaultData) {
- $code = $defaultData['ErrorCode'];
- $page = ErrorPage::get()->filter('ErrorCode', $code)->first();
- $pageExists = !empty($page);
- if(!$pageExists) {
- $page = new ErrorPage($defaultData);
- $page->write();
- $page->copyVersionToStage(Versioned::DRAFT, Versioned::LIVE);
- }
+ foreach ($defaultPages as $defaultData) {
+ $this->requireDefaultRecordFixture($defaultData);
+ }
+ }
- // Check if static files are enabled
- if(!self::config()->enable_static_file) {
- continue;
- }
+ /**
+ * Build default record from specification fixture
+ *
+ * @param array $defaultData
+ */
+ protected function requireDefaultRecordFixture($defaultData) {
+ $code = $defaultData['ErrorCode'];
+ $page = ErrorPage::get()->filter('ErrorCode', $code)->first();
+ $pageExists = !empty($page);
+ if(!$pageExists) {
+ $page = new ErrorPage($defaultData);
+ $page->write();
+ $page->copyVersionToStage(Versioned::DRAFT, Versioned::LIVE);
+ }
- // Ensure this page has cached error content
- $success = true;
- if(!$page->hasStaticPage()) {
- // Update static content
- $success = $page->writeStaticPage();
- } elseif($pageExists) {
- // If page exists and already has content, no alteration_message is displayed
- continue;
- }
+ // Check if static files are enabled
+ if(!self::config()->enable_static_file) {
+ return;
+ }
- if($success) {
- DB::alteration_message(
- sprintf('%s error page created', $code),
- 'created'
- );
- } else {
- DB::alteration_message(
- sprintf('%s error page could not be created. Please check permissions', $code),
- 'error'
- );
- }
- }
+ // Ensure this page has cached error content
+ $success = true;
+ if(!$page->hasStaticPage()) {
+ // Update static content
+ $success = $page->writeStaticPage();
+ } elseif($pageExists) {
+ // If page exists and already has content, no alteration_message is displayed
+ return;
+ }
+
+ if($success) {
+ DB::alteration_message(
+ sprintf('%s error page created', $code),
+ 'created'
+ );
+ } else {
+ DB::alteration_message(
+ sprintf('%s error page could not be created. Please check permissions', $code),
+ 'error'
+ );
}
}
diff --git a/code/model/RedirectorPage.php b/code/Model/RedirectorPage.php
similarity index 71%
rename from code/model/RedirectorPage.php
rename to code/Model/RedirectorPage.php
index 7ef147a7..c9c03dc2 100644
--- a/code/model/RedirectorPage.php
+++ b/code/Model/RedirectorPage.php
@@ -1,12 +1,25 @@
"SiteTree",
+ "LinkTo" => "SilverStripe\\CMS\\Model\\SiteTree",
);
- private static $many_many = array(
- );
+ private static $table_name = 'RedirectorPage';
/**
* Returns this page if the redirect is external, otherwise
@@ -74,38 +86,39 @@ class RedirectorPage extends Page {
* Only return a value if there is a legal redirection destination.
*/
public function redirectionLink() {
+ // Check external redirect
if($this->RedirectionType == 'External') {
- if($this->ExternalURL) {
- return $this->ExternalURL;
- }
-
- } else {
- $linkTo = $this->LinkToID ? DataObject::get_by_id("SiteTree", $this->LinkToID) : null;
-
- if($linkTo) {
- // We shouldn't point to ourselves - that would create an infinite loop! Return null since we have a
- // bad configuration
- if($this->ID == $linkTo->ID) {
- return null;
-
- // If we're linking to another redirectorpage then just return the URLSegment, to prevent a cycle of redirector
- // pages from causing an infinite loop. Instead, they will cause a 30x redirection loop in the browser, but
- // this can be handled sufficiently gracefully by the browser.
- } elseif($linkTo instanceof RedirectorPage) {
- return $linkTo->regularLink();
-
- // For all other pages, just return the link of the page.
- } else {
- return $linkTo->Link();
- }
- }
+ return $this->ExternalURL ?: null;
}
+
+ // Check internal redirect
+ /** @var SiteTree $linkTo */
+ $linkTo = $this->LinkToID ? SiteTree::get()->byID($this->LinkToID) : null;
+ if (empty($linkTo)) {
+ return null;
+ }
+
+ // We shouldn't point to ourselves - that would create an infinite loop! Return null since we have a
+ // bad configuration
+ if($this->ID == $linkTo->ID) {
+ return null;
+ }
+
+ // If we're linking to another redirectorpage then just return the URLSegment, to prevent a cycle of redirector
+ // pages from causing an infinite loop. Instead, they will cause a 30x redirection loop in the browser, but
+ // this can be handled sufficiently gracefully by the browser.
+ if($linkTo instanceof RedirectorPage) {
+ return $linkTo->regularLink();
+ }
+
+ // For all other pages, just return the link of the page.
+ return $linkTo->Link();
}
public function syncLinkTracking() {
if ($this->RedirectionType == 'Internal') {
if($this->LinkToID) {
- $this->HasBrokenLink = DataObject::get_by_id('SiteTree', $this->LinkToID) ? false : true;
+ $this->HasBrokenLink = SiteTree::get()->byID($this->LinkToID) ? false : true;
} else {
// An incomplete redirector page definitely has a broken link
$this->HasBrokenLink = true;
@@ -153,7 +166,7 @@ class RedirectorPage extends Page {
new TreeDropdownField(
"LinkToID",
_t('RedirectorPage.YOURPAGE', "Page on your website"),
- "SiteTree"
+ "SilverStripe\\CMS\\Model\\SiteTree"
),
new TextField("ExternalURL", _t('RedirectorPage.OTHERURL', "Other website URL"))
)
@@ -179,9 +192,10 @@ class RedirectorPage_Controller extends Page_Controller {
parent::init();
// Check we don't already have a redirect code set
- if(!$this->getResponse()->isFinished() && $link = $this->redirectionLink()) {
+ /** @var RedirectorPage $page */
+ $page = $this->data();
+ if(!$this->getResponse()->isFinished() && $link = $page->redirectionLink()) {
$this->redirect($link, 301);
- return;
}
}
diff --git a/code/model/SiteTree.php b/code/Model/SiteTree.php
similarity index 92%
rename from code/model/SiteTree.php
rename to code/Model/SiteTree.php
index d5308ba8..05c711a4 100755
--- a/code/model/SiteTree.php
+++ b/code/Model/SiteTree.php
@@ -1,5 +1,11 @@
"VirtualPage.CopyContentFrom"
+ "VirtualPages" => "SilverStripe\\CMS\\Model\\VirtualPage.CopyContentFrom"
);
private static $owned_by = array(
@@ -174,6 +217,8 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
"CanEditType" => "Inherit"
);
+ private static $table_name = 'SiteTree';
+
private static $versioning = array(
"Stage", "Live"
);
@@ -207,7 +252,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
private static $extensions = array(
'SilverStripe\ORM\Hierarchy\Hierarchy',
'SilverStripe\ORM\Versioning\Versioned',
- "SiteTreeLinkTracking"
+ "SilverStripe\\CMS\\Model\\SiteTreeLinkTracking"
);
private static $searchable_fields = array(
@@ -286,35 +331,44 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
if(self::config()->nested_urls) {
$conditions[] = array('"SiteTree"."ParentID"' => 0);
}
- $sitetree = DataObject::get_one('SiteTree', $conditions, $cache);
+ /** @var SiteTree $sitetree */
+ $sitetree = DataObject::get_one(__CLASS__, $conditions, $cache);
/// Fall back on a unique URLSegment for b/c.
if( !$sitetree
&& self::config()->nested_urls
- && $page = DataObject::get_one('SiteTree', array(
+ && $sitetree = DataObject::get_one(__CLASS__, array(
'"SiteTree"."URLSegment"' => $URLSegment
), $cache)
) {
- return $page;
+ return $sitetree;
}
// Attempt to grab an alternative page from extensions.
if(!$sitetree) {
$parentID = self::config()->nested_urls ? 0 : null;
- if($alternatives = singleton('SiteTree')->extend('alternateGetByLink', $URLSegment, $parentID)) {
- foreach($alternatives as $alternative) if($alternative) $sitetree = $alternative;
+ if($alternatives = static::singleton()->extend('alternateGetByLink', $URLSegment, $parentID)) {
+ foreach($alternatives as $alternative) {
+ if($alternative) {
+ $sitetree = $alternative;
+ }
+ }
}
- if(!$sitetree) return false;
+ if(!$sitetree) {
+ return null;
+ }
}
// Check if we have any more URL parts to parse.
- if(!self::config()->nested_urls || !count($parts)) return $sitetree;
+ if(!self::config()->nested_urls || !count($parts)) {
+ return $sitetree;
+ }
// Traverse down the remaining URL segments and grab the relevant SiteTree objects.
foreach($parts as $segment) {
- $next = DataObject::get_one('SiteTree', array(
+ $next = DataObject::get_one('SilverStripe\\CMS\\Model\\SiteTree', array(
'"SiteTree"."URLSegment"' => $segment,
'"SiteTree"."ParentID"' => $sitetree->ID
),
@@ -324,11 +378,13 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
if(!$next) {
$parentID = (int) $sitetree->ID;
- if($alternatives = singleton('SiteTree')->extend('alternateGetByLink', $segment, $parentID)) {
+ if($alternatives = static::singleton()->extend('alternateGetByLink', $segment, $parentID)) {
foreach($alternatives as $alternative) if($alternative) $next = $alternative;
}
- if(!$next) return false;
+ if(!$next) {
+ return null;
+ }
}
$sitetree->destroy();
@@ -346,7 +402,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
public static function page_type_classes() {
$classes = ClassInfo::getValidSubClasses();
- $baseClassIndex = array_search('SiteTree', $classes);
+ $baseClassIndex = array_search('SilverStripe\\CMS\\Model\\SiteTree', $classes);
if($baseClassIndex !== FALSE) unset($classes[$baseClassIndex]);
$kill_ancestors = array();
@@ -381,21 +437,24 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
/**
* Replace a "[sitetree_link id=n]" shortcode with a link to the page with the corresponding ID.
*
- * @param array $arguments
- * @param string $content
- * @param TextParser $parser
+ * @param array $arguments
+ * @param string $content
+ * @param ShortcodeParser $parser
* @return string
*/
static public function link_shortcode_handler($arguments, $content = null, $parser = null) {
- if(!isset($arguments['id']) || !is_numeric($arguments['id'])) return;
+ if(!isset($arguments['id']) || !is_numeric($arguments['id'])) {
+ return null;
+ }
if (
- !($page = DataObject::get_by_id('SiteTree', $arguments['id'])) // Get the current page by ID.
- && !($page = Versioned::get_latest_version('SiteTree', $arguments['id'])) // Attempt link to old version.
+ !($page = DataObject::get_by_id(__CLASS__, $arguments['id'])) // Get the current page by ID.
+ && !($page = Versioned::get_latest_version(__CLASS__, $arguments['id'])) // Attempt link to old version.
) {
return null; // There were no suitable matches at all.
}
+ /** @var SiteTree $page */
$link = Convert::raw2att($page->Link());
if($content) {
@@ -470,8 +529,8 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
if($this->ParentID && self::config()->nested_urls) {
$parent = $this->Parent();
// If page is removed select parent from version history (for archive page view)
- if((!$parent || !$parent->exists()) && $this->IsDeletedFromStage) {
- $parent = Versioned::get_latest_version('SiteTree', $this->ParentID);
+ if((!$parent || !$parent->exists()) && $this->getIsDeletedFromStage()) {
+ $parent = Versioned::get_latest_version(__CLASS__, $this->ParentID);
}
$base = $parent->RelativeLink($this->URLSegment);
} elseif(!$action && $this->URLSegment == RootURLController::get_homepage_link()) {
@@ -501,7 +560,8 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
public function getAbsoluteLiveLink($includeStageEqualsLive = true) {
$oldReadingMode = Versioned::get_reading_mode();
Versioned::set_stage(Versioned::LIVE);
- $live = Versioned::get_one_by_stage('SiteTree', Versioned::LIVE, array(
+ /** @var SiteTree $live */
+ $live = Versioned::get_one_by_stage(__CLASS__, Versioned::LIVE, array(
'"SiteTree"."ID"' => $this->ID
));
if($live) {
@@ -524,7 +584,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
*/
public function CMSEditLink() {
$link = Controller::join_links(
- singleton('CMSPageEditController')->Link('show'),
+ CMSPageEditController::singleton()->Link('show'),
$this->ID
);
return Director::absoluteURL($link);
@@ -546,7 +606,14 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
* @return bool
*/
public function isCurrent() {
- return $this->ID ? $this->ID == Director::get_current_page()->ID : $this === Director::get_current_page();
+ $currentPage = Director::get_current_page();
+ if ($currentPage instanceof ContentController) {
+ $currentPage = $currentPage->data();
+ }
+ if($currentPage instanceof SiteTree) {
+ return $currentPage === $this || $currentPage->ID === $this->ID;
+ }
+ return false;
}
/**
@@ -570,7 +637,9 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
*/
public function isOrphaned() {
// Always false for root pages
- if(empty($this->ParentID)) return false;
+ if(empty($this->ParentID)) {
+ return false;
+ }
// Parent must exist and not be an orphan itself
$parent = $this->Parent();
@@ -619,10 +688,11 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
*/
public function InSection($sectionName) {
$page = Director::get_current_page();
- while($page) {
- if($sectionName == $page->URLSegment)
+ while($page && $page->exists()) {
+ if($sectionName == $page->URLSegment) {
return true;
- $page = $page->Parent;
+ }
+ $page = $page->Parent();
}
return false;
}
@@ -640,17 +710,17 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
/**
* Duplicates each child of this node recursively and returns the top-level duplicate node.
*
- * @return self The duplicated object
+ * @return static The duplicated object
*/
public function duplicateWithChildren() {
+ /** @var SiteTree $clone */
$clone = $this->duplicate();
$children = $this->AllChildren();
if($children) {
+ /** @var SiteTree $child */
foreach($children as $child) {
- $childClone = method_exists($child, 'duplicateWithChildren')
- ? $child->duplicateWithChildren()
- : $child->duplicate();
+ $childClone = $child->duplicateWithChildren();
$childClone->ParentID = $clone->ID;
$childClone->write();
}
@@ -665,6 +735,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
* @param int $id ID of the new node's new parent
*/
public function duplicateAsChild($id) {
+ /** @var SiteTree $newSiteTree */
$newSiteTree = $this->duplicate();
$newSiteTree->ParentID = $id;
$newSiteTree->Sort = 0;
@@ -705,6 +776,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
while(
$page
+ && $page->exists()
&& (!$maxDepth || count($pages) < $maxDepth)
&& (!$stopAtPageType || $page->ClassName != $stopAtPageType)
) {
@@ -712,7 +784,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
$pages[] = $page;
}
- $page = $page->Parent;
+ $page = $page->Parent();
}
return new ArrayList(array_reverse($pages));
@@ -742,8 +814,9 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
*/
public function getParent() {
if ($parentID = $this->getField("ParentID")) {
- return DataObject::get_by_id("SiteTree", $parentID);
+ return DataObject::get_by_id("SilverStripe\\CMS\\Model\\SiteTree", $parentID);
}
+ return null;
}
/**
@@ -758,7 +831,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
$parts = [];
while($item && $level > 0) {
$parts[] = $item->Title;
- $item = $item->Parent;
+ $item = $item->getParent();
$level--;
}
return implode($separator, array_reverse($parts));
@@ -1095,7 +1168,9 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
* to 'SiteTree::can_(permission)_multiple'
*/
static public function prepopulate_permission_cache($permission = 'CanEditType', $ids, $batchCallback = null) {
- if(!$batchCallback) $batchCallback = "SiteTree::can_{$permission}_multiple";
+ if(!$batchCallback) {
+ $batchCallback = __CLASS__ . "::can_{$permission}_multiple";
+ }
if(is_callable($batchCallback)) {
call_user_func($batchCallback, $ids, Member::currentUserID(), false);
@@ -1163,14 +1238,19 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
//$ids = array_keys(array_filter(self::can_view_multiple($ids, $memberID)));
// Get the groups that the given member belongs to
- $groupIDs = DataObject::get_by_id('SilverStripe\\Security\\Member', $memberID)->Groups()->column("ID");
+ /** @var Member $member */
+ $member = DataObject::get_by_id('SilverStripe\\Security\\Member', $memberID);
+ $groupIDs = $member->Groups()->column("ID");
$SQL_groupList = implode(", ", $groupIDs);
- if (!$SQL_groupList) $SQL_groupList = '0';
+ if (!$SQL_groupList) {
+ $SQL_groupList = '0';
+ }
$combinedStageResult = array();
foreach(array(Versioned::DRAFT, Versioned::LIVE) as $stage) {
// Start by filling the array with the pages that actually exist
+ /** @skipUpgrade */
$table = ($stage=='Stage') ? "SiteTree" : "SiteTree_$stage";
if($ids) {
@@ -1182,7 +1262,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
$result = array_fill_keys($stageIds, false);
// Get the uninherited permissions
- $uninheritedPermissions = Versioned::get_by_stage("SiteTree", $stage)
+ $uninheritedPermissions = Versioned::get_by_stage("SilverStripe\\CMS\\Model\\SiteTree", $stage)
->where(array(
"(\"$typeField\" = 'LoggedInUsers' OR
(\"$typeField\" = 'OnlyTheseUsers' AND \"$groupJoinTable\".\"SiteTreeID\" IS NOT NULL))
@@ -1198,7 +1278,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
// Get permissions that are inherited
$potentiallyInherited = Versioned::get_by_stage(
- "SiteTree",
+ "SilverStripe\\CMS\\Model\\SiteTree",
$stage,
array("\"$typeField\" = 'Inherit' AND \"SiteTree\".\"ID\" IN ($idPlaceholders)" => $ids)
);
@@ -1337,7 +1417,8 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
* @return bool
*/
public function collateDescendants($condition, &$collator) {
- if($children = $this->Children()) {
+ $children = $this->Children();
+ if($children) {
foreach($children as $item) {
if(eval("return $condition;")) {
@@ -1348,6 +1429,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
}
return true;
}
+ return false;
}
/**
@@ -1364,7 +1446,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
$tags[] = FormField::create_tag('title', array(), $this->obj('Title')->forTemplate());
}
- $generator = trim(Config::inst()->get('SiteTree', 'meta_generator'));
+ $generator = trim(Config::inst()->get(__CLASS__, 'meta_generator'));
if (!empty($generator)) {
$tags[] = FormField::create_tag('meta', array(
'name' => 'generator',
@@ -1431,12 +1513,12 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
parent::requireDefaultRecords();
// default pages
- if($this->class == 'SiteTree' && $this->config()->create_default_pages) {
- if(!SiteTree::get_by_link(Config::inst()->get('RootURLController', 'default_homepage_link'))) {
+ if($this->class == __CLASS__ && $this->config()->create_default_pages) {
+ if(!SiteTree::get_by_link(RootURLController::config()->default_homepage_link)) {
$homepage = new Page();
$homepage->Title = _t('SiteTree.DEFAULTHOMETITLE', 'Home');
$homepage->Content = _t('SiteTree.DEFAULTHOMECONTENT', 'Welcome to SilverStripe! This is the default homepage. You can edit this page by opening the CMS .
You can now access the developer documentation , or begin the SilverStripe lessons .
');
- $homepage->URLSegment = Config::inst()->get('RootURLController', 'default_homepage_link');
+ $homepage->URLSegment = RootURLController::config()->default_homepage_link;
$homepage->Sort = 1;
$homepage->write();
$homepage->copyVersionToStage(Versioned::DRAFT, Versioned::LIVE);
@@ -1447,7 +1529,10 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
if(DB::query("SELECT COUNT(*) FROM \"SiteTree\"")->value() == 1) {
$aboutus = new Page();
$aboutus->Title = _t('SiteTree.DEFAULTABOUTTITLE', 'About Us');
- $aboutus->Content = _t('SiteTree.DEFAULTABOUTCONTENT', 'You can fill this page out with your own content, or delete it and create your own pages.
');
+ $aboutus->Content = _t(
+ 'SiteTree.DEFAULTABOUTCONTENT',
+ 'You can fill this page out with your own content, or delete it and create your own pages.
'
+ );
$aboutus->Sort = 2;
$aboutus->write();
$aboutus->copyVersionToStage(Versioned::DRAFT, Versioned::LIVE);
@@ -1456,7 +1541,10 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
$contactus = new Page();
$contactus->Title = _t('SiteTree.DEFAULTCONTACTTITLE', 'Contact Us');
- $contactus->Content = _t('SiteTree.DEFAULTCONTACTCONTENT', 'You can fill this page out with your own content, or delete it and create your own pages.
');
+ $contactus->Content = _t(
+ 'SiteTree.DEFAULTCONTACTCONTENT',
+ 'You can fill this page out with your own content, or delete it and create your own pages.
'
+ );
$contactus->Sort = 3;
$contactus->write();
$contactus->copyVersionToStage(Versioned::DRAFT, Versioned::LIVE);
@@ -1464,7 +1552,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
DB::alteration_message('Contact Us page created', 'created');
}
}
- }
+ }
protected function onBeforeWrite() {
parent::onBeforeWrite();
@@ -1532,6 +1620,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
// If deleting this page, delete all its children.
if(SiteTree::config()->enforce_strict_hierarchy && $children = $this->AllChildren()) {
foreach($children as $child) {
+ /** @var SiteTree $child */
$child->delete();
}
}
@@ -1565,9 +1654,10 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
// No need to check for subclasses or instanceof, as allowedChildren() already
// deconstructs any inheritance trees already.
$allowed = $parent->allowedChildren();
- $subject = ($this instanceof VirtualPage && $this->CopyContentFromID) ? $this->CopyContentFrom() : $this;
+ $subject = ($this instanceof VirtualPage && $this->CopyContentFromID)
+ ? $this->CopyContentFrom()
+ : $this;
if(!in_array($subject->ClassName, $allowed)) {
-
$result->error(
_t(
'SiteTree.PageTypeNotAllowed',
@@ -1632,7 +1722,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
}
// Check existence
- $existingPage = DataObject::get_one('SiteTree', $filter);
+ $existingPage = DataObject::get_one('SilverStripe\\CMS\\Model\\SiteTree', $filter);
if ($existingPage) return false;
return !($existingPage);
@@ -1668,7 +1758,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
* @return string
*/
public function getStageURLSegment() {
- $stageRecord = Versioned::get_one_by_stage('SiteTree', Versioned::DRAFT, array(
+ $stageRecord = Versioned::get_one_by_stage('SilverStripe\\CMS\\Model\\SiteTree', Versioned::DRAFT, array(
'"SiteTree"."ID"' => $this->ID
));
return ($stageRecord) ? $stageRecord->URLSegment : null;
@@ -1680,7 +1770,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
* @return string
*/
public function getLiveURLSegment() {
- $liveRecord = Versioned::get_one_by_stage('SiteTree', Versioned::LIVE, array(
+ $liveRecord = Versioned::get_one_by_stage('SilverStripe\\CMS\\Model\\SiteTree', Versioned::LIVE, array(
'"SiteTree"."ID"' => $this->ID
));
return ($liveRecord) ? $liveRecord->URLSegment : null;
@@ -1738,7 +1828,9 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
$items->merge($redirectorList);
}
- if(class_exists('Subsite')) Subsite::disable_subsite_filter($origDisableSubsiteFilter);
+ if(class_exists('Subsite')) {
+ Subsite::disable_subsite_filter($origDisableSubsiteFilter);
+ }
return $items;
}
@@ -1771,7 +1863,6 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
* @return FieldList The fields to be displayed in the CMS
*/
public function getCMSFields() {
- require_once("forms/Form.php");
// Status / message
// Create a status message for multiple parents
if($this->ID && is_numeric($this->ID)) {
@@ -1779,24 +1870,24 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
$parentPageLinks = array();
- if($linkedPages->Count() > 0) {
+ if($linkedPages->count() > 0) {
+ /** @var VirtualPage $linkedPage */
foreach($linkedPages as $linkedPage) {
- $parentPage = $linkedPage->Parent;
- if($parentPage) {
- if($parentPage->ID) {
- $parentPageLinks[] = "ID\">{$parentPage->Title} ";
- } else {
- $parentPageLinks[] = "ID\">" .
- _t('SiteTree.TOPLEVEL', 'Site Content (Top Level)') .
- " ";
- }
+ $parentPage = $linkedPage->Parent();
+ if($parentPage && $parentPage->exists()) {
+ $link = Convert::raw2att($parentPage->CMSEditLink());
+ $title = Convert::raw2xml($parentPage->Title);
+ } else {
+ $link = CMSPageEditController::singleton()->Link('show');
+ $title = _t('SiteTree.TOPLEVEL', 'Site Content (Top Level)');
}
+ $parentPageLinks[] = "{$title} ";
}
$lastParent = array_pop($parentPageLinks);
$parentList = "'$lastParent'";
- if(count($parentPageLinks) > 0) {
+ if(count($parentPageLinks)) {
$parentList = "'" . implode("', '", $parentPageLinks) . "' and "
. $parentList;
}
@@ -1818,7 +1909,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
// Create a table for showing pages linked to this one
$dependentPages = $this->DependentPages();
- $dependentPagesCount = $dependentPages->Count();
+ $dependentPagesCount = $dependentPages->count();
if($dependentPagesCount) {
$dependentColumns = array(
'Title' => $this->fieldLabel('Title'),
@@ -1833,7 +1924,11 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
false,
$dependentPages
);
- $dependentTable->getConfig()->getComponentByType('GridFieldDataColumns')
+ /** @var GridFieldDataColumns $dataColumns */
+ $dataColumns = $dependentTable
+ ->getConfig()
+ ->getComponentByType('GridFieldDataColumns');
+ $dataColumns
->setDisplayFields($dependentColumns)
->setFieldFormatting(array(
'Title' => function($value, &$item) {
@@ -1864,7 +1959,9 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
'CMSMain.NEWPAGE',
array('pagetype' => $this->i18n_singular_name())
)));
- $helpText = (self::config()->nested_urls && count($this->Children())) ? $this->fieldLabel('LinkChangeNote') : '';
+ $helpText = (self::config()->nested_urls && $this->Children()->count())
+ ? $this->fieldLabel('LinkChangeNote')
+ : '';
if(!Config::inst()->get('URLSegmentFilter', 'default_allow_multibyte')) {
$helpText .= $helpText ? ' ' : '';
$helpText .= _t('SiteTreeURLSegmentField.HelpChars', ' Special characters are automatically converted or removed.');
@@ -1979,7 +2076,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
"root" => _t("SiteTree.PARENTTYPE_ROOT", "Top-level page"),
"subpage" => _t("SiteTree.PARENTTYPE_SUBPAGE", "Sub-page underneath a parent page"),
)),
- $parentIDField = new TreeDropdownField("ParentID", $this->fieldLabel('ParentID'), 'SiteTree', 'ID', 'MenuTitle')
+ $parentIDField = new TreeDropdownField("ParentID", $this->fieldLabel('ParentID'), 'SilverStripe\\CMS\\Model\\SiteTree', 'ID', 'MenuTitle')
),
$visibility = new FieldGroup(
new CheckboxField("ShowInMenus", $this->fieldLabel('ShowInMenus')),
@@ -2022,7 +2119,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
// Make page location fields read-only if the user doesn't have the appropriate permission
if(!Permission::check("SITETREE_REORGANISE")) {
$fields->makeFieldReadonly('ParentType');
- if($this->ParentType == 'root') {
+ if($this->getParentType() === 'root') {
$fields->removeByName('ParentID');
} else {
$fields->makeFieldReadonly('ParentID');
@@ -2136,7 +2233,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
$rootTabSet->addExtraClass('ss-ui-action-tabset action-menus noborder');
// Render page information into the "more-options" drop-up, on the top.
- $live = Versioned::get_one_by_stage('SiteTree', Versioned::LIVE, array(
+ $live = Versioned::get_one_by_stage('SilverStripe\\CMS\\Model\\SiteTree', Versioned::LIVE, array(
'"SiteTree"."ID"' => $this->ID
));
$moreOptions->push(
@@ -2284,7 +2381,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
public function onAfterRevertToLive() {
// Use an alias to get the updates made by $this->publish
/** @var SiteTree $stageSelf */
- $stageSelf = Versioned::get_by_stage('SiteTree', Versioned::DRAFT)->byID($this->ID);
+ $stageSelf = Versioned::get_by_stage('SilverStripe\\CMS\\Model\\SiteTree', Versioned::DRAFT)->byID($this->ID);
$stageSelf->writeWithoutVersion();
// Need to update pages linking to this one as no longer broken
@@ -2301,7 +2398,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
*/
protected function isParentArchived() {
if($parentID = $this->ParentID) {
- $parentPage = Versioned::get_latest_version("SiteTree", $parentID);
+ $parentPage = Versioned::get_latest_version("SilverStripe\\CMS\\Model\\SiteTree", $parentID);
if(!$parentPage || $parentPage->IsDeletedFromStage) {
return true;
}
@@ -2326,9 +2423,9 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
// create an empty record
if(!DB::prepared_query("SELECT \"ID\" FROM \"SiteTree\" WHERE \"ID\" = ?", array($this->ID))->value()) {
$conn = DB::get_conn();
- if(method_exists($conn, 'allowPrimaryKeyEditing')) $conn->allowPrimaryKeyEditing('SiteTree', true);
+ if(method_exists($conn, 'allowPrimaryKeyEditing')) $conn->allowPrimaryKeyEditing('SilverStripe\\CMS\\Model\\SiteTree', true);
DB::prepared_query("INSERT INTO \"SiteTree\" (\"ID\") VALUES (?)", array($this->ID));
- if(method_exists($conn, 'allowPrimaryKeyEditing')) $conn->allowPrimaryKeyEditing('SiteTree', false);
+ if(method_exists($conn, 'allowPrimaryKeyEditing')) $conn->allowPrimaryKeyEditing('SilverStripe\\CMS\\Model\\SiteTree', false);
}
$oldReadingMode = Versioned::get_reading_mode();
@@ -2336,7 +2433,8 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
$this->forceChange();
$this->write();
- $result = DataObject::get_by_id($this->class, $this->ID);
+ /** @var SiteTree $result */
+ $result = DataObject::get_by_id(__CLASS__, $this->ID);
// Need to update pages linking to this one as no longer broken
foreach($result->DependentPages(false) as $page) {
@@ -2378,7 +2476,6 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
protected function getClassDropdown() {
$classes = self::page_type_classes();
$currentClass = null;
- $result = array();
$result = array();
foreach($classes as $class) {
@@ -2458,10 +2555,12 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
$default = $this->stat('default_child');
$allowed = $this->allowedChildren();
if($allowed) {
- if(!$default || !in_array($default, $allowed))
+ if(!$default || !in_array($default, $allowed)) {
$default = reset($allowed);
+ }
return $default;
}
+ return null;
}
/**
@@ -2598,7 +2697,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
public function Level($level) {
$parent = $this;
$stack = array($parent);
- while($parent = $parent->Parent) {
+ while(($parent = $parent->Parent()) && $parent->exists()) {
array_unshift($stack, $parent);
}
@@ -2665,7 +2764,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
if(!$this->ID) return true;
if($this->isNew()) return false;
- $stageVersion = Versioned::get_versionnumber_by_stage('SiteTree', Versioned::DRAFT, $this->ID);
+ $stageVersion = Versioned::get_versionnumber_by_stage('SilverStripe\\CMS\\Model\\SiteTree', Versioned::DRAFT, $this->ID);
// Return true for both completely deleted pages and for pages just deleted from stage
return !($stageVersion);
@@ -2690,8 +2789,8 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
// New unsaved pages could be never be published
if($this->isNew()) return false;
- $stageVersion = Versioned::get_versionnumber_by_stage('SiteTree', 'Stage', $this->ID);
- $liveVersion = Versioned::get_versionnumber_by_stage('SiteTree', 'Live', $this->ID);
+ $stageVersion = Versioned::get_versionnumber_by_stage('SilverStripe\\CMS\\Model\\SiteTree', 'Stage', $this->ID);
+ $liveVersion = Versioned::get_versionnumber_by_stage('SilverStripe\\CMS\\Model\\SiteTree', 'Live', $this->ID);
$isModified = ($stageVersion && $stageVersion != $liveVersion);
$this->extend('getIsModifiedOnStage', $isModified);
@@ -2709,8 +2808,8 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
// New unsaved pages could be never be published
if($this->isNew()) return false;
- $stageVersion = Versioned::get_versionnumber_by_stage('SiteTree', 'Stage', $this->ID);
- $liveVersion = Versioned::get_versionnumber_by_stage('SiteTree', 'Live', $this->ID);
+ $stageVersion = Versioned::get_versionnumber_by_stage('SilverStripe\\CMS\\Model\\SiteTree', 'Stage', $this->ID);
+ $liveVersion = Versioned::get_versionnumber_by_stage('SilverStripe\\CMS\\Model\\SiteTree', 'Live', $this->ID);
return ($stageVersion && !$liveVersion);
}
@@ -2773,7 +2872,11 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
*/
public function i18n_singular_name() {
// Convert 'Page' to 'SiteTree' for correct localization lookups
- $class = ($this->class == 'Page') ? 'SiteTree' : $this->class;
+ /** @skipUpgrade */
+ // @todo When we namespace translations, change 'SiteTree' to FQN of the class
+ $class = ($this->class == 'Page' || $this->class === __CLASS__)
+ ? 'SiteTree'
+ : $this->class;
return _t($class.'.SINGULARNAME', $this->singular_name());
}
diff --git a/code/model/SiteTreeExtension.php b/code/Model/SiteTreeExtension.php
similarity index 96%
rename from code/model/SiteTreeExtension.php
rename to code/Model/SiteTreeExtension.php
index 45284407..bcbfec39 100644
--- a/code/model/SiteTreeExtension.php
+++ b/code/Model/SiteTreeExtension.php
@@ -1,6 +1,9 @@
'SiteTree.ImageTracking' // {@see SiteTreeLinkTracking}
+ 'BackLinkTracking' => 'SilverStripe\\CMS\\Model\\SiteTree.ImageTracking' // {@see SiteTreeLinkTracking}
);
/**
@@ -36,14 +43,14 @@ class SiteTreeFileExtension extends DataExtension {
public function updateCMSFields(FieldList $fields) {
$fields->insertAfter(
+ 'LastEdited',
ReadonlyField::create(
'BackLinkCount',
_t('AssetTableField.BACKLINKCOUNT', 'Used on:'),
- $this->BackLinkTracking()->Count() . ' ' . _t('AssetTableField.PAGES', 'page(s)')
+ $this->BackLinkTracking()->count() . ' ' . _t('AssetTableField.PAGES', 'page(s)')
)
->addExtraClass('cms-description-toggle')
- ->setDescription($this->BackLinkHTMLList()),
- 'LastEdited'
+ ->setDescription($this->BackLinkHTMLList())
);
}
@@ -98,12 +105,12 @@ class SiteTreeFileExtension extends DataExtension {
/**
* @todo Unnecessary shortcut for AssetTableField, coupled with cms module.
*
- * @return integer
+ * @return int
*/
public function BackLinkTrackingCount() {
$pages = $this->owner->BackLinkTracking();
if($pages) {
- return $pages->Count();
+ return $pages->count();
} else {
return 0;
}
@@ -123,7 +130,7 @@ class SiteTreeFileExtension extends DataExtension {
$brokenPageIDs = $this->owner->BackLinkTracking()->column("ID");
if($brokenPageIDs) {
// This will syncLinkTracking on the same stage as this file
- $brokenPages = DataObject::get('SiteTree')->byIDs($brokenPageIDs);
+ $brokenPages = DataObject::get('SilverStripe\\CMS\\Model\\SiteTree')->byIDs($brokenPageIDs);
foreach($brokenPages as $brokenPage) {
$brokenPage->write();
}
diff --git a/code/model/SiteTreeFolderExtension.php b/code/Model/SiteTreeFolderExtension.php
similarity index 92%
rename from code/model/SiteTreeFolderExtension.php
rename to code/Model/SiteTreeFolderExtension.php
index 20647229..762ec8bf 100644
--- a/code/model/SiteTreeFolderExtension.php
+++ b/code/Model/SiteTreeFolderExtension.php
@@ -1,9 +1,12 @@
numRecords() > 0) {
while($nextResult = $result->next()) {
diff --git a/code/model/SiteTreeLinkTracking.php b/code/Model/SiteTreeLinkTracking.php
similarity index 92%
rename from code/model/SiteTreeLinkTracking.php
rename to code/Model/SiteTreeLinkTracking.php
index eb9fe005..0b15ca51 100644
--- a/code/model/SiteTreeLinkTracking.php
+++ b/code/Model/SiteTreeLinkTracking.php
@@ -1,17 +1,21 @@
"SiteTree",
+ "LinkTracking" => "SilverStripe\\CMS\\Model\\SiteTree",
"ImageTracking" => "File" // {@see SiteTreeFileExtension}
);
private static $belongs_many_many = array(
- "BackLinkTracking" => "SiteTree.LinkTracking"
+ "BackLinkTracking" => "SilverStripe\\CMS\\Model\\SiteTree.LinkTracking"
);
/**
@@ -119,7 +123,9 @@ class SiteTreeLinkTracking extends DataExtension {
continue;
}
- $classStr = trim($link['DOMReference']->getAttribute('class'));
+ /** @var DOMElement $domReference */
+ $domReference = $link['DOMReference'];
+ $classStr = trim($domReference->getAttribute('class'));
if (!$classStr) {
$classes = array();
} else {
@@ -134,9 +140,9 @@ class SiteTreeLinkTracking extends DataExtension {
}
if (!empty($classes)) {
- $link['DOMReference']->setAttribute('class', implode(' ', $classes));
+ $domReference->setAttribute('class', implode(' ', $classes));
} else {
- $link['DOMReference']->removeAttribute('class');
+ $domReference->removeAttribute('class');
}
}
$record->$fieldName = $htmlValue->getContent();
@@ -246,10 +252,14 @@ class SiteTreeLinkTracking_Parser {
$results = array();
$links = $htmlValue->getElementsByTagName('a');
- if(!$links) return $results;
+ if(!$links) {
+ return $results;
+ }
foreach($links as $link) {
- if (!$link->hasAttribute('href')) continue;
+ if (!$link->hasAttribute('href')) {
+ continue;
+ }
$href = Director::makeRelative($link->getAttribute('href'));
@@ -269,7 +279,7 @@ class SiteTreeLinkTracking_Parser {
// Link to a page on this site.
$matches = array();
if(preg_match('/\[sitetree_link(?:\s*|%20|,)?id=(?[0-9]+)\](#(?.*))?/i', $href, $matches)) {
- $page = DataObject::get_by_id('SiteTree', $matches['id']);
+ $page = DataObject::get_by_id('SilverStripe\\CMS\\Model\\SiteTree', $matches['id']);
$broken = false;
if (!$page) {
diff --git a/code/model/VirtualPage.php b/code/Model/VirtualPage.php
similarity index 93%
rename from code/model/VirtualPage.php
rename to code/Model/VirtualPage.php
index 5694f712..e7dc7e37 100644
--- a/code/model/VirtualPage.php
+++ b/code/Model/VirtualPage.php
@@ -1,8 +1,20 @@
"SiteTree",
+ "CopyContentFrom" => "SilverStripe\\CMS\\Model\\SiteTree",
);
private static $owns = array(
@@ -67,6 +79,8 @@ class VirtualPage extends Page {
"VersionID" => "Int",
);
+ private static $table_name = 'VirtualPage';
+
/**
* Generates the array of fields required for the page type.
*
@@ -96,7 +110,7 @@ class VirtualPage extends Page {
public function setCopyContentFromID($val) {
// Sanity check to prevent pages virtualising other virtual pages
- if($val && DataObject::get_by_id('SiteTree', $val) instanceof VirtualPage) {
+ if($val && DataObject::get_by_id('SilverStripe\\CMS\\Model\\SiteTree', $val) instanceof VirtualPage) {
$val = 0;
}
return $this->setField("CopyContentFromID", $val);
@@ -137,7 +151,7 @@ class VirtualPage extends Page {
public function syncLinkTracking() {
if($this->CopyContentFromID) {
- $this->HasBrokenLink = !(bool) DataObject::get_by_id('SiteTree', $this->CopyContentFromID);
+ $this->HasBrokenLink = !(bool) DataObject::get_by_id('SilverStripe\\CMS\\Model\\SiteTree', $this->CopyContentFromID);
} else {
$this->HasBrokenLink = true;
}
@@ -166,7 +180,7 @@ class VirtualPage extends Page {
}
// Unpublished source
- if(!Versioned::get_versionnumber_by_stage('SiteTree', 'Live', $this->CopyContentFromID)) {
+ if(!Versioned::get_versionnumber_by_stage('SilverStripe\\CMS\\Model\\SiteTree', 'Live', $this->CopyContentFromID)) {
return false;
}
@@ -184,7 +198,7 @@ class VirtualPage extends Page {
$copyContentFromField = new TreeDropdownField(
"CopyContentFromID",
_t('VirtualPage.CHOOSE', "Linked Page"),
- "SiteTree"
+ "SilverStripe\\CMS\\Model\\SiteTree"
);
// filter doesn't let you select children of virtual pages as as source page
//$copyContentFromField->setFilterFunction(create_function('$item', 'return !($item instanceof VirtualPage);'));
@@ -224,7 +238,7 @@ class VirtualPage extends Page {
}
if(
$this->CopyContentFromID
- && !Versioned::get_versionnumber_by_stage('SiteTree', 'Live', $this->CopyContentFromID)
+ && !Versioned::get_versionnumber_by_stage('SilverStripe\\CMS\\Model\\SiteTree', 'Live', $this->CopyContentFromID)
) {
$msgs[] = _t(
'SITETREE.VIRTUALPAGEDRAFTWARNING',
@@ -527,7 +541,7 @@ class VirtualPage_Controller extends Page_Controller {
{
// Check if we can safely call this method before passing it back
// to custom methods.
- if ($this->getExtraMethodConfig($method)) {
+ if($this->getExtraMethodConfig($method)) {
return parent::__call($method, $args);
}
diff --git a/code/reports/BrokenFilesReport.php b/code/Reports/BrokenFilesReport.php
similarity index 71%
rename from code/reports/BrokenFilesReport.php
rename to code/Reports/BrokenFilesReport.php
index 1c317530..b3c179f9 100644
--- a/code/reports/BrokenFilesReport.php
+++ b/code/Reports/BrokenFilesReport.php
@@ -1,7 +1,13 @@
ClassName, ClassInfo::subclassesFor('RedirectorPage'));
- $isVirtualPage = in_array($record->ClassName, ClassInfo::subclassesFor('VirtualPage'));
+ $isRedirectorPage = in_array($record->ClassName, ClassInfo::subclassesFor('SilverStripe\\CMS\\Model\\RedirectorPage'));
+ $isVirtualPage = in_array($record->ClassName, ClassInfo::subclassesFor('SilverStripe\\CMS\\Model\\VirtualPage'));
if ($isVirtualPage) {
if ($record->HasBrokenLink) {
@@ -89,7 +96,7 @@ class BrokenLinksReport extends SS_Report {
$dateTitle = _t('BrokenLinksReport.ColumnDateLastPublished', 'Date last published');
}
- $linkBase = singleton('CMSPageEditController')->Link('show');
+ $linkBase = singleton('SilverStripe\\CMS\\Controllers\\CMSPageEditController')->Link('show');
$fields = array(
"Title" => array(
"title" => _t('BrokenLinksReport.PageName', 'Page name'),
@@ -144,14 +151,3 @@ class BrokenLinksReport extends SS_Report {
);
}
}
-
-
-/**
- * @deprecated 3.2..4.0
- */
-class SideReport_BrokenLinks extends BrokenLinksReport {
- public function __construct() {
- Deprecation::notice('4.0', 'Use BrokenLinksReport instead');
- parent::__construct();
- }
-}
diff --git a/code/reports/BrokenRedirectorPagesReport.php b/code/Reports/BrokenRedirectorPagesReport.php
similarity index 72%
rename from code/reports/BrokenRedirectorPagesReport.php
rename to code/Reports/BrokenRedirectorPagesReport.php
index ed9b39ec..bc6a7c34 100644
--- a/code/reports/BrokenRedirectorPagesReport.php
+++ b/code/Reports/BrokenRedirectorPagesReport.php
@@ -1,7 +1,14 @@
$classes
);
$stage = isset($params['OnLive']) ? 'Live' : 'Stage';
- return Versioned::get_by_stage('SiteTree', $stage, $classFilter);
+ return Versioned::get_by_stage('SilverStripe\\CMS\\Model\\SiteTree', $stage, $classFilter);
}
public function columns() {
@@ -42,13 +49,3 @@ class BrokenRedirectorPagesReport extends SS_Report {
);
}
}
-
-/**
- * @deprecated 3.2..4.0
- */
-class SideReport_BrokenRedirectorPages extends BrokenRedirectorPagesReport {
- public function __construct() {
- Deprecation::notice('4.0', 'Use BrokenRedirectorPagesReport instead');
- parent::__construct();
- }
-}
diff --git a/code/reports/BrokenVirtualPagesReport.php b/code/Reports/BrokenVirtualPagesReport.php
similarity index 73%
rename from code/reports/BrokenVirtualPagesReport.php
rename to code/Reports/BrokenVirtualPagesReport.php
index f640c320..db11acf8 100644
--- a/code/reports/BrokenVirtualPagesReport.php
+++ b/code/Reports/BrokenVirtualPagesReport.php
@@ -1,7 +1,13 @@
$classes
);
$stage = isset($params['OnLive']) ? 'Live' : 'Stage';
- return Versioned::get_by_stage('SiteTree', $stage, $classFilter);
+ return Versioned::get_by_stage('SilverStripe\\CMS\\Model\\SiteTree', $stage, $classFilter);
}
public function columns() {
@@ -42,13 +48,3 @@ class BrokenVirtualPagesReport extends SS_Report {
);
}
}
-
-/**
- * @deprecated 3.2..4.0
- */
-class SideReport_BrokenVirtualPages extends BrokenVirtualPagesReport {
- public function __construct() {
- Deprecation::notice('4.0', 'Use BrokenVirtualPagesReport instead');
- parent::__construct();
- }
-}
diff --git a/code/reports/EmptyPagesReport.php b/code/Reports/EmptyPagesReport.php
similarity index 77%
rename from code/reports/EmptyPagesReport.php
rename to code/Reports/EmptyPagesReport.php
index 4bbfc9fb..5d0c4579 100644
--- a/code/reports/EmptyPagesReport.php
+++ b/code/Reports/EmptyPagesReport.php
@@ -1,5 +1,11 @@
Format('U'));
- return DataObject::get("SiteTree", "\"SiteTree\".\"LastEdited\" > '".date("Y-m-d H:i:s", $threshold)."'", "\"SiteTree\".\"LastEdited\" DESC");
+ return DataObject::get("SilverStripe\\CMS\\Model\\SiteTree", "\"SiteTree\".\"LastEdited\" > '".date("Y-m-d H:i:s", $threshold)."'", "\"SiteTree\".\"LastEdited\" DESC");
}
public function columns() {
@@ -35,13 +38,3 @@ class RecentlyEditedReport extends SS_Report {
);
}
}
-
-/**
- * @deprecated 3.2..4.0
- */
-class SideReport_RecentlyEdited extends RecentlyEditedReport {
- public function __construct() {
- Deprecation::notice('4.0', 'Use RecentlyEditedReport instead');
- parent::__construct();
- }
-}
diff --git a/code/search/ContentControllerSearchExtension.php b/code/Search/ContentControllerSearchExtension.php
similarity index 86%
rename from code/search/ContentControllerSearchExtension.php
rename to code/Search/ContentControllerSearchExtension.php
index 0ea13c4d..8d79486f 100644
--- a/code/search/ContentControllerSearchExtension.php
+++ b/code/Search/ContentControllerSearchExtension.php
@@ -1,6 +1,13 @@
owner, 'SearchForm', $fields, $actions);
+ $form = SearchForm::create($this->owner, 'SilverStripe\\CMS\\Search\\SearchForm', $fields, $actions);
$form->classesToSearch(FulltextSearchable::get_searchable_classes());
return $form;
}
diff --git a/code/search/SearchForm.php b/code/Search/SearchForm.php
similarity index 89%
rename from code/search/SearchForm.php
rename to code/Search/SearchForm.php
index 810adcdd..ac5f7477 100644
--- a/code/search/SearchForm.php
+++ b/code/Search/SearchForm.php
@@ -1,7 +1,16 @@
hasExtension('Translatable')) {
+ if(class_exists('Translatable') && singleton('SilverStripe\\CMS\\Model\\SiteTree')->hasExtension('Translatable')) {
$fields->push(new HiddenField('searchlocale', 'searchlocale', Translatable::get_current_locale()));
}
@@ -77,7 +86,7 @@ class SearchForm extends Form {
public function forTemplate() {
$return = $this->renderWith(array_merge(
(array)$this->getTemplate(),
- array('SearchForm', 'Form')
+ array('SilverStripe\\CMS\\Search\\SearchForm', 'Form')
));
// Now that we're rendered, clear message
@@ -91,11 +100,11 @@ class SearchForm extends Form {
* Currently you can only choose from "SiteTree" and "File", but a future version might improve this.
*/
public function classesToSearch($classes) {
- $illegalClasses = array_diff($classes, array('SiteTree', 'File'));
+ $illegalClasses = array_diff($classes, array('SilverStripe\\CMS\\Model\\SiteTree', 'File'));
if($illegalClasses) {
user_error("SearchForm::classesToSearch() passed illegal classes '" . implode("', '", $illegalClasses) . "'. At this stage, only File and SiteTree are allowed", E_USER_WARNING);
}
- $legalClasses = array_intersect($classes, array('SiteTree', 'File'));
+ $legalClasses = array_intersect($classes, array('SilverStripe\\CMS\\Model\\SiteTree', 'File'));
$this->classesToSearch = $legalClasses;
}
@@ -122,7 +131,7 @@ class SearchForm extends Form {
// set language (if present)
if(class_exists('Translatable')) {
- if(singleton('SiteTree')->hasExtension('Translatable') && isset($data['searchlocale'])) {
+ if(singleton('SilverStripe\\CMS\\Model\\SiteTree')->hasExtension('Translatable') && isset($data['searchlocale'])) {
if($data['searchlocale'] == "ALL") {
Translatable::disable_locale_filter();
} else {
@@ -165,7 +174,7 @@ class SearchForm extends Form {
// reset locale
if(class_exists('Translatable')) {
- if(singleton('SiteTree')->hasExtension('Translatable') && isset($data['searchlocale'])) {
+ if(singleton('SilverStripe\\CMS\\Model\\SiteTree')->hasExtension('Translatable') && isset($data['searchlocale'])) {
if($data['searchlocale'] == "ALL") {
Translatable::enable_locale_filter();
} else {
diff --git a/tasks/MigrateSiteTreeLinkingTask.php b/code/Tasks/MigrateSiteTreeLinkingTask.php
similarity index 86%
rename from tasks/MigrateSiteTreeLinkingTask.php
rename to code/Tasks/MigrateSiteTreeLinkingTask.php
index 6a33b807..214d5145 100644
--- a/tasks/MigrateSiteTreeLinkingTask.php
+++ b/code/Tasks/MigrateSiteTreeLinkingTask.php
@@ -1,8 +1,13 @@
innerJoin('SiteTree_LinkTracking', '"SiteTree_LinkTracking"."SiteTreeID" = "SiteTree"."ID"');
if($linkedPages) foreach($linkedPages as $page) {
$tracking = DB::prepared_query(
@@ -29,7 +34,7 @@ class MigrateSiteTreeLinkingTask extends BuildTask {
)->map();
foreach($tracking as $childID => $fieldName) {
- $linked = DataObject::get_by_id('SiteTree', $childID);
+ $linked = DataObject::get_by_id('SilverStripe\\CMS\\Model\\SiteTree', $childID);
// TOOD: Replace in all HTMLText fields
$page->Content = preg_replace (
diff --git a/tasks/RemoveOrphanedPagesTask.php b/code/Tasks/RemoveOrphanedPagesTask.php
similarity index 91%
rename from tasks/RemoveOrphanedPagesTask.php
rename to code/Tasks/RemoveOrphanedPagesTask.php
index 902cbaff..7bacd549 100644
--- a/tasks/RemoveOrphanedPagesTask.php
+++ b/code/Tasks/RemoveOrphanedPagesTask.php
@@ -1,10 +1,26 @@
";
- protected $orphanedSearchClass = 'SiteTree';
+ protected $orphanedSearchClass = 'SilverStripe\\CMS\\Model\\SiteTree';
public function init() {
parent::init();
@@ -65,6 +81,11 @@ in the other stage:
}
}
+ public function Link($action = null)
+ {
+ return Controller::join_links('RemoveOrphanedPagesTask', $action, '/');
+ }
+
public function index() {
Requirements::javascript(FRAMEWORK_DIR . '/thirdparty/jquery/jquery.js');
Requirements::customCSS('#OrphanIDs .middleColumn {width: auto;}');
@@ -108,7 +129,7 @@ in the other stage:
$source[$orphan->ID] = $label;
}
- if($orphans && $orphans->Count()) {
+ if($orphans && $orphans->count()) {
$fields->push(new CheckboxSetField('OrphanIDs', false, $source));
$fields->push(new LiteralField(
'SelectAllLiteral',
@@ -167,7 +188,7 @@ in the other stage:
)
);
- if(!$orphans || !$orphans->Count()) {
+ if(!$orphans || !$orphans->count()) {
$form->makeReadonly();
}
@@ -309,17 +330,21 @@ in the other stage:
* @param int|array $limit
* @return SS_List
*/
- public function getOrphanedPages($class = 'SiteTree', $filter = array(), $sort = null, $join = null, $limit = null) {
+ public function getOrphanedPages($class = 'SilverStripe\\CMS\\Model\\SiteTree', $filter = array(), $sort = null, $join = null, $limit = null) {
// Alter condition
- if(empty($filter)) $where = array();
- elseif(is_array($filter)) $where = $filter;
- else $where = array($filter);
- $where[] = array("\"$class\".\"ParentID\" != ?" => 0);
+ $table = DataObject::getSchema()->tableName($class);
+ if(empty($filter)) {
+ $where = array();
+ } elseif(is_array($filter)) {
+ $where = $filter;
+ } else {
+ $where = array($filter);
+ }
+ $where[] = array("\"{$table}\".\"ParentID\" != ?" => 0);
$where[] = '"Parents"."ID" IS NULL';
$orphans = new ArrayList();
foreach(array(Versioned::DRAFT, Versioned::LIVE) as $stage) {
- $table = DataObject::getSchema()->tableName($class);
$table .= ($stage == Versioned::LIVE) ? '_Live' : '';
$stageOrphans = Versioned::get_by_stage(
$class,
diff --git a/tasks/SiteTreeMaintenanceTask.php b/code/Tasks/SiteTreeMaintenanceTask.php
similarity index 75%
rename from tasks/SiteTreeMaintenanceTask.php
rename to code/Tasks/SiteTreeMaintenanceTask.php
index 2616edee..28bd8bd9 100644
--- a/tasks/SiteTreeMaintenanceTask.php
+++ b/code/Tasks/SiteTreeMaintenanceTask.php
@@ -1,7 +1,12 @@
1")->column()) . "'";
- $pages = DataObject::get("SiteTree", "\"SiteTree\".\"URLSegment\" IN ($badURLs)");
+ $pages = DataObject::get("SilverStripe\\CMS\\Model\\SiteTree", "\"SiteTree\".\"URLSegment\" IN ($badURLs)");
foreach($pages as $page) {
echo "$page->Title: ";
@@ -37,4 +42,9 @@ class SiteTreeMaintenanceTask extends Controller {
die();
}
}
+
+ public function Link($action = null)
+ {
+ return Controller::join_links('SiteTreeMaintenanceTask', $action, '/');
+ }
}
diff --git a/code/controllers/CMSSettingsController.php b/code/controllers/CMSSettingsController.php
deleted file mode 100644
index 1ef33a72..00000000
--- a/code/controllers/CMSSettingsController.php
+++ /dev/null
@@ -1,16 +0,0 @@
-
+<% include SilverStripe\CMS\Controllers\CMSPagesController_ContentToolActions %>
$AddForm
@@ -14,7 +14,7 @@
$ListViewForm
-
+
<% else %>
diff --git a/templates/Includes/CMSMain_Tools.ss b/templates/SilverStripe/CMS/Controllers/CMSMain_Tools.ss
similarity index 100%
rename from templates/Includes/CMSMain_Tools.ss
rename to templates/SilverStripe/CMS/Controllers/CMSMain_Tools.ss
diff --git a/templates/Includes/CMSMain_TreeView.ss b/templates/SilverStripe/CMS/Controllers/CMSMain_TreeView.ss
similarity index 95%
rename from templates/Includes/CMSMain_TreeView.ss
rename to templates/SilverStripe/CMS/Controllers/CMSMain_TreeView.ss
index 17a3bb4c..c9eca6dd 100644
--- a/templates/Includes/CMSMain_TreeView.ss
+++ b/templates/SilverStripe/CMS/Controllers/CMSMain_TreeView.ss
@@ -1,4 +1,4 @@
-<% include CMSPagesController_ContentToolActions View='Tree' %>
+<% include SilverStripe\CMS\Controllers\CMSPagesController_ContentToolActions View='Tree' %>
$AddForm
diff --git a/templates/Includes/CMSPageAddController_Content.ss b/templates/SilverStripe/CMS/Controllers/CMSPageAddController_Content.ss
similarity index 100%
rename from templates/Includes/CMSPageAddController_Content.ss
rename to templates/SilverStripe/CMS/Controllers/CMSPageAddController_Content.ss
diff --git a/templates/Includes/CMSPageHistoryController_Tools.ss b/templates/SilverStripe/CMS/Controllers/CMSPageHistoryController_Tools.ss
similarity index 100%
rename from templates/Includes/CMSPageHistoryController_Tools.ss
rename to templates/SilverStripe/CMS/Controllers/CMSPageHistoryController_Tools.ss
diff --git a/templates/CMSPageHistoryController_versions.ss b/templates/SilverStripe/CMS/Controllers/CMSPageHistoryController_versions.ss
similarity index 100%
rename from templates/CMSPageHistoryController_versions.ss
rename to templates/SilverStripe/CMS/Controllers/CMSPageHistoryController_versions.ss
diff --git a/templates/Includes/CMSPagesController_Content.ss b/templates/SilverStripe/CMS/Controllers/CMSPagesController_Content.ss
similarity index 100%
rename from templates/Includes/CMSPagesController_Content.ss
rename to templates/SilverStripe/CMS/Controllers/CMSPagesController_Content.ss
diff --git a/templates/Includes/CMSPagesController_Tools.ss b/templates/SilverStripe/CMS/Controllers/CMSPagesController_Tools.ss
similarity index 100%
rename from templates/Includes/CMSPagesController_Tools.ss
rename to templates/SilverStripe/CMS/Controllers/CMSPagesController_Tools.ss
diff --git a/templates/Includes/CMSPagesController_ContentToolActions.ss b/templates/SilverStripe/CMS/Controllers/Includes/CMSPagesController_ContentToolActions.ss
similarity index 100%
rename from templates/Includes/CMSPagesController_ContentToolActions.ss
rename to templates/SilverStripe/CMS/Controllers/Includes/CMSPagesController_ContentToolActions.ss
diff --git a/templates/forms/SiteTreeURLSegmentField.ss b/templates/forms/SilverStripe/CMS/Forms/SiteTreeURLSegmentField.ss
similarity index 57%
rename from templates/forms/SiteTreeURLSegmentField.ss
rename to templates/forms/SilverStripe/CMS/Forms/SiteTreeURLSegmentField.ss
index a88afe11..26eba8b1 100644
--- a/templates/forms/SiteTreeURLSegmentField.ss
+++ b/templates/forms/SilverStripe/CMS/Forms/SiteTreeURLSegmentField.ss
@@ -3,17 +3,17 @@
$URL
<% if not $IsReadonly %>
-
+
<% _t('URLSegmentField.Edit', 'Edit') %>
<% end_if %>
-
+
<% _t('URLSegmentField.OK', 'OK') %>
-
+
<% _t('URLSegmentField.Cancel', 'Cancel') %>
<% if $HelpText %>$HelpText
<% end_if %>
diff --git a/tests/behat/features/bootstrap/FeatureContext.php b/tests/behat/features/bootstrap/FeatureContext.php
index 4b4d986e..7efd303b 100644
--- a/tests/behat/features/bootstrap/FeatureContext.php
+++ b/tests/behat/features/bootstrap/FeatureContext.php
@@ -10,6 +10,7 @@ use SilverStripe\BehatExtension\Context\SilverStripeContext,
SilverStripe\Framework\Test\Behaviour\CmsUiContext,
SilverStripe\Cms\Test\Behaviour,
SilverStripe\ORM\Versioning\Versioned;
+use SilverStripe\CMS\Model\SiteTree;
/**
@@ -39,10 +40,10 @@ class FeatureContext extends \SilverStripe\Framework\Test\Behaviour\FeatureConte
// Use blueprints which auto-publish all subclasses of SiteTree
$factory = $fixtureContext->getFixtureFactory();
- foreach(\ClassInfo::subclassesFor('SiteTree') as $id => $class) {
+ foreach(\ClassInfo::subclassesFor('SilverStripe\\CMS\\Model\\SiteTree') as $id => $class) {
$blueprint = \Injector::inst()->create('FixtureBlueprint', $class);
$blueprint->addCallback('afterCreate', function($obj, $identifier, &$data, &$fixtures) {
- /** @var \SiteTree $obj */
+ /** @var SiteTree $obj */
$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 38e8f586..b8aebdea 100644
--- a/tests/behat/features/bootstrap/SilverStripe/Cms/Test/Behaviour/FixtureContext.php
+++ b/tests/behat/features/bootstrap/SilverStripe/Cms/Test/Behaviour/FixtureContext.php
@@ -26,7 +26,7 @@ class FixtureContext extends \SilverStripe\BehatExtension\Context\FixtureContext
* @Given /^(?:(an|a|the) )"(?[^"]+)" "(?[^"]+)" (:?which )?redirects to (?:(an|a|the) )"(?[^"]+)" "(?[^"]+)"$/
*/
public function stepCreateRedirectorPage($type, $id, $targetType, $targetId) {
- $class = 'RedirectorPage';
+ $class = 'SilverStripe\\CMS\\Model\\RedirectorPage';
$targetClass = $this->convertTypeToClass($targetType);
$targetObj = $this->fixtureFactory->get($targetClass, $targetId);
diff --git a/tests/controller/AssetAdminTest.php b/tests/controller/AssetAdminTest.php
index 16587c8a..2d1c8194 100644
--- a/tests/controller/AssetAdminTest.php
+++ b/tests/controller/AssetAdminTest.php
@@ -2,6 +2,8 @@
use SilverStripe\ORM\DataObject;
use SilverStripe\ORM\SS_List;
+use SilverStripe\CMS\Controllers\AssetAdmin;
+
/**
* Tests {@see AssetAdmin}
diff --git a/tests/controller/CMSBatchActionsTest.php b/tests/controller/CMSBatchActionsTest.php
index fe8f6795..3efa9de2 100644
--- a/tests/controller/CMSBatchActionsTest.php
+++ b/tests/controller/CMSBatchActionsTest.php
@@ -1,6 +1,12 @@
logInWithPermission('ADMIN');
// published page
- $published = $this->objFromFixture('SiteTree', 'published');
+ $published = $this->objFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'published');
$published->publishSingle();
// Deleted / archived page
- $archived = $this->objFromFixture('SiteTree', 'archived');
+ $archived = $this->objFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'archived');
$archived->doArchive(); // should archive all children
// Unpublished
- $unpublished = $this->objFromFixture('SiteTree', 'unpublished');
+ $unpublished = $this->objFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'unpublished');
$unpublished->publishSingle();
$unpublished->doUnpublish();
// Modified
- $modified = $this->objFromFixture('SiteTree', 'modified');
+ $modified = $this->objFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'modified');
$modified->publishSingle();
$modified->Title = 'modified2';
$modified->write();
@@ -39,18 +45,18 @@ class CMSBatchActionsTest extends SapphireTest {
*/
public function testBatchPublishApplicable() {
$this->logInWithPermission('ADMIN');
- $pages = Versioned::get_including_deleted('SiteTree');
+ $pages = Versioned::get_including_deleted('SilverStripe\\CMS\\Model\\SiteTree');
$ids = $pages->column('ID');
$action = new CMSBatchAction_Publish();
// Test applicable pages
$applicable = $action->applicablePages($ids);
- $this->assertContains($this->idFromFixture('SiteTree', 'published'), $applicable);
- $this->assertNotContains($this->idFromFixture('SiteTree', 'archived'), $applicable);
- $this->assertNotContains($this->idFromFixture('SiteTree', 'archivedx'), $applicable);
- $this->assertNotContains($this->idFromFixture('SiteTree', 'archivedy'), $applicable);
- $this->assertContains($this->idFromFixture('SiteTree', 'unpublished'), $applicable);
- $this->assertContains($this->idFromFixture('SiteTree', 'modified'), $applicable);
+ $this->assertContains($this->idFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'published'), $applicable);
+ $this->assertNotContains($this->idFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'archived'), $applicable);
+ $this->assertNotContains($this->idFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'archivedx'), $applicable);
+ $this->assertNotContains($this->idFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'archivedy'), $applicable);
+ $this->assertContains($this->idFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'unpublished'), $applicable);
+ $this->assertContains($this->idFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'modified'), $applicable);
}
@@ -59,18 +65,18 @@ class CMSBatchActionsTest extends SapphireTest {
*/
public function testBatchUnpublishApplicable() {
$this->logInWithPermission('ADMIN');
- $pages = Versioned::get_including_deleted('SiteTree');
+ $pages = Versioned::get_including_deleted('SilverStripe\\CMS\\Model\\SiteTree');
$ids = $pages->column('ID');
$action = new CMSBatchAction_Unpublish();
// Test applicable page
$applicable = $action->applicablePages($ids);
- $this->assertContains($this->idFromFixture('SiteTree', 'published'), $applicable);
- $this->assertNotContains($this->idFromFixture('SiteTree', 'archived'), $applicable);
- $this->assertNotContains($this->idFromFixture('SiteTree', 'archivedx'), $applicable);
- $this->assertNotContains($this->idFromFixture('SiteTree', 'archivedy'), $applicable);
- $this->assertNotContains($this->idFromFixture('SiteTree', 'unpublished'), $applicable);
- $this->assertContains($this->idFromFixture('SiteTree', 'modified'), $applicable);
+ $this->assertContains($this->idFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'published'), $applicable);
+ $this->assertNotContains($this->idFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'archived'), $applicable);
+ $this->assertNotContains($this->idFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'archivedx'), $applicable);
+ $this->assertNotContains($this->idFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'archivedy'), $applicable);
+ $this->assertNotContains($this->idFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'unpublished'), $applicable);
+ $this->assertContains($this->idFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'modified'), $applicable);
}
/**
@@ -78,16 +84,16 @@ class CMSBatchActionsTest extends SapphireTest {
*/
public function testBatchArchiveApplicable() {
$this->logInWithPermission('ADMIN');
- $pages = Versioned::get_including_deleted('SiteTree');
+ $pages = Versioned::get_including_deleted('SilverStripe\\CMS\\Model\\SiteTree');
$ids = $pages->column('ID');
$action = new CMSBatchAction_Archive();
// Test applicable pages
$applicable = $action->applicablePages($ids);
- $this->assertContains($this->idFromFixture('SiteTree', 'published'), $applicable);
- $this->assertNotContains($this->idFromFixture('SiteTree', 'archived'), $applicable);
- $this->assertContains($this->idFromFixture('SiteTree', 'unpublished'), $applicable);
- $this->assertContains($this->idFromFixture('SiteTree', 'modified'), $applicable);
+ $this->assertContains($this->idFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'published'), $applicable);
+ $this->assertNotContains($this->idFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'archived'), $applicable);
+ $this->assertContains($this->idFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'unpublished'), $applicable);
+ $this->assertContains($this->idFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'modified'), $applicable);
}
/**
@@ -95,27 +101,27 @@ class CMSBatchActionsTest extends SapphireTest {
*/
public function testBatchRestoreApplicable() {
$this->logInWithPermission('ADMIN');
- $pages = Versioned::get_including_deleted('SiteTree');
+ $pages = Versioned::get_including_deleted('SilverStripe\\CMS\\Model\\SiteTree');
$ids = $pages->column('ID');
$action = new CMSBatchAction_Restore();
// Test applicable pages
$applicable = $action->applicablePages($ids);
- $this->assertNotContains($this->idFromFixture('SiteTree', 'published'), $applicable);
- $this->assertContains($this->idFromFixture('SiteTree', 'archived'), $applicable);
- $this->assertContains($this->idFromFixture('SiteTree', 'archivedx'), $applicable);
- $this->assertContains($this->idFromFixture('SiteTree', 'archivedy'), $applicable);
- $this->assertNotContains($this->idFromFixture('SiteTree', 'unpublished'), $applicable);
- $this->assertNotContains($this->idFromFixture('SiteTree', 'modified'), $applicable);
+ $this->assertNotContains($this->idFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'published'), $applicable);
+ $this->assertContains($this->idFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'archived'), $applicable);
+ $this->assertContains($this->idFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'archivedx'), $applicable);
+ $this->assertContains($this->idFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'archivedy'), $applicable);
+ $this->assertNotContains($this->idFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'unpublished'), $applicable);
+ $this->assertNotContains($this->idFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'modified'), $applicable);
}
public function testBatchRestore() {
$this->logInWithPermission('ADMIN');
- $pages = Versioned::get_including_deleted('SiteTree');
+ $pages = Versioned::get_including_deleted('SilverStripe\\CMS\\Model\\SiteTree');
$action = new CMSBatchAction_Restore();
- $archivedID = $this->idFromFixture('SiteTree', 'archived');
- $archivedxID = $this->idFromFixture('SiteTree', 'archivedx');
- $archivedyID = $this->idFromFixture('SiteTree', 'archivedy');
+ $archivedID = $this->idFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'archived');
+ $archivedxID = $this->idFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'archivedx');
+ $archivedyID = $this->idFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'archivedy');
// Just restore one child
$list = $pages->filter('RecordID', $archivedxID);
diff --git a/tests/controller/CMSBatchActionsTest.yml b/tests/controller/CMSBatchActionsTest.yml
index 88ed1775..db5edfae 100644
--- a/tests/controller/CMSBatchActionsTest.yml
+++ b/tests/controller/CMSBatchActionsTest.yml
@@ -1,4 +1,4 @@
-SiteTree:
+SilverStripe\CMS\Model\SiteTree:
published:
Title: Published
archived:
@@ -9,7 +9,7 @@ SiteTree:
Title: modified1
archivedx:
Title: 'Archived: Child1'
- Parent: =>SiteTree.archived
+ Parent: =>SilverStripe\CMS\Model\SiteTree.archived
archivedy:
Title: 'Archived: Child2'
- Parent: =>SiteTree.archived
+ Parent: =>SilverStripe\CMS\Model\SiteTree.archived
diff --git a/tests/controller/CMSMainTest.php b/tests/controller/CMSMainTest.php
index 44b9ec99..ab00bafd 100644
--- a/tests/controller/CMSMainTest.php
+++ b/tests/controller/CMSMainTest.php
@@ -4,6 +4,9 @@ use SilverStripe\ORM\DB;
use SilverStripe\ORM\DataObject;
use SilverStripe\ORM\Versioning\Versioned;
use SilverStripe\ORM\HiddenClass;
+use SilverStripe\CMS\Controllers\CMSMain;
+use SilverStripe\CMS\Model\SiteTree;
+
/**
* @package cms
@@ -34,7 +37,7 @@ class CMSMainTest extends FunctionalTest {
$user->logIn();
$cache->clean(Zend_Cache::CLEANING_MODE_ALL);
- $rawHints = singleton('CMSMain')->SiteTreeHints();
+ $rawHints = singleton('SilverStripe\\CMS\\Controllers\\CMSMain')->SiteTreeHints();
$this->assertNotNull($rawHints);
$rawHints = preg_replace('/^"(.*)"$/', '$1', Convert::xml2raw($rawHints));
@@ -80,7 +83,7 @@ class CMSMainTest extends FunctionalTest {
$pageB->write();
// Check query
- $response = $this->get('CMSMain/childfilter?ParentID=' . $pageA->ID);
+ $response = $this->get('admin/pages/childfilter?ParentID=' . $pageA->ID);
$children = json_decode($response->getBody());
$this->assertFalse($response->isError());
@@ -125,7 +128,7 @@ class CMSMainTest extends FunctionalTest {
}
// Get the latest version of the redirector page
- $pageID = $this->idFromFixture('RedirectorPage', 'page5');
+ $pageID = $this->idFromFixture('SilverStripe\\CMS\\Model\\RedirectorPage', 'page5');
$latestID = DB::prepared_query('select max("Version") from "RedirectorPage_versions" where "RecordID" = ?', array($pageID))->value();
$dsCount = DB::prepared_query('select count("Version") from "RedirectorPage_versions" where "RecordID" = ? and "Version"= ?', array($pageID, $latestID))->value();
$this->assertEquals(1, $dsCount, "Published page has no duplicate version records: it has " . $dsCount . " for version " . $latestID);
@@ -175,7 +178,7 @@ class CMSMainTest extends FunctionalTest {
* Mostly, this is just checking that the method doesn't return an error
*/
public function testThatGetCMSFieldsWorksOnEveryPageType() {
- $classes = ClassInfo::subclassesFor("SiteTree");
+ $classes = ClassInfo::subclassesFor("SilverStripe\\CMS\\Model\\SiteTree");
array_shift($classes);
foreach ($classes as $class) {
@@ -186,7 +189,7 @@ class CMSMainTest extends FunctionalTest {
$page->Title = "Test $class page";
$page->write();
$page->flushCache();
- $page = DataObject::get_by_id("SiteTree", $page->ID);
+ $page = DataObject::get_by_id("SilverStripe\\CMS\\Model\\SiteTree", $page->ID);
$this->assertTrue($page->getCMSFields() instanceof FieldList);
}
@@ -195,7 +198,7 @@ class CMSMainTest extends FunctionalTest {
public function testCanPublishPageWithUnpublishedParentWithStrictHierarchyOff() {
$this->logInWithPermission('ADMIN');
- Config::inst()->update('SiteTree', 'enforce_strict_hierarchy', true);
+ Config::inst()->update('SilverStripe\\CMS\\Model\\SiteTree', 'enforce_strict_hierarchy', true);
$parentPage = $this->objFromFixture('Page', 'page3');
$childPage = $this->objFromFixture('Page', 'page1');
@@ -208,7 +211,7 @@ class CMSMainTest extends FunctionalTest {
$actions,
'Can publish a page with an unpublished parent with strict hierarchy off'
);
- Config::inst()->update('SiteTree', 'enforce_strict_hierarchy', false);
+ Config::inst()->update('SilverStripe\\CMS\\Model\\SiteTree', 'enforce_strict_hierarchy', false);
}
/**
@@ -225,10 +228,10 @@ class CMSMainTest extends FunctionalTest {
$response = $this->get('admin/pages/edit/show/' . $pageID);
- $livePage = Versioned::get_one_by_stage("SiteTree", "Live", array(
+ $livePage = Versioned::get_one_by_stage("SilverStripe\\CMS\\Model\\SiteTree", "Live", array(
'"SiteTree"."ID"' => $pageID
));
- $this->assertInstanceOf('SiteTree', $livePage);
+ $this->assertInstanceOf('SilverStripe\\CMS\\Model\\SiteTree', $livePage);
$this->assertTrue($livePage->canDelete());
// Check that the 'restore' button exists as a simple way of checking that the correct page is returned.
@@ -469,7 +472,7 @@ class CMSMainTest extends FunctionalTest {
// Test deleted page filter
$params = array(
- 'FilterClass' => 'CMSSiteTreeFilter_StatusDeletedPages'
+ 'FilterClass' => 'SilverStripe\\CMS\\Controllers\\CMSSiteTreeFilter_StatusDeletedPages'
);
$pages = $controller->getList($params);
$this->assertEquals(1, $pages->count());
@@ -480,7 +483,7 @@ class CMSMainTest extends FunctionalTest {
// Test live, but not on draft filter
$params = array(
- 'FilterClass' => 'CMSSiteTreeFilter_StatusRemovedFromDraftPages'
+ 'FilterClass' => 'SilverStripe\\CMS\\Controllers\\CMSSiteTreeFilter_StatusRemovedFromDraftPages'
);
$pages = $controller->getList($params);
$this->assertEquals(1, $pages->count());
@@ -491,7 +494,7 @@ class CMSMainTest extends FunctionalTest {
// Test live pages filter
$params = array(
- 'FilterClass' => 'CMSSIteTreeFilter_PublishedPages'
+ 'FilterClass' => 'SilverStripe\\CMS\\Controllers\\CMSSiteTreeFilter_PublishedPages'
);
$pages = $controller->getList($params);
$this->assertEquals(2, $pages->count());
diff --git a/tests/controller/CMSMainTest.yml b/tests/controller/CMSMainTest.yml
index 835fd9ce..3a75b8b0 100644
--- a/tests/controller/CMSMainTest.yml
+++ b/tests/controller/CMSMainTest.yml
@@ -135,7 +135,7 @@ SiteConfig_CreateTopLevelGroups:
createtoplevelgroups1:
SiteConfigID: =>SiteConfig.siteconfig1
GroupID: =>SilverStripe\Security\Group.rooteditusers
-RedirectorPage:
+SilverStripe\CMS\Model\RedirectorPage:
page5:
Title: Page 5
RedirectionType: External
diff --git a/tests/controller/CMSPageHistoryControllerTest.php b/tests/controller/CMSPageHistoryControllerTest.php
index 80875ee8..f00867b9 100755
--- a/tests/controller/CMSPageHistoryControllerTest.php
+++ b/tests/controller/CMSPageHistoryControllerTest.php
@@ -1,6 +1,8 @@
ID;
$deletedPage->delete();
$deletedPage = Versioned::get_one_by_stage(
- 'SiteTree',
+ 'SilverStripe\\CMS\\Model\\SiteTree',
'Live',
array('"SiteTree_Live"."ID"' => $deletedPageID)
);
@@ -110,7 +117,7 @@ class CMSSiteTreeFilterTest extends SapphireTest {
public function testStatusDraftPagesFilter() {
$draftPage = $this->objFromFixture('Page', 'page4');
$draftPage = Versioned::get_one_by_stage(
- 'SiteTree',
+ 'SilverStripe\\CMS\\Model\\SiteTree',
'Stage',
sprintf('"SiteTree"."ID" = %d', $draftPage->ID)
);
@@ -146,7 +153,7 @@ class CMSSiteTreeFilterTest extends SapphireTest {
$removedDraftPage->publishRecursive();
$removedDraftPage->deleteFromStage('Stage');
$removedDraftPage = Versioned::get_one_by_stage(
- 'SiteTree',
+ 'SilverStripe\\CMS\\Model\\SiteTree',
'Live',
sprintf('"SiteTree"."ID" = %d', $removedDraftPage->ID)
);
@@ -173,7 +180,7 @@ class CMSSiteTreeFilterTest extends SapphireTest {
// Can't use straight $blah->delete() as that blows it away completely and test fails
$deletedPage->deleteFromStage(Versioned::LIVE);
$deletedPage->deleteFromStage(Versioned::DRAFT);
- $checkParentExists = Versioned::get_latest_version('SiteTree', $deletedPageID);
+ $checkParentExists = Versioned::get_latest_version('SilverStripe\\CMS\\Model\\SiteTree', $deletedPageID);
// Check deleted page is included
$f = new CMSSiteTreeFilter_StatusDeletedPages(array('Title' => 'Page'));
diff --git a/tests/controller/ContentControllerSearchExtensionTest.php b/tests/controller/ContentControllerSearchExtensionTest.php
index e9f39e78..1e282568 100644
--- a/tests/controller/ContentControllerSearchExtensionTest.php
+++ b/tests/controller/ContentControllerSearchExtensionTest.php
@@ -1,6 +1,8 @@
SearchForm();
- if (get_class($form) == 'SearchForm') $this->assertEquals(array('File'), $form->getClassesToSearch());
+ if (get_class($form) == 'SilverStripe\\CMS\\Search\\SearchForm') $this->assertEquals(array('File'), $form->getClassesToSearch());
}
public function setUpOnce() {
diff --git a/tests/controller/ContentControllerTest.php b/tests/controller/ContentControllerTest.php
index 5640efdf..b7eeda25 100755
--- a/tests/controller/ContentControllerTest.php
+++ b/tests/controller/ContentControllerTest.php
@@ -1,6 +1,10 @@
update('SiteTree', 'nested_urls', true);
+ Config::inst()->update('SilverStripe\\CMS\\Model\\SiteTree', 'nested_urls', true);
$this->assertEquals('Home Page', $this->get('/')->getBody());
$this->assertEquals('Home Page', $this->get('/home/index/')->getBody());
@@ -56,7 +60,7 @@ class ContentControllerTest extends FunctionalTest {
public function testChildrenOf() {
$controller = new ContentController();
- Config::inst()->update('SiteTree', 'nested_urls', true);
+ Config::inst()->update('SilverStripe\\CMS\\Model\\SiteTree', 'nested_urls', true);
$this->assertEquals(1, $controller->ChildrenOf('/')->Count());
$this->assertEquals(1, $controller->ChildrenOf('/home/')->Count());
@@ -72,7 +76,7 @@ class ContentControllerTest extends FunctionalTest {
}
public function testDeepNestedURLs() {
- Config::inst()->update('SiteTree', 'nested_urls', true);
+ Config::inst()->update('SilverStripe\\CMS\\Model\\SiteTree', 'nested_urls', true);
$page = new Page();
$page->URLSegment = 'base-page';
diff --git a/tests/controller/ModelAsControllerTest.php b/tests/controller/ModelAsControllerTest.php
index cf955313..2ef8a071 100644
--- a/tests/controller/ModelAsControllerTest.php
+++ b/tests/controller/ModelAsControllerTest.php
@@ -1,6 +1,10 @@
orig['nested_urls'] = SiteTree::config()->nested_urls;
- Config::inst()->update('SiteTree', 'nested_urls', true);
+ Config::inst()->update('SilverStripe\\CMS\\Model\\SiteTree', 'nested_urls', true);
}
/**
@@ -299,7 +303,7 @@ class ModelAsControllerTest extends FunctionalTest {
*/
public function testChildOfDraft() {
RootURLController::reset();
- Config::inst()->update('SiteTree', 'nested_urls', true);
+ Config::inst()->update('SilverStripe\\CMS\\Model\\SiteTree', 'nested_urls', true);
$draft = new Page();
$draft->Title = 'Root Leve Draft Page';
diff --git a/tests/controller/RootURLControllerTest.php b/tests/controller/RootURLControllerTest.php
index 9396f80e..d4b85221 100644
--- a/tests/controller/RootURLControllerTest.php
+++ b/tests/controller/RootURLControllerTest.php
@@ -1,4 +1,7 @@
nested_urls = false;
$this->assertEquals('home', RootURLController::get_homepage_link());
- Config::inst()->update('SiteTree', 'nested_urls', true);
+ Config::inst()->update('SilverStripe\\CMS\\Model\\SiteTree', 'nested_urls', true);
$this->assertEquals('home', RootURLController::get_homepage_link());
}
diff --git a/tests/controller/SilverStripeNavigatorTest.php b/tests/controller/SilverStripeNavigatorTest.php
index 233c2991..96afd96f 100644
--- a/tests/controller/SilverStripeNavigatorTest.php
+++ b/tests/controller/SilverStripeNavigatorTest.php
@@ -2,6 +2,9 @@
use SilverStripe\Security\Member;
use SilverStripe\Security\Permission;
+use SilverStripe\CMS\Controllers\SilverStripeNavigator;
+use SilverStripe\CMS\Controllers\SilverStripeNavigatorItem;
+
/**
* @package cms
* @subpackage tests
@@ -17,7 +20,7 @@ class SilverStripeNavigatorTest extends SapphireTest {
$items = $navigator->getItems();
$classes = array_map('get_class', $items->toArray());
- $this->assertContains('SilverStripeNavigatorItem_StageLink', $classes,
+ $this->assertContains('SilverStripe\\CMS\\Controllers\\SilverStripeNavigatorItem_StageLink', $classes,
'Adds default classes'
);
diff --git a/tests/model/ErrorPageFileExtensionTest.php b/tests/model/ErrorPageFileExtensionTest.php
index 706bae20..7c3810ca 100644
--- a/tests/model/ErrorPageFileExtensionTest.php
+++ b/tests/model/ErrorPageFileExtensionTest.php
@@ -26,11 +26,11 @@ class ErrorPageFileExtensionTest extends SapphireTest {
public function testErrorPage() {
// Get and publish records
- $notFoundPage = $this->objFromFixture('ErrorPage', '404');
+ $notFoundPage = $this->objFromFixture('SilverStripe\\CMS\\Model\\ErrorPage', '404');
$notFoundPage->copyVersionToStage(Versioned::DRAFT, Versioned::LIVE);
$notFoundLink = $notFoundPage->Link();
- $disallowedPage = $this->objFromFixture('ErrorPage', '403');
+ $disallowedPage = $this->objFromFixture('SilverStripe\\CMS\\Model\\ErrorPage', '403');
$disallowedPage->copyVersionToStage(Versioned::DRAFT, Versioned::LIVE);
$disallowedLink = $disallowedPage->Link();
diff --git a/tests/model/ErrorPageTest.php b/tests/model/ErrorPageTest.php
index 86164999..5f436bd8 100644
--- a/tests/model/ErrorPageTest.php
+++ b/tests/model/ErrorPageTest.php
@@ -1,6 +1,8 @@
update('ErrorPage', 'enable_static_file', true);
+ Config::inst()->update('SilverStripe\\CMS\\Model\\ErrorPage', 'enable_static_file', true);
Config::inst()->update('Director', 'environment_type', 'live');
$this->logInWithPermission('ADMIN');
}
@@ -32,7 +34,7 @@ class ErrorPageTest extends FunctionalTest {
}
public function test404ErrorPage() {
- $page = $this->objFromFixture('ErrorPage', '404');
+ $page = $this->objFromFixture('SilverStripe\\CMS\\Model\\ErrorPage', '404');
// ensure that the errorpage exists as a physical file
$page->copyVersionToStage(Versioned::DRAFT, Versioned::LIVE);
@@ -49,7 +51,7 @@ class ErrorPageTest extends FunctionalTest {
}
public function testBehaviourOfShowInMenuAndShowInSearchFlags() {
- $page = $this->objFromFixture('ErrorPage', '404');
+ $page = $this->objFromFixture('SilverStripe\\CMS\\Model\\ErrorPage', '404');
/* Don't show the error page in the menus */
$this->assertEquals($page->ShowInMenus, 0, 'Don\'t show the error page in the menus');
@@ -59,7 +61,7 @@ class ErrorPageTest extends FunctionalTest {
}
public function testBehaviourOf403() {
- $page = $this->objFromFixture('ErrorPage', '403');
+ $page = $this->objFromFixture('SilverStripe\\CMS\\Model\\ErrorPage', '403');
$page->copyVersionToStage(Versioned::DRAFT, Versioned::LIVE);
$response = $this->get($page->RelativeLink());
@@ -70,7 +72,7 @@ class ErrorPageTest extends FunctionalTest {
public function testSecurityError() {
// Generate 404 page
- $page = $this->objFromFixture('ErrorPage', '404');
+ $page = $this->objFromFixture('SilverStripe\\CMS\\Model\\ErrorPage', '404');
$page->copyVersionToStage(Versioned::DRAFT, Versioned::LIVE);
// Test invalid action
@@ -104,7 +106,7 @@ class ErrorPageTest extends FunctionalTest {
* Test fallback to file generation API with enable_static_file disabled
*/
public function testGeneratedFile() {
- Config::inst()->update('ErrorPage', 'enable_static_file', false);
+ Config::inst()->update('SilverStripe\\CMS\\Model\\ErrorPage', 'enable_static_file', false);
$this->logInWithPermission('ADMIN');
$page = new ErrorPage();
diff --git a/tests/model/ErrorPageTest.yml b/tests/model/ErrorPageTest.yml
index b716c73d..c3d33b97 100644
--- a/tests/model/ErrorPageTest.yml
+++ b/tests/model/ErrorPageTest.yml
@@ -1,4 +1,4 @@
-ErrorPage:
+SilverStripe\CMS\Model\ErrorPage:
404:
Title: Page Not Found
URLSegment: page-not-found
diff --git a/tests/model/FileLinkTrackingTest.php b/tests/model/FileLinkTrackingTest.php
index 79113d53..61bb21bf 100644
--- a/tests/model/FileLinkTrackingTest.php
+++ b/tests/model/FileLinkTrackingTest.php
@@ -2,6 +2,8 @@
use SilverStripe\ORM\Versioning\Versioned;
use SilverStripe\ORM\DataObject;
+use SilverStripe\CMS\Model\VirtualPage;
+
/**
* Tests link tracking to files and images.
@@ -157,8 +159,8 @@ class FileLinkTrackingTest extends SapphireTest {
$file->write();
// Caching hack
- Versioned::prepopulate_versionnumber_cache('SiteTree', 'Stage', array($page->ID));
- Versioned::prepopulate_versionnumber_cache('SiteTree', 'Live', array($page->ID));
+ Versioned::prepopulate_versionnumber_cache('SilverStripe\\CMS\\Model\\SiteTree', 'Stage', array($page->ID));
+ Versioned::prepopulate_versionnumber_cache('SilverStripe\\CMS\\Model\\SiteTree', 'Live', array($page->ID));
// Confirm that the page hasn't gone green.
$this->assertFalse($page->getIsModifiedOnStage());
diff --git a/tests/model/RedirectorPageTest.php b/tests/model/RedirectorPageTest.php
index bf4848cb..41ee7e54 100644
--- a/tests/model/RedirectorPageTest.php
+++ b/tests/model/RedirectorPageTest.php
@@ -1,5 +1,8 @@
assertEquals("http://www.google.com", $this->objFromFixture('RedirectorPage','goodexternal')->Link());
- $this->assertEquals(Director::baseURL() . "redirection-dest/", $this->objFromFixture('RedirectorPage','goodinternal')->redirectionLink());
- $this->assertEquals(Director::baseURL() . "redirection-dest/", $this->objFromFixture('RedirectorPage','goodinternal')->Link());
+ $this->assertEquals("http://www.google.com", $this->objFromFixture('SilverStripe\\CMS\\Model\\RedirectorPage','goodexternal')->Link());
+ $this->assertEquals(Director::baseURL() . "redirection-dest/", $this->objFromFixture('SilverStripe\\CMS\\Model\\RedirectorPage','goodinternal')->redirectionLink());
+ $this->assertEquals(Director::baseURL() . "redirection-dest/", $this->objFromFixture('SilverStripe\\CMS\\Model\\RedirectorPage','goodinternal')->Link());
}
public function testEmptyRedirectors() {
/* If a redirector page is misconfigured, then its link method will just return the usual URLSegment-generated value */
- $page1 = $this->objFromFixture('RedirectorPage','badexternal');
+ $page1 = $this->objFromFixture('SilverStripe\\CMS\\Model\\RedirectorPage','badexternal');
$this->assertEquals(Director::baseURL() . 'bad-external/', $page1->Link());
/* An error message will be shown if you visit it */
@@ -22,7 +25,7 @@ class RedirectorPageTest extends FunctionalTest {
$this->assertContains('message-setupWithoutRedirect', $content);
/* This also applies for internal links */
- $page2 = $this->objFromFixture('RedirectorPage','badinternal');
+ $page2 = $this->objFromFixture('SilverStripe\\CMS\\Model\\RedirectorPage','badinternal');
$this->assertEquals(Director::baseURL() . 'bad-internal/', $page2->Link());
$content = $this->get(Director::makeRelative($page2->Link()))->getBody();
$this->assertContains('message-setupWithoutRedirect', $content);
@@ -30,14 +33,14 @@ class RedirectorPageTest extends FunctionalTest {
public function testReflexiveAndTransitiveInternalRedirectors() {
/* Reflexive redirectors are those that point to themselves. They should behave the same as an empty redirector */
- $page = $this->objFromFixture('RedirectorPage','reflexive');
+ $page = $this->objFromFixture('SilverStripe\\CMS\\Model\\RedirectorPage','reflexive');
$this->assertEquals(Director::baseURL() . 'reflexive/', $page->Link());
$content = $this->get(Director::makeRelative($page->Link()))->getBody();
$this->assertContains('message-setupWithoutRedirect', $content);
/* Transitive redirectors are those that point to another redirector page. They should send people to the URLSegment
* of the destination page - the middle-stop, so to speak. That should redirect to the final destination */
- $page = $this->objFromFixture('RedirectorPage','transitive');
+ $page = $this->objFromFixture('SilverStripe\\CMS\\Model\\RedirectorPage','transitive');
$this->assertEquals(Director::baseURL() . 'good-internal/', $page->Link());
$this->autoFollowRedirection = false;
@@ -46,7 +49,7 @@ class RedirectorPageTest extends FunctionalTest {
}
public function testExternalURLGetsPrefixIfNotSet() {
- $page = $this->objFromFixture('RedirectorPage', 'externalnoprefix');
+ $page = $this->objFromFixture('SilverStripe\\CMS\\Model\\RedirectorPage', 'externalnoprefix');
$this->assertEquals($page->ExternalURL, 'http://google.com', 'onBeforeWrite has prefixed with http');
$page->write();
$this->assertEquals($page->ExternalURL, 'http://google.com', 'onBeforeWrite will not double prefix if written again!');
@@ -70,7 +73,7 @@ class RedirectorPageTest extends FunctionalTest {
* Test that we can trigger a redirection before RedirectorPage_Controller::init() is called
*/
public function testRedirectRespectsFinishedResponse() {
- $page = $this->objFromFixture('RedirectorPage', 'goodinternal');
+ $page = $this->objFromFixture('SilverStripe\\CMS\\Model\\RedirectorPage', 'goodinternal');
RedirectorPage_Controller::add_extension('RedirectorPageTest_RedirectExtension');
$response = $this->get($page->regularLink());
diff --git a/tests/model/RedirectorPageTest.yml b/tests/model/RedirectorPageTest.yml
index c7c43aca..cac6fd17 100644
--- a/tests/model/RedirectorPageTest.yml
+++ b/tests/model/RedirectorPageTest.yml
@@ -3,7 +3,7 @@ Page:
Title: Redirection Dest
URLSegment: redirection-dest
-RedirectorPage:
+SilverStripe\CMS\Model\RedirectorPage:
goodexternal:
Title: Good External
URLSegment: good-external
@@ -30,10 +30,10 @@ RedirectorPage:
reflexive:
Title: Reflexive
RedirectionType: Internal
- LinkTo: =>RedirectorPage.reflexive
+ LinkTo: =>SilverStripe\CMS\Model\RedirectorPage.reflexive
URLSegment: reflexive
transitive:
Title: Transitive
RedirectionType: Internal
- LinkTo: =>RedirectorPage.goodinternal
+ LinkTo: =>SilverStripe\CMS\Model\RedirectorPage.goodinternal
URLSegment: transitive
diff --git a/tests/model/SiteTreeActionsTest.php b/tests/model/SiteTreeActionsTest.php
index 60c404cf..12a72454 100644
--- a/tests/model/SiteTreeActionsTest.php
+++ b/tests/model/SiteTreeActionsTest.php
@@ -56,8 +56,8 @@ class SiteTreeActionsTest extends FunctionalTest {
$page->deleteFromStage('Stage');
// Get the live version of the page
- $page = Versioned::get_one_by_stage("SiteTree", "Live", "\"SiteTree\".\"ID\" = $pageID");
- $this->assertInstanceOf("SiteTree", $page);
+ $page = Versioned::get_one_by_stage("SilverStripe\\CMS\\Model\\SiteTree", "Live", "\"SiteTree\".\"ID\" = $pageID");
+ $this->assertInstanceOf("SilverStripe\\CMS\\Model\\SiteTree", $page);
// Check that someone without the right permission can't delete the page
$editor = $this->objFromFixture('SilverStripe\\Security\\Member', 'cmsnodeleteeditor');
@@ -108,8 +108,8 @@ class SiteTreeActionsTest extends FunctionalTest {
$page->deleteFromStage('Stage');
// Get the live version of the page
- $page = Versioned::get_one_by_stage("SiteTree", "Live", "\"SiteTree\".\"ID\" = $pageID");
- $this->assertInstanceOf('SiteTree', $page);
+ $page = Versioned::get_one_by_stage("SilverStripe\\CMS\\Model\\SiteTree", "Live", "\"SiteTree\".\"ID\" = $pageID");
+ $this->assertInstanceOf('SilverStripe\\CMS\\Model\\SiteTree', $page);
$actions = $page->getCMSActions();
diff --git a/tests/model/SiteTreeBacklinksTest.php b/tests/model/SiteTreeBacklinksTest.php
index da9a147c..7dbab0f6 100644
--- a/tests/model/SiteTreeBacklinksTest.php
+++ b/tests/model/SiteTreeBacklinksTest.php
@@ -10,7 +10,7 @@ class SiteTreeBacklinksTest extends SapphireTest {
protected static $fixture_file = "SiteTreeBacklinksTest.yml";
protected $requiredExtensions = array(
- 'SiteTree' => array('SiteTreeBacklinksTest_DOD'),
+ 'SilverStripe\\CMS\\Model\\SiteTree' => array('SiteTreeBacklinksTest_DOD'),
);
public function setUp() {
diff --git a/tests/model/SiteTreeBrokenLinksTest.php b/tests/model/SiteTreeBrokenLinksTest.php
index 8ddfa967..d9cc8be8 100644
--- a/tests/model/SiteTreeBrokenLinksTest.php
+++ b/tests/model/SiteTreeBrokenLinksTest.php
@@ -3,6 +3,9 @@
use SilverStripe\ORM\Versioning\Versioned;
use SilverStripe\ORM\DataObject;
use SilverStripe\ORM\DB;
+use SilverStripe\CMS\Model\VirtualPage;
+use SilverStripe\CMS\Model\RedirectorPage;
+
/**
* Tests {@see SiteTreeLinkTracking} broken links feature: LinkTracking
@@ -94,10 +97,10 @@ class SiteTreeBrokenLinksTest extends SapphireTest {
$this->assertTrue($obj->publishRecursive());
// Confirm that it isn't marked as broken to begin with
$obj->flushCache();
- $obj = DataObject::get_by_id("SiteTree", $obj->ID);
+ $obj = DataObject::get_by_id("SilverStripe\\CMS\\Model\\SiteTree", $obj->ID);
$this->assertEquals(0, $obj->HasBrokenFile);
- $liveObj = Versioned::get_one_by_stage("SiteTree", "Live","\"SiteTree\".\"ID\" = $obj->ID");
+ $liveObj = Versioned::get_one_by_stage("SilverStripe\\CMS\\Model\\SiteTree", "Live","\"SiteTree\".\"ID\" = $obj->ID");
$this->assertEquals(0, $liveObj->HasBrokenFile);
// Delete the file
@@ -105,12 +108,12 @@ class SiteTreeBrokenLinksTest extends SapphireTest {
// Confirm that it is marked as broken in stage
$obj->flushCache();
- $obj = DataObject::get_by_id("SiteTree", $obj->ID);
+ $obj = DataObject::get_by_id("SilverStripe\\CMS\\Model\\SiteTree", $obj->ID);
$this->assertEquals(1, $obj->HasBrokenFile);
// Publishing this page marks it as broken on live too
$obj->publishRecursive();
- $liveObj = Versioned::get_one_by_stage("SiteTree", "Live", "\"SiteTree\".\"ID\" = $obj->ID");
+ $liveObj = Versioned::get_one_by_stage("SilverStripe\\CMS\\Model\\SiteTree", "Live", "\"SiteTree\".\"ID\" = $obj->ID");
$this->assertEquals(1, $liveObj->HasBrokenFile);
}
@@ -195,41 +198,41 @@ class SiteTreeBrokenLinksTest extends SapphireTest {
// Unpublish the source page, confirm that the page 2 and RP has a broken link on published
$p->doUnpublish();
- $p2Live = Versioned::get_one_by_stage('SiteTree', 'Live', '"SiteTree"."ID" = ' . $p2->ID);
- $rpLive = Versioned::get_one_by_stage('SiteTree', 'Live', '"SiteTree"."ID" = ' . $rp->ID);
+ $p2Live = Versioned::get_one_by_stage('SilverStripe\\CMS\\Model\\SiteTree', 'Live', '"SiteTree"."ID" = ' . $p2->ID);
+ $rpLive = Versioned::get_one_by_stage('SilverStripe\\CMS\\Model\\SiteTree', 'Live', '"SiteTree"."ID" = ' . $rp->ID);
$this->assertEquals(1, $p2Live->HasBrokenLink);
$this->assertEquals(1, $rpLive->HasBrokenLink);
// Delete the source page, confirm that the VP, RP and page 2 have broken links on draft
$p->delete();
$vp->flushCache();
- $vp = DataObject::get_by_id('SiteTree', $vp->ID);
+ $vp = DataObject::get_by_id('SilverStripe\\CMS\\Model\\SiteTree', $vp->ID);
$p2->flushCache();
- $p2 = DataObject::get_by_id('SiteTree', $p2->ID);
+ $p2 = DataObject::get_by_id('SilverStripe\\CMS\\Model\\SiteTree', $p2->ID);
$rp->flushCache();
- $rp = DataObject::get_by_id('SiteTree', $rp->ID);
+ $rp = DataObject::get_by_id('SilverStripe\\CMS\\Model\\SiteTree', $rp->ID);
$this->assertEquals(1, $p2->HasBrokenLink);
$this->assertEquals(1, $vp->HasBrokenLink);
$this->assertEquals(1, $rp->HasBrokenLink);
// Restore the page to stage, confirm that this fixes the links
- $p = Versioned::get_latest_version('SiteTree', $pageID);
+ $p = Versioned::get_latest_version('SilverStripe\\CMS\\Model\\SiteTree', $pageID);
$p->doRestoreToStage();
$p2->flushCache();
- $p2 = DataObject::get_by_id('SiteTree', $p2->ID);
+ $p2 = DataObject::get_by_id('SilverStripe\\CMS\\Model\\SiteTree', $p2->ID);
$vp->flushCache();
- $vp = DataObject::get_by_id('SiteTree', $vp->ID);
+ $vp = DataObject::get_by_id('SilverStripe\\CMS\\Model\\SiteTree', $vp->ID);
$rp->flushCache();
- $rp = DataObject::get_by_id('SiteTree', $rp->ID);
+ $rp = DataObject::get_by_id('SilverStripe\\CMS\\Model\\SiteTree', $rp->ID);
$this->assertFalse((bool)$p2->HasBrokenLink);
$this->assertFalse((bool)$vp->HasBrokenLink);
$this->assertFalse((bool)$rp->HasBrokenLink);
// Publish and confirm that the p2 and RP broken links are fixed on published
$this->assertTrue($p->publishRecursive());
- $p2Live = Versioned::get_one_by_stage('SiteTree', 'Live', '"SiteTree"."ID" = ' . $p2->ID);
- $rpLive = Versioned::get_one_by_stage('SiteTree', 'Live', '"SiteTree"."ID" = ' . $rp->ID);
+ $p2Live = Versioned::get_one_by_stage('SilverStripe\\CMS\\Model\\SiteTree', 'Live', '"SiteTree"."ID" = ' . $p2->ID);
+ $rpLive = Versioned::get_one_by_stage('SilverStripe\\CMS\\Model\\SiteTree', 'Live', '"SiteTree"."ID" = ' . $rp->ID);
$this->assertFalse((bool)$p2Live->HasBrokenLink);
$this->assertFalse((bool)$rpLive->HasBrokenLink);
@@ -273,25 +276,25 @@ class SiteTreeBrokenLinksTest extends SapphireTest {
$p->delete();
$vp->flushCache();
- $vp = DataObject::get_by_id('SiteTree', $vp->ID);
+ $vp = DataObject::get_by_id('SilverStripe\\CMS\\Model\\SiteTree', $vp->ID);
$p2->flushCache();
- $p2 = DataObject::get_by_id('SiteTree', $p2->ID);
+ $p2 = DataObject::get_by_id('SilverStripe\\CMS\\Model\\SiteTree', $p2->ID);
$rp->flushCache();
- $rp = DataObject::get_by_id('SiteTree', $rp->ID);
+ $rp = DataObject::get_by_id('SilverStripe\\CMS\\Model\\SiteTree', $rp->ID);
$this->assertEquals(1, $p2->HasBrokenLink);
$this->assertEquals(1, $vp->HasBrokenLink);
$this->assertEquals(1, $rp->HasBrokenLink);
// Call doRevertToLive and confirm that broken links are restored
- $pLive = Versioned::get_one_by_stage('SiteTree', 'Live', '"SiteTree"."ID" = ' . $pID);
+ $pLive = Versioned::get_one_by_stage('SilverStripe\\CMS\\Model\\SiteTree', 'Live', '"SiteTree"."ID" = ' . $pID);
$pLive->doRevertToLive();
$p2->flushCache();
- $p2 = DataObject::get_by_id('SiteTree', $p2->ID);
+ $p2 = DataObject::get_by_id('SilverStripe\\CMS\\Model\\SiteTree', $p2->ID);
$vp->flushCache();
- $vp = DataObject::get_by_id('SiteTree', $vp->ID);
+ $vp = DataObject::get_by_id('SilverStripe\\CMS\\Model\\SiteTree', $vp->ID);
$rp->flushCache();
- $rp = DataObject::get_by_id('SiteTree', $rp->ID);
+ $rp = DataObject::get_by_id('SilverStripe\\CMS\\Model\\SiteTree', $rp->ID);
$this->assertFalse((bool)$p2->HasBrokenLink);
$this->assertFalse((bool)$vp->HasBrokenLink);
$this->assertFalse((bool)$rp->HasBrokenLink);
diff --git a/tests/model/SiteTreeBrokenLinksTest.yml b/tests/model/SiteTreeBrokenLinksTest.yml
index 46e7e829..c1aac2df 100644
--- a/tests/model/SiteTreeBrokenLinksTest.yml
+++ b/tests/model/SiteTreeBrokenLinksTest.yml
@@ -15,7 +15,7 @@ Page:
Title: RedirectorPageToBrokenInteralPage
LinkTo: =>Page.content
-ErrorPage:
+SilverStripe\CMS\Model\ErrorPage:
404:
Title: Page not Found
ErrorCode: 404
diff --git a/tests/model/SiteTreeHTMLEditorFieldTest.php b/tests/model/SiteTreeHTMLEditorFieldTest.php
index 8e0f378c..3f9ad877 100644
--- a/tests/model/SiteTreeHTMLEditorFieldTest.php
+++ b/tests/model/SiteTreeHTMLEditorFieldTest.php
@@ -1,4 +1,6 @@
objFromFixture('SiteTree', 'home');
+ $sitetree = $this->objFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'home');
$editor = new HTMLEditorField('Content');
- $aboutID = $this->idFromFixture('SiteTree', 'about');
- $contactID = $this->idFromFixture('SiteTree', 'contact');
+ $aboutID = $this->idFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'about');
+ $contactID = $this->idFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'contact');
$editor->setValue("Example Link ");
$editor->saveInto($sitetree);
@@ -63,7 +65,7 @@ class SiteTreeHTMLEditorFieldTest extends FunctionalTest {
}
public function testFileLinkTracking() {
- $sitetree = $this->objFromFixture('SiteTree', 'home');
+ $sitetree = $this->objFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'home');
$editor = new HTMLEditorField('Content');
$fileID = $this->idFromFixture('File', 'example_file');
@@ -120,7 +122,7 @@ class SiteTreeHTMLEditorFieldTest extends FunctionalTest {
}
public function testImageTracking() {
- $sitetree = $this->objFromFixture('SiteTree', 'home');
+ $sitetree = $this->objFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'home');
$editor = new HTMLEditorField('Content');
$file = $this->objFromFixture('Image', 'example_image');
@@ -156,7 +158,7 @@ class SiteTreeHTMLEditorFieldTest extends FunctionalTest {
$editor->setValue(sprintf (
'Working Link
',
- $this->idFromFixture('SiteTree', 'home')
+ $this->idFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'home')
));
$sitetree->HasBrokenLink = false;
$editor->saveInto($sitetree);
diff --git a/tests/model/SiteTreeHTMLEditorFieldTest.yml b/tests/model/SiteTreeHTMLEditorFieldTest.yml
index 9855e833..d6372dd9 100644
--- a/tests/model/SiteTreeHTMLEditorFieldTest.yml
+++ b/tests/model/SiteTreeHTMLEditorFieldTest.yml
@@ -1,4 +1,4 @@
-SiteTree:
+SilverStripe\CMS\Model\SiteTree:
home:
Title: Home Page
about:
diff --git a/tests/model/SiteTreeLinkTrackingTest.php b/tests/model/SiteTreeLinkTrackingTest.php
index d53549c7..bd16291d 100644
--- a/tests/model/SiteTreeLinkTrackingTest.php
+++ b/tests/model/SiteTreeLinkTrackingTest.php
@@ -1,5 +1,7 @@
array('SiteTreeSubsites')
+ 'SilverStripe\\CMS\\Model\\SiteTree' => array('SiteTreeSubsites')
);
public function setUp() {
@@ -76,7 +78,7 @@ class SiteTreePermissionsTest extends FunctionalTest {
$page->delete();
// Re-fetch the page from the live site
- $page = Versioned::get_one_by_stage('SiteTree', 'Live', "\"SiteTree\".\"ID\" = $pageID");
+ $page = Versioned::get_one_by_stage('SilverStripe\\CMS\\Model\\SiteTree', 'Live', "\"SiteTree\".\"ID\" = $pageID");
// subadmin has edit rights on that page
$member = $this->objFromFixture('SilverStripe\\Security\\Member','subadmin');
@@ -124,7 +126,7 @@ class SiteTreePermissionsTest extends FunctionalTest {
$page->delete();
// We'll need to resurrect the page from the version cache to test this case
- $page = Versioned::get_latest_version('SiteTree', $pageID);
+ $page = Versioned::get_latest_version('SilverStripe\\CMS\\Model\\SiteTree', $pageID);
// subadmin had edit rights on that page, but now it's gone
$member = $this->objFromFixture('SilverStripe\\Security\\Member','subadmin');
@@ -390,7 +392,7 @@ class SiteTreePermissionsTest extends FunctionalTest {
$page->deleteFromStage('Stage');
// Get the live version of the page
- $page = Versioned::get_one_by_stage("SiteTree", "Live", "\"SiteTree\".\"ID\" = $pageID");
+ $page = Versioned::get_one_by_stage("SilverStripe\\CMS\\Model\\SiteTree", "Live", "\"SiteTree\".\"ID\" = $pageID");
$this->assertTrue(is_object($page), 'Versioned::get_one_by_stage() is returning an object');
// subadmin users
diff --git a/tests/model/SiteTreeTest.php b/tests/model/SiteTreeTest.php
index 93e0ea7e..f2b0fecc 100644
--- a/tests/model/SiteTreeTest.php
+++ b/tests/model/SiteTreeTest.php
@@ -9,6 +9,9 @@ use SilverStripe\ORM\HiddenClass;
use SilverStripe\Security\Member;
use SilverStripe\Security\Permission;
use SilverStripe\Security\Group;
+use SilverStripe\CMS\Model\SiteTree;
+use SilverStripe\CMS\Model\SiteTreeExtension;
+
/**
* @package cms
@@ -19,7 +22,7 @@ class SiteTreeTest extends SapphireTest {
protected static $fixture_file = 'SiteTreeTest.yml';
protected $illegalExtensions = array(
- 'SiteTree' => array('SiteTreeSubsites', 'Translatable')
+ 'SilverStripe\\CMS\\Model\\SiteTree' => array('SiteTreeSubsites', 'Translatable')
);
protected $extraDataObjects = array(
@@ -47,14 +50,14 @@ class SiteTreeTest extends SapphireTest {
// Disable the creation
SiteTree::config()->create_default_pages = false;
- singleton('SiteTree')->requireDefaultRecords();
+ singleton('SilverStripe\\CMS\\Model\\SiteTree')->requireDefaultRecords();
// The table should still be empty
$this->assertEquals(DB::query('SELECT COUNT("ID") FROM "SiteTree"')->value(), 0);
// Enable the creation
SiteTree::config()->create_default_pages = true;
- singleton('SiteTree')->requireDefaultRecords();
+ singleton('SilverStripe\\CMS\\Model\\SiteTree')->requireDefaultRecords();
// The table should now have three rows (home, about-us, contact-us)
$this->assertEquals(DB::query('SELECT COUNT("ID") FROM "SiteTree"')->value(), 3);
@@ -127,7 +130,7 @@ class SiteTreeTest extends SapphireTest {
$child->Title = 'Page Title';
$child->setParent($parent);
- $this->assertInstanceOf("SiteTree", $child->Parent);
+ $this->assertInstanceOf("SilverStripe\\CMS\\Model\\SiteTree", $child->Parent);
$this->assertEquals("Section Title", $child->Parent->Title);
}
@@ -154,7 +157,7 @@ class SiteTreeTest extends SapphireTest {
$oldMode = Versioned::get_reading_mode();
Versioned::set_stage(Versioned::LIVE);
- $checkSiteTree = DataObject::get_one("SiteTree", array(
+ $checkSiteTree = DataObject::get_one("SilverStripe\\CMS\\Model\\SiteTree", array(
'"SiteTree"."URLSegment"' => 'get-one-test-page'
));
$this->assertEquals("V1", $checkSiteTree->Title);
@@ -257,7 +260,7 @@ class SiteTreeTest extends SapphireTest {
$page->delete();
$this->assertTrue(!DataObject::get_by_id("Page", $pageID));
- $deletedPage = Versioned::get_latest_version('SiteTree', $pageID);
+ $deletedPage = Versioned::get_latest_version('SilverStripe\\CMS\\Model\\SiteTree', $pageID);
$resultPage = $deletedPage->doRestoreToStage();
$requeriedPage = DataObject::get_by_id("Page", $pageID);
@@ -276,7 +279,7 @@ class SiteTreeTest extends SapphireTest {
// Check that if we restore while on the live site that the content still gets pushed to
// stage
Versioned::set_stage(Versioned::LIVE);
- $deletedPage = Versioned::get_latest_version('SiteTree', $page2ID);
+ $deletedPage = Versioned::get_latest_version('SilverStripe\\CMS\\Model\\SiteTree', $page2ID);
$deletedPage->doRestoreToStage();
$this->assertFalse((bool)Versioned::get_one_by_stage("Page", "Live", "\"SiteTree\".\"ID\" = " . $page2ID));
@@ -292,7 +295,7 @@ class SiteTreeTest extends SapphireTest {
$about = $this->objFromFixture('Page', 'about');
$staff = $this->objFromFixture('Page', 'staff');
$product = $this->objFromFixture('Page', 'product1');
- $notFound = $this->objFromFixture('ErrorPage', '404');
+ $notFound = $this->objFromFixture('SilverStripe\\CMS\\Model\\ErrorPage', '404');
SiteTree::config()->nested_urls = false;
@@ -303,7 +306,7 @@ class SiteTreeTest extends SapphireTest {
$this->assertEquals($product->ID, SiteTree::get_by_link($product->Link(), false)->ID);
$this->assertEquals($notFound->ID, SiteTree::get_by_link($notFound->Link(), false)->ID);
- Config::inst()->update('SiteTree', 'nested_urls', true);
+ Config::inst()->update('SilverStripe\\CMS\\Model\\SiteTree', 'nested_urls', true);
$this->assertEquals($home->ID, SiteTree::get_by_link('/', false)->ID);
$this->assertEquals($home->ID, SiteTree::get_by_link('/home/', false)->ID);
@@ -321,7 +324,7 @@ class SiteTreeTest extends SapphireTest {
$about = $this->objFromFixture('Page', 'about');
$staff = $this->objFromFixture('Page', 'staff');
- Config::inst()->update('SiteTree', 'nested_urls', true);
+ Config::inst()->update('SilverStripe\\CMS\\Model\\SiteTree', 'nested_urls', true);
$this->assertEquals('about-us/', $about->RelativeLink(), 'Matches URLSegment on top level without parameters');
$this->assertEquals('about-us/my-staff/', $staff->RelativeLink(), 'Matches URLSegment plus parent on second level without parameters');
@@ -340,7 +343,7 @@ class SiteTreeTest extends SapphireTest {
$parent = $this->objFromFixture('Page', 'about');
$child = $this->objFromFixture('Page', 'staff');
- Config::inst()->update('SiteTree', 'nested_urls', true);
+ Config::inst()->update('SilverStripe\\CMS\\Model\\SiteTree', 'nested_urls', true);
$child->copyVersionToStage(Versioned::DRAFT, Versioned::LIVE);
$parent->URLSegment = 'changed-on-live';
@@ -354,7 +357,7 @@ class SiteTreeTest extends SapphireTest {
}
public function testDeleteFromStageOperatesRecursively() {
- Config::inst()->update('SiteTree', 'enforce_strict_hierarchy', false);
+ Config::inst()->update('SilverStripe\\CMS\\Model\\SiteTree', 'enforce_strict_hierarchy', false);
$pageAbout = $this->objFromFixture('Page', 'about');
$pageStaff = $this->objFromFixture('Page', 'staff');
$pageStaffDuplicate = $this->objFromFixture('Page', 'staffduplicate');
@@ -364,7 +367,7 @@ class SiteTreeTest extends SapphireTest {
$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);
- Config::inst()->update('SiteTree', 'enforce_strict_hierarchy', true);
+ Config::inst()->update('SilverStripe\\CMS\\Model\\SiteTree', 'enforce_strict_hierarchy', true);
}
public function testDeleteFromStageOperatesRecursivelyStrict() {
@@ -388,7 +391,7 @@ class SiteTreeTest extends SapphireTest {
}
public function testDeleteFromLiveOperatesRecursively() {
- Config::inst()->update('SiteTree', 'enforce_strict_hierarchy', false);
+ Config::inst()->update('SilverStripe\\CMS\\Model\\SiteTree', 'enforce_strict_hierarchy', false);
$this->logInWithPermission('ADMIN');
$pageAbout = $this->objFromFixture('Page', 'about');
@@ -408,11 +411,11 @@ class SiteTreeTest extends SapphireTest {
$this->assertTrue(DataObject::get_by_id('Page', $pageStaff->ID) instanceof Page);
$this->assertTrue(DataObject::get_by_id('Page', $pageStaffDuplicate->ID) instanceof Page);
Versioned::set_stage(Versioned::DRAFT);
- Config::inst()->update('SiteTree', 'enforce_strict_hierarchy', true);
+ Config::inst()->update('SilverStripe\\CMS\\Model\\SiteTree', 'enforce_strict_hierarchy', true);
}
public function testUnpublishDoesNotDeleteChildrenWithLooseHierachyOn() {
- Config::inst()->update('SiteTree', 'enforce_strict_hierarchy', false);
+ Config::inst()->update('SilverStripe\\CMS\\Model\\SiteTree', 'enforce_strict_hierarchy', false);
$this->logInWithPermission('ADMIN');
$pageAbout = $this->objFromFixture('Page', 'about');
@@ -430,7 +433,7 @@ class SiteTreeTest extends SapphireTest {
$this->assertTrue(DataObject::get_by_id('Page', $pageStaff->ID) instanceof Page);
$this->assertTrue(DataObject::get_by_id('Page', $pageStaffDuplicate->ID) instanceof Page);
Versioned::set_stage(Versioned::DRAFT);
- Config::inst()->update('SiteTree', 'enforce_strict_hierarchy', true);
+ Config::inst()->update('SilverStripe\\CMS\\Model\\SiteTree', 'enforce_strict_hierarchy', true);
}
public function testDeleteFromLiveOperatesRecursivelyStrict() {
@@ -509,20 +512,20 @@ class SiteTreeTest extends SapphireTest {
public function testCreatePermissions() {
// Test logged out users cannot create
$this->logOut();
- $this->assertFalse(singleton('SiteTree')->canCreate());
+ $this->assertFalse(singleton('SilverStripe\\CMS\\Model\\SiteTree')->canCreate());
// Login with another permission
$this->logInWithPermission('DUMMY');
- $this->assertFalse(singleton('SiteTree')->canCreate());
+ $this->assertFalse(singleton('SilverStripe\\CMS\\Model\\SiteTree')->canCreate());
// Login with basic CMS permission
$perms = SiteConfig::config()->required_permission;
$this->logInWithPermission(reset($perms));
- $this->assertTrue(singleton('SiteTree')->canCreate());
+ $this->assertTrue(singleton('SilverStripe\\CMS\\Model\\SiteTree')->canCreate());
// Test creation underneath a parent which this user doesn't have access to
$parent = $this->objFromFixture('Page', 'about');
- $this->assertFalse(singleton('SiteTree')->canCreate(null, array('Parent' => $parent)));
+ $this->assertFalse(singleton('SilverStripe\\CMS\\Model\\SiteTree')->canCreate(null, array('Parent' => $parent)));
// Test creation underneath a parent which doesn't allow a certain child
$parentB = new SiteTreeTest_ClassB();
@@ -632,10 +635,10 @@ class SiteTreeTest extends SapphireTest {
public function testLinkShortcodeHandler() {
$aboutPage = $this->objFromFixture('Page', 'about');
- $redirectPage = $this->objFromFixture('RedirectorPage', 'external');
+ $redirectPage = $this->objFromFixture('SilverStripe\\CMS\\Model\\RedirectorPage', 'external');
$parser = new ShortcodeParser();
- $parser->register('sitetree_link', array('SiteTree', 'link_shortcode_handler'));
+ $parser->register('sitetree_link', array('SilverStripe\\CMS\\Model\\SiteTree', 'link_shortcode_handler'));
$aboutShortcode = sprintf('[sitetree_link,id=%d]', $aboutPage->ID);
$aboutEnclosed = sprintf('[sitetree_link,id=%d]Example Content[/sitetree_link]', $aboutPage->ID);
@@ -671,7 +674,7 @@ class SiteTreeTest extends SapphireTest {
public function testIsCurrent() {
$aboutPage = $this->objFromFixture('Page', 'about');
- $errorPage = $this->objFromFixture('ErrorPage', '404');
+ $errorPage = $this->objFromFixture('SilverStripe\\CMS\\Model\\ErrorPage', '404');
Director::set_current_page($aboutPage);
$this->assertTrue($aboutPage->isCurrent(), 'Assert that basic isSection checks works.');
@@ -683,7 +686,7 @@ class SiteTreeTest extends SapphireTest {
Director::set_current_page($aboutPage);
$this->assertTrue (
- DataObject::get_one('SiteTree', array(
+ DataObject::get_one('SilverStripe\\CMS\\Model\\SiteTree', array(
'"SiteTree"."Title"' => 'About Us'
))->isCurrent(),
'Assert that isCurrent works on another instance with the same ID.'
@@ -721,19 +724,19 @@ class SiteTreeTest extends SapphireTest {
array('pagetype' => $sitetree->i18n_singular_name())
);
$sitetree->write();
- $this->assertEquals($sitetree->URLSegment, 'new-page',
+ $this->assertEquals('new-page', $sitetree->URLSegment,
'Sets based on default title on first save'
);
$sitetree->Title = 'Changed';
$sitetree->write();
- $this->assertEquals($sitetree->URLSegment, 'changed',
+ $this->assertEquals('changed', $sitetree->URLSegment,
'Auto-updates when set to default title'
);
$sitetree->Title = 'Changed again';
$sitetree->write();
- $this->assertEquals($sitetree->URLSegment, 'changed',
+ $this->assertEquals('changed', $sitetree->URLSegment,
'Does not auto-update once title has been changed'
);
}
@@ -754,13 +757,13 @@ class SiteTreeTest extends SapphireTest {
$sitetree->Title = 'Changed';
$sitetree->write();
- $this->assertEquals($sitetree->URLSegment, 'changed',
+ $this->assertEquals('changed', $sitetree->URLSegment,
'Auto-updates when set to default title'
);
$sitetree->Title = 'Changed again';
$sitetree->write();
- $this->assertEquals($sitetree->URLSegment, 'changed',
+ $this->assertEquals('changed', $sitetree->URLSegment,
'Does not auto-update once title has been changed'
);
@@ -783,7 +786,7 @@ class SiteTreeTest extends SapphireTest {
$sitetree->URLSegment = 'home';
$this->assertFalse($sitetree->validURLSegment(), 'Conflicts are still recognised with a ParentID value');
- Config::inst()->update('SiteTree', 'nested_urls', true);
+ Config::inst()->update('SilverStripe\\CMS\\Model\\SiteTree', 'nested_urls', true);
$sitetree->ParentID = 0;
$sitetree->URLSegment = 'home';
@@ -812,7 +815,7 @@ class SiteTreeTest extends SapphireTest {
* @covers SiteTree::validURLSegment
*/
public function testValidURLSegmentControllerConflicts() {
- Config::inst()->update('SiteTree', 'nested_urls', true);
+ Config::inst()->update('SilverStripe\\CMS\\Model\\SiteTree', 'nested_urls', true);
$sitetree = new SiteTree();
$sitetree->ParentID = $this->idFromFixture('SiteTreeTest_Conflicted', 'parent');
@@ -850,13 +853,13 @@ class SiteTreeTest extends SapphireTest {
$sitetree->URLSegment = 'brötchen';
$sitetree->write();
- $sitetree = DataObject::get_by_id('SiteTree', $sitetree->ID, false);
+ $sitetree = DataObject::get_by_id('SilverStripe\\CMS\\Model\\SiteTree', $sitetree->ID, false);
$this->assertEquals($sitetree->URLSegment, rawurlencode('brötchen'));
$sitetree->copyVersionToStage(Versioned::DRAFT, Versioned::LIVE);
- $sitetree = DataObject::get_by_id('SiteTree', $sitetree->ID, false);
+ $sitetree = DataObject::get_by_id('SilverStripe\\CMS\\Model\\SiteTree', $sitetree->ID, false);
$this->assertEquals($sitetree->URLSegment, rawurlencode('brötchen'));
- $sitetreeLive = Versioned::get_one_by_stage('SiteTree', 'Live', '"SiteTree"."ID" = ' .$sitetree->ID, false);
+ $sitetreeLive = Versioned::get_one_by_stage('SilverStripe\\CMS\\Model\\SiteTree', 'Live', '"SiteTree"."ID" = ' .$sitetree->ID, false);
$this->assertEquals($sitetreeLive->URLSegment, rawurlencode('brötchen'));
Config::inst()->update('URLSegmentFilter', 'default_allow_multibyte', $origAllow);
@@ -891,7 +894,7 @@ class SiteTreeTest extends SapphireTest {
public function testPageTypeClasses() {
$classes = SiteTree::page_type_classes();
- $this->assertNotContains('SiteTree', $classes, 'Page types do not include base class');
+ $this->assertNotContains('SilverStripe\\CMS\\Model\\SiteTree', $classes, 'Page types do not include base class');
$this->assertContains('Page', $classes, 'Page types do contain subclasses');
// Testing what happens in an incorrect config value is set - hide_ancestor should be a string
@@ -914,10 +917,10 @@ class SiteTreeTest extends SapphireTest {
$allowedChildren = $page->allowedChildren();
$this->assertContains(
- 'VirtualPage',
+ 'SilverStripe\\CMS\\Model\\VirtualPage',
$allowedChildren,
- 'Includes core subclasses by default'
- );
+ 'Includes core subclasses by default'
+ );
$this->assertNotContains(
'SiteTreeTest_ClassE',
@@ -949,14 +952,14 @@ class SiteTreeTest extends SapphireTest {
// Class name
'SiteTreeTest_ClassA',
// Expected
- array('SiteTreeTest_ClassB'),
+ array('SiteTreeTest_ClassB'),
// Assertion message
- 'Direct setting of allowed children'
+ 'Direct setting of allowed children'
),
array(
'SiteTreeTest_ClassB',
- array('SiteTreeTest_ClassC', 'SiteTreeTest_ClassCext'),
- 'Includes subclasses'
+ array('SiteTreeTest_ClassC', 'SiteTreeTest_ClassCext'),
+ 'Includes subclasses'
),
array(
'SiteTreeTest_ClassC',
@@ -965,11 +968,11 @@ class SiteTreeTest extends SapphireTest {
),
array(
'SiteTreeTest_ClassD',
- array('SiteTreeTest_ClassC'),
- 'Excludes subclasses if class is prefixed by an asterisk'
+ array('SiteTreeTest_ClassC'),
+ 'Excludes subclasses if class is prefixed by an asterisk'
)
- );
- }
+ );
+ }
public function testAllowedChildrenValidation() {
$page = new SiteTree();
@@ -1072,7 +1075,7 @@ class SiteTreeTest extends SapphireTest {
}
public function testMetaTagGeneratorDisabling() {
- $generator = Config::inst()->get('SiteTree', 'meta_generator');
+ $generator = Config::inst()->get('SilverStripe\\CMS\\Model\\SiteTree', 'meta_generator');
$page = new SiteTreeTest_PageNode();
@@ -1083,7 +1086,7 @@ class SiteTreeTest extends SapphireTest {
'test default functionality - uses value from Config');
// test proper escaping of quotes in attribute value
- Config::inst()->update('SiteTree', 'meta_generator', 'Generator with "quotes" in it');
+ Config::inst()->update('SilverStripe\\CMS\\Model\\SiteTree', 'meta_generator', 'Generator with "quotes" in it');
$meta = $page->MetaTags();
$this->assertEquals(
1,
@@ -1091,7 +1094,7 @@ class SiteTreeTest extends SapphireTest {
'test proper escaping of values from Config');
// test empty generator - no tag should appear at all
- Config::inst()->update('SiteTree', 'meta_generator', '');
+ Config::inst()->update('SilverStripe\\CMS\\Model\\SiteTree', 'meta_generator', '');
$meta = $page->MetaTags();
$this->assertEquals(
0,
@@ -1099,13 +1102,13 @@ class SiteTreeTest extends SapphireTest {
'test blank value means no tag generated');
// reset original value
- Config::inst()->update('SiteTree', 'meta_generator', $generator);
+ Config::inst()->update('SilverStripe\\CMS\\Model\\SiteTree', 'meta_generator', $generator);
}
public function testGetBreadcrumbItems() {
$page = $this->objFromFixture("Page", "breadcrumbs");
- $this->assertEquals($page->getBreadcrumbItems()->count(), 1, "Only display current page.");
+ $this->assertEquals(1, $page->getBreadcrumbItems()->count(), "Only display current page.");
// Test breadcrumb order
$page = $this->objFromFixture("Page", "breadcrumbs5");
diff --git a/tests/model/SiteTreeTest.yml b/tests/model/SiteTreeTest.yml
index df784c56..e88a1cec 100755
--- a/tests/model/SiteTreeTest.yml
+++ b/tests/model/SiteTreeTest.yml
@@ -117,12 +117,12 @@ SiteTreeTest_Conflicted:
parent:
Title: Parent
-ErrorPage:
+SilverStripe\CMS\Model\ErrorPage:
404:
Title: Page not Found
ErrorCode: 404
-RedirectorPage:
+SilverStripe\CMS\Model\RedirectorPage:
external:
Title: External
URLSegment: external
diff --git a/tests/model/VirtualPageTest.php b/tests/model/VirtualPageTest.php
index 13caa3a3..ed1cb6ab 100644
--- a/tests/model/VirtualPageTest.php
+++ b/tests/model/VirtualPageTest.php
@@ -7,6 +7,12 @@ use SilverStripe\ORM\DB;
use SilverStripe\ORM\ValidationException;
use SilverStripe\ORM\FieldType\DBVarchar;
use SilverStripe\ORM\DataExtension;
+use SilverStripe\CMS\Model\VirtualPage;
+use SilverStripe\CMS\Model\SiteTree;
+use SilverStripe\CMS\Model\RedirectorPage;
+use SilverStripe\CMS\Controllers\ModelAsController;
+
+
class VirtualPageTest extends FunctionalTest {
@@ -26,11 +32,11 @@ class VirtualPageTest extends FunctionalTest {
);
protected $illegalExtensions = array(
- 'SiteTree' => array('SiteTreeSubsites', 'Translatable')
+ 'SilverStripe\\CMS\\Model\\SiteTree' => array('SiteTreeSubsites', 'Translatable')
);
protected $requiredExtensions = array(
- 'SiteTree' => array('VirtualPageTest_PageExtension')
+ 'SilverStripe\\CMS\\Model\\SiteTree' => array('VirtualPageTest_PageExtension')
);
public function setUp() {
@@ -40,8 +46,8 @@ class VirtualPageTest extends FunctionalTest {
$this->logInWithPermission("ADMIN");
// Add extra fields
- Config::inst()->update('VirtualPage', 'initially_copied_fields', array('MyInitiallyCopiedField'));
- Config::inst()->update('VirtualPage', 'non_virtual_fields', array('MyNonVirtualField', 'MySharedNonVirtualField'));
+ Config::inst()->update('SilverStripe\\CMS\\Model\\VirtualPage', 'initially_copied_fields', array('MyInitiallyCopiedField'));
+ Config::inst()->update('SilverStripe\\CMS\\Model\\VirtualPage', 'non_virtual_fields', array('MyNonVirtualField', 'MySharedNonVirtualField'));
}
/**
@@ -55,8 +61,8 @@ class VirtualPageTest extends FunctionalTest {
$master->Content = "New content
";
$master->write();
- $vp1 = $this->objFromFixture('VirtualPage', 'vp1');
- $vp2 = $this->objFromFixture('VirtualPage', 'vp2');
+ $vp1 = $this->objFromFixture('SilverStripe\\CMS\\Model\\VirtualPage', 'vp1');
+ $vp2 = $this->objFromFixture('SilverStripe\\CMS\\Model\\VirtualPage', 'vp2');
$this->assertEquals("New title", $vp1->Title);
$this->assertEquals("New title", $vp2->Title);
@@ -81,16 +87,16 @@ class VirtualPageTest extends FunctionalTest {
$master->Content = "New content
";
$master->write();
- $vp1 = DataObject::get_by_id("VirtualPage", $this->idFromFixture('VirtualPage', 'vp1'));
- $vp2 = DataObject::get_by_id("VirtualPage", $this->idFromFixture('VirtualPage', 'vp2'));
+ $vp1 = DataObject::get_by_id("SilverStripe\\CMS\\Model\\VirtualPage", $this->idFromFixture('SilverStripe\\CMS\\Model\\VirtualPage', 'vp1'));
+ $vp2 = DataObject::get_by_id("SilverStripe\\CMS\\Model\\VirtualPage", $this->idFromFixture('SilverStripe\\CMS\\Model\\VirtualPage', 'vp2'));
$this->assertTrue($vp1->publishRecursive());
$this->assertTrue($vp2->publishRecursive());
$master->publishRecursive();
Versioned::set_stage(Versioned::LIVE);
- $vp1 = DataObject::get_by_id("VirtualPage", $this->idFromFixture('VirtualPage', 'vp1'));
- $vp2 = DataObject::get_by_id("VirtualPage", $this->idFromFixture('VirtualPage', 'vp2'));
+ $vp1 = DataObject::get_by_id("SilverStripe\\CMS\\Model\\VirtualPage", $this->idFromFixture('SilverStripe\\CMS\\Model\\VirtualPage', 'vp1'));
+ $vp2 = DataObject::get_by_id("SilverStripe\\CMS\\Model\\VirtualPage", $this->idFromFixture('SilverStripe\\CMS\\Model\\VirtualPage', 'vp2'));
$this->assertNotNull($vp1);
$this->assertNotNull($vp2);
@@ -148,13 +154,13 @@ class VirtualPageTest extends FunctionalTest {
// The draft content of the virtual page should say 'draft content'
/** @var VirtualPage $vpDraft */
- $vpDraft = Versioned::get_by_stage("VirtualPage", Versioned::DRAFT)->byID($vp->ID);
+ $vpDraft = Versioned::get_by_stage("SilverStripe\\CMS\\Model\\VirtualPage", Versioned::DRAFT)->byID($vp->ID);
$this->assertEquals('draft content', $vpDraft->CopyContentFrom()->Content);
$this->assertEquals('draft content', $vpDraft->Content);
// The published content of the virtual page should say 'published content'
/** @var VirtualPage $vpLive */
- $vpLive = Versioned::get_by_stage("VirtualPage", Versioned::LIVE)->byID($vp->ID);
+ $vpLive = Versioned::get_by_stage("SilverStripe\\CMS\\Model\\VirtualPage", Versioned::LIVE)->byID($vp->ID);
$this->assertEquals('published content', $vpLive->CopyContentFrom()->Content);
$this->assertEquals('published content', $vpLive->Content);
@@ -162,7 +168,7 @@ class VirtualPageTest extends FunctionalTest {
$vpDraft->publishRecursive();
// Everything is published live
- $vpLive = Versioned::get_by_stage("VirtualPage", Versioned::LIVE)->byID($vp->ID);
+ $vpLive = Versioned::get_by_stage("SilverStripe\\CMS\\Model\\VirtualPage", Versioned::LIVE)->byID($vp->ID);
$this->assertEquals('draft content', $vpLive->CopyContentFrom()->Content);
$this->assertEquals('draft content', $vpLive->Content);
}
@@ -205,7 +211,7 @@ class VirtualPageTest extends FunctionalTest {
// Delete the source page semi-manually, without triggering
// the cascade publish back to the virtual page.
Versioned::set_stage(Versioned::LIVE);
- $livePage = Versioned::get_by_stage('SiteTree', Versioned::LIVE)->byID($pID);
+ $livePage = Versioned::get_by_stage('SilverStripe\\CMS\\Model\\SiteTree', Versioned::LIVE)->byID($pID);
$livePage->delete();
Versioned::set_stage(Versioned::DRAFT);
@@ -228,7 +234,7 @@ class VirtualPageTest extends FunctionalTest {
public function testCanEdit() {
$parentPage = $this->objFromFixture('Page', 'master3');
- $virtualPage = $this->objFromFixture('VirtualPage', 'vp3');
+ $virtualPage = $this->objFromFixture('SilverStripe\\CMS\\Model\\VirtualPage', 'vp3');
$bob = $this->objFromFixture('SilverStripe\\Security\\Member', 'bob');
$andrew = $this->objFromFixture('SilverStripe\\Security\\Member', 'andrew');
@@ -246,7 +252,7 @@ class VirtualPageTest extends FunctionalTest {
public function testCanView() {
$parentPage = $this->objFromFixture('Page', 'master3');
$parentPage->copyVersionToStage(Versioned::DRAFT, Versioned::LIVE);
- $virtualPage = $this->objFromFixture('VirtualPage', 'vp3');
+ $virtualPage = $this->objFromFixture('SilverStripe\\CMS\\Model\\VirtualPage', 'vp3');
$virtualPage->copyVersionToStage(Versioned::DRAFT, Versioned::LIVE);
$cindy = $this->objFromFixture('SilverStripe\\Security\\Member', 'cindy');
$alice = $this->objFromFixture('SilverStripe\\Security\\Member', 'alice');
@@ -329,16 +335,16 @@ class VirtualPageTest extends FunctionalTest {
// The draft VP still has the CopyContentFromID link
$vp->flushCache();
- $vp = DataObject::get_by_id('SiteTree', $vp->ID);
+ $vp = DataObject::get_by_id('SilverStripe\\CMS\\Model\\SiteTree', $vp->ID);
$this->assertEquals($p->ID, $vp->CopyContentFromID);
- $vpLive = Versioned::get_one_by_stage('SiteTree', 'Live', '"SiteTree"."ID" = ' . $vp->ID);
+ $vpLive = Versioned::get_one_by_stage('SilverStripe\\CMS\\Model\\SiteTree', 'Live', '"SiteTree"."ID" = ' . $vp->ID);
$this->assertNull($vpLive);
// Delete from draft, confirm that the virtual page has a broken link on the draft site
$p->delete();
$vp->flushCache();
- $vp = DataObject::get_by_id('SiteTree', $vp->ID);
+ $vp = DataObject::get_by_id('SilverStripe\\CMS\\Model\\SiteTree', $vp->ID);
$this->assertEquals(1, $vp->HasBrokenLink);
}
@@ -360,19 +366,19 @@ class VirtualPageTest extends FunctionalTest {
$pID = $p->ID;
$p->delete();
$vp->flushCache();
- $vp = DataObject::get_by_id('SiteTree', $vp->ID);
+ $vp = DataObject::get_by_id('SilverStripe\\CMS\\Model\\SiteTree', $vp->ID);
$this->assertEquals(1, $vp->HasBrokenLink);
// Delete the source page form live, confirm that the virtual page has also been unpublished
- $pLive = Versioned::get_one_by_stage('SiteTree', 'Live', '"SiteTree"."ID" = ' . $pID);
+ $pLive = Versioned::get_one_by_stage('SilverStripe\\CMS\\Model\\SiteTree', 'Live', '"SiteTree"."ID" = ' . $pID);
$this->assertTrue($pLive->doUnpublish());
- $vpLive = Versioned::get_one_by_stage('SiteTree', 'Live', '"SiteTree"."ID" = ' . $vp->ID);
+ $vpLive = Versioned::get_one_by_stage('SilverStripe\\CMS\\Model\\SiteTree', 'Live', '"SiteTree"."ID" = ' . $vp->ID);
$this->assertNull($vpLive);
// Delete from draft, confirm that the virtual page has a broken link on the draft site
$pLive->delete();
$vp->flushCache();
- $vp = DataObject::get_by_id('SiteTree', $vp->ID);
+ $vp = DataObject::get_by_id('SilverStripe\\CMS\\Model\\SiteTree', $vp->ID);
$this->assertEquals(1, $vp->HasBrokenLink);
}
@@ -465,7 +471,7 @@ class VirtualPageTest extends FunctionalTest {
$virtual->CopyContentFromID = $page->ID;
$virtual->write();
- $virtual = DataObject::get_by_id('VirtualPage', $virtual->ID, false);
+ $virtual = DataObject::get_by_id('SilverStripe\\CMS\\Model\\VirtualPage', $virtual->ID, false);
$virtual->CopyContentFromID = $notRootPage->ID;
$virtual->flushCache();
@@ -505,7 +511,7 @@ class VirtualPageTest extends FunctionalTest {
$nonVirtual->write(); // not publishing the page type change here
// Stage record is changed to the new type and no longer acts as a virtual page
- $nonVirtualStage = Versioned::get_one_by_stage('SiteTree', 'Stage', '"SiteTree"."ID" = ' . $nonVirtual->ID, false);
+ $nonVirtualStage = Versioned::get_one_by_stage('SilverStripe\\CMS\\Model\\SiteTree', 'Stage', '"SiteTree"."ID" = ' . $nonVirtual->ID, false);
$this->assertNotNull($nonVirtualStage);
$this->assertEquals('VirtualPageTest_ClassA', $nonVirtualStage->ClassName);
$this->assertEquals('changed on new type', $nonVirtualStage->MySharedNonVirtualField);
@@ -514,7 +520,7 @@ class VirtualPageTest extends FunctionalTest {
);
// Virtual page on live keeps working as it should
- $virtualLive = Versioned::get_one_by_stage('SiteTree', 'Live', '"SiteTree_Live"."ID" = ' . $virtual->ID, false);
+ $virtualLive = Versioned::get_one_by_stage('SilverStripe\\CMS\\Model\\SiteTree', 'Live', '"SiteTree_Live"."ID" = ' . $virtual->ID, false);
$this->assertNotNull($virtualLive);
$this->assertEquals('VirtualPageTest_VirtualPageSub', $virtualLive->ClassName);
$this->assertEquals('virtual published field', $virtualLive->MySharedNonVirtualField);
@@ -527,7 +533,7 @@ class VirtualPageTest extends FunctionalTest {
$page->copyVersionToStage(Versioned::DRAFT, Versioned::LIVE);
// Virtual page only notices changes to virtualised fields (Title)
- $virtualLive = Versioned::get_one_by_stage('SiteTree', 'Live', '"SiteTree_Live"."ID" = ' . $virtual->ID, false);
+ $virtualLive = Versioned::get_one_by_stage('SilverStripe\\CMS\\Model\\SiteTree', 'Live', '"SiteTree_Live"."ID" = ' . $virtual->ID, false);
$this->assertEquals('virtual published field', $virtualLive->MySharedNonVirtualField);
$this->assertEquals('title changed on original', $virtualLive->Title);
}
@@ -585,7 +591,7 @@ class VirtualPageTest extends FunctionalTest {
}
public function testVirtualPagePointingToRedirectorPage() {
- if (!class_exists('RedirectorPage')) {
+ if (!class_exists('SilverStripe\\CMS\\Model\\RedirectorPage')) {
$this->markTestSkipped('RedirectorPage required');
}
@@ -603,10 +609,10 @@ class VirtualPageTest extends FunctionalTest {
}
public function testMethod() {
- $virtualPage = $this->objFromFixture('VirtualPage', 'vp4');
+ $virtualPage = $this->objFromFixture('SilverStripe\\CMS\\Model\\VirtualPage', 'vp4');
$controller = ModelAsController::controller_for($virtualPage);
- $this->assertInstanceOf('VirtualPage_Controller', $controller);
+ $this->assertInstanceOf('SilverStripe\\CMS\\Model\\VirtualPage_Controller', $controller);
$this->assertTrue($controller->hasMethod('testMethod'));
$this->assertEquals('hello', $controller->testMethod());
$this->assertTrue($controller->hasMethod('modelMethod'));
@@ -674,6 +680,6 @@ class VirtualPageTest_PageExtension extends DataExtension implements TestOnly {
class VirtualPageTest_PageWithAllowedChildren extends Page implements TestOnly {
private static $allowed_children = array(
'VirtualPageTest_ClassA',
- 'VirtualPage'
+ 'SilverStripe\\CMS\\Model\\VirtualPage'
);
}
diff --git a/tests/model/VirtualPageTest.yml b/tests/model/VirtualPageTest.yml
index b5894eac..75a82946 100644
--- a/tests/model/VirtualPageTest.yml
+++ b/tests/model/VirtualPageTest.yml
@@ -49,7 +49,7 @@ VirtualPageTest_ClassA:
pagea:
Title: 'Page A'
Content: 'Content
'
-VirtualPage:
+SilverStripe\CMS\Model\VirtualPage:
vp1:
Title: vp1
CopyContentFrom: =>Page.master
diff --git a/tests/reports/CmsReportsTest.php b/tests/reports/CmsReportsTest.php
index 6c851e66..98825a2c 100644
--- a/tests/reports/CmsReportsTest.php
+++ b/tests/reports/CmsReportsTest.php
@@ -2,6 +2,14 @@
use SilverStripe\ORM\DB;
use SilverStripe\ORM\FieldType\DBDatetime;
+use SilverStripe\CMS\Reports\RecentlyEditedReport;
+use SilverStripe\CMS\Reports\BrokenLinksReport;
+use SilverStripe\CMS\Reports\BrokenFilesReport;
+use SilverStripe\CMS\Model\VirtualPage;
+use SilverStripe\CMS\Reports\BrokenVirtualPagesReport;
+use SilverStripe\CMS\Model\RedirectorPage;
+use SilverStripe\CMS\Reports\BrokenRedirectorPagesReport;
+
/**
* @package cms
@@ -20,8 +28,8 @@ class CmsReportsTest extends SapphireTest {
$afterThreshold = strtotime('-'.(self::$daysAgo-1).' days', strtotime('31-06-2009 00:00:00'));
$beforeThreshold = strtotime('-'.(self::$daysAgo+1).' days', strtotime('31-06-2009 00:00:00'));
- $after = $this->objFromFixture('SiteTree', 'after');
- $before = $this->objFromFixture('SiteTree', 'before');
+ $after = $this->objFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'after');
+ $before = $this->objFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'before');
DB::query("UPDATE \"SiteTree\" SET \"Created\"='2009-01-01 00:00:00', \"LastEdited\"='".date('Y-m-d H:i:s', $afterThreshold)."' WHERE \"ID\"='".$after->ID."'");
DB::query("UPDATE \"SiteTree\" SET \"Created\"='2009-01-01 00:00:00', \"LastEdited\"='".date('Y-m-d H:i:s', $beforeThreshold)."' WHERE \"ID\"='".$before->ID."'");
@@ -53,8 +61,8 @@ class CmsReportsTest extends SapphireTest {
public function testRecentlyEdited() {
DBDatetime::set_mock_now('31-06-2009 00:00:00');
- $after = $this->objFromFixture('SiteTree', 'after');
- $before = $this->objFromFixture('SiteTree', 'before');
+ $after = $this->objFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'after');
+ $before = $this->objFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'before');
$r = new RecentlyEditedReport();
diff --git a/tests/reports/CmsReportsTest.yml b/tests/reports/CmsReportsTest.yml
index 911b0432..234d2277 100644
--- a/tests/reports/CmsReportsTest.yml
+++ b/tests/reports/CmsReportsTest.yml
@@ -1,5 +1,5 @@
-SiteTree:
- after:
- Title: after
- before:
- Title: before
+SilverStripe\CMS\Model\SiteTree:
+ after:
+ Title: after
+ before:
+ Title: before
diff --git a/tests/search/CMSMainSearchFormTest.php b/tests/search/CMSMainSearchFormTest.php
index 3ab9ddc6..2d5179d1 100644
--- a/tests/search/CMSMainSearchFormTest.php
+++ b/tests/search/CMSMainSearchFormTest.php
@@ -11,7 +11,7 @@ class CMSMainSearchFormTest extends FunctionalTest {
http_build_query(array(
'q' => array(
'Title' => 'Page 10',
- 'FilterClass' => 'CMSSiteTreeFilter_Search',
+ 'FilterClass' => 'SilverStripe\\CMS\\Controllers\\CMSSiteTreeFilter_Search',
),
'action_doSearch' => true
))
diff --git a/tests/search/SearchFormTest.php b/tests/search/SearchFormTest.php
index fa9ed170..0e22d1dd 100644
--- a/tests/search/SearchFormTest.php
+++ b/tests/search/SearchFormTest.php
@@ -4,6 +4,9 @@ use SilverStripe\ORM\DB;
use SilverStripe\ORM\Versioning\Versioned;
use SilverStripe\MSSQL\MSSQLDatabase;
use SilverStripe\PostgreSQL\PostgreSQLDatabase;
+use SilverStripe\CMS\Controllers\ContentController;
+use SilverStripe\CMS\Search\SearchForm;
+
/**
@@ -20,7 +23,7 @@ class ZZZSearchFormTest extends FunctionalTest {
protected static $fixture_file = 'SearchFormTest.yml';
protected $illegalExtensions = array(
- 'SiteTree' => array('SiteTreeSubsites', 'Translatable')
+ 'SilverStripe\\CMS\\Model\\SiteTree' => array('SiteTreeSubsites', 'Translatable')
);
protected $mockController;
@@ -43,7 +46,7 @@ class ZZZSearchFormTest extends FunctionalTest {
public function setUp() {
parent::setUp();
- $holderPage = $this->objFromFixture('SiteTree', 'searchformholder');
+ $holderPage = $this->objFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'searchformholder');
$this->mockController = new ContentController($holderPage);
$this->waitUntilIndexingFinished();
@@ -66,7 +69,7 @@ class ZZZSearchFormTest extends FunctionalTest {
public function testSearchFormTemplateCanBeChanged() {
if(!$this->checkFulltextSupport()) return;
- $sf = new SearchForm($this->mockController, 'SearchForm');
+ $sf = new SearchForm($this->mockController, 'SilverStripe\\CMS\\Search\\SearchForm');
$sf->setTemplate('BlankPage');
@@ -79,9 +82,9 @@ class ZZZSearchFormTest extends FunctionalTest {
public function testPublishedPagesMatchedByTitle() {
if(!$this->checkFulltextSupport()) return;
- $sf = new SearchForm($this->mockController, 'SearchForm');
+ $sf = new SearchForm($this->mockController, 'SilverStripe\\CMS\\Search\\SearchForm');
- $publishedPage = $this->objFromFixture('SiteTree', 'publicPublishedPage');
+ $publishedPage = $this->objFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'publicPublishedPage');
$publishedPage->copyVersionToStage(Versioned::DRAFT, Versioned::LIVE);
$this->waitUntilIndexingFinished();
@@ -96,9 +99,9 @@ class ZZZSearchFormTest extends FunctionalTest {
public function testDoubleQuotesPublishedPagesMatchedByTitle() {
if(!$this->checkFulltextSupport()) return;
- $sf = new SearchForm($this->mockController, 'SearchForm');
+ $sf = new SearchForm($this->mockController, 'SilverStripe\\CMS\\Search\\SearchForm');
- $publishedPage = $this->objFromFixture('SiteTree', 'publicPublishedPage');
+ $publishedPage = $this->objFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'publicPublishedPage');
$publishedPage->Title = "finding butterflies";
$publishedPage->write();
$publishedPage->copyVersionToStage(Versioned::DRAFT, Versioned::LIVE);
@@ -115,10 +118,10 @@ class ZZZSearchFormTest extends FunctionalTest {
public function testUnpublishedPagesNotIncluded() {
if(!$this->checkFulltextSupport()) return;
- $sf = new SearchForm($this->mockController, 'SearchForm');
+ $sf = new SearchForm($this->mockController, 'SilverStripe\\CMS\\Search\\SearchForm');
$results = $sf->getResults(null, array('Search'=>'publicUnpublishedPage'));
- $unpublishedPage = $this->objFromFixture('SiteTree', 'publicUnpublishedPage');
+ $unpublishedPage = $this->objFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'publicUnpublishedPage');
$this->assertNotContains(
$unpublishedPage->ID,
$results->column('ID'),
@@ -129,9 +132,9 @@ class ZZZSearchFormTest extends FunctionalTest {
public function testPagesRestrictedToLoggedinUsersNotIncluded() {
if(!$this->checkFulltextSupport()) return;
- $sf = new SearchForm($this->mockController, 'SearchForm');
+ $sf = new SearchForm($this->mockController, 'SilverStripe\\CMS\\Search\\SearchForm');
- $page = $this->objFromFixture('SiteTree', 'restrictedViewLoggedInUsers');
+ $page = $this->objFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'restrictedViewLoggedInUsers');
$page->copyVersionToStage(Versioned::DRAFT, Versioned::LIVE);
$results = $sf->getResults(null, array('Search'=>'restrictedViewLoggedInUsers'));
$this->assertNotContains(
@@ -154,9 +157,9 @@ class ZZZSearchFormTest extends FunctionalTest {
public function testPagesRestrictedToSpecificGroupNotIncluded() {
if(!$this->checkFulltextSupport()) return;
- $sf = new SearchForm($this->mockController, 'SearchForm');
+ $sf = new SearchForm($this->mockController, 'SilverStripe\\CMS\\Search\\SearchForm');
- $page = $this->objFromFixture('SiteTree', 'restrictedViewOnlyWebsiteUsers');
+ $page = $this->objFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'restrictedViewOnlyWebsiteUsers');
$page->copyVersionToStage(Versioned::DRAFT, Versioned::LIVE);
$results = $sf->getResults(null, array('Search'=>'restrictedViewOnlyWebsiteUsers'));
$this->assertNotContains(
@@ -187,12 +190,12 @@ class ZZZSearchFormTest extends FunctionalTest {
}
public function testInheritedRestrictedPagesNotIncluded() {
- $sf = new SearchForm($this->mockController, 'SearchForm');
+ $sf = new SearchForm($this->mockController, 'SilverStripe\\CMS\\Search\\SearchForm');
- $parent = $this->objFromFixture('SiteTree', 'restrictedViewLoggedInUsers');
+ $parent = $this->objFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'restrictedViewLoggedInUsers');
$parent->copyVersionToStage(Versioned::DRAFT, Versioned::LIVE);
- $page = $this->objFromFixture('SiteTree', 'inheritRestrictedView');
+ $page = $this->objFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'inheritRestrictedView');
$page->copyVersionToStage(Versioned::DRAFT, Versioned::LIVE);
$results = $sf->getResults(null, array('Search'=>'inheritRestrictedView'));
$this->assertNotContains(
@@ -215,9 +218,9 @@ class ZZZSearchFormTest extends FunctionalTest {
public function testDisabledShowInSearchFlagNotIncludedForSiteTree() {
if(!$this->checkFulltextSupport()) return;
- $sf = new SearchForm($this->mockController, 'SearchForm');
+ $sf = new SearchForm($this->mockController, 'SilverStripe\\CMS\\Search\\SearchForm');
- $page = $this->objFromFixture('SiteTree', 'dontShowInSearchPage');
+ $page = $this->objFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'dontShowInSearchPage');
$results = $sf->getResults(null, array('Search'=>'dontShowInSearchPage'));
$this->assertNotContains(
$page->ID,
@@ -229,7 +232,7 @@ class ZZZSearchFormTest extends FunctionalTest {
public function testDisabledShowInSearchFlagNotIncludedForFiles() {
if(!$this->checkFulltextSupport()) return;
- $sf = new SearchForm($this->mockController, 'SearchForm');
+ $sf = new SearchForm($this->mockController, 'SilverStripe\\CMS\\Search\\SearchForm');
$dontShowInSearchFile = $this->objFromFixture('File', 'dontShowInSearchFile');
$dontShowInSearchFile->copyVersionToStage(Versioned::DRAFT, Versioned::LIVE);
@@ -258,9 +261,9 @@ class ZZZSearchFormTest extends FunctionalTest {
$this->markTestSkipped("PostgreSQLDatabase doesn't support entity-encoded searches");
}
- $sf = new SearchForm($this->mockController, 'SearchForm');
+ $sf = new SearchForm($this->mockController, 'SilverStripe\\CMS\\Search\\SearchForm');
- $pageWithSpecialChars = $this->objFromFixture('SiteTree', 'pageWithSpecialChars');
+ $pageWithSpecialChars = $this->objFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'pageWithSpecialChars');
$pageWithSpecialChars->copyVersionToStage(Versioned::DRAFT, Versioned::LIVE);
$results = $sf->getResults(null, array('Search'=>'Brötchen'));
diff --git a/tests/search/SearchFormTest.yml b/tests/search/SearchFormTest.yml
index e6b32b57..d0838f97 100644
--- a/tests/search/SearchFormTest.yml
+++ b/tests/search/SearchFormTest.yml
@@ -9,7 +9,7 @@ SilverStripe\Security\Member:
Email: websiteuser@test.com
Password: test
Groups: =>SilverStripe\Security\Group.websiteusers
-SiteTree:
+SilverStripe\CMS\Model\SiteTree:
searchformholder:
URLSegment: searchformholder
Title: searchformholder
@@ -26,7 +26,7 @@ SiteTree:
Title: restrictedViewOnlyWebsiteUsers
inheritRestrictedView:
CanViewType: Inherit
- Parent: =>SiteTree.restrictedViewLoggedInUsers
+ Parent: =>SilverStripe\CMS\Model\SiteTree.restrictedViewLoggedInUsers
Title: inheritRestrictedView
dontShowInSearchPage:
Title: dontShowInSearchPage
diff --git a/tests/tasks/MigrateSiteTreeLinkingTaskTest.php b/tests/tasks/MigrateSiteTreeLinkingTaskTest.php
index f0167c35..2db39f6d 100644
--- a/tests/tasks/MigrateSiteTreeLinkingTaskTest.php
+++ b/tests/tasks/MigrateSiteTreeLinkingTaskTest.php
@@ -1,6 +1,8 @@
idFromFixture('SiteTree', 'home');
- $aboutID = $this->idFromFixture('SiteTree', 'about');
- $staffID = $this->idFromFixture('SiteTree', 'staff');
- $actionID = $this->idFromFixture('SiteTree', 'action');
- $hashID = $this->idFromFixture('SiteTree', 'hash_link');
+ $homeID = $this->idFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'home');
+ $aboutID = $this->idFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'about');
+ $staffID = $this->idFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'staff');
+ $actionID = $this->idFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'action');
+ $hashID = $this->idFromFixture('SilverStripe\\CMS\\Model\\SiteTree', 'hash_link');
$homeContent = sprintf (
'About Staff External Link ',
@@ -57,25 +59,25 @@ class MigrateSiteTreeLinkingTaskTest extends SapphireTest {
$this->assertEquals (
$homeContent,
- DataObject::get_by_id('SiteTree', $homeID)->Content,
+ DataObject::get_by_id('SilverStripe\\CMS\\Model\\SiteTree', $homeID)->Content,
'HTML URLSegment links are rewritten.'
);
$this->assertEquals (
$aboutContent,
- DataObject::get_by_id('SiteTree', $aboutID)->Content
+ DataObject::get_by_id('SilverStripe\\CMS\\Model\\SiteTree', $aboutID)->Content
);
$this->assertEquals (
$staffContent,
- DataObject::get_by_id('SiteTree', $staffID)->Content
+ DataObject::get_by_id('SilverStripe\\CMS\\Model\\SiteTree', $staffID)->Content
);
$this->assertEquals (
$actionContent,
- DataObject::get_by_id('SiteTree', $actionID)->Content,
+ DataObject::get_by_id('SilverStripe\\CMS\\Model\\SiteTree', $actionID)->Content,
'Links to actions on pages are rewritten correctly.'
);
$this->assertEquals (
$hashLinkContent,
- DataObject::get_by_id('SiteTree', $hashID)->Content,
+ DataObject::get_by_id('SilverStripe\\CMS\\Model\\SiteTree', $hashID)->Content,
'Hash/anchor links are correctly handled.'
);
}
diff --git a/tests/tasks/MigrateSiteTreeLinkingTaskTest.yml b/tests/tasks/MigrateSiteTreeLinkingTaskTest.yml
index 3d14a8b9..d17c2288 100644
--- a/tests/tasks/MigrateSiteTreeLinkingTaskTest.yml
+++ b/tests/tasks/MigrateSiteTreeLinkingTaskTest.yml
@@ -1,4 +1,4 @@
-SiteTree:
+SilverStripe\CMS\Model\SiteTree:
home:
Title: Home Page
URLSegment: home
@@ -11,7 +11,7 @@ SiteTree:
Title: Staff
URLSegment: staff
Content: 'Home About '
- Parent: =>SiteTree.about
+ Parent: =>SilverStripe\CMS\Model\SiteTree.about
action:
Title: Action Link
URLSegment: action
@@ -30,38 +30,38 @@ SiteTree:
SiteTree_LinkTracking:
home_about:
- SiteTreeID: =>SiteTree.home
- ChildID: =>SiteTree.about
+ SiteTreeID: =>SilverStripe\CMS\Model\SiteTree.home
+ ChildID: =>SilverStripe\CMS\Model\SiteTree.about
FieldName: Content
home_staff:
- SiteTreeID: =>SiteTree.home
- ChildID: =>SiteTree.staff
+ SiteTreeID: =>SilverStripe\CMS\Model\SiteTree.home
+ ChildID: =>SilverStripe\CMS\Model\SiteTree.staff
FieldName: Content
about_home:
- SiteTreeID: =>SiteTree.about
- ChildID: =>SiteTree.home
+ SiteTreeID: =>SilverStripe\CMS\Model\SiteTree.about
+ ChildID: =>SilverStripe\CMS\Model\SiteTree.home
FieldName: Content
about_staff:
- SiteTreeID: =>SiteTree.about
- ChildID: =>SiteTree.staff
+ SiteTreeID: =>SilverStripe\CMS\Model\SiteTree.about
+ ChildID: =>SilverStripe\CMS\Model\SiteTree.staff
FieldName: Content
staff_home:
- SiteTreeID: =>SiteTree.staff
- ChildID: =>SiteTree.home
+ SiteTreeID: =>SilverStripe\CMS\Model\SiteTree.staff
+ ChildID: =>SilverStripe\CMS\Model\SiteTree.home
FieldName: Content
staff_about:
- SiteTreeID: =>SiteTree.staff
- ChildID: =>SiteTree.about
+ SiteTreeID: =>SilverStripe\CMS\Model\SiteTree.staff
+ ChildID: =>SilverStripe\CMS\Model\SiteTree.about
FieldName: Content
action_home:
- SiteTreeID: =>SiteTree.action
- ChildID: =>SiteTree.home
+ SiteTreeID: =>SilverStripe\CMS\Model\SiteTree.action
+ ChildID: =>SilverStripe\CMS\Model\SiteTree.home
FieldName: Content
hash_link_home:
- SiteTreeID: =>SiteTree.hash_link
- ChildID: =>SiteTree.home
+ SiteTreeID: =>SilverStripe\CMS\Model\SiteTree.hash_link
+ ChildID: =>SilverStripe\CMS\Model\SiteTree.home
FieldName: Content
hash_link_about:
- SiteTreeID: =>SiteTree.hash_link
- ChildID: =>SiteTree.about
+ SiteTreeID: =>SilverStripe\CMS\Model\SiteTree.hash_link
+ ChildID: =>SilverStripe\CMS\Model\SiteTree.about
FieldName: Content
diff --git a/tests/tasks/RemoveOrphanedPagesTaskTest.php b/tests/tasks/RemoveOrphanedPagesTaskTest.php
index 3a2fc683..474d282f 100644
--- a/tests/tasks/RemoveOrphanedPagesTaskTest.php
+++ b/tests/tasks/RemoveOrphanedPagesTaskTest.php
@@ -88,7 +88,7 @@ class RemoveOrphanedPagesTaskTest extends FunctionalTest {
);
$child2_1_published_orphaned = $this->objFromFixture('Page', 'child2_1_published_orphaned');
- $task = singleton('RemoveOrphanedPagesTask');
+ $task = singleton('SilverStripe\\CMS\\Tasks\\RemoveOrphanedPagesTask');
$orphans = $task->getOrphanedPages();
$orphanIDs = $orphans->column('ID');
sort($orphanIDs);
diff --git a/tests/tasks/RemoveOrphanedPagesTaskTest.yml b/tests/tasks/RemoveOrphanedPagesTaskTest.yml
index 60f490e8..79e81763 100644
--- a/tests/tasks/RemoveOrphanedPagesTaskTest.yml
+++ b/tests/tasks/RemoveOrphanedPagesTaskTest.yml
@@ -1,32 +1,32 @@
Page:
- parent1_published:
- Title: Parent1
- child1_1_published:
- Title: Child1.1
- Parent: =>Page.parent1_published
- child1_2_published:
- Title: Child1.2
- Parent: =>Page.parent1_published
- child1_3_orphaned:
- Title: Child1.3
- Parent: =>Page.parent1_published
- child1_4_orphaned_published:
- Title: Child1.4
- Parent: =>Page.parent1_published
- grandchild1_1_1:
- Title: Grandchild1.1.1
- Parent: =>Page.child1_1_published
- grandchild1_1_2_published:
- Title: Grandchild1.1.2
- Parent: =>Page.child1_1_published
- grandchild1_1_3_orphaned:
- Title: Grandchild1.1.3
- Parent: =>Page.child1_1_published
- grandchild1_1_4_orphaned_published:
- Title: Grandchild1.1.4
- Parent: =>Page.child1_1_published
- parent2:
- Title: Parent2
- child2_1_published_orphaned:
- Title: Child2.1
- Parent: =>Page.parent2
+ parent1_published:
+ Title: Parent1
+ child1_1_published:
+ Title: Child1.1
+ Parent: =>Page.parent1_published
+ child1_2_published:
+ Title: Child1.2
+ Parent: =>Page.parent1_published
+ child1_3_orphaned:
+ Title: Child1.3
+ Parent: =>Page.parent1_published
+ child1_4_orphaned_published:
+ Title: Child1.4
+ Parent: =>Page.parent1_published
+ grandchild1_1_1:
+ Title: Grandchild1.1.1
+ Parent: =>Page.child1_1_published
+ grandchild1_1_2_published:
+ Title: Grandchild1.1.2
+ Parent: =>Page.child1_1_published
+ grandchild1_1_3_orphaned:
+ Title: Grandchild1.1.3
+ Parent: =>Page.child1_1_published
+ grandchild1_1_4_orphaned_published:
+ Title: Grandchild1.1.4
+ Parent: =>Page.child1_1_published
+ parent2:
+ Title: Parent2
+ child2_1_published_orphaned:
+ Title: Child2.1
+ Parent: =>Page.parent2