From c6c650f1366348327d973ca6cc5a5ed33a467786 Mon Sep 17 00:00:00 2001 From: Damian Mooyman Date: Thu, 5 Nov 2015 16:19:54 +1300 Subject: [PATCH 01/21] BUG Ensure CMSMainTest uses correct siteconfig BUG Prevent CMSAddPageController invoking Security::LoginForm code during error handling --- tests/controller/CMSMainTest.php | 101 ++++++++---- tests/controller/CMSMainTest.yml | 270 +++++++++++++++---------------- 2 files changed, 208 insertions(+), 163 deletions(-) diff --git a/tests/controller/CMSMainTest.php b/tests/controller/CMSMainTest.php index 6f880268..ed5e5871 100644 --- a/tests/controller/CMSMainTest.php +++ b/tests/controller/CMSMainTest.php @@ -9,6 +9,18 @@ class CMSMainTest extends FunctionalTest { static protected $orig = array(); + public function setUp() { + parent::setUp(); + + // Clear automatically created siteconfigs (in case one was created outside of the specified fixtures). + $ids = $this->allFixtureIDs('SiteConfig'); + if($ids) { + foreach(SiteConfig::get()->exclude('ID', $ids) as $config) { + $config->delete(); + } + } + } + function testSiteTreeHints() { $cache = SS_Cache::factory('CMSMain_SiteTreeHints'); // Login as user with root creation privileges @@ -262,16 +274,16 @@ class CMSMainTest extends FunctionalTest { $cmsUser->logIn(); $this->get('admin/pages/add'); $response = $this->post( - 'admin/pages/add/AddForm', - array( - 'ParentID' => '0', - 'PageType' => 'Page', - 'Locale' => 'en_US', - 'action_doAdd' => 1, - 'ajax' => 1, - ), array( - 'X-Pjax' => 'CurrentForm,Breadcrumbs', - ) + 'admin/pages/add/AddForm', + array( + 'ParentID' => '0', + 'PageType' => 'Page', + 'Locale' => 'en_US', + 'action_doAdd' => 1, + 'ajax' => 1, + ), array( + 'X-Pjax' => 'CurrentForm,Breadcrumbs', + ) ); // should redirect, which is a permission error $this->assertEquals(403, $response->getStatusCode(), 'Add TopLevel page must fail for normal user'); @@ -281,16 +293,16 @@ class CMSMainTest extends FunctionalTest { $response = $this->get('admin/pages/add'); $response = $this->post( - 'admin/pages/add/AddForm', - array( - 'ParentID' => '0', - 'PageType' => 'Page', - 'Locale' => 'en_US', - 'action_doAdd' => 1, - 'ajax' => 1, - ), array( - 'X-Pjax' => 'CurrentForm,Breadcrumbs', - ) + 'admin/pages/add/AddForm', + array( + 'ParentID' => '0', + 'PageType' => 'Page', + 'Locale' => 'en_US', + 'action_doAdd' => 1, + 'ajax' => 1, + ), array( + 'X-Pjax' => 'CurrentForm,Breadcrumbs', + ) ); $location = $response->getHeader('X-ControllerURL'); @@ -312,27 +324,60 @@ class CMSMainTest extends FunctionalTest { // Create toplevel page $this->get('admin/pages/add'); $response = $this->post( - 'admin/pages/add/AddForm', - array('ParentID' => '0', 'PageType' => 'CMSMainTest_ClassA', 'Locale' => 'en_US', 'action_doAdd' => 1) + 'admin/pages/add/AddForm', + array( + 'ParentID' => '0', + 'PageType' => 'CMSMainTest_ClassA', + 'Locale' => 'en_US', + 'action_doAdd' => 1, + 'ajax' => 1 + ), array( + 'X-Pjax' => 'CurrentForm,Breadcrumbs', + ) ); $this->assertFalse($response->isError()); - preg_match('/edit\/show\/(\d*)/', $response->getHeader('Location'), $matches); + $ok = preg_match('/edit\/show\/(\d*)/', $response->getHeader('X-ControllerURL'), $matches); + $this->assertNotEmpty($ok); $newPageId = $matches[1]; // Create allowed child $this->get('admin/pages/add'); $response = $this->post( - 'admin/pages/add/AddForm', - array('ParentID' => $newPageId, 'PageType' => 'CMSMainTest_ClassB', 'Locale' => 'en_US', 'action_doAdd' => 1) + 'admin/pages/add/AddForm', + array( + 'ParentID' => $newPageId, + 'PageType' => 'CMSMainTest_ClassB', + 'Locale' => 'en_US', + 'action_doAdd' => 1, + 'ajax' => 1 + ), array( + 'X-Pjax' => 'CurrentForm,Breadcrumbs', + ) ); $this->assertFalse($response->isError()); - $this->assertNull($response->getBody()); + $this->assertEmpty($response->getBody()); + + // Verify that the page was created and redirected to accurately + $newerPage = SiteTree::get()->byID($newPageId)->AllChildren()->first(); + $this->assertNotEmpty($newerPage); + $ok = preg_match('/edit\/show\/(\d*)/', $response->getHeader('X-ControllerURL'), $matches); + $this->assertNotEmpty($ok); + $newerPageID = $matches[1]; + $this->assertEquals($newerPage->ID, $newerPageID); // Create disallowed child $this->get('admin/pages/add'); $response = $this->post( - 'admin/pages/add/AddForm', - array('ParentID' => $newPageId, 'PageType' => 'Page', 'Locale' => 'en_US', 'action_doAdd' => 1) + 'admin/pages/add/AddForm', + array( + 'ParentID' => $newPageId, + 'PageType' => 'Page', + 'Locale' => 'en_US', + 'action_doAdd' => 1, + 'ajax' => 1 + ), array( + 'X-Pjax' => 'CurrentForm,Breadcrumbs', + ) ); $this->assertEquals(403, $response->getStatusCode(), 'Add disallowed child should fail'); diff --git a/tests/controller/CMSMainTest.yml b/tests/controller/CMSMainTest.yml index f2883b39..676f7686 100644 --- a/tests/controller/CMSMainTest.yml +++ b/tests/controller/CMSMainTest.yml @@ -1,142 +1,142 @@ Page: - page1: - Title: Page 1 - Sort: 1 - page2: - Title: Page 2 - Sort: 2 - page3: - Title: Page 3 - Sort: 3 - page31: - Title: Page 3.1 - Parent: =>Page.page3 - Sort: 1 - page32: - Title: Page 3.2 - Parent: =>Page.page3 - Sort: 2 - page4: - Title: Page 4 - Sort: 4 - page5: - Title: Page 5 - Sort: 5 - page6: - Title: Page 6 - Sort: 6 - page7: - Title: Page 7 - Sort: 7 - page8: - Title: Page 8 - Sort: 8 - page9: - Title: Page 9 - Sort: 9 - page10: - Title: Page 10 - Sort: 10 - page11: - Title: Page 11 - Sort: 11 - page12: - Title: Page 12 - Sort: 12 - page13: - Title: Page 13 - Sort: 13 - page14: - Title: Page 14 - Sort: 14 - page15: - Title: Page 15 - Sort: 15 - page16: - Title: Page 16 - Sort: 16 - page17: - Title: Page 17 - Sort: 17 - page18: - Title: Page 18 - Sort: 18 - page19: - Title: Page 19 - Sort: 19 - page20: - Title: Page 20 - Sort: 20 - page21: - Title: Page 21 - Sort: 21 - page22: - Title: Page 22 - Sort: 22 - page23: - Title: Page 23 - Sort: 23 - page24: - Title: Page 24 - Sort: 24 - page25: - Title: Page 25 - Sort: 25 - page26: - Title: Page 26 - Sort: 26 - home: - Title: Home - URLSegment: home - Sort: 27 + page1: + Title: Page 1 + Sort: 1 + page2: + Title: Page 2 + Sort: 2 + page3: + Title: Page 3 + Sort: 3 + page31: + Title: Page 3.1 + Parent: =>Page.page3 + Sort: 1 + page32: + Title: Page 3.2 + Parent: =>Page.page3 + Sort: 2 + page4: + Title: Page 4 + Sort: 4 + page5: + Title: Page 5 + Sort: 5 + page6: + Title: Page 6 + Sort: 6 + page7: + Title: Page 7 + Sort: 7 + page8: + Title: Page 8 + Sort: 8 + page9: + Title: Page 9 + Sort: 9 + page10: + Title: Page 10 + Sort: 10 + page11: + Title: Page 11 + Sort: 11 + page12: + Title: Page 12 + Sort: 12 + page13: + Title: Page 13 + Sort: 13 + page14: + Title: Page 14 + Sort: 14 + page15: + Title: Page 15 + Sort: 15 + page16: + Title: Page 16 + Sort: 16 + page17: + Title: Page 17 + Sort: 17 + page18: + Title: Page 18 + Sort: 18 + page19: + Title: Page 19 + Sort: 19 + page20: + Title: Page 20 + Sort: 20 + page21: + Title: Page 21 + Sort: 21 + page22: + Title: Page 22 + Sort: 22 + page23: + Title: Page 23 + Sort: 23 + page24: + Title: Page 24 + Sort: 24 + page25: + Title: Page 25 + Sort: 25 + page26: + Title: Page 26 + Sort: 26 + home: + Title: Home + URLSegment: home + Sort: 27 Group: - admin: - Title: Administrators - empty: - Title: Empty Group - assetsonly: - Title: assetsonly - allcmssections: - Title: allcmssections - rooteditusers: - Title: rooteditusers + admin: + Title: Administrators + empty: + Title: Empty Group + assetsonly: + Title: assetsonly + allcmssections: + Title: allcmssections + rooteditusers: + Title: rooteditusers Member: - admin: - Email: admin@example.com - Password: ZXXlkwecxz2390232233 - Groups: =>Group.admin - assetsonlyuser: - Email: assetsonlyuser@test.com - Groups: =>Group.assetsonly - allcmssectionsuser: - Email: allcmssectionsuser@test.com - Groups: =>Group.allcmssections - rootedituser: - Email: rootedituser@test.com - Groups: =>Group.rooteditusers + admin: + Email: admin@example.com + Password: ZXXlkwecxz2390232233 + Groups: =>Group.admin + assetsonlyuser: + Email: assetsonlyuser@test.com + Groups: =>Group.assetsonly + allcmssectionsuser: + Email: allcmssectionsuser@test.com + Groups: =>Group.allcmssections + rootedituser: + Email: rootedituser@test.com + Groups: =>Group.rooteditusers Permission: - admin: - Code: ADMIN - GroupID: =>Group.admin - assetsonly: - Code: CMS_ACCESS_AssetAdmin - GroupID: =>Group.assetsonly - allcmssections: - Code: CMS_ACCESS_LeftAndMain - GroupID: =>Group.allcmssections - allcmssections2: - Code: CMS_ACCESS_LeftAndMain - GroupID: =>Group.rooteditusers + admin: + Code: ADMIN + GroupID: =>Group.admin + assetsonly: + Code: CMS_ACCESS_AssetAdmin + GroupID: =>Group.assetsonly + allcmssections: + Code: CMS_ACCESS_LeftAndMain + GroupID: =>Group.allcmssections + allcmssections2: + Code: CMS_ACCESS_LeftAndMain + GroupID: =>Group.rooteditusers SiteConfig: - siteconfig1: - EditorGroups: =>Group.rooteditusers - CanCreateTopLevelType: 'OnlyTheseUsers' + siteconfig1: + EditorGroups: =>Group.rooteditusers + CanCreateTopLevelType: 'OnlyTheseUsers' SiteConfig_CreateTopLevelGroups: - createtoplevelgroups1: - SiteConfigID: =>SiteConfig.siteconfig1 - GroupID: =>Group.rooteditusers + createtoplevelgroups1: + SiteConfigID: =>SiteConfig.siteconfig1 + GroupID: =>Group.rooteditusers RedirectorPage: - page5: - Title: Page 5 - RedirectionType: External - ExternalURL: http://www.google.com + page5: + Title: Page 5 + RedirectionType: External + ExternalURL: http://www.google.com From 21df7069d0622d30d823c9ea511a2e98b47e6b06 Mon Sep 17 00:00:00 2001 From: Ingo Schommer Date: Tue, 10 Nov 2015 15:30:15 +1300 Subject: [PATCH 02/21] Extension hooks for "restore to stage" and "archive" --- code/model/SiteTree.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/code/model/SiteTree.php b/code/model/SiteTree.php index abe79040..c793c63c 100755 --- a/code/model/SiteTree.php +++ b/code/model/SiteTree.php @@ -2534,6 +2534,8 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid * @return self */ public function doRestoreToStage() { + $this->invokeWithExtensions('onBeforeRestoreToStage', $this); + // Ensure that the parent page is restored, otherwise restore to root if($this->isParentArchived()) { $this->ParentID = 0; @@ -2562,6 +2564,8 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid } Versioned::reading_stage($oldStage); + + $this->invokeWithExtensions('onAfterRestoreToStage', $this); return $result; } @@ -2572,10 +2576,15 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid * @return bool Success */ public function doArchive() { + $this->invokeWithExtensions('onBeforeArchive', $this); + if($this->doUnpublish()) { $this->delete(); + $this->invokeWithExtensions('onAfterArchive', $this); + return true; } + return false; } From b26c3a3b4e066c988c3303db05509550dd689cc4 Mon Sep 17 00:00:00 2001 From: Damian Mooyman Date: Tue, 10 Nov 2015 15:23:58 +1300 Subject: [PATCH 03/21] Restore deprecated reports --- code/reports/BrokenFilesReport.php | 32 +- code/reports/BrokenLinksReport.php | 25 +- code/reports/BrokenRedirectorPagesReport.php | 22 +- code/reports/BrokenVirtualPagesReport.php | 28 +- code/reports/EmptyPagesReport.php | 12 +- code/reports/RecentlyEditedReport.php | 12 +- tests/reports/CmsReportsTest.php | 324 ++++++++++--------- 7 files changed, 260 insertions(+), 195 deletions(-) diff --git a/code/reports/BrokenFilesReport.php b/code/reports/BrokenFilesReport.php index fe4e5235..13d34514 100644 --- a/code/reports/BrokenFilesReport.php +++ b/code/reports/BrokenFilesReport.php @@ -16,16 +16,18 @@ class BrokenFilesReport extends SS_Report { public function sourceRecords($params = null) { // Get class names for page types that are not virtual pages or redirector pages - $classes = array_diff(ClassInfo::subclassesFor('SiteTree'), ClassInfo::subclassesFor('VirtualPage'), ClassInfo::subclassesFor('RedirectorPage')); + $classes = array_diff( + ClassInfo::subclassesFor('SiteTree'), + ClassInfo::subclassesFor('VirtualPage'), + ClassInfo::subclassesFor('RedirectorPage') + ); + $classParams = DB::placeholders($classes); + $classFilter = array( + "\"ClassName\" IN ($classParams) AND \"HasBrokenFile\" = 1" => $classes + ); - $classNames = "'".join("','", $classes)."'"; - - if (isset($_REQUEST['OnLive'])) { - $ret = Versioned::get_by_stage('SiteTree', 'Live', "\"ClassName\" IN ($classNames) AND \"HasBrokenFile\" = 1"); - } else { - $ret = DataObject::get('SiteTree', "\"ClassName\" IN ($classNames) AND \"HasBrokenFile\" = 1"); - } - return $ret; + $stage = isset($params['OnLive']) ? 'Live' : 'Stage'; + return Versioned::get_by_stage('SiteTree', $stage, $classFilter); } public function columns() { @@ -42,4 +44,14 @@ class BrokenFilesReport extends SS_Report { new CheckboxField('OnLive', _t('SideReport.ParameterLiveCheckbox', 'Check live site')) ); } -} \ No newline at end of file +} + +/** + * @deprecated 3.2..4.0 + */ +class SideReport_BrokenFiles extends BrokenFilesReport { + public function __construct() { + Deprecation::notice('4.0', 'Use BrokenFilesReport instead'); + parent::__construct(); + } +} diff --git a/code/reports/BrokenLinksReport.php b/code/reports/BrokenLinksReport.php index 6dc1d2c0..4ef1511c 100644 --- a/code/reports/BrokenLinksReport.php +++ b/code/reports/BrokenLinksReport.php @@ -29,14 +29,14 @@ class BrokenLinksReport extends SS_Report { $sort = ''; } } - if (!isset($_REQUEST['CheckSite']) || $params['CheckSite'] == 'Published') { - $ret = Versioned::get_by_stage('SiteTree', 'Live', array( - '"SiteTree"."HasBrokenLink" = ? OR "SiteTree"."HasBrokenFile" = ?' => array(true, true) - ), $sort, $join, $limit); + $brokenFilter = array( + '"SiteTree"."HasBrokenLink" = ? OR "SiteTree"."HasBrokenFile" = ?' => array(true, true) + ); + $isLive = !isset($params['CheckSite']) || $params['CheckSite'] == 'Published'; + if ($isLive) { + $ret = Versioned::get_by_stage('SiteTree', 'Live', $brokenFilter, $sort, $join, $limit); } else { - $ret = DataObject::get('SiteTree', array( - '"SiteTree"."HasBrokenFile" = ? OR "SiteTree"."HasBrokenLink" = ?' => array(true, true) - ), $sort, $join, $limit); + $ret = DataObject::get('SiteTree', $brokenFilter, $sort, $join, $limit); } $returnSet = new ArrayList(); @@ -141,3 +141,14 @@ 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 index 56c14425..5a69e619 100644 --- a/code/reports/BrokenRedirectorPagesReport.php +++ b/code/reports/BrokenRedirectorPagesReport.php @@ -15,11 +15,13 @@ class BrokenRedirectorPagesReport extends SS_Report { } public function sourceRecords($params = null) { - $classNames = "'".join("','", ClassInfo::subclassesFor('RedirectorPage'))."'"; - - if (isset($_REQUEST['OnLive'])) $ret = Versioned::get_by_stage('SiteTree', 'Live', "\"ClassName\" IN ($classNames) AND \"HasBrokenLink\" = 1"); - else $ret = DataObject::get('SiteTree', "\"ClassName\" IN ($classNames) AND \"HasBrokenLink\" = 1"); - return $ret; + $classes = ClassInfo::subclassesFor('RedirectorPage'); + $classParams = DB::placeholders($classes); + $classFilter = array( + "\"ClassName\" IN ($classParams) AND \"HasBrokenLink\" = 1" => $classes + ); + $stage = isset($params['OnLive']) ? 'Live' : 'Stage'; + return Versioned::get_by_stage('SiteTree', $stage, $classFilter); } public function columns() { @@ -37,3 +39,13 @@ 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 index f187d90f..01eb430d 100644 --- a/code/reports/BrokenVirtualPagesReport.php +++ b/code/reports/BrokenVirtualPagesReport.php @@ -15,15 +15,13 @@ class BrokenVirtualPagesReport extends SS_Report { } public function sourceRecords($params = null) { - $classNames = "'".join("','", ClassInfo::subclassesFor('VirtualPage'))."'"; - - if (isset($_REQUEST['OnLive'])) { - $ret = Versioned::get_by_stage('SiteTree', 'Live', "\"ClassName\" IN ($classNames) AND \"HasBrokenLink\" = 1"); - } else { - $ret = DataObject::get('SiteTree', "\"ClassName\" IN ($classNames) AND \"HasBrokenLink\" = 1"); - } - - return $ret; + $classes = ClassInfo::subclassesFor('VirtualPage'); + $classParams = DB::placeholders($classes); + $classFilter = array( + "\"ClassName\" IN ($classParams) AND \"HasBrokenLink\" = 1" => $classes + ); + $stage = isset($params['OnLive']) ? 'Live' : 'Stage'; + return Versioned::get_by_stage('SiteTree', $stage, $classFilter); } public function columns() { @@ -40,4 +38,14 @@ class BrokenVirtualPagesReport extends SS_Report { new CheckboxField('OnLive', _t('SideReport.ParameterLiveCheckbox', 'Check live site')) ); } -} \ No newline at end of file +} + +/** + * @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 index ed718660..4bbfc9fb 100644 --- a/code/reports/EmptyPagesReport.php +++ b/code/reports/EmptyPagesReport.php @@ -32,4 +32,14 @@ class EmptyPagesReport extends SS_Report { ), ); } -} \ No newline at end of file +} + +/** + * @deprecated 3.2..4.0 + */ +class SideReport_EmptyPages extends EmptyPagesReport { + public function __construct() { + Deprecation::notice('4.0', 'Use EmptyPagesReport instead'); + parent::__construct(); + } +} diff --git a/code/reports/RecentlyEditedReport.php b/code/reports/RecentlyEditedReport.php index 65d1664c..c1dca206 100644 --- a/code/reports/RecentlyEditedReport.php +++ b/code/reports/RecentlyEditedReport.php @@ -31,4 +31,14 @@ class RecentlyEditedReport extends SS_Report { ), ); } -} \ No newline at end of file +} + +/** + * @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/tests/reports/CmsReportsTest.php b/tests/reports/CmsReportsTest.php index 25b14c83..3e8b713b 100644 --- a/tests/reports/CmsReportsTest.php +++ b/tests/reports/CmsReportsTest.php @@ -37,15 +37,13 @@ class CmsReportsTest extends SapphireTest { $class = get_class($report); // ASSERT that the "draft" report is returning the correct results. - - $results = count($report->sourceRecords(array())) > 0; + $parameters = array('CheckSite' => 'Draft'); + $results = count($report->sourceRecords($parameters, null, null)) > 0; $isDraftBroken ? $this->assertTrue($results, "{$class} has NOT returned the correct DRAFT results, as NO pages were found.") : $this->assertFalse($results, "{$class} has NOT returned the correct DRAFT results, as pages were found."); // ASSERT that the "published" report is returning the correct results. - - $results = count($report->sourceRecords(array( - 'OnLive' => 1 - ))) > 0; + $parameters = array('CheckSite' => 'Published', 'OnLive' => 1); + $results = count($report->sourceRecords($parameters, null, null)) > 0; $isPublishedBroken ? $this->assertTrue($results, "{$class} has NOT returned the correct PUBLISHED results, as NO pages were found.") : $this->assertFalse($results, "{$class} has NOT returned the correct PUBLISHED results, as pages were found."); } @@ -82,49 +80,50 @@ class CmsReportsTest extends SapphireTest { $reports = SS_Report::get_reports(); $brokenLinksReport = null; foreach($reports as $report) { - if($report instanceof SideReport_BrokenLinks) { + if($report instanceof BrokenLinksReport) { $brokenLinksReport = $report; break; } } // Determine that the report exists, otherwise it has been excluded. - - if($brokenLinksReport) { - - // ASSERT that the "draft" report has detected the page having a broken link. - // ASSERT that the "published" report has NOT detected the page having a broken link, as the page has not been "published" yet. - - $this->isReportBroken($brokenLinksReport, true, false); - - // Make sure the page is now "published". - - $page->writeToStage('Live'); - - // ASSERT that the "draft" report has detected the page having a broken link. - // ASSERT that the "published" report has detected the page having a broken link. - - $this->isReportBroken($brokenLinksReport, true, true); - - // Correct the "draft" broken link. - - $page->Content = str_replace('987654321', $page->ID, $page->Content); - $page->writeToStage('Stage'); - - // ASSERT that the "draft" report has NOT detected the page having a broken link. - // ASSERT that the "published" report has detected the page having a broken link, as the previous content remains "published". - - $this->isReportBroken($brokenLinksReport, false, true); - - // Make sure the change has now been "published". - - $page->writeToStage('Live'); - - // ASSERT that the "draft" report has NOT detected the page having a broken link. - // ASSERT that the "published" report has NOT detected the page having a broken link. - - $this->isReportBroken($brokenLinksReport, false, false); + if(!$brokenLinksReport){ + $this->markTestSkipped('BrokenLinksReport is not an available report'); + return; } + + // ASSERT that the "draft" report has detected the page having a broken link. + // ASSERT that the "published" report has NOT detected the page having a broken link, as the page has not been "published" yet. + + $this->isReportBroken($brokenLinksReport, true, false); + + // Make sure the page is now "published". + + $page->writeToStage('Live'); + + // ASSERT that the "draft" report has detected the page having a broken link. + // ASSERT that the "published" report has detected the page having a broken link. + + $this->isReportBroken($brokenLinksReport, true, true); + + // Correct the "draft" broken link. + + $page->Content = str_replace('987654321', $page->ID, $page->Content); + $page->writeToStage('Stage'); + + // ASSERT that the "draft" report has NOT detected the page having a broken link. + // ASSERT that the "published" report has detected the page having a broken link, as the previous content remains "published". + + $this->isReportBroken($brokenLinksReport, false, true); + + // Make sure the change has now been "published". + + $page->writeToStage('Live'); + + // ASSERT that the "draft" report has NOT detected the page having a broken link. + // ASSERT that the "published" report has NOT detected the page having a broken link. + + $this->isReportBroken($brokenLinksReport, false, false); } /** @@ -144,52 +143,53 @@ class CmsReportsTest extends SapphireTest { $reports = SS_Report::get_reports(); $brokenFilesReport = null; foreach($reports as $report) { - if($report instanceof SideReport_BrokenFiles) { + if($report instanceof BrokenFilesReport) { $brokenFilesReport = $report; break; } } // Determine that the report exists, otherwise it has been excluded. - - if($brokenFilesReport) { - - // ASSERT that the "draft" report has detected the page having a broken file. - // ASSERT that the "published" report has NOT detected the page having a broken file, as the page has not been "published" yet. - - $this->isReportBroken($brokenFilesReport, true, false); - - // Make sure the page is now "published". - - $page->writeToStage('Live'); - - // ASSERT that the "draft" report has detected the page having a broken file. - // ASSERT that the "published" report has detected the page having a broken file. - - $this->isReportBroken($brokenFilesReport, true, true); - - // Correct the "draft" broken file. - - $file = File::create(); - $file->Filename = 'name.pdf'; - $file->write(); - $page->Content = str_replace('987654321', $file->ID, $page->Content); - $page->writeToStage('Stage'); - - // ASSERT that the "draft" report has NOT detected the page having a broken file. - // ASSERT that the "published" report has detected the page having a broken file, as the previous content remains "published". - - $this->isReportBroken($brokenFilesReport, false, true); - - // Make sure the change has now been "published". - - $page->writeToStage('Live'); - - // ASSERT that the "draft" report has NOT detected the page having a broken file. - // ASSERT that the "published" report has NOT detected the page having a broken file. - - $this->isReportBroken($brokenFilesReport, false, false); + if(!$brokenFilesReport){ + $this->markTestSkipped('BrokenFilesReport is not an available report'); + return; } + + // ASSERT that the "draft" report has detected the page having a broken file. + // ASSERT that the "published" report has NOT detected the page having a broken file, as the page has not been "published" yet. + + $this->isReportBroken($brokenFilesReport, true, false); + + // Make sure the page is now "published". + + $page->writeToStage('Live'); + + // ASSERT that the "draft" report has detected the page having a broken file. + // ASSERT that the "published" report has detected the page having a broken file. + + $this->isReportBroken($brokenFilesReport, true, true); + + // Correct the "draft" broken file. + + $file = File::create(); + $file->Filename = 'name.pdf'; + $file->write(); + $page->Content = str_replace('987654321', $file->ID, $page->Content); + $page->writeToStage('Stage'); + + // ASSERT that the "draft" report has NOT detected the page having a broken file. + // ASSERT that the "published" report has detected the page having a broken file, as the previous content remains "published". + + $this->isReportBroken($brokenFilesReport, false, true); + + // Make sure the change has now been "published". + + $page->writeToStage('Live'); + + // ASSERT that the "draft" report has NOT detected the page having a broken file. + // ASSERT that the "published" report has NOT detected the page having a broken file. + + $this->isReportBroken($brokenFilesReport, false, false); } /** @@ -209,53 +209,54 @@ class CmsReportsTest extends SapphireTest { $reports = SS_Report::get_reports(); $brokenVirtualPagesReport = null; foreach($reports as $report) { - if($report instanceof SideReport_BrokenVirtualPages) { + if($report instanceof BrokenVirtualPagesReport) { $brokenVirtualPagesReport = $report; break; } } // Determine that the report exists, otherwise it has been excluded. - - if($brokenVirtualPagesReport) { - - // ASSERT that the "draft" report has detected the page having a broken link. - // ASSERT that the "published" report has NOT detected the page having a broken link, as the page has not been "published" yet. - - $this->isReportBroken($brokenVirtualPagesReport, true, false); - - // Make sure the page is now "published". - - $page->writeToStage('Live'); - - // ASSERT that the "draft" report has detected the page having a broken link. - // ASSERT that the "published" report has detected the page having a broken link. - - $this->isReportBroken($brokenVirtualPagesReport, true, true); - - // Correct the "draft" broken link. - - $contentPage = Page::create(); - $contentPage->Content = 'This is some content.'; - $contentPage->writeToStage('Stage'); - $contentPage->writeToStage('Live'); - $page->CopyContentFromID = $contentPage->ID; - $page->writeToStage('Stage'); - - // ASSERT that the "draft" report has NOT detected the page having a broken link. - // ASSERT that the "published" report has detected the page having a broken link, as the previous content remains "published". - - $this->isReportBroken($brokenVirtualPagesReport, false, true); - - // Make sure the change has now been "published". - - $page->writeToStage('Live'); - - // ASSERT that the "draft" report has NOT detected the page having a broken link. - // ASSERT that the "published" report has NOT detected the page having a broken link. - - $this->isReportBroken($brokenVirtualPagesReport, false, false); + if(!$brokenVirtualPagesReport){ + $this->markTestSkipped('BrokenFilesReport is not an available report'); + return; } + + // ASSERT that the "draft" report has detected the page having a broken link. + // ASSERT that the "published" report has NOT detected the page having a broken link, as the page has not been "published" yet. + + $this->isReportBroken($brokenVirtualPagesReport, true, false); + + // Make sure the page is now "published". + + $page->writeToStage('Live'); + + // ASSERT that the "draft" report has detected the page having a broken link. + // ASSERT that the "published" report has detected the page having a broken link. + + $this->isReportBroken($brokenVirtualPagesReport, true, true); + + // Correct the "draft" broken link. + + $contentPage = Page::create(); + $contentPage->Content = 'This is some content.'; + $contentPage->writeToStage('Stage'); + $contentPage->writeToStage('Live'); + $page->CopyContentFromID = $contentPage->ID; + $page->writeToStage('Stage'); + + // ASSERT that the "draft" report has NOT detected the page having a broken link. + // ASSERT that the "published" report has detected the page having a broken link, as the previous content remains "published". + + $this->isReportBroken($brokenVirtualPagesReport, false, true); + + // Make sure the change has now been "published". + + $page->writeToStage('Live'); + + // ASSERT that the "draft" report has NOT detected the page having a broken link. + // ASSERT that the "published" report has NOT detected the page having a broken link. + + $this->isReportBroken($brokenVirtualPagesReport, false, false); } /** @@ -276,53 +277,54 @@ class CmsReportsTest extends SapphireTest { $reports = SS_Report::get_reports(); $brokenRedirectorPagesReport = null; foreach($reports as $report) { - if($report instanceof SideReport_BrokenRedirectorPages) { + if($report instanceof BrokenRedirectorPagesReport) { $brokenRedirectorPagesReport = $report; break; } } // Determine that the report exists, otherwise it has been excluded. - - if($brokenRedirectorPagesReport) { - - // ASSERT that the "draft" report has detected the page having a broken link. - // ASSERT that the "published" report has NOT detected the page having a broken link, as the page has not been "published" yet. - - $this->isReportBroken($brokenRedirectorPagesReport, true, false); - - // Make sure the page is now "published". - - $page->writeToStage('Live'); - - // ASSERT that the "draft" report has detected the page having a broken link. - // ASSERT that the "published" report has detected the page having a broken link. - - $this->isReportBroken($brokenRedirectorPagesReport, true, true); - - // Correct the "draft" broken link. - - $contentPage = Page::create(); - $contentPage->Content = 'This is some content.'; - $contentPage->writeToStage('Stage'); - $contentPage->writeToStage('Live'); - $page->LinkToID = $contentPage->ID; - $page->writeToStage('Stage'); - - // ASSERT that the "draft" report has NOT detected the page having a broken link. - // ASSERT that the "published" report has detected the page having a broken link, as the previous content remains "published". - - $this->isReportBroken($brokenRedirectorPagesReport, false, true); - - // Make sure the change has now been "published". - - $page->writeToStage('Live'); - - // ASSERT that the "draft" report has NOT detected the page having a broken link. - // ASSERT that the "published" report has NOT detected the page having a broken link. - - $this->isReportBroken($brokenRedirectorPagesReport, false, false); + if(!$brokenRedirectorPagesReport){ + $this->markTestSkipped('BrokenRedirectorPagesReport is not an available report'); + return; } + + // ASSERT that the "draft" report has detected the page having a broken link. + // ASSERT that the "published" report has NOT detected the page having a broken link, as the page has not been "published" yet. + + $this->isReportBroken($brokenRedirectorPagesReport, true, false); + + // Make sure the page is now "published". + + $page->writeToStage('Live'); + + // ASSERT that the "draft" report has detected the page having a broken link. + // ASSERT that the "published" report has detected the page having a broken link. + + $this->isReportBroken($brokenRedirectorPagesReport, true, true); + + // Correct the "draft" broken link. + + $contentPage = Page::create(); + $contentPage->Content = 'This is some content.'; + $contentPage->writeToStage('Stage'); + $contentPage->writeToStage('Live'); + $page->LinkToID = $contentPage->ID; + $page->writeToStage('Stage'); + + // ASSERT that the "draft" report has NOT detected the page having a broken link. + // ASSERT that the "published" report has detected the page having a broken link, as the previous content remains "published". + + $this->isReportBroken($brokenRedirectorPagesReport, false, true); + + // Make sure the change has now been "published". + + $page->writeToStage('Live'); + + // ASSERT that the "draft" report has NOT detected the page having a broken link. + // ASSERT that the "published" report has NOT detected the page having a broken link. + + $this->isReportBroken($brokenRedirectorPagesReport, false, false); } } From 0cabc22a57b4ba591633bdfc5d9162822d0294a2 Mon Sep 17 00:00:00 2001 From: Damian Mooyman Date: Wed, 11 Nov 2015 09:14:39 +1300 Subject: [PATCH 04/21] Revert 7e2838c81c5a83bcaedd0ca782f7ee9afc909001 --- code/model/SiteTree.php | 9 --------- 1 file changed, 9 deletions(-) diff --git a/code/model/SiteTree.php b/code/model/SiteTree.php index c793c63c..abe79040 100755 --- a/code/model/SiteTree.php +++ b/code/model/SiteTree.php @@ -2534,8 +2534,6 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid * @return self */ public function doRestoreToStage() { - $this->invokeWithExtensions('onBeforeRestoreToStage', $this); - // Ensure that the parent page is restored, otherwise restore to root if($this->isParentArchived()) { $this->ParentID = 0; @@ -2564,8 +2562,6 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid } Versioned::reading_stage($oldStage); - - $this->invokeWithExtensions('onAfterRestoreToStage', $this); return $result; } @@ -2576,15 +2572,10 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid * @return bool Success */ public function doArchive() { - $this->invokeWithExtensions('onBeforeArchive', $this); - if($this->doUnpublish()) { $this->delete(); - $this->invokeWithExtensions('onAfterArchive', $this); - return true; } - return false; } From ebed1d22e52cbf80b82cbeb446841780e1ca342f Mon Sep 17 00:00:00 2001 From: Damian Mooyman Date: Wed, 11 Nov 2015 16:07:20 +1300 Subject: [PATCH 05/21] Update translations --- javascript/lang/de.js | 12 ++++++------ javascript/lang/src/de.js | 12 ++++++------ lang/cs.yml | 12 ------------ lang/da.yml | 12 ++++++++++++ lang/de.yml | 12 ++++++++++++ lang/es.yml | 12 ++++++++++++ lang/fr.yml | 1 + lang/lt.yml | 10 +++++----- lang/nl.yml | 2 ++ lang/sk.yml | 12 ------------ 10 files changed, 56 insertions(+), 41 deletions(-) diff --git a/javascript/lang/de.js b/javascript/lang/de.js index 5ee6e5fe..9556e382 100644 --- a/javascript/lang/de.js +++ b/javascript/lang/de.js @@ -36,13 +36,13 @@ if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') { "Tree.ThisPageOnly": "Nur diese Seite", "Tree.ThisPageAndSubpages": "Diese Seite und Unterseiten", "Tree.ShowAsList": "Kinder als LIste zeigen", - "CMSMain.ConfirmRestoreFromLive": "Are you sure you want to revert draft to when the page was last published?", + "CMSMain.ConfirmRestoreFromLive": "Sind Sie sicher, dass Sie den Entwurf zu der zuletzt veröffentlichten Version zurücksetzen wollen?", "CMSMain.RollbackToVersion": "Wollen Sie wirklich Version #%s dieser Seite wiederherstellen?", - "CMSMain.Archive": "Are you sure you want to archive this page and all of its children pages?\n\nThis page and all of its children will be unpublished and sent to the archive.", - "CMSMain.Restore": "Are you sure you want to restore this page from archive?", - "CMSMain.RestoreToRoot": "Are you sure you want to restore this page from archive?\n\nBecause the parent page is not available this will be restored to the top level.", - "CMSMain.Unpublish": "Are you sure you want to remove your page from the published site?\n\nThis page will still be available in the sitetree as draft.", - "CMSMain.DeleteFromDraft": "Are you sure you want to remove your page from the draft site?\n\nThis page will remain on the published site.", + "CMSMain.Archive": "Sind Sie sicher, dass Sie diese Seite und alle Unterseiten archivieren wollen?\n\nBei dieser Seite und allen Unterseiten wird die Veröffentlichung zurückgenommen und sie werden ins Archiv verschoben.", + "CMSMain.Restore": "Sind Sie sicher, dass Sie diese Seite aus dem Archiv wiederherstellen wollen?", + "CMSMain.RestoreToRoot": "Sind Sie sicher, dass Sie diese Seite aus dem Archiv wiederherstellen wollen?\n\nWeil die ehemalige Elternseite nicht verfügbar ist wird diese Seite auf oberster Ebene wiederhergestellt.", + "CMSMain.Unpublish": "Sind Sie sicher, dass Sie diese Seite von der veröffentlichten Seite entfernen wollen?\n\nDie Seite wird weiterhin im Seitenbaum als Entwurf bleiben.", + "CMSMain.DeleteFromDraft": "Sind Sie sicher, dass Sie diese Seite aus den Entwürfen entfernen wollen?\n\nDiese Seite wird weiterhin veröffentlicht bleiben.", "URLSEGMENT.Edit": "Bearbeiten", "URLSEGMENT.OK": "OK", "URLSEGMENT.Cancel": "Abbrechen", diff --git a/javascript/lang/src/de.js b/javascript/lang/src/de.js index 9f39c806..fb27ca9d 100644 --- a/javascript/lang/src/de.js +++ b/javascript/lang/src/de.js @@ -31,13 +31,13 @@ "Tree.ThisPageOnly": "Nur diese Seite", "Tree.ThisPageAndSubpages": "Diese Seite und Unterseiten", "Tree.ShowAsList": "Kinder als LIste zeigen", - "CMSMain.ConfirmRestoreFromLive": "Are you sure you want to revert draft to when the page was last published?", + "CMSMain.ConfirmRestoreFromLive": "Sind Sie sicher, dass Sie den Entwurf zu der zuletzt veröffentlichten Version zurücksetzen wollen?", "CMSMain.RollbackToVersion": "Wollen Sie wirklich Version #%s dieser Seite wiederherstellen?", - "CMSMain.Archive": "Are you sure you want to archive this page and all of its children pages?\n\nThis page and all of its children will be unpublished and sent to the archive.", - "CMSMain.Restore": "Are you sure you want to restore this page from archive?", - "CMSMain.RestoreToRoot": "Are you sure you want to restore this page from archive?\n\nBecause the parent page is not available this will be restored to the top level.", - "CMSMain.Unpublish": "Are you sure you want to remove your page from the published site?\n\nThis page will still be available in the sitetree as draft.", - "CMSMain.DeleteFromDraft": "Are you sure you want to remove your page from the draft site?\n\nThis page will remain on the published site.", + "CMSMain.Archive": "Sind Sie sicher, dass Sie diese Seite und alle Unterseiten archivieren wollen?\n\nBei dieser Seite und allen Unterseiten wird die Veröffentlichung zurückgenommen und sie werden ins Archiv verschoben.", + "CMSMain.Restore": "Sind Sie sicher, dass Sie diese Seite aus dem Archiv wiederherstellen wollen?", + "CMSMain.RestoreToRoot": "Sind Sie sicher, dass Sie diese Seite aus dem Archiv wiederherstellen wollen?\n\nWeil die ehemalige Elternseite nicht verfügbar ist wird diese Seite auf oberster Ebene wiederhergestellt.", + "CMSMain.Unpublish": "Sind Sie sicher, dass Sie diese Seite von der veröffentlichten Seite entfernen wollen?\n\nDie Seite wird weiterhin im Seitenbaum als Entwurf bleiben.", + "CMSMain.DeleteFromDraft": "Sind Sie sicher, dass Sie diese Seite aus den Entwürfen entfernen wollen?\n\nDiese Seite wird weiterhin veröffentlicht bleiben.", "URLSEGMENT.Edit": "Bearbeiten", "URLSEGMENT.OK": "OK", "URLSEGMENT.Cancel": "Abbrechen", diff --git a/lang/cs.yml b/lang/cs.yml index e3e48c39..8a070f91 100644 --- a/lang/cs.yml +++ b/lang/cs.yml @@ -71,8 +71,6 @@ cs: PUBLISH_PAGES: Zveřejnit RESTORE: Obnovit RESTORED_PAGES: 'Obnoveno %d stránek' - UNPUBLISHED_PAGES: 'Nezveřejněných %d stránek' - UNPUBLISH_PAGES: Nezveřejnit CMSFileAddController: MENUTITLE: Soubory CMSMain: @@ -109,7 +107,6 @@ cs: REMOVED: 'Smazáno ''{title}''{description} z webu' REMOVEDPAGE: 'Odstraněno ''{title}'' ze zveřejněného webu' REMOVEDPAGEFROMDRAFT: 'Odstraněno ''%s'' z konceptu webu' - RESTORE: Obnovit RESTORED: 'Obnoveno ''{title}'' úspěšně' RESTORE_DESC: 'Obnovit archivovanou verzi na koncept' RESTORE_TO_ROOT: 'Obnovit koncept do nejvyšší úrovně' @@ -171,16 +168,8 @@ cs: FILTERLABELTEXT: Obsah CMSSettingsController: MENUTITLE: Možnosti - CMSSiteTreeFilter_ChangedPages: - Title: 'Změnené stránky' - CMSSiteTreeFilter_DeletedPages: - Title: 'Všechny stránky, včetně odstraněných' CMSSiteTreeFilter_Search: Title: 'Všechny stránky' - CMSSiteTreeFilter_StatusDeletedPages: - Title: 'Smazané stránky' - CMSSiteTreeFilter_StatusDraftPages: - Title: 'Koncept nezveřejněných stránek' CMSSiteTreeFilter_StatusRemovedFromDraftPages: Title: 'Živé, ale odstraněno z konceptu' ContentControl: @@ -298,7 +287,6 @@ cs: SilverStripeNavigator: ARCHIVED: Archivováno SilverStripeNavigatorLink: - ShareInstructions: 'K sdílení této stránky, odkaz zkopírujte a vložte dolů..' ShareLink: 'Sdílet odkaz' SilverStripeNavigatorLinkl: CloseLink: Zavřít diff --git a/lang/da.yml b/lang/da.yml index 3abd9b0b..41f90f83 100644 --- a/lang/da.yml +++ b/lang/da.yml @@ -4,7 +4,10 @@ da: ActionAdd: 'Tilføj mappe' AppCategoryArchive: Arkiv AppCategoryAudio: Lyd + AppCategoryDocument: Dokument + AppCategoryFlash: Flash AppCategoryImage: Billeder + AppCategoryVideo: Video BackToFolder: 'Tilbage til mappen' CREATED: Dato CurrentFolderOnly: 'Begræns til den nuværende mappe' @@ -24,6 +27,8 @@ da: Upload: Overfør AssetAdmin_DeleteBatchAction: TITLE: 'Slet mapper' + AssetAdmin_Tools: + FILTER: Filter AssetTableField: BACKLINKCOUNT: 'Brugt på:' PAGES: side(r) @@ -53,6 +58,8 @@ da: CMSAddPageController: Title: 'Tilføj side' CMSBatchActions: + ARCHIVE: Arkiv + ARCHIVED_PAGES: 'Arkiverede %d sider' DELETED_DRAFT_PAGES: 'Slettede %d sider fra kladdesiden, %d fejl' DELETED_PAGES: 'Slettede %d sider fra udgivet webside, %d fejl' DELETE_DRAFT_PAGES: 'Slet fra kladder' @@ -64,6 +71,7 @@ da: CMSMain: ACCESS: 'Adgang til ''{title}'' sektionen' ACCESS_HELP: 'Tillad visning af den sektion, som indeholder sidetræet og indhold. Visnings- og redigeringstilladelser kan håndteres gennem sidespecifikke rullemenuer, såvel som de enkelte "Inholdstilladelser".' + ARCHIVE: Arkiv AddNew: 'Tilføj ny side' AddNewButton: 'Tilføj ny' ChoosePageParentMode: 'Vælg hvor denne side skal oprettes' @@ -152,6 +160,7 @@ da: LOGIN: Log ind LOGOUT: 'Log ud' NOTLOGGEDIN: 'Ikke logget ind' + PUBLISHED: Udgivet PUBLISHEDSITE: 'Udgivet side' Password: Adgangskode UnableDeleteInstall: 'Var ikke i stand til at slette installationsfilerne. Slet venligst filerne herunder manuelt.' @@ -240,6 +249,9 @@ da: APPEARSVIRTUALPAGES: 'Dette indhold er også på de virtuelle sider i {title}sektionerne' BUTTONCANCELDRAFT: 'Annuller ændringer i kladden ' BUTTONCANCELDRAFTDESC: 'Slet kladden og benyt istedet den nuværende side' + BUTTONPUBLISHED: Udgivet + BUTTONSAVED: Gemt + BUTTONSAVEPUBLISH: 'Gem & udgiv' BUTTONUNPUBLISH: Annuller udgivelse BUTTONUNPUBLISHDESC: 'Fjern denne side fra det udgivne websted' Comments: Kommentarer diff --git a/lang/de.yml b/lang/de.yml index 03a760a9..55254aa9 100644 --- a/lang/de.yml +++ b/lang/de.yml @@ -71,6 +71,8 @@ de: PUBLISH_PAGES: Veröffentlichen RESTORE: Wiederherstellen RESTORED_PAGES: '%d Seiten wiederhergestellt' + UNPUBLISHED_PAGES: 'Veröffentlichung von %d Seiten zurückgenommen' + UNPUBLISH_PAGES: Veröffentlichung zurücknehmen CMSFileAddController: MENUTITLE: Dateien CMSMain: @@ -107,6 +109,7 @@ de: REMOVED: 'Lösche ''{title}''{description} von Live Umgebung' REMOVEDPAGE: '''{title}'' wurde von der veröffentlichten Site entfernt' REMOVEDPAGEFROMDRAFT: 'Lösche ''%s'' von der Entwurfs-Site' + RESTORE: 'Entwurf wiederherstellen' RESTORED: '''{title}'' wurde wiederhergestellt' RESTORE_DESC: 'Entwurf aus archivierter Version wiederherstellen' RESTORE_TO_ROOT: 'Entwurf in oberster Ebene wiederherstellen' @@ -168,8 +171,16 @@ de: FILTERLABELTEXT: Inhalt CMSSettingsController: MENUTITLE: Einstellungen + CMSSiteTreeFilter_ChangedPages: + Title: 'Geänderte Seiten' + CMSSiteTreeFilter_DeletedPages: + Title: 'Alle Seiten, auch archivierte' CMSSiteTreeFilter_Search: Title: 'Alle Seiten' + CMSSiteTreeFilter_StatusDeletedPages: + Title: 'Archivierte Seiten' + CMSSiteTreeFilter_StatusDraftPages: + Title: 'Entwürfe' CMSSiteTreeFilter_StatusRemovedFromDraftPages: Title: 'Veröffentlicht aber aus Entwurf entfernt' ContentControl: @@ -287,6 +298,7 @@ de: SilverStripeNavigator: ARCHIVED: Archiviert SilverStripeNavigatorLink: + ShareInstructions: 'Kopieren Sie den untenstehenden Link um ihn zu teilen.' ShareLink: 'Link teilen' SilverStripeNavigatorLinkl: CloseLink: schließen diff --git a/lang/es.yml b/lang/es.yml index 172eb177..fa91c309 100644 --- a/lang/es.yml +++ b/lang/es.yml @@ -71,6 +71,8 @@ es: PUBLISH_PAGES: Publicar RESTORE: Restaurar RESTORED_PAGES: '%d páginas restauradas' + UNPUBLISHED_PAGES: 'Retiradas %d páginas' + UNPUBLISH_PAGES: Retirar CMSFileAddController: MENUTITLE: Archivos CMSMain: @@ -107,6 +109,7 @@ es: REMOVED: 'Removido' REMOVEDPAGE: 'Eliminado ''{title}'' del sitio publicado' REMOVEDPAGEFROMDRAFT: 'Borrado ''%s''%s desde el sitio no publicado' + RESTORE: 'Recuperar borrador' RESTORED: 'Restablecido ''{title}'' correctamente' RESTORE_DESC: 'Recuperar la versión archivada del borrador' RESTORE_TO_ROOT: 'Recuperar borrador al nivel superior' @@ -168,8 +171,16 @@ es: FILTERLABELTEXT: Filtrar CMSSettingsController: MENUTITLE: Ajustes + CMSSiteTreeFilter_ChangedPages: + Title: 'Páginas modificadas' + CMSSiteTreeFilter_DeletedPages: + Title: 'Todas las páginas, incluídas las archivadas' CMSSiteTreeFilter_Search: Title: 'Todas las paginas' + CMSSiteTreeFilter_StatusDeletedPages: + Title: 'Páginas archivadas' + CMSSiteTreeFilter_StatusDraftPages: + Title: 'Borradores' CMSSiteTreeFilter_StatusRemovedFromDraftPages: Title: 'Publicada, pero eliminada de los borradores' ContentControl: @@ -287,6 +298,7 @@ es: SilverStripeNavigator: ARCHIVED: Archivado SilverStripeNavigatorLink: + ShareInstructions: 'Para compartir esta página, copia y pega el link a continuación' ShareLink: 'Compartir enlace' SilverStripeNavigatorLinkl: CloseLink: Cerrar diff --git a/lang/fr.yml b/lang/fr.yml index f659ba17..5a3cd8b2 100644 --- a/lang/fr.yml +++ b/lang/fr.yml @@ -280,6 +280,7 @@ fr: SilverStripeNavigator: ARCHIVED: Archivé SilverStripeNavigatorLink: + ShareInstructions: 'Pour partager cette page, copiez et collez le lien ci-dessous.' ShareLink: 'Partager le lien' SilverStripeNavigatorLinkl: CloseLink: Fermer diff --git a/lang/lt.yml b/lang/lt.yml index a44c258b..32ad3003 100644 --- a/lang/lt.yml +++ b/lang/lt.yml @@ -109,7 +109,7 @@ lt: REMOVED: 'Iš publikuojamos svetainės ištrintas ''{title}''{description}' REMOVEDPAGE: 'Iš publikuojamos svetainės pašalintas ''{title}''' REMOVEDPAGEFROMDRAFT: '''%s'' pašalintas iš juodraštinės svetainės' - RESTORE: Atstatyti + RESTORE: 'Atstatyti' RESTORED: '''{title}'' atstatytas sėkmingai' RESTORE_DESC: 'Atstatyti suarchyvuotą versiją kaip juodraštinį puslapį' RESTORE_TO_ROOT: 'Atstatyti juodraštį aukščiausiame lygyje' @@ -172,15 +172,15 @@ lt: CMSSettingsController: MENUTITLE: Nustatymai CMSSiteTreeFilter_ChangedPages: - Title: 'Ištrinti puslapiai' + Title: 'Pakeisti puslapiai' CMSSiteTreeFilter_DeletedPages: Title: 'Visi puslapiai, kartu su suarchyvuotais' CMSSiteTreeFilter_Search: Title: 'Visi puslapiai' CMSSiteTreeFilter_StatusDeletedPages: - Title: 'Ištrinti puslapiai' + Title: 'Suarchyvuoti puslapiai' CMSSiteTreeFilter_StatusDraftPages: - Title: 'Juodraštiniai nepublikuoti puslapiai' + Title: 'Juodraštiniai puslapiai' CMSSiteTreeFilter_StatusRemovedFromDraftPages: Title: 'Publikuotas, bet pašalintas iš juodraščių' ContentControl: @@ -298,7 +298,7 @@ lt: SilverStripeNavigator: ARCHIVED: Archyvuota SilverStripeNavigatorLink: - ShareInstructions: 'Norėdami pasidalinti šiuo puslapiu, nukopijuokite ir įdėkite nuorodą žemiau.' + ShareInstructions: 'Norėdami pasidalinti šiuo puslapiu, nusikopijuokite žemiau esančią nuorodą.' ShareLink: 'Dalintis nuoroda' SilverStripeNavigatorLinkl: CloseLink: Uždaryti diff --git a/lang/nl.yml b/lang/nl.yml index e2e97fe5..433e9685 100644 --- a/lang/nl.yml +++ b/lang/nl.yml @@ -61,6 +61,7 @@ nl: CMSAddPageController: Title: 'Pagina toevoegen' CMSBatchActions: + ARCHIVE: Archief DELETED_DRAFT_PAGES: '%d pagina''s van de concept-site verwijderd, %d mislukt' DELETED_PAGES: '%d pagina''s van de gepubliceerde site verwijderd, %d mislukt' DELETE_DRAFT_PAGES: 'Verwijder van concept site' @@ -72,6 +73,7 @@ nl: CMSMain: ACCESS: 'Toegang tot het ''{title}'' gedeelte' ACCESS_HELP: 'Bevoegdheid om paginastructuur en inhoud te bekijken. Bekijk- en bewerkingstoestemmingen kunnen worden toegekend met pagina-specifieke menu''s en het aparte "Inhoudsmachtigingen".' + ARCHIVE: Archief AddNew: 'Voeg nieuwe pagina toe' AddNewButton: 'Nieuw' AddPageRestriction: 'Opmerking: Sommige paginatypes zijn niet toegestaan ​​voor deze selectie' diff --git a/lang/sk.yml b/lang/sk.yml index 96b46606..f0c46050 100644 --- a/lang/sk.yml +++ b/lang/sk.yml @@ -71,8 +71,6 @@ sk: PUBLISH_PAGES: Zverejniť RESTORE: Obnoviť RESTORED_PAGES: 'Obnovených %d stránok' - UNPUBLISHED_PAGES: 'Nezverejnených %d stránok' - UNPUBLISH_PAGES: Nezverejniť CMSFileAddController: MENUTITLE: Súbory CMSMain: @@ -109,7 +107,6 @@ sk: REMOVED: 'Smazané ''{title}''{description} z webu' REMOVEDPAGE: 'Smazané ''{title}'' z verejného webu' REMOVEDPAGEFROMDRAFT: 'Odstránené ''%s'' z konceptu webu' - RESTORE: Obnoviť RESTORED: 'Obnovené ''{title}'' úspešne' RESTORE_DESC: 'Obnoviť archivovanú verziu na koncept' RESTORE_TO_ROOT: 'Obnoviť koncept na najvyšiu úroveň' @@ -171,16 +168,8 @@ sk: FILTERLABELTEXT: Obsah CMSSettingsController: MENUTITLE: Nastavenia - CMSSiteTreeFilter_ChangedPages: - Title: 'Zmenené stránky' - CMSSiteTreeFilter_DeletedPages: - Title: 'Všetky stránky, vrátane vymazaných' CMSSiteTreeFilter_Search: Title: 'Všechny stránky' - CMSSiteTreeFilter_StatusDeletedPages: - Title: 'Zmazané stránky' - CMSSiteTreeFilter_StatusDraftPages: - Title: 'Koncept nezverejnených stránok' CMSSiteTreeFilter_StatusRemovedFromDraftPages: Title: 'Živé, ale odstránené z konceptu' ContentControl: @@ -298,7 +287,6 @@ sk: SilverStripeNavigator: ARCHIVED: Archivované SilverStripeNavigatorLink: - ShareInstructions: 'Pre zdielanie tejto stránky, skopírujte a vložte odkaz nižšie.' ShareLink: 'Zdieľať odkaz' SilverStripeNavigatorLinkl: CloseLink: Zavrieť From 7a5b30a05de62a85bb2c4ddbbe6c7148407bade7 Mon Sep 17 00:00:00 2001 From: Ingo Schommer Date: Tue, 10 Nov 2015 15:30:15 +1300 Subject: [PATCH 06/21] Extension hooks for "restore to stage" and "archive" --- code/model/SiteTree.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/code/model/SiteTree.php b/code/model/SiteTree.php index abe79040..c793c63c 100755 --- a/code/model/SiteTree.php +++ b/code/model/SiteTree.php @@ -2534,6 +2534,8 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid * @return self */ public function doRestoreToStage() { + $this->invokeWithExtensions('onBeforeRestoreToStage', $this); + // Ensure that the parent page is restored, otherwise restore to root if($this->isParentArchived()) { $this->ParentID = 0; @@ -2562,6 +2564,8 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid } Versioned::reading_stage($oldStage); + + $this->invokeWithExtensions('onAfterRestoreToStage', $this); return $result; } @@ -2572,10 +2576,15 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid * @return bool Success */ public function doArchive() { + $this->invokeWithExtensions('onBeforeArchive', $this); + if($this->doUnpublish()) { $this->delete(); + $this->invokeWithExtensions('onAfterArchive', $this); + return true; } + return false; } From a40c8e034af4e145b788d7561b092fe8f09c7c58 Mon Sep 17 00:00:00 2001 From: Damian Mooyman Date: Mon, 16 Nov 2015 16:01:51 +1300 Subject: [PATCH 07/21] Update translations --- lang/de.yml | 6 +++--- lang/es.yml | 12 ------------ lang/fr.yml | 1 - lang/lt.yml | 8 ++++---- 4 files changed, 7 insertions(+), 20 deletions(-) diff --git a/lang/de.yml b/lang/de.yml index 55254aa9..50ab69a8 100644 --- a/lang/de.yml +++ b/lang/de.yml @@ -109,7 +109,7 @@ de: REMOVED: 'Lösche ''{title}''{description} von Live Umgebung' REMOVEDPAGE: '''{title}'' wurde von der veröffentlichten Site entfernt' REMOVEDPAGEFROMDRAFT: 'Lösche ''%s'' von der Entwurfs-Site' - RESTORE: 'Entwurf wiederherstellen' + RESTORE: Wiederherstellen RESTORED: '''{title}'' wurde wiederhergestellt' RESTORE_DESC: 'Entwurf aus archivierter Version wiederherstellen' RESTORE_TO_ROOT: 'Entwurf in oberster Ebene wiederherstellen' @@ -174,11 +174,11 @@ de: CMSSiteTreeFilter_ChangedPages: Title: 'Geänderte Seiten' CMSSiteTreeFilter_DeletedPages: - Title: 'Alle Seiten, auch archivierte' + Title: 'Alle Seiten, auch gelöschte' CMSSiteTreeFilter_Search: Title: 'Alle Seiten' CMSSiteTreeFilter_StatusDeletedPages: - Title: 'Archivierte Seiten' + Title: 'Gelöschte Seiten' CMSSiteTreeFilter_StatusDraftPages: Title: 'Entwürfe' CMSSiteTreeFilter_StatusRemovedFromDraftPages: diff --git a/lang/es.yml b/lang/es.yml index fa91c309..172eb177 100644 --- a/lang/es.yml +++ b/lang/es.yml @@ -71,8 +71,6 @@ es: PUBLISH_PAGES: Publicar RESTORE: Restaurar RESTORED_PAGES: '%d páginas restauradas' - UNPUBLISHED_PAGES: 'Retiradas %d páginas' - UNPUBLISH_PAGES: Retirar CMSFileAddController: MENUTITLE: Archivos CMSMain: @@ -109,7 +107,6 @@ es: REMOVED: 'Removido' REMOVEDPAGE: 'Eliminado ''{title}'' del sitio publicado' REMOVEDPAGEFROMDRAFT: 'Borrado ''%s''%s desde el sitio no publicado' - RESTORE: 'Recuperar borrador' RESTORED: 'Restablecido ''{title}'' correctamente' RESTORE_DESC: 'Recuperar la versión archivada del borrador' RESTORE_TO_ROOT: 'Recuperar borrador al nivel superior' @@ -171,16 +168,8 @@ es: FILTERLABELTEXT: Filtrar CMSSettingsController: MENUTITLE: Ajustes - CMSSiteTreeFilter_ChangedPages: - Title: 'Páginas modificadas' - CMSSiteTreeFilter_DeletedPages: - Title: 'Todas las páginas, incluídas las archivadas' CMSSiteTreeFilter_Search: Title: 'Todas las paginas' - CMSSiteTreeFilter_StatusDeletedPages: - Title: 'Páginas archivadas' - CMSSiteTreeFilter_StatusDraftPages: - Title: 'Borradores' CMSSiteTreeFilter_StatusRemovedFromDraftPages: Title: 'Publicada, pero eliminada de los borradores' ContentControl: @@ -298,7 +287,6 @@ es: SilverStripeNavigator: ARCHIVED: Archivado SilverStripeNavigatorLink: - ShareInstructions: 'Para compartir esta página, copia y pega el link a continuación' ShareLink: 'Compartir enlace' SilverStripeNavigatorLinkl: CloseLink: Cerrar diff --git a/lang/fr.yml b/lang/fr.yml index 5a3cd8b2..f659ba17 100644 --- a/lang/fr.yml +++ b/lang/fr.yml @@ -280,7 +280,6 @@ fr: SilverStripeNavigator: ARCHIVED: Archivé SilverStripeNavigatorLink: - ShareInstructions: 'Pour partager cette page, copiez et collez le lien ci-dessous.' ShareLink: 'Partager le lien' SilverStripeNavigatorLinkl: CloseLink: Fermer diff --git a/lang/lt.yml b/lang/lt.yml index 32ad3003..65638757 100644 --- a/lang/lt.yml +++ b/lang/lt.yml @@ -109,7 +109,7 @@ lt: REMOVED: 'Iš publikuojamos svetainės ištrintas ''{title}''{description}' REMOVEDPAGE: 'Iš publikuojamos svetainės pašalintas ''{title}''' REMOVEDPAGEFROMDRAFT: '''%s'' pašalintas iš juodraštinės svetainės' - RESTORE: 'Atstatyti' + RESTORE: Atstatyti RESTORED: '''{title}'' atstatytas sėkmingai' RESTORE_DESC: 'Atstatyti suarchyvuotą versiją kaip juodraštinį puslapį' RESTORE_TO_ROOT: 'Atstatyti juodraštį aukščiausiame lygyje' @@ -174,11 +174,11 @@ lt: CMSSiteTreeFilter_ChangedPages: Title: 'Pakeisti puslapiai' CMSSiteTreeFilter_DeletedPages: - Title: 'Visi puslapiai, kartu su suarchyvuotais' + Title: 'Visi puslapiai, taip pat ir archyvuoti' CMSSiteTreeFilter_Search: Title: 'Visi puslapiai' CMSSiteTreeFilter_StatusDeletedPages: - Title: 'Suarchyvuoti puslapiai' + Title: 'Archyvuoti puslapiai' CMSSiteTreeFilter_StatusDraftPages: Title: 'Juodraštiniai puslapiai' CMSSiteTreeFilter_StatusRemovedFromDraftPages: @@ -298,7 +298,7 @@ lt: SilverStripeNavigator: ARCHIVED: Archyvuota SilverStripeNavigatorLink: - ShareInstructions: 'Norėdami pasidalinti šiuo puslapiu, nusikopijuokite žemiau esančią nuorodą.' + ShareInstructions: 'Norėdami pasidalinti šiuo puslapiu, kopijuokite žemiau esančią nuorodą.' ShareLink: 'Dalintis nuoroda' SilverStripeNavigatorLinkl: CloseLink: Uždaryti From 97e90b8ebd8078bb60ecea66bdd3761380f93a61 Mon Sep 17 00:00:00 2001 From: Loz Calver Date: Tue, 17 Nov 2015 16:22:49 +0000 Subject: [PATCH 08/21] FIX: RedirectorPage toggles not working (fixes #1328) --- javascript/RedirectorPage.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/javascript/RedirectorPage.js b/javascript/RedirectorPage.js index b1c14c7b..f0e8de3a 100644 --- a/javascript/RedirectorPage.js +++ b/javascript/RedirectorPage.js @@ -14,11 +14,11 @@ }, toggle: function() { if($(this).attr('value') == 'Internal') { - $('#ExternalURL').hide(); - $('#LinkToID').show(); + $('#Form_EditForm_ExternalURL_Holder').hide(); + $('#Form_EditForm_LinkToID_Holder').show(); } else { - $('#ExternalURL').show(); - $('#LinkToID').hide(); + $('#Form_EditForm_ExternalURL_Holder').show(); + $('#Form_EditForm_LinkToID_Holder').hide(); } } }); From 2983d823d1eef293ef11aac9e01336e23ed52b59 Mon Sep 17 00:00:00 2001 From: Loz Calver Date: Mon, 16 Nov 2015 15:36:52 +0000 Subject: [PATCH 09/21] FIX: Ensure VirtualPage forwards request/response data to virtual controllers (fixes #1329) --- code/model/VirtualPage.php | 15 ++++++++++----- tests/model/VirtualPageTest.php | 25 ++++++++++++++++++++++++- 2 files changed, 34 insertions(+), 6 deletions(-) diff --git a/code/model/VirtualPage.php b/code/model/VirtualPage.php index ac9a9151..d456e738 100644 --- a/code/model/VirtualPage.php +++ b/code/model/VirtualPage.php @@ -563,12 +563,17 @@ class VirtualPage_Controller extends Page_Controller { } catch (Exception $e) { // Hack... detect exception type. We really should use exception subclasses. // if the exception isn't a 'no method' error, rethrow it - if ($e->getCode() !== 2175) throw $e; + if ($e->getCode() !== 2175) { + throw $e; + } + $original = $this->copyContentFrom(); - $originalClass = get_class($original); - if ($originalClass == 'SiteTree') $name = 'ContentController'; - else $name = $originalClass."_Controller"; - $controller = new $name($this->dataRecord->copyContentFrom()); + $controller = ModelAsController::controller_for($original); + + // Ensure request/response data is available on virtual controller + $controller->setRequest($this->getRequest()); + $controller->response = $this->response; // @todo - replace with getter/setter in 3.3 + return call_user_func_array(array($controller, $method), $args); } } diff --git a/tests/model/VirtualPageTest.php b/tests/model/VirtualPageTest.php index 1a764a84..6e8fafaa 100644 --- a/tests/model/VirtualPageTest.php +++ b/tests/model/VirtualPageTest.php @@ -1,7 +1,9 @@ logInWithPermission("ADMIN"); + $this->origInitiallyCopiedFields = VirtualPage::config()->initially_copied_fields; Config::inst()->remove('VirtualPage', 'initially_copied_fields'); VirtualPage::config()->initially_copied_fields = array_merge( @@ -644,6 +649,24 @@ class VirtualPageTest extends SapphireTest { if(!$isDetected) $this->fail("Shouldn't be allowed to write a VirtualPage that links to a disallowed child"); } + + public function testVirtualPagePointingToRedirectorPage() { + if (!class_exists('RedirectorPage')) { + $this->markTestSkipped('RedirectorPage required'); + } + + $rp = new RedirectorPage(array('ExternalURL' => 'http://google.com', 'RedirectionType' => 'External')); + $rp->write(); + $rp->doPublish(); + + $vp = new VirtualPage(array('URLSegment' => 'vptest', 'CopyContentFromID' => $rp->ID)); + $vp->write(); + $vp->doPublish(); + + $response = $this->get($vp->Link()); + $this->assertEquals(301, $response->getStatusCode()); + $this->assertEquals('http://google.com', $response->getHeader('Location')); + } } class VirtualPageTest_ClassA extends Page implements TestOnly { From b624eb98f1d1ff36811a3294ad29b31a50683d60 Mon Sep 17 00:00:00 2001 From: Loz Calver Date: Tue, 17 Nov 2015 16:11:01 +0000 Subject: [PATCH 10/21] FIX: Setting target for unwritten VirtualPage breaks write MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The VirtualPage inherits the ID of the target page, which is undesirable if the VirtualPage hasn’t been written yet - it will trick write() into thinking that the record already exists in the database --- code/model/VirtualPage.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/model/VirtualPage.php b/code/model/VirtualPage.php index d456e738..89d1510f 100644 --- a/code/model/VirtualPage.php +++ b/code/model/VirtualPage.php @@ -413,7 +413,7 @@ class VirtualPage extends Page { public function __get($field) { if(parent::hasMethod($funcName = "get$field")) { return $this->$funcName(); - } else if(parent::hasField($field)) { + } else if(parent::hasField($field) || ($field === 'ID' && !$this->exists())) { return $this->getField($field); } else { return $this->copyContentFrom()->$field; From 5353ac5315703240540c9cde0f5c8eeb5571bc19 Mon Sep 17 00:00:00 2001 From: Damian Mooyman Date: Wed, 2 Dec 2015 17:37:35 +1300 Subject: [PATCH 11/21] API Refactor versioned security into core module --- code/controllers/ContentController.php | 27 ------------------- code/model/SiteTree.php | 37 -------------------------- 2 files changed, 64 deletions(-) diff --git a/code/controllers/ContentController.php b/code/controllers/ContentController.php index 11e22cd7..4c787cdd 100755 --- a/code/controllers/ContentController.php +++ b/code/controllers/ContentController.php @@ -110,33 +110,6 @@ class ContentController extends Controller { return Security::permissionFailure($this); } - // Draft/Archive security check - only CMS users should be able to look at stage/archived content - if( - $this->URLSegment != 'Security' - && !Session::get('unsecuredDraftSite') - && ( - Versioned::current_archived_date() - || (Versioned::current_stage() && Versioned::current_stage() != 'Live') - ) - ) { - if(!$this->dataRecord->canView()) { - Session::clear('currentStage'); - Session::clear('archiveDate'); - - $permissionMessage = sprintf( - _t( - "ContentController.DRAFT_SITE_ACCESS_RESTRICTION", - 'You must log in with your CMS password in order to view the draft or archived content. '. - 'Click here to go back to the published site.' - ), - Controller::join_links($this->Link(), "?stage=Live") - ); - - return Security::permissionFailure($this, $permissionMessage); - } - - } - // Use theme from the site config if(($config = SiteConfig::current_site_config()) && $config->Theme) { Config::inst()->update('SSViewer', 'theme', $config->Theme); diff --git a/code/model/SiteTree.php b/code/model/SiteTree.php index c793c63c..429e9542 100755 --- a/code/model/SiteTree.php +++ b/code/model/SiteTree.php @@ -903,23 +903,6 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid // admin override if($member && Permission::checkMember($member, array("ADMIN", "SITETREE_VIEW_ALL"))) return true; - - // make sure we were loaded off an allowed stage - - // Were we definitely loaded directly off Live during our query? - $fromLive = true; - - foreach (array('mode' => 'stage', 'stage' => 'live') as $param => $match) { - $fromLive = $fromLive && strtolower((string)$this->getSourceQueryParam("Versioned.$param")) == $match; - } - - if(!$fromLive - && !Session::get('unsecuredDraftSite') - && !Permission::checkMember($member, array('CMS_ACCESS_LeftAndMain', 'CMS_ACCESS_CMSMain', 'VIEW_DRAFT_CONTENT'))) { - // If we weren't definitely loaded from live, and we can't view non-live content, we need to - // check to make sure this version is the live version and so can be viewed - if (Versioned::get_versionnumber_by_stage($this->class, 'Live', $this->ID) != $this->Version) return false; - } // Orphaned pages (in the current stage) are unavailable, except for admins via the CMS if($this->isOrphaned()) return false; @@ -952,26 +935,6 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid return false; } - - /** - * Determines canView permissions for the latest version of this Page on a specific stage (see {@link Versioned}). - * Usually the stage is read from {@link Versioned::current_stage()}. - * - * @todo Implement in CMS UI. - * - * @param string $stage - * @param Member $member - * @return bool - */ - public function canViewStage($stage = 'Live', $member = null) { - $oldMode = Versioned::get_reading_mode(); - Versioned::reading_stage($stage); - - $versionFromStage = DataObject::get($this->class)->byID($this->ID); - - Versioned::set_reading_mode($oldMode); - return $versionFromStage ? $versionFromStage->canView($member) : false; - } /** * This function should return true if the current user can delete this page. It can be overloaded to customise the From 68dd8cf79836133ce1452f617ab7f30d05d44889 Mon Sep 17 00:00:00 2001 From: Mateusz Date: Tue, 8 Dec 2015 08:47:50 +0100 Subject: [PATCH 12/21] Added avoiding unhandled exception from Translatable extension in ContentController --- code/controllers/ContentController.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/code/controllers/ContentController.php b/code/controllers/ContentController.php index 11e22cd7..80da9181 100755 --- a/code/controllers/ContentController.php +++ b/code/controllers/ContentController.php @@ -182,8 +182,9 @@ class ContentController extends Controller { // look for a translation and redirect (see #5001). Only happens on the last child in // a potentially nested URL chain. if(class_exists('Translatable')) { - if($request->getVar('locale') && $this->dataRecord && $this->dataRecord->Locale != $request->getVar('locale')) { - $translation = $this->dataRecord->getTranslation($request->getVar('locale')); + $locale = $request->getVar('locale'); + if($locale && i18n::validate_locale($locale) && $this->dataRecord && $this->dataRecord->Locale != $locale) { + $translation = $this->dataRecord->getTranslation($locale); if($translation) { $response = new SS_HTTPResponse(); $response->redirect($translation->Link(), 301); From 54ae002d193d7677ff7a99527b37cbb6faa09343 Mon Sep 17 00:00:00 2001 From: Damian Mooyman Date: Tue, 22 Dec 2015 17:46:07 +1300 Subject: [PATCH 13/21] BUG FIx merge regressions in versioned tests --- .../controller/ContentControllerPermissionsTest.php | 12 ++++++++---- tests/controller/ContentControllerTest.php | 8 +++++++- tests/model/SiteTreePermissionsTest.php | 6 +++++- 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/tests/controller/ContentControllerPermissionsTest.php b/tests/controller/ContentControllerPermissionsTest.php index 189da4af..1c86945a 100644 --- a/tests/controller/ContentControllerPermissionsTest.php +++ b/tests/controller/ContentControllerPermissionsTest.php @@ -21,12 +21,16 @@ class ContentControllerPermissionsTest extends FunctionalTest { $page->write(); $response = $this->get('/testpage'); - $this->assertEquals($response->getStatusCode(), 200, 'Doesnt require login for implicit live stage'); + $this->assertEquals($response->getStatusCode(), 200, "Doesn't require login for implicit live stage"); $response = $this->get('/testpage/?stage=Live'); - $this->assertEquals($response->getStatusCode(), 200, 'Doesnt require login for explicit live stage'); - - $response = $this->get('/testpage/?stage=Stage'); + $this->assertEquals($response->getStatusCode(), 200, "Doesn't require login for explicit live stage"); + + try { + $response = $this->get('/testpage/?stage=Stage'); + } catch(SS_HTTPResponse_Exception $responseException) { + $response = $responseException->getResponse(); + } // should redirect to login $this->assertEquals($response->getStatusCode(), 302, 'Redirects to login page when not logged in for draft stage'); $this->assertContains( diff --git a/tests/controller/ContentControllerTest.php b/tests/controller/ContentControllerTest.php index a39b34f6..ccddf314 100755 --- a/tests/controller/ContentControllerTest.php +++ b/tests/controller/ContentControllerTest.php @@ -96,7 +96,13 @@ class ContentControllerTest extends FunctionalTest { // test when user does not have permission, should get login form $this->logInWithPermission('EDITOR'); - $this->assertEquals('403', $this->get('/contact/?stage=Stage')->getstatusCode()); + try { + $response = $this->get('/contact/?stage=Stage'); + } catch(SS_HTTPResponse_Exception $responseException) { + $response = $responseException->getResponse(); + } + + $this->assertEquals('403', $response->getstatusCode()); // test when user does have permission, should show page title and header ok. diff --git a/tests/model/SiteTreePermissionsTest.php b/tests/model/SiteTreePermissionsTest.php index c890ade3..1f786978 100644 --- a/tests/model/SiteTreePermissionsTest.php +++ b/tests/model/SiteTreePermissionsTest.php @@ -40,7 +40,11 @@ class SiteTreePermissionsTest extends FunctionalTest { $this->assertEquals($response->getStatusCode(), '404'); // should be prompted for a login - $response = $this->get($page->URLSegment . '?stage=Stage'); + try { + $response = $this->get($page->URLSegment . '?stage=Stage'); + } catch(SS_HTTPResponse_Exception $responseException) { + $response = $responseException->getResponse(); + } $this->assertEquals($response->getStatusCode(), '302'); $this->assertContains( Config::inst()->get('Security', 'login_url'), From d387d4f3111aea29c4599eb24f109d2901cc8cc9 Mon Sep 17 00:00:00 2001 From: Damian Mooyman Date: Wed, 23 Dec 2015 13:22:38 +1300 Subject: [PATCH 14/21] Update translations --- javascript/lang/fi.js | 14 ++++++------ javascript/lang/src/fi.js | 14 ++++++------ lang/ar.yml | 9 -------- lang/bg.yml | 8 ------- lang/cs.yml | 29 +++++++++++++++++------- lang/da.yml | 9 -------- lang/de.yml | 24 +++++++++----------- lang/el.yml | 7 ------ lang/en.yml | 14 +++++------- lang/eo.yml | 10 --------- lang/es.yml | 10 --------- lang/et_EE.yml | 9 -------- lang/fa_IR.yml | 47 +++++++++++++++++++++++++++++++++------ lang/fi.yml | 41 ++++++++++++++++++++++++++-------- lang/fr.yml | 10 --------- lang/gl_ES.yml | 5 ----- lang/he_IL.yml | 9 -------- lang/hu.yml | 7 ------ lang/id.yml | 9 -------- lang/it.yml | 10 --------- lang/ja.yml | 9 -------- lang/ko.yml | 9 -------- lang/lt.yml | 19 ++++++++-------- lang/mi.yml | 9 -------- lang/nb.yml | 10 --------- lang/nl.yml | 9 -------- lang/pl.yml | 9 -------- lang/pt.yml | 9 -------- lang/ro.yml | 9 -------- lang/ru.yml | 9 -------- lang/sk.yml | 37 ++++++++++++++++++++---------- lang/sl.yml | 2 -- lang/sr.yml | 9 -------- lang/sr_RS@latin.yml | 9 -------- lang/sv.yml | 10 --------- lang/th.yml | 8 ------- lang/tr.yml | 3 --- lang/uk.yml | 5 ----- lang/zh.yml | 9 -------- 39 files changed, 158 insertions(+), 330 deletions(-) diff --git a/javascript/lang/fi.js b/javascript/lang/fi.js index 8a97e3b3..805e7b35 100644 --- a/javascript/lang/fi.js +++ b/javascript/lang/fi.js @@ -36,16 +36,16 @@ if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') { "Tree.ThisPageOnly": "Vain tämä sivu", "Tree.ThisPageAndSubpages": "Tämä sivu ja alasivut", "Tree.ShowAsList": "Näytä alasivut listana", - "CMSMain.ConfirmRestoreFromLive": "Are you sure you want to revert draft to when the page was last published?", + "CMSMain.ConfirmRestoreFromLive": "Haluatko varmasti palata luonnoksen viimeisimpään julkaistuun versioon?", "CMSMain.RollbackToVersion": "Haluatko varmasti palauttaa #%s version tästä sivusta?", - "CMSMain.Archive": "Are you sure you want to archive this page and all of its children pages?\n\nThis page and all of its children will be unpublished and sent to the archive.", - "CMSMain.Restore": "Are you sure you want to restore this page from archive?", - "CMSMain.RestoreToRoot": "Are you sure you want to restore this page from archive?\n\nBecause the parent page is not available this will be restored to the top level.", - "CMSMain.Unpublish": "Are you sure you want to remove your page from the published site?\n\nThis page will still be available in the sitetree as draft.", - "CMSMain.DeleteFromDraft": "Are you sure you want to remove your page from the draft site?\n\nThis page will remain on the published site.", + "CMSMain.Archive": "Haluatko varmasti arkistoida tämän sivun ja kaikki sen alasivut?\n\nTämä sivu ja kaikki alasivut poistetaan julkaisusta sekä siirretään arkistoon.", + "CMSMain.Restore": "Haluatko varmasti palauttaa sivun arkistosta?", + "CMSMain.RestoreToRoot": "Haluatko varmasti palauttaa tämän sivun arkistosta?\n\nKoska isäntäsivua ei ole saatavilla, sivu palautetaan päätasolle.", + "CMSMain.Unpublish": "Haluatko varmasti poistaa tämän sivun julkaisusta?\n\nTämä sivu on vielä saatavilla vedoksena rakennepuusta.", + "CMSMain.DeleteFromDraft": "Haluatko varmasti poistaa tämän sivun luonnoksista?\n\nTämä sivu pysyy julkaistuna.", "URLSEGMENT.Edit": "Muokkaa", "URLSEGMENT.OK": "OK", "URLSEGMENT.Cancel": "Peruuta", - "URLSEGMENT.UpdateURL": "Update URL" + "URLSEGMENT.UpdateURL": "Päivitä URL" }); } \ No newline at end of file diff --git a/javascript/lang/src/fi.js b/javascript/lang/src/fi.js index c23965e4..62bdc182 100644 --- a/javascript/lang/src/fi.js +++ b/javascript/lang/src/fi.js @@ -31,15 +31,15 @@ "Tree.ThisPageOnly": "Vain tämä sivu", "Tree.ThisPageAndSubpages": "Tämä sivu ja alasivut", "Tree.ShowAsList": "Näytä alasivut listana", - "CMSMain.ConfirmRestoreFromLive": "Are you sure you want to revert draft to when the page was last published?", + "CMSMain.ConfirmRestoreFromLive": "Haluatko varmasti palata luonnoksen viimeisimpään julkaistuun versioon?", "CMSMain.RollbackToVersion": "Haluatko varmasti palauttaa #%s version tästä sivusta?", - "CMSMain.Archive": "Are you sure you want to archive this page and all of its children pages?\n\nThis page and all of its children will be unpublished and sent to the archive.", - "CMSMain.Restore": "Are you sure you want to restore this page from archive?", - "CMSMain.RestoreToRoot": "Are you sure you want to restore this page from archive?\n\nBecause the parent page is not available this will be restored to the top level.", - "CMSMain.Unpublish": "Are you sure you want to remove your page from the published site?\n\nThis page will still be available in the sitetree as draft.", - "CMSMain.DeleteFromDraft": "Are you sure you want to remove your page from the draft site?\n\nThis page will remain on the published site.", + "CMSMain.Archive": "Haluatko varmasti arkistoida tämän sivun ja kaikki sen alasivut?\n\nTämä sivu ja kaikki alasivut poistetaan julkaisusta sekä siirretään arkistoon.", + "CMSMain.Restore": "Haluatko varmasti palauttaa sivun arkistosta?", + "CMSMain.RestoreToRoot": "Haluatko varmasti palauttaa tämän sivun arkistosta?\n\nKoska isäntäsivua ei ole saatavilla, sivu palautetaan päätasolle.", + "CMSMain.Unpublish": "Haluatko varmasti poistaa tämän sivun julkaisusta?\n\nTämä sivu on vielä saatavilla vedoksena rakennepuusta.", + "CMSMain.DeleteFromDraft": "Haluatko varmasti poistaa tämän sivun luonnoksista?\n\nTämä sivu pysyy julkaistuna.", "URLSEGMENT.Edit": "Muokkaa", "URLSEGMENT.OK": "OK", "URLSEGMENT.Cancel": "Peruuta", - "URLSEGMENT.UpdateURL": "Update URL" + "URLSEGMENT.UpdateURL": "Päivitä URL" } \ No newline at end of file diff --git a/lang/ar.yml b/lang/ar.yml index 17c4a5a1..6f023a3d 100644 --- a/lang/ar.yml +++ b/lang/ar.yml @@ -85,13 +85,10 @@ ar: DUPLICATEDWITHCHILDREN: 'تكرار ''{title}'' والتوابع بنجاح' EMAIL: البريد الإلكتروني EditTree: 'تعديل الهيكل' - ListFiltered: 'قائمة تمت تصفيتها.' MENUTITLE: 'حرر الصفحة' NEWPAGE: '{pagetype} جديد' PAGENOTEXISTS: 'هذه الصفحة غير موجودة' - PAGES: الصفحات PAGETYPEANYOPT: أي - PAGETYPEOPT: 'نوع الصفحة' PUBALLCONFIRM: 'فضلاً قم بنشر كل صفحة من صفحات الموقع' PUBALLFUN: '"نشر الجميع"خاصية ' PUBALLFUN2: "الضغط على هذا الزر يعني الذهاب لكل صفحة و نشرها. It's\nintended to be used after there have been massive edits of the content, such as when the site was\nfirst built.\n" @@ -109,10 +106,7 @@ ar: TabContent: المحتوى TabHistory: السوابق TabSettings: الإعدادات - TreeFiltered: 'الشجرة المصفاة.' - TreeFilteredClear: 'أزل المصفي' CMSMain_left_ss: - APPLY_FILTER: 'طبق عامل تصفية' RESET: إعادة الوضع الأصلي CMSPageAddController: MENUTITLE: 'أضف صفحة' @@ -144,15 +138,12 @@ ar: ListView: 'عرض القائمة' MENUTITLE: الصفحات TreeView: 'عرض الشجرة' - CMSPagesController_ContentToolbar_ss: - MULTISELECT: متعدد الاختيار CMSPagesController_Tools_ss: FILTER: مصفاة CMSSearch: FILTERDATEFROM: من FILTERDATEHEADING: موعد FILTERDATETO: إلى - FILTERLABELTEXT: المحتوى CMSSettingsController: MENUTITLE: الإعدادات CMSSiteTreeFilter_Search: diff --git a/lang/bg.yml b/lang/bg.yml index 338249d5..41ebaba5 100644 --- a/lang/bg.yml +++ b/lang/bg.yml @@ -70,10 +70,8 @@ bg: Create: Създай DELETE: 'Изтрий черновата и отиди на текущата публикувана страница' DELETEFP: Изтрии - ListFiltered: 'Филтриран списък.' MENUTITLE: 'Редактиране на страницата' PAGENOTEXISTS: 'Тази страница не съществува' - PAGES: Страници PAGETYPEANYOPT: Всички PUBALLCONFIRM: 'Публикувай всяка страница в сайта' PUBALLFUN: '"Публикувай всичко" функционалност' @@ -88,9 +86,6 @@ bg: TabContent: Съдържание TabHistory: История TabSettings: Настройки - TreeFilteredClear: 'Нулирай филтъра' - CMSMain_left_ss: - APPLY_FILTER: 'Приложи филтър' CMSPageAddController: MENUTITLE: 'Добави страница' ParentMode_child: 'Под друга страница' @@ -110,13 +105,10 @@ bg: WHEN: Когато CMSPageSettingsController: MENUTITLE: 'Редактиране на страницата' - CMSPagesController_ContentToolbar_ss: - MULTISELECT: Избиране на няколко CMSPagesController_Tools_ss: FILTER: Филтър CMSSearch: FILTERDATEFROM: От - FILTERLABELTEXT: Съдържание CMSSiteTreeFilter_Search: Title: 'Всички страници' ContentControl: diff --git a/lang/cs.yml b/lang/cs.yml index 8a070f91..991502b0 100644 --- a/lang/cs.yml +++ b/lang/cs.yml @@ -71,6 +71,8 @@ cs: PUBLISH_PAGES: Zveřejnit RESTORE: Obnovit RESTORED_PAGES: 'Obnoveno %d stránek' + UNPUBLISHED_PAGES: 'Nezveřejněných %d stránek' + UNPUBLISH_PAGES: Nezveřejňovat CMSFileAddController: MENUTITLE: Soubory CMSMain: @@ -92,11 +94,11 @@ cs: DUPLICATEDWITHCHILDREN: 'Duplikováno ''{title}'' a potomci úspěšně' EMAIL: E-mail EditTree: 'Upravit strom' - ListFiltered: 'Filtrovaný seznam.' + ListFiltered: 'Zobrazení výsledků vyhledávání.' MENUTITLE: 'Upravit stránku' NEWPAGE: 'Nová {pagetype}' PAGENOTEXISTS: 'Tato stránka neexistuje' - PAGES: Stránky + PAGES: 'Stav stránky' PAGETYPEANYOPT: Jakékoliv PAGETYPEOPT: 'Typ stránky' PUBALLCONFIRM: 'Prosím zveřejněte veškeré stránky z úschovny' @@ -107,6 +109,7 @@ cs: REMOVED: 'Smazáno ''{title}''{description} z webu' REMOVEDPAGE: 'Odstraněno ''{title}'' ze zveřejněného webu' REMOVEDPAGEFROMDRAFT: 'Odstraněno ''%s'' z konceptu webu' + RESTORE: 'Obnovit koncept' RESTORED: 'Obnoveno ''{title}'' úspěšně' RESTORE_DESC: 'Obnovit archivovanou verzi na koncept' RESTORE_TO_ROOT: 'Obnovit koncept do nejvyšší úrovně' @@ -119,11 +122,11 @@ cs: TabContent: Obsah TabHistory: Historie TabSettings: Nastavení - TreeFiltered: 'Filtrovaný strom.' - TreeFilteredClear: 'Vyčistit filtr' + TreeFiltered: 'Zobrazení výsledků vyhledávání.' + TreeFilteredClear: Vyčistit CMSMain_left_ss: - APPLY_FILTER: 'Použít filtr' - CLEAR_FILTER: 'Vyčistit filtr' + APPLY_FILTER: Hledat + CLEAR_FILTER: Vyčistit RESET: Resetovat CMSPageAddController: MENUTITLE: 'Přidat stránku' @@ -156,7 +159,7 @@ cs: MENUTITLE: Stránky TreeView: 'Pohled strom' CMSPagesController_ContentToolbar_ss: - MULTISELECT: Multi výběr + MULTISELECT: 'Dávkové akce' CMSPagesController_Tools_ss: FILTER: Filtr CMSSIteTreeFilter_PublishedPages: @@ -165,11 +168,20 @@ cs: FILTERDATEFROM: Od FILTERDATEHEADING: Datum FILTERDATETO: Do - FILTERLABELTEXT: Obsah + FILTERLABELTEXT: Hledat + PAGEFILTERDATEHEADING: 'Poslední změna' CMSSettingsController: MENUTITLE: Možnosti + CMSSiteTreeFilter_ChangedPages: + Title: 'Upravené stránky' + CMSSiteTreeFilter_DeletedPages: + Title: 'Všechny stránky, včetně archivovaných' CMSSiteTreeFilter_Search: Title: 'Všechny stránky' + CMSSiteTreeFilter_StatusDeletedPages: + Title: 'Archivované stránky' + CMSSiteTreeFilter_StatusDraftPages: + Title: 'Konceptové stránky' CMSSiteTreeFilter_StatusRemovedFromDraftPages: Title: 'Živé, ale odstraněno z konceptu' ContentControl: @@ -287,6 +299,7 @@ cs: SilverStripeNavigator: ARCHIVED: Archivováno SilverStripeNavigatorLink: + ShareInstructions: 'Pro zdílení této stránky, zkopírujte a přilepte odkaz dole.' ShareLink: 'Sdílet odkaz' SilverStripeNavigatorLinkl: CloseLink: Zavřít diff --git a/lang/da.yml b/lang/da.yml index 41f90f83..78427ff3 100644 --- a/lang/da.yml +++ b/lang/da.yml @@ -81,13 +81,10 @@ da: DELETEFP: Slet DESCREMOVED: 'og {count} efterkommere' EditTree: 'Rediger sidetræ' - ListFiltered: 'Filtreret liste.' MENUTITLE: 'Rediger side' NEWPAGE: 'Ny {pagetype}' PAGENOTEXISTS: 'Denne side eksisterer ikke' - PAGES: Sider PAGETYPEANYOPT: Enhver - PAGETYPEOPT: 'Sidetype' PUBALLCONFIRM: 'Udgiv alle sider på sitet. Kopierer indhold fra kladde til offentlig' PUBALLFUN: '"Udgiv alle" funktionalitet' PUBALLFUN2: "Hvis du trykker på denne knap, svarer det til at gå til hver enkel side og vælge udgiv. Det er hensigten at denne funktion benyttes når der er blevet lavet mange ændringer på flere sider, som f.eks da websitet blev påbegyndt." @@ -101,10 +98,7 @@ da: TabContent: Indhold TabHistory: Historik TabSettings: Indstillinger - TreeFiltered: 'Filtreret sidetræ.' - TreeFilteredClear: 'Nulstil filter' CMSMain_left_ss: - APPLY_FILTER: 'Anvend filter' RESET: Nulstil CMSPageAddController: MENUTITLE: 'Tilføj side' @@ -135,15 +129,12 @@ da: ListView: 'Listevisning' MENUTITLE: Sider TreeView: 'Trævisning' - CMSPagesController_ContentToolbar_ss: - MULTISELECT: Multivalg CMSPagesController_Tools_ss: FILTER: Filtre CMSSearch: FILTERDATEFROM: Fra FILTERDATEHEADING: Dato FILTERDATETO: Til - FILTERLABELTEXT: Indhold CMSSettingsController: MENUTITLE: Indstillinger CMSSiteTreeFilter_Search: diff --git a/lang/de.yml b/lang/de.yml index 50ab69a8..5cbd65bd 100644 --- a/lang/de.yml +++ b/lang/de.yml @@ -94,13 +94,11 @@ de: DUPLICATEDWITHCHILDREN: '''{title}'' und alle Unterseiten wurden erfolgreich dupliziert' EMAIL: E-Mail EditTree: 'Seitenbaum bearbeiten' - ListFiltered: 'Gefilterte Liste' MENUTITLE: 'Seite bearbeiten' NEWPAGE: 'Neue {pagetype}' PAGENOTEXISTS: 'Diese Seite existiert nicht' - PAGES: Seiten PAGETYPEANYOPT: Alle - PAGETYPEOPT: 'Seitentyp' + PAGETYPEOPT: 'Seitentyp:' PUBALLCONFIRM: 'Veröffentlicht jede Seite des Seitenbaumes und kopiert den Inhalt von Entwurf zu Live.' PUBALLFUN: '"Alle veröffentlichen"-Funktion' PUBALLFUN2: "Dieser Button bewirkt dasselbe wie auf jeder Seite \"veröffentlichen\" zu wählen. Sie sollten diese Funktion nutzen, wenn grössere Inhaltsänderungen stattgefunden haben, zum Beispiel wenn die Seite erstellt wurde." @@ -109,7 +107,7 @@ de: REMOVED: 'Lösche ''{title}''{description} von Live Umgebung' REMOVEDPAGE: '''{title}'' wurde von der veröffentlichten Site entfernt' REMOVEDPAGEFROMDRAFT: 'Lösche ''%s'' von der Entwurfs-Site' - RESTORE: Wiederherstellen + RESTORE: 'Entwurf wiederherstellen' RESTORED: '''{title}'' wurde wiederhergestellt' RESTORE_DESC: 'Entwurf aus archivierter Version wiederherstellen' RESTORE_TO_ROOT: 'Entwurf in oberster Ebene wiederherstellen' @@ -122,11 +120,10 @@ de: TabContent: Inhalt TabHistory: Historie TabSettings: Einstellungen - TreeFiltered: 'Seitenbaum gefiltert' - TreeFilteredClear: 'Filter zurücksetzen' + TreeFilteredClear: Zurücksetzen CMSMain_left_ss: - APPLY_FILTER: 'Filter anwenden' - CLEAR_FILTER: 'Filter zurücksetzen' + APPLY_FILTER: Suchen + CLEAR_FILTER: Zurücksetzen RESET: Zurücksetzen CMSPageAddController: MENUTITLE: 'Seite hinzufügen' @@ -158,27 +155,26 @@ de: ListView: 'Listenansicht' MENUTITLE: Seiten TreeView: 'Baumansicht' - CMSPagesController_ContentToolbar_ss: - MULTISELECT: Mehrfachauswahl CMSPagesController_Tools_ss: FILTER: Filter CMSSIteTreeFilter_PublishedPages: - Title: 'Nicht veröffentlichte Seiten' + Title: 'Veröffentlichte Seiten' CMSSearch: FILTERDATEFROM: Von FILTERDATEHEADING: Datum FILTERDATETO: Bis - FILTERLABELTEXT: Inhalt + FILTERLABELTEXT: Suchen + PAGEFILTERDATEHEADING: 'Zuletzt bearbeitet' CMSSettingsController: MENUTITLE: Einstellungen CMSSiteTreeFilter_ChangedPages: Title: 'Geänderte Seiten' CMSSiteTreeFilter_DeletedPages: - Title: 'Alle Seiten, auch gelöschte' + Title: 'Alle Seiten, auch archivierte' CMSSiteTreeFilter_Search: Title: 'Alle Seiten' CMSSiteTreeFilter_StatusDeletedPages: - Title: 'Gelöschte Seiten' + Title: 'Alle Seiten, auch archivierte' CMSSiteTreeFilter_StatusDraftPages: Title: 'Entwürfe' CMSSiteTreeFilter_StatusRemovedFromDraftPages: diff --git a/lang/el.yml b/lang/el.yml index 197eb7cf..09222d31 100644 --- a/lang/el.yml +++ b/lang/el.yml @@ -72,13 +72,10 @@ el: DELETEFP: Διαγραφή EMAIL: Email EditTree: 'Επεξεργασία Δένδρου' - ListFiltered: 'Φιλτραρισμένη λίστα.' MENUTITLE: 'Επεξεργασία Σελίδας' NEWPAGE: 'Νέο {pagetype}' PAGENOTEXISTS: 'Αυτή η σελίδα δεν υπάρχει' - PAGES: Σελίδες PAGETYPEANYOPT: Οποιοδήποτε - PAGETYPEOPT: 'Τύπος Σελίδας' PUBALLFUN: 'Λειτουργία "Δημοσίευση Όλων"' PUBPAGES: 'Ολοκληρώθηκε: Δημοσίευση {count} σελίδων' PageAdded: 'Η σελίδα δημιουργήθηκε με επιτυχία' @@ -86,10 +83,7 @@ el: TabContent: Περιεχόμενο TabHistory: Ιστορικό TabSettings: Ρυθμίσεις - TreeFiltered: 'Φιλτραρισμένο δένδρο.' - TreeFilteredClear: 'Καθαρισμός φίλτρου' CMSMain_left_ss: - APPLY_FILTER: 'Εφαρμογή Φίλτρου' RESET: Επαναφορά CMSPageAddController: MENUTITLE: 'Προσθήκη σελίδας' @@ -122,7 +116,6 @@ el: FILTERDATEFROM: Από FILTERDATEHEADING: Ημερομηνία FILTERDATETO: Έως - FILTERLABELTEXT: Περιεχόμενο CMSSettingsController: MENUTITLE: Ρυθμίσεις CMSSiteTreeFilter_Search: diff --git a/lang/en.yml b/lang/en.yml index d6ccec88..b95258c8 100644 --- a/lang/en.yml +++ b/lang/en.yml @@ -124,12 +124,9 @@ en: TabSettings: Settings TreeFiltered: 'Showing search results.' TreeFilteredClear: Clear - MENUTITLE: 'Edit Page' - ARCHIVE: Archive - ARCHIVEDPAGE: 'Archived page ''%s''' CMSMain_left_ss: - APPLY_FILTER: 'Search' - CLEAR_FILTER: 'Clear Filter' + APPLY_FILTER: Search + CLEAR_FILTER: Clear RESET: Reset CMSPageAddController: MENUTITLE: 'Add page' @@ -162,16 +159,17 @@ en: MENUTITLE: Pages TreeView: 'Tree View' CMSPagesController_ContentToolbar_ss: - MULTISELECT: Bulk actions + MULTISELECT: 'Batch actions' CMSPagesController_Tools_ss: FILTER: Filter CMSSIteTreeFilter_PublishedPages: Title: 'Published pages' CMSSearch: FILTERDATEFROM: From - FILTERDATEHEADING: 'Date' + FILTERDATEHEADING: Date FILTERDATETO: To - FILTERLABELTEXT: 'Search' + FILTERLABELTEXT: Search + PAGEFILTERDATEHEADING: 'Last edited' CMSSettingsController: MENUTITLE: Settings CMSSiteTreeFilter_ChangedPages: diff --git a/lang/eo.yml b/lang/eo.yml index b73eed27..70489d51 100644 --- a/lang/eo.yml +++ b/lang/eo.yml @@ -92,13 +92,10 @@ eo: DUPLICATEDWITHCHILDREN: 'Sukcese duobligis je ''{title}'' kaj idoj' EMAIL: Retpoŝto EditTree: 'Redakta arbo' - ListFiltered: 'Filtrita listo.' MENUTITLE: 'Redakti paĝon' NEWPAGE: 'Nova {pagetype}' PAGENOTEXISTS: 'Ĉi tiu paĝo ne ekzistas' - PAGES: Paĝoj PAGETYPEANYOPT: Ajna - PAGETYPEOPT: 'Tipo de paĝo' PUBALLCONFIRM: 'Bonvolu eldoni ĉiun paĝon en la retejo, kopiante enhavan stadion al la publika' PUBALLFUN: 'Funkcio "Eldoni Ĉiujn"' PUBALLFUN2: "Premi ĉi tiun butonon estas same kiel viziti al ĉiu paĝo kaj premi je \"eldoni\". La intenco estas ke oni uzu ĝin post multnombraj redaktoj de la enhavo, ekzemple kiam oni unue konstruis la retejon." @@ -119,11 +116,7 @@ eo: TabContent: Enhavo TabHistory: Historio TabSettings: Agordoj - TreeFiltered: 'Filtrita arbo.' - TreeFilteredClear: 'Vakigi filtrilon' CMSMain_left_ss: - APPLY_FILTER: 'Apliki filtrilon' - CLEAR_FILTER: 'Vakigi filtrilon' RESET: Restartigi CMSPageAddController: MENUTITLE: 'Enmeti paĝon' @@ -155,8 +148,6 @@ eo: ListView: 'Lista vido' MENUTITLE: Paĝoj TreeView: 'Arba vido' - CMSPagesController_ContentToolbar_ss: - MULTISELECT: Plurelekto CMSPagesController_Tools_ss: FILTER: Filtri CMSSIteTreeFilter_PublishedPages: @@ -165,7 +156,6 @@ eo: FILTERDATEFROM: De FILTERDATEHEADING: Dato FILTERDATETO: Al - FILTERLABELTEXT: Enhavo CMSSettingsController: MENUTITLE: Agordoj CMSSiteTreeFilter_Search: diff --git a/lang/es.yml b/lang/es.yml index 172eb177..b5b4f024 100644 --- a/lang/es.yml +++ b/lang/es.yml @@ -92,13 +92,10 @@ es: DUPLICATEDWITHCHILDREN: 'Duplicado con hijos' EMAIL: E-mail EditTree: 'Editar árbol' - ListFiltered: 'Mostrar lista' MENUTITLE: 'Editar página' NEWPAGE: 'Nuevo {pagetype}' PAGENOTEXISTS: 'Esta página no existe' - PAGES: Páginas PAGETYPEANYOPT: Cualquiera - PAGETYPEOPT: 'Tipo de Página' PUBALLCONFIRM: 'Por favor publica todas las páginas del sitio, copiando el contenido del borrador al sitio público' PUBALLFUN: 'Función "Publicar Todo"' PUBALLFUN2: "Pulsando este botón es el equivalente de ir a cada página y pulsar \"Publicar\". Está pensado para ser usado en ediciones masivas del contenido, por ejemplo cuando el sitio se construye por primera vez." @@ -119,11 +116,7 @@ es: TabContent: Contenido TabHistory: Historial TabSettings: Ajustes - TreeFiltered: 'Árbol filtrado' - TreeFilteredClear: 'Borrar filtro' CMSMain_left_ss: - APPLY_FILTER: 'Aplicar filtro' - CLEAR_FILTER: 'Limpiar filtro' RESET: Restablecer CMSPageAddController: MENUTITLE: 'Añadir página' @@ -155,8 +148,6 @@ es: ListView: 'Vista como lista' MENUTITLE: Páginas TreeView: 'Ver como árbol' - CMSPagesController_ContentToolbar_ss: - MULTISELECT: Multi-selección CMSPagesController_Tools_ss: FILTER: Filtro CMSSIteTreeFilter_PublishedPages: @@ -165,7 +156,6 @@ es: FILTERDATEFROM: De FILTERDATEHEADING: Fecha FILTERDATETO: Hasta - FILTERLABELTEXT: Filtrar CMSSettingsController: MENUTITLE: Ajustes CMSSiteTreeFilter_Search: diff --git a/lang/et_EE.yml b/lang/et_EE.yml index 6f2a63ad..d3755c05 100644 --- a/lang/et_EE.yml +++ b/lang/et_EE.yml @@ -82,13 +82,10 @@ et_EE: DESCREMOVED: 'ja {count} järglast' EMAIL: E-post EditTree: 'Redigeeri' - ListFiltered: 'Filtreeritud loend' MENUTITLE: 'Redigeeri lehte' NEWPAGE: 'Uus {pagetype}' PAGENOTEXISTS: 'Antud lehekülge ei eksisteeri' - PAGES: Lehed PAGETYPEANYOPT: Kõik - PAGETYPEOPT: 'Lehe tüüp' PUBALLCONFIRM: 'Palun avaldage iga leht selles saidis' PUBALLFUN: '"Avalda Kõik" funktsionaalsus' PUBALLFUN2: "Sellele nupule vajutamine on sama, kui käia igal lehel ja vajutada igal lehel \"Avalda\" nuppu. Nuppu on soovitatav kasutada, kui oled muutnud mitmeid lehti - see salvestab igal lehel toimunud muudatused." @@ -103,10 +100,7 @@ et_EE: TabContent: Sisu TabHistory: Ajalugu TabSettings: Seaded - TreeFiltered: 'Filtreeritud puu.' - TreeFilteredClear: 'Eemalda filtreering' CMSMain_left_ss: - APPLY_FILTER: 'Aktiveeri filter' RESET: Lähtesta CMSPageAddController: MENUTITLE: 'Lisa leht' @@ -136,15 +130,12 @@ et_EE: ListView: 'Loendivaade' MENUTITLE: Lehed TreeView: 'Puuvaade' - CMSPagesController_ContentToolbar_ss: - MULTISELECT: Mitmikvalik CMSPagesController_Tools_ss: FILTER: Filtreeri CMSSearch: FILTERDATEFROM: Alates FILTERDATEHEADING: Kuupäev FILTERDATETO: Kuni - FILTERLABELTEXT: Sisu CMSSettingsController: MENUTITLE: Seaded CMSSiteTreeFilter_Search: diff --git a/lang/fa_IR.yml b/lang/fa_IR.yml index 8541918a..effbc2d6 100644 --- a/lang/fa_IR.yml +++ b/lang/fa_IR.yml @@ -71,6 +71,8 @@ fa_IR: PUBLISH_PAGES: انتشار RESTORE: بازنشاندن RESTORED_PAGES: 'بازنشاندن %d صفحه' + UNPUBLISHED_PAGES: '%d صفحه‌ی منتشر‌نشده' + UNPUBLISH_PAGES: عدم انتشار CMSFileAddController: MENUTITLE: فایل‌ها CMSMain: @@ -88,24 +90,27 @@ fa_IR: DELETEFP: حذف کردن از منتشر شده های سایت EMAIL: پست الکترونیک EditTree: 'ویرایش درخت' - ListFiltered: 'لیست پالایش شده' + ListFiltered: 'نمایش نتایج جستجو' MENUTITLE: 'ویرایش صفحه' NEWPAGE: '{pagetype} جدید' PAGENOTEXISTS: 'این صفحه وجود ندارد' - PAGES: صفحات + PAGES: 'وضعیت صفحه' PAGETYPEANYOPT: هر PAGETYPEOPT: 'نوع صفحه' PUBALLFUN: 'عملکرد "انتشار همه"' + PageAdded: 'صفحه با موفقیت ایجاد شد' + RESTORE: 'بازنشانی پیش‌نویس' + ROLLBACK: 'بازگردانی به این نسخه' SAVE: ذخیره SAVEDRAFT: 'ذخیره پیش‌نویس' TabContent: محتوا TabHistory: تاریخچه TabSettings: تنظیمات - TreeFiltered: 'لیست درختی پالایش شده' - TreeFilteredClear: 'پاک کردن پالایش' + TreeFiltered: 'نمایش نتایج جستجو' + TreeFilteredClear: پاک‌کردن CMSMain_left_ss: - APPLY_FILTER: 'اعمال پالایش' - CLEAR_FILTER: 'پاک کردن پالایش' + APPLY_FILTER: جستجو + CLEAR_FILTER: پاک‌کردن RESET: تنظیم مجدد CMSPageAddController: MENUTITLE: 'افزودن صفحه' @@ -122,6 +127,8 @@ fa_IR: SHOWUNPUBLISHED: 'نمایش نسخه‌های منتشر نشده' SHOWVERSION: 'نمایش ویرایش' VIEW: نمایش + VIEWINGLATEST: 'در حال حاضر آخرین نسخه را مشاهده می‌کنید.' + VIEWINGVERSION: 'در حال حاضر نسخه {version} را مشاهده می‌کنید.' CMSPageHistoryController_versions_ss: AUTHOR: ناشر NOTPUBLISHED: 'منتشر نشده' @@ -143,11 +150,18 @@ fa_IR: FILTERDATEFROM: از FILTERDATEHEADING: تاریخ FILTERDATETO: تا - FILTERLABELTEXT: محتوا + FILTERLABELTEXT: جستجو + PAGEFILTERDATEHEADING: 'آخرین ویرایش' CMSSettingsController: MENUTITLE: تنظیمات + CMSSiteTreeFilter_ChangedPages: + Title: 'صفحات تغییر یافته' CMSSiteTreeFilter_Search: Title: 'تمامی صفحات' + CMSSiteTreeFilter_StatusDeletedPages: + Title: 'صفحات بایگانی شده' + CMSSiteTreeFilter_StatusDraftPages: + Title: 'صفحات پیش‌نویس' ContentController: ARCHIVEDSITE: 'نسخه پیش‌نمایش' ARCHIVEDSITEFROM: 'سایت بایگانی شده از' @@ -156,6 +170,9 @@ fa_IR: DRAFTSITE: 'سایت پیش‌نویس' Email: ای‌میل INSTALL_SUCCESS: 'نصب موفقیت‌آمیز!' + InstallFilesDeleted: 'فایل‌های نصبی با موفقیت حذف شدند.' + InstallSuccessCongratulations: 'سیلوراسترایپ با موفقیت نصب شد!' + LOGGEDINAS: 'وارد شده تحت عنوان' LOGIN: ورود LOGOUT: 'خروج' NOTLOGGEDIN: 'وارد نشده' @@ -175,9 +192,11 @@ fa_IR: 410: '410 - از دست رفت' 412: '412 - پیش شرط درست نبود' 429: '429 - درخواست‌های بسیار' + 500: '500 - خطای داخلی سرور' 502: '502 - درگاه نادرست' CODE: 'شماره ایراد' DEFAULTERRORPAGETITLE: 'برگ پیدا نشد' + DEFAULTSERVERERRORPAGECONTENT: '

با پوزش، در پردازش درخواست شما ایرادی بوجود آمد.

' DEFAULTSERVERERRORPAGETITLE: 'خطای سرور' PLURALNAME: 'صفحات خطا' SINGULARNAME: 'صفحه‌ی خطا' @@ -198,10 +217,14 @@ fa_IR: CONTENT_CATEGORY: 'دسترسی محتوا' PERMISSIONS_CATEGORY: 'مجوز دسترسی ها و وظایف' RedirectorPage: + DESCRIPTION: 'به صفحه‌ی داخلی دیگری هدایت می‌کند' + HEADER: 'این صفحه کاربران را به صفحه‌ای دیگر هدایت می‌کند' OTHERURL: 'نشانی تارگاه دیگر' + PLURALNAME: 'صفحات هدایت‌گر' REDIRECTTO: 'بازگردانی به' REDIRECTTOEXTERNAL: 'یک تارگاه دیگر' REDIRECTTOPAGE: 'یک برگ روی تارگاه شما' + SINGULARNAME: 'صفحه هدایت‌گر' YOURPAGE: 'برگ روی تارگاه شما' ReportAdmin: MENUTITLE: گزارشات @@ -248,19 +271,24 @@ fa_IR: ACCESSHEADER: 'چه کسی بتواند این صفحه را مشاهده کنید ؟' ACCESSLOGGEDIN: 'کاربران وارد شده' ACCESSONLYTHESE: 'فقط این افراد (انتخاب از لیست)' + ADDEDTODRAFTHELP: 'این صفحه تاکنون منتشر نشده است' ADDEDTODRAFTSHORT: پیش‌نویس ALLOWCOMMENTS: 'پذیرفتن نظرات در این صفحه ؟' ARCHIVEDPAGESHORT: بایگانی شده + BUTTONARCHIVEDESC: 'عدم انتشار و ارسال به بایگانی' BUTTONCANCELDRAFT: 'لغو تغییرات پیش‌نویس' BUTTONPUBLISHED: منتشر شده BUTTONSAVED: ذخیره شده BUTTONSAVEPUBLISH: 'ذخیره و انتشار' BUTTONUNPUBLISH: عدم انتشار + BUTTONUNPUBLISHDESC: 'حذف این صفحه از سایت منتشر شده' Comments: دیدگاه‌ها Content: درون مایه DEFAULTABOUTTITLE: 'درباره ما' DEFAULTCONTACTTITLE: 'تماس با ما' + DEFAULTHOMECONTENT: '

به سیلوراسترایپ خوش آمدید! این صفحه اصلی پیش فرض است. میتوانید این صفحه را با بازکردن سامانه مدیریت محتوا ویرایش نمایید.

میتوانید بهمستندات توسعه دهندگان دسترسی یابید، و یا درس های سیلوراسترایپ را آغاز نمایید.

' DEFAULTHOMETITLE: خانه + DELETEDPAGEHELP: 'صفحه دیگر منتشر شده نیست' DELETEDPAGESHORT: حذف شده DEPENDENT_NOTE: 'صفحات زیر وابسته به این صفحه هستند. شامل صفحات مجازی، انتقال دهنده و صفحاتی با محتوای لینک' DependtPageColumnLinkType: 'نوع پیوند' @@ -281,6 +309,7 @@ fa_IR: MENUTITLE: 'برچسب ناوبری' METADESC: 'توضیحات' METAEXTRA: 'متا تگ‌های اختصاصی' + MODIFIEDONDRAFTHELP: 'صفحه دارای تغییرات منتشر نشده است' MODIFIEDONDRAFTSHORT: تغییر یافته MetadataToggle: متاداده MoreOptions: 'گزینه‌های بیشتر' @@ -293,6 +322,8 @@ fa_IR: PARENTTYPE_ROOT: 'صفحه‌ی سطح بالا' PLURALNAME: صفحات REMOVEDFROMDRAFTSHORT: 'حذف شده از پیش‌نویس' + REMOVE_INSTALL_WARNING: 'هشدار: به دلایل امنیتی بایستی فایل install.php را از این سیلوراسترایپ نصب شده حذف نمایید.' + REORGANISE_DESCRIPTION: 'تغییر ساختار سایت' SHOWINMENUS: 'نمایش در منوها؟' SHOWINSEARCH: 'نمایش در جستجو ؟' SINGULARNAME: صفحه @@ -308,6 +339,7 @@ fa_IR: Visibility: پدیداری has_one_Parent: 'برگ مادر' many_many_BackLinkTracking: 'ردیابی بک‌لینک' + many_many_ImageTracking: 'ردیابی تصویر' many_many_LinkTracking: 'ردیابی پیوند' SiteTreeFileExtension: EDIT: ویرایش @@ -319,6 +351,7 @@ fa_IR: HAVEASKED: 'شما خواسته اید که درون‌مایه تارگاه ما را ببینید در' VirtualPage: CHOOSE: 'صفحه ارجاعی' + DESCRIPTION: 'نمایش محتوای صفحه ی دیگر' EditLink: ویرایش HEADER: 'این یک صفحه مجازی است' PLURALNAME: 'صفحات مجازی' diff --git a/lang/fi.yml b/lang/fi.yml index 6d1b8a73..59d9678b 100644 --- a/lang/fi.yml +++ b/lang/fi.yml @@ -61,17 +61,25 @@ fi: CMSAddPageController: Title: 'Lisää sivu' CMSBatchActions: + ARCHIVE: Arkisto + ARCHIVED_PAGES: 'Arkistoitu %d sivua' DELETED_DRAFT_PAGES: 'Poistettiin %d sivua luonnostelusivustolta, %d virhettä' DELETED_PAGES: 'Poistettiin %d sivua julkaistulta sivustolta, %d virhettä' DELETE_DRAFT_PAGES: 'Poista luonnossivustosta' DELETE_PAGES: 'Poista julkaistulta sivustolta' PUBLISHED_PAGES: 'Julkaistu %d sivua, %d epäonnistumista' PUBLISH_PAGES: Julkaise + RESTORE: Palauta + RESTORED_PAGES: 'Palautettu %d sivua' + UNPUBLISHED_PAGES: 'Julkaisemattomat %d sivua' + UNPUBLISH_PAGES: Poista näkyvistä CMSFileAddController: MENUTITLE: Tiedostot CMSMain: ACCESS: 'Pääsy ''{title}'' -osioon' ACCESS_HELP: 'Oikeuttaa näkemään osion, joka sisältää sivurakenteen ja sisällön. Katselu- ja muokkausoikeuksia voidaan käsitellä sivukohtaisten pudotusvalikoiden kautta, kuten myös erillisestä "Sisällön oikeudet"-kohdasta.' + ARCHIVE: Arkistoi + ARCHIVEDPAGE: 'Arkistoitiin sivu ''%s''' AddNew: 'Lisää uusi sivu' AddNewButton: 'Lisää uusi' AddPageRestriction: 'Huomio: Tietyt sivutyypit eivät ole sallittuja valitun sivutyypin alle.' @@ -86,13 +94,10 @@ fi: DUPLICATEDWITHCHILDREN: '''{title}'' ja alasivu monistettiin onnistuneesti' EMAIL: Sähköposti EditTree: 'Muokkaa rakennepuuta' - ListFiltered: 'Suodatettu lista.' MENUTITLE: 'Muokkaa sivua' NEWPAGE: 'Uusi {pagetype}' PAGENOTEXISTS: 'Tätä sivua ei ole olemassa' - PAGES: Sivut PAGETYPEANYOPT: Mikä tahansa - PAGETYPEOPT: 'Sivutyyppi' PUBALLCONFIRM: 'Julkaise jokainen sivu tällä sivustolla kopioiden luonnosten sisältö julkiselle sivustolle' PUBALLFUN: 'Julkaise kaikki -toiminto' PUBALLFUN2: "Painamalla tätä nappia, tekee se saman kuin kävisit painamassa joka sivulla \"julkaise\". Se on käytännöllinen, jos on tehnyt isoja muutoksia sisältöön, esim. kun sivusto luotiin." @@ -101,7 +106,11 @@ fi: REMOVED: 'Poista ''{title}''{description} näkyvältä sivustolta' REMOVEDPAGE: '''{title}'' poistettiin julkaistulta sivustolta' REMOVEDPAGEFROMDRAFT: 'Poistettu ''%s'' luonnossivustolta' + RESTORE: 'Palauta luonnos' RESTORED: '''{title}'' palautettiin onnistuneesti' + RESTORE_DESC: 'Palauta arkistoitu versio luonnokseksi' + RESTORE_TO_ROOT: 'Palauta luonnos päätasolle' + RESTORE_TO_ROOT_DESC: 'Palauta arkistoitu versio luonnoksena päätason sivuksi' ROLLBACK: 'Siirry takaisin tähän versioon.' ROLLEDBACKPUBv2: 'Palattiin takaisin julkaistuun versioon' ROLLEDBACKVERSIONv2: 'Palautettu versioon #%d.' @@ -110,10 +119,7 @@ fi: TabContent: Sisältö TabHistory: Historia TabSettings: Asetukset - TreeFiltered: 'Suodatettu hakemistopuu.' - TreeFilteredClear: 'Nollaa suodatin' CMSMain_left_ss: - APPLY_FILTER: 'Suodata' RESET: Nollaa CMSPageAddController: MENUTITLE: 'Lisää sivu' @@ -145,19 +151,28 @@ fi: ListView: 'Listanäkymä' MENUTITLE: Sivut TreeView: 'Puunäkymä' - CMSPagesController_ContentToolbar_ss: - MULTISELECT: Monivalinta CMSPagesController_Tools_ss: FILTER: Suodata + CMSSIteTreeFilter_PublishedPages: + Title: 'Julkaistut sivut' CMSSearch: FILTERDATEFROM: Alkaen FILTERDATEHEADING: Pvm FILTERDATETO: Päättyen - FILTERLABELTEXT: Sisältö CMSSettingsController: MENUTITLE: Asetukset + CMSSiteTreeFilter_ChangedPages: + Title: 'Muokatut sivut' + CMSSiteTreeFilter_DeletedPages: + Title: 'Kaikki sivut, sisältäen arkistoidut' CMSSiteTreeFilter_Search: Title: 'Kaikki sivut' + CMSSiteTreeFilter_StatusDeletedPages: + Title: 'Arkistoidut sivut' + CMSSiteTreeFilter_StatusDraftPages: + Title: 'Luonnossivut' + CMSSiteTreeFilter_StatusRemovedFromDraftPages: + Title: 'Näkyvillä, mutta poistettu luonnoksista' ContentControl: NOTEWONTBESHOWN: 'Huomaa: tätä viestiä ei näytetä vierailijoille' ContentController: @@ -273,6 +288,7 @@ fi: SilverStripeNavigator: ARCHIVED: Arkistoitu SilverStripeNavigatorLink: + ShareInstructions: 'Jaa tämä sivu kopioimalla ja liittämällä alapuolella oleva linkki' ShareLink: 'Jaa linkki' SilverStripeNavigatorLinkl: CloseLink: Sulje @@ -301,6 +317,9 @@ fi: ADDEDTODRAFTSHORT: Luonnos ALLOWCOMMENTS: 'Sallitaanko kommenttien jättö tälle sivulle?' APPEARSVIRTUALPAGES: 'Tämä sisältö on käytössä myös virtuaalisivuilla osioissa {title}' + ARCHIVEDPAGEHELP: 'Sivu poistettiin luonnoksista ja näkyviltä' + ARCHIVEDPAGESHORT: Arkistoitu + BUTTONARCHIVEDESC: 'Poista näkyviltä ja lähetä arkistoon' BUTTONCANCELDRAFT: 'Peruuta muutokset, jotka teit luonnokseen' BUTTONCANCELDRAFTDESC: 'Poista luonnoksesi ja palauta julkaistu sivu' BUTTONPUBLISHED: Julkaistu @@ -314,6 +333,7 @@ fi: DEFAULTABOUTTITLE: 'Tietoa meistä' DEFAULTCONTACTCONTENT: '

Voit täyttää tämän sivun omalla sisällölläsi tai poistaa sen ja luoda omia sivujasi.

' DEFAULTCONTACTTITLE: 'Ota yhteyttä meihin' + DEFAULTHOMECONTENT: '

Tervetuloa käyttämään SilverStripe-järjestelmää! Tämä on oletus etusivu. Voit muokata tätä sivua avaamalla ylläpidon.

Voit tutustua kehittäjädokumentaatioon, tai tutustuaSilverStripe-koulutusmateriaaliin.

' DEFAULTHOMETITLE: Koti DELETEDPAGEHELP: 'Sivu ei ole enää julkaistuna' DELETEDPAGESHORT: Poistettu @@ -384,6 +404,9 @@ fi: many_many_BackLinkTracking: 'Käänteinen seuranta' many_many_ImageTracking: 'Kuvan seuranta' many_many_LinkTracking: 'Linkin seuranta' + SiteTreeFileExtension: + BACKLINK_LIST_DESCRIPTION: 'Tämä listaus näyttää kaikki sivut, joissa tiedosto on lisätty WYSIWYG-editorin avulla.' + EDIT: Muokkaa SiteTreeURLSegmentField: EMPTY: 'Anna URL-osoite tai napsauta peruuta' HelpChars: 'Erikoismerkit muunnetaan tai poistetaan automaattisesti.' diff --git a/lang/fr.yml b/lang/fr.yml index f659ba17..8166834e 100644 --- a/lang/fr.yml +++ b/lang/fr.yml @@ -92,13 +92,10 @@ fr: DUPLICATEDWITHCHILDREN: '''{title}'' et ses enfants dupliqués avec succès' EMAIL: Email EditTree: 'Editer l''arbre' - ListFiltered: 'Liste filtrée.' MENUTITLE: 'Éditer la page' NEWPAGE: 'Nouveau {pagetype}' PAGENOTEXISTS: 'Cette page n''existe pas' - PAGES: Pages PAGETYPEANYOPT: Tous - PAGETYPEOPT: 'Type de page' PUBALLCONFIRM: 'Publier chaque page du site en copiant le contenu à partir du site brouillon s''il vous plaît' PUBALLFUN: 'Fonctionnalité "Tout Publier"' PUBALLFUN2: "Presser ce boutton fera la même chose que d'aller sur chaque page et d'appuer sur \"publier\"." @@ -116,11 +113,7 @@ fr: TabContent: Contenu TabHistory: Historique TabSettings: Paramètres - TreeFiltered: 'Arbre filtré.' - TreeFilteredClear: 'Réinitialiser le filtre.' CMSMain_left_ss: - APPLY_FILTER: 'Appliquer le filtre' - CLEAR_FILTER: 'Réinitialiser le filtre.' RESET: Réinitialiser CMSPageAddController: MENUTITLE: 'Ajouter page' @@ -152,8 +145,6 @@ fr: ListView: 'Liste' MENUTITLE: Pages TreeView: 'Arbre' - CMSPagesController_ContentToolbar_ss: - MULTISELECT: Choix multiple CMSPagesController_Tools_ss: FILTER: Filtrer CMSSIteTreeFilter_PublishedPages: @@ -162,7 +153,6 @@ fr: FILTERDATEFROM: De FILTERDATEHEADING: Date FILTERDATETO: A - FILTERLABELTEXT: Terme CMSSettingsController: MENUTITLE: Paramètres CMSSiteTreeFilter_Search: diff --git a/lang/gl_ES.yml b/lang/gl_ES.yml index 26d0efd0..ca01088a 100644 --- a/lang/gl_ES.yml +++ b/lang/gl_ES.yml @@ -65,9 +65,7 @@ gl_ES: EMAIL: Correo-e MENUTITLE: 'Editar Páxina' PAGENOTEXISTS: 'Esta páxina non existe' - PAGES: Páxinas PAGETYPEANYOPT: Ningún - PAGETYPEOPT: 'Tipo de Páxina' PUBALLCONFIRM: 'Por favor publica toda a páxina no sitio, copiando o contido a contorna de produción' PUBALLFUN: 'Funcionalidade "Publicar Todo"' PUBALLFUN2: "Premendo este botón farás o equivalente de ir a todas as páxinas e premer en \"publicar\". \nIsto está pensado para facer un uso masivo despois das edicións de contido, por exemplo \ncando o sitio foi construído por primeira vez." @@ -78,7 +76,6 @@ gl_ES: TabHistory: Historial TabSettings: Configuracións CMSMain_left_ss: - APPLY_FILTER: 'Aplicar Filtro' RESET: Reiniciar CMSPageAddController: MENUTITLE: 'Engadir páxina' @@ -106,8 +103,6 @@ gl_ES: ListView: 'Vista en Listado' MENUTITLE: Páxinas TreeView: 'Vista en Árbore' - CMSPagesController_ContentToolbar_ss: - MULTISELECT: Selección múltiple CMSPagesController_Tools_ss: FILTER: Filtro CMSSettingsController: diff --git a/lang/he_IL.yml b/lang/he_IL.yml index 3f5ec8e6..1f769dbf 100644 --- a/lang/he_IL.yml +++ b/lang/he_IL.yml @@ -82,13 +82,10 @@ he_IL: DESCREMOVED: 'ו־{count} צאצאים' EMAIL: דוא״ל EditTree: 'עריכת העץ' - ListFiltered: 'רשימה מסוננת.' MENUTITLE: 'עריכת העמוד' NEWPAGE: '{pagetype} חדש' PAGENOTEXISTS: 'עמוד זה אינו קיים במערכת' - PAGES: עמודים PAGETYPEANYOPT: כלשהם - PAGETYPEOPT: 'סוג העמוד' PUBALLCONFIRM: 'פרסום העמודים באתר, תוך העתקת כל הטיוטות לגרסה הסופית' PUBALLFUN: 'פרסום הכול' PUBALLFUN2: "לחיצה על כפתור זה מקבילה לאישור פרסום על כל העמודים באתר. הכפתור נועד לאישורים גורפים שבאו בעקבות עריכה נרחבת באתר דוגמת ההגדרות הראשוניות בעת יצירת אתר זה" @@ -102,10 +99,7 @@ he_IL: TabContent: תוכן TabHistory: היסטורייה TabSettings: הגדרות - TreeFiltered: 'עץ מסונן.' - TreeFilteredClear: 'ביטול הסינון' CMSMain_left_ss: - APPLY_FILTER: 'החלת המסנן' RESET: איפוס CMSPageAddController: MENUTITLE: 'הוספת עמוד' @@ -136,15 +130,12 @@ he_IL: ListView: 'תצוגת רשימה' MENUTITLE: עמודים TreeView: 'תצוגת עץ' - CMSPagesController_ContentToolbar_ss: - MULTISELECT: בחירה מרובה CMSPagesController_Tools_ss: FILTER: מסנן CMSSearch: FILTERDATEFROM: מ־ FILTERDATEHEADING: תאריך FILTERDATETO: עד - FILTERLABELTEXT: תוכן CMSSettingsController: MENUTITLE: הגדרות CMSSiteTreeFilter_Search: diff --git a/lang/hu.yml b/lang/hu.yml index 6a16cc73..ef5c271b 100644 --- a/lang/hu.yml +++ b/lang/hu.yml @@ -77,13 +77,10 @@ hu: DUPLICATEDWITHCHILDREN: '''{title}'' és oldalai sikeresen duplikálva' EMAIL: E-mail EditTree: 'Menüszerkeszet módosítása' - ListFiltered: 'Szűrt lista' MENUTITLE: 'Oldal szerkesztése' NEWPAGE: 'Új {pagetype}' PAGENOTEXISTS: 'Ez az oldal nem létezik.' - PAGES: Oldalak PAGETYPEANYOPT: Egyéb - PAGETYPEOPT: 'Oldal típusa' PUBALLCONFIRM: 'Minden oldal publikálása, fázistartalmak kitevése' PUBALLFUN: '"Összes publikálása" funkció' PUBALLFUN2: "Ennek a gombnak a megnyomásával ugyanazt érheted el, mintha az összes oldalon megnyomnád a publikálás gombot. Akkor célszerű használni, ha a tartalom nagy változáson ment keresztül, mint például az oldal kezdeti felépítésénél." @@ -101,9 +98,6 @@ hu: TabContent: Tartalom TabHistory: Történet TabSettings: Beállítások - TreeFilteredClear: 'Szűrő törlése' - CMSMain_left_ss: - APPLY_FILTER: 'Szűrő alkalmazása' CMSPageAddController: MENUTITLE: 'Oldal hozzáadása' ParentMode_child: 'Másik oldal alatt' @@ -140,7 +134,6 @@ hu: FILTERDATEFROM: -tól FILTERDATEHEADING: Dátum FILTERDATETO: -ig - FILTERLABELTEXT: Tartalom CMSSettingsController: MENUTITLE: Beállítások CMSSiteTreeFilter_Search: diff --git a/lang/id.yml b/lang/id.yml index 5e99ae40..21117d8e 100644 --- a/lang/id.yml +++ b/lang/id.yml @@ -90,13 +90,10 @@ id: DUPLICATEDWITHCHILDREN: '''{title}'' dan turunannya berhasil diduplikasi' EMAIL: Surel EditTree: 'Edit Struktur' - ListFiltered: 'Daftar tersaring' MENUTITLE: 'Edit Laman' NEWPAGE: '{pagetype} baru' PAGENOTEXISTS: 'Laman ini tidak ada' - PAGES: Laman PAGETYPEANYOPT: Lain - PAGETYPEOPT: 'Jenis Laman' PUBALLCONFIRM: 'Mohon terbitkan semua laman pada situs' PUBALLFUN: 'Fungsi "Terbitkan Semua"' PUBALLFUN2: "Menekan tombol ini sama dengan membuka semua laman dan menerbitkannya. Hal ini \n\t\t\t\tditujukan untuk dilakukan setelah ada banyak pengeditan konten, misalnya saat situs pertama kali \n\t\t\t\tdiinstal." @@ -117,10 +114,7 @@ id: TabContent: Konten TabHistory: Sejarah TabSettings: Pengaturan - TreeFiltered: 'Struktur tersaring.' - TreeFilteredClear: 'Bersihkan saring' CMSMain_left_ss: - APPLY_FILTER: 'Terapkan Saring' RESET: Reset CMSPageAddController: MENUTITLE: 'Tambah laman' @@ -152,15 +146,12 @@ id: ListView: 'Tampilan daftar' MENUTITLE: Laman TreeView: 'Tampilan Struktur' - CMSPagesController_ContentToolbar_ss: - MULTISELECT: Multi-pilihan CMSPagesController_Tools_ss: FILTER: Saring CMSSearch: FILTERDATEFROM: Dari FILTERDATEHEADING: Tanggal FILTERDATETO: Ke - FILTERLABELTEXT: Konten CMSSettingsController: MENUTITLE: Pengaturan CMSSiteTreeFilter_Search: diff --git a/lang/it.yml b/lang/it.yml index b857f42b..8ef087b4 100644 --- a/lang/it.yml +++ b/lang/it.yml @@ -92,13 +92,10 @@ it: DUPLICATEDWITHCHILDREN: '''{title}'' e figlie duplicate con successo' EMAIL: Email EditTree: 'Modifica albero' - ListFiltered: 'Lista filtrata.' MENUTITLE: 'Modifica pagina' NEWPAGE: 'Nuova {pagetype}' PAGENOTEXISTS: 'Questa pagina non esiste' - PAGES: Pagine PAGETYPEANYOPT: Qualsiasi - PAGETYPEOPT: 'Tipo di pagina' PUBALLCONFIRM: 'Per favore pubblica ogni singola pagina nel sito, copiando i contenuti da ''bozza'' a ''pubblicato''.' PUBALLFUN: 'Funzione "Pubblica tutto"' PUBALLFUN2: "Cliccare questo bottone equivale ad accedere a tutte le pagine e cliccare 'pubblica'. Tale bottone è inteso per essere utilizzato dopo aver apportato modifiche di massa ai contenuti, come nella prima pubblicazione del sito." @@ -119,11 +116,7 @@ it: TabContent: Contenuto TabHistory: Archivio TabSettings: Impostazioni - TreeFiltered: 'Albero filtrato.' - TreeFilteredClear: 'Azzera filtro' CMSMain_left_ss: - APPLY_FILTER: 'Applica filtro' - CLEAR_FILTER: 'Azzera filtro' RESET: Azzera CMSPageAddController: MENUTITLE: 'Aggiungi pagina' @@ -155,8 +148,6 @@ it: ListView: 'Visualizzazione a lista' MENUTITLE: Pagine TreeView: 'Visualizzazione a albero' - CMSPagesController_ContentToolbar_ss: - MULTISELECT: Selezione multipla CMSPagesController_Tools_ss: FILTER: Filtra CMSSIteTreeFilter_PublishedPages: @@ -165,7 +156,6 @@ it: FILTERDATEFROM: Da FILTERDATEHEADING: Data FILTERDATETO: A - FILTERLABELTEXT: Contenuto CMSSettingsController: MENUTITLE: Impostazioni CMSSiteTreeFilter_Search: diff --git a/lang/ja.yml b/lang/ja.yml index 935c5680..cef9df1d 100644 --- a/lang/ja.yml +++ b/lang/ja.yml @@ -85,13 +85,10 @@ ja: DUPLICATEDWITHCHILDREN: '''{title}'' と子の複製が完了しました' EMAIL: Eメール EditTree: 'ツリーを編集' - ListFiltered: 'フィルタリングされたリスト' MENUTITLE: 'ページを編集' NEWPAGE: '新しい {pagetype}' PAGENOTEXISTS: 'このページは存在しません' - PAGES: ページ PAGETYPEANYOPT: 何でも - PAGETYPEOPT: 'ページの種類' PUBALLCONFIRM: 'コンテンツのステージをコピーして配信するために、サイト内のすべてのページを公開してください' PUBALLFUN: '"すべてを公開" 機能' PUBALLFUN2: "このボタンを押すことはすべてのページへ移動して\"公開\"を押すことと同じです。この機能は、サイトをはじめて作成した時など多くのコンテンツの編集がある場合に利用されることを想定されています。" @@ -109,10 +106,7 @@ ja: TabContent: コンテンツ TabHistory: 履歴 TabSettings: 設定 - TreeFiltered: 'フィルタリングされたツリー' - TreeFilteredClear: 'フィルタを解除' CMSMain_left_ss: - APPLY_FILTER: 'フィルタを適用' RESET: リセット CMSPageAddController: MENUTITLE: 'ページを追加' @@ -144,15 +138,12 @@ ja: ListView: '一覧表示' MENUTITLE: ページ TreeView: 'ツリー表示' - CMSPagesController_ContentToolbar_ss: - MULTISELECT: 複数選択 CMSPagesController_Tools_ss: FILTER: フィルタ CMSSearch: FILTERDATEFROM: 開始日 FILTERDATEHEADING: 日付 FILTERDATETO: 終了日 - FILTERLABELTEXT: コンテンツ CMSSettingsController: MENUTITLE: 設定 CMSSiteTreeFilter_Search: diff --git a/lang/ko.yml b/lang/ko.yml index 6c0fd002..3d278398 100644 --- a/lang/ko.yml +++ b/lang/ko.yml @@ -86,13 +86,10 @@ ko: DUPLICATEDWITHCHILDREN: '''{title}'' 와 그 하위에대한 복제가 완료되었습니다' EMAIL: 이메일 EditTree: '트리를 편집' - ListFiltered: '필터링된 목록' MENUTITLE: '페이지 편집' NEWPAGE: '새로운 {pagetype}' PAGENOTEXISTS: '이 페이지는 존재하지 않습니다' - PAGES: 페이지 PAGETYPEANYOPT: 아무거나 - PAGETYPEOPT: '페이지 유형' PUBALLCONFIRM: '콘텐츠의 스테이지를 복사하고 전달하기 위해 사이트의 모든 페이지를 공개합니다' PUBALLFUN: ' "모두 공개"기능' PUBALLFUN2: "이 버튼을 누르면 모든 페이지로 이동하고 \"공개\"를 눌러도 됩니다. 이 기능은 사이트를 처음 만들 때 등 많은 컨텐츠를 편집하는 경우에 이용될 것같습니다." @@ -110,10 +107,7 @@ ko: TabContent: 컨텐츠 TabHistory: 기록 TabSettings: 설정 - TreeFiltered: '필터링된 트리' - TreeFilteredClear: '필터 제거' CMSMain_left_ss: - APPLY_FILTER: '필터링' RESET: 리셋 CMSPageAddController: MENUTITLE: '페이지 추가' @@ -145,15 +139,12 @@ ko: ListView: '목록보기' MENUTITLE: 페이지 TreeView: '트리보기' - CMSPagesController_ContentToolbar_ss: - MULTISELECT: 복수선택 CMSPagesController_Tools_ss: FILTER: 필터 CMSSearch: FILTERDATEFROM: 시작일 FILTERDATEHEADING: 날짜 FILTERDATETO: 종료일 - FILTERLABELTEXT: 컨텐츠 CMSSettingsController: MENUTITLE: 설정 CMSSiteTreeFilter_Search: diff --git a/lang/lt.yml b/lang/lt.yml index 65638757..3af50d0a 100644 --- a/lang/lt.yml +++ b/lang/lt.yml @@ -94,11 +94,11 @@ lt: DUPLICATEDWITHCHILDREN: 'Puslapis ''{title}'' , bei jo vaikai kopijuoti sėkmingai' EMAIL: E. paštas EditTree: 'Redaguoti medį' - ListFiltered: 'Filtruotas sąrašas.' + ListFiltered: 'Rodomi paieškos rezultatai' MENUTITLE: 'Redaguoti puslapį' NEWPAGE: 'Naujas {pagetype}' PAGENOTEXISTS: 'Šis puslapis neegzistuoja' - PAGES: Puslapiai + PAGES: 'Puslapio būsena' PAGETYPEANYOPT: Bet koks PAGETYPEOPT: 'Puslapio tipas' PUBALLCONFIRM: 'Prašome publikuoti kiekvieną svetainės puslapį, kopijuojant turinį į svetainę' @@ -109,7 +109,7 @@ lt: REMOVED: 'Iš publikuojamos svetainės ištrintas ''{title}''{description}' REMOVEDPAGE: 'Iš publikuojamos svetainės pašalintas ''{title}''' REMOVEDPAGEFROMDRAFT: '''%s'' pašalintas iš juodraštinės svetainės' - RESTORE: Atstatyti + RESTORE: 'Atstatyti' RESTORED: '''{title}'' atstatytas sėkmingai' RESTORE_DESC: 'Atstatyti suarchyvuotą versiją kaip juodraštinį puslapį' RESTORE_TO_ROOT: 'Atstatyti juodraštį aukščiausiame lygyje' @@ -122,11 +122,11 @@ lt: TabContent: Turinys TabHistory: Istorija TabSettings: Nustatymai - TreeFiltered: 'Filtruotas medis.' - TreeFilteredClear: 'Išvalyti filtrą' + TreeFiltered: 'Rodomi paieškos rezultatai' + TreeFilteredClear: Išvalyti filtrą CMSMain_left_ss: - APPLY_FILTER: 'Vykdyti' - CLEAR_FILTER: 'Išvalyti filtrą' + APPLY_FILTER: Ieškoti + CLEAR_FILTER: Išvalyti filtrą RESET: Atstatyti CMSPageAddController: MENUTITLE: 'Pridėti puslapį' @@ -159,7 +159,7 @@ lt: MENUTITLE: Puslapiai TreeView: 'Medžio rodinys' CMSPagesController_ContentToolbar_ss: - MULTISELECT: Daugybinis pasirinkimas + MULTISELECT: 'Daugybinis pasirinkimas' CMSPagesController_Tools_ss: FILTER: Filtras CMSSIteTreeFilter_PublishedPages: @@ -168,7 +168,8 @@ lt: FILTERDATEFROM: Nuo FILTERDATEHEADING: Data FILTERDATETO: Iki - FILTERLABELTEXT: Turinys + FILTERLABELTEXT: Ieškoti + PAGEFILTERDATEHEADING: 'Redaguota' CMSSettingsController: MENUTITLE: Nustatymai CMSSiteTreeFilter_ChangedPages: diff --git a/lang/mi.yml b/lang/mi.yml index eb5f7610..33a5d485 100644 --- a/lang/mi.yml +++ b/lang/mi.yml @@ -85,13 +85,10 @@ mi: DUPLICATEDWITHCHILDREN: 'I momoho te tārite i ''{title}'' me ngā tamariki' EMAIL: Īmēra EditTree: 'Whakatika Rākau' - ListFiltered: 'Rārangi kua tātaritia' MENUTITLE: 'Whakatika Whārangi' NEWPAGE: '{pagetype} hou' PAGENOTEXISTS: 'KIāore tēnei whārangi e tīari' - PAGES: Ngā Whārangi PAGETYPEANYOPT: Ko tētahi - PAGETYPEOPT: 'Momo wharangi ' PUBALLCONFIRM: 'Whakaputaina koa i ia whārangi i te pae me te tārua i te content stage kia ora ai.' PUBALLFUN: 'Te taumahinga "Whakaputaina Katoatia"' PUBALLFUN2: "Ko te pēhi i tēnei pātene he taurite ki te haere ki ia whārangi me te pēhi i te \"whakaputaina\". Ko te tikanga, ka whakamahia tēnei pātene i muri ake i te mahi whakatikatika kua maha ngā tinihanga, pērā i te wā i hangaia tuatahi mai te pae. " @@ -109,10 +106,7 @@ mi: TabContent: Ngā Ihirangi TabHistory: Hītori TabSettings: Ngā Tautuhinga - TreeFiltered: 'Rākau kua tātaritia' - TreeFilteredClear: 'Ūkui tātari' CMSMain_left_ss: - APPLY_FILTER: 'Hoatu Tātari' RESET: Tautuhi Anō CMSPageAddController: MENUTITLE: 'Tāpiri whārangi' @@ -144,15 +138,12 @@ mi: ListView: 'Tirohanga Rārangi' MENUTITLE: Ngā Whārangi TreeView: 'Tirohanga Rākau' - CMSPagesController_ContentToolbar_ss: - MULTISELECT: Tīpakonga-maha CMSPagesController_Tools_ss: FILTER: Tātari CMSSearch: FILTERDATEFROM: Mai i FILTERDATEHEADING: Rā FILTERDATETO: Ki - FILTERLABELTEXT: Ngā Ihirangi CMSSettingsController: MENUTITLE: Ngā Tautuhinga CMSSiteTreeFilter_Search: diff --git a/lang/nb.yml b/lang/nb.yml index ac2ed3df..420a6d9a 100644 --- a/lang/nb.yml +++ b/lang/nb.yml @@ -92,13 +92,10 @@ nb: DUPLICATEDWITHCHILDREN: 'Vellykket duplisering av "{title}" og undersider.' EMAIL: Epost EditTree: 'Rediger treet' - ListFiltered: 'Filtrerte liste.' MENUTITLE: 'Rediger side' NEWPAGE: 'Ny {pagetype}' PAGENOTEXISTS: 'Siden eksisterer ikke' - PAGES: Sider PAGETYPEANYOPT: Hvilken som helst - PAGETYPEOPT: 'Sidetype' PUBALLCONFIRM: 'Vennligst publiser hver eneste side på nettstedet, og kopier innhold til aktivt nettsted' PUBALLFUN: 'Funksjonalitet for "Publiser alle"' PUBALLFUN2: "Å trykke på denne knappen er det samme som å gå på hver side og trykke \"publiser\". Den er ment for å bli brukt etter at det har blitt gjort massive endringer av innholdet, som for eksempel når siden først ble laget." @@ -119,11 +116,7 @@ nb: TabContent: Innhold TabHistory: Historikk TabSettings: Innstillinger - TreeFiltered: 'Filtrerte treet.' - TreeFilteredClear: 'Fjern filtrering' CMSMain_left_ss: - APPLY_FILTER: 'Aktiver filter' - CLEAR_FILTER: 'Fjern filter' RESET: Tilbakestill CMSPageAddController: MENUTITLE: 'Legg til side' @@ -155,8 +148,6 @@ nb: ListView: 'Listevisning' MENUTITLE: Sider TreeView: 'Trevisning' - CMSPagesController_ContentToolbar_ss: - MULTISELECT: Flervalg CMSPagesController_Tools_ss: FILTER: Filter CMSSIteTreeFilter_PublishedPages: @@ -165,7 +156,6 @@ nb: FILTERDATEFROM: Fra FILTERDATEHEADING: Dato FILTERDATETO: Til - FILTERLABELTEXT: Innhold CMSSettingsController: MENUTITLE: Innstillinger CMSSiteTreeFilter_Search: diff --git a/lang/nl.yml b/lang/nl.yml index 433e9685..94f1f0fe 100644 --- a/lang/nl.yml +++ b/lang/nl.yml @@ -88,13 +88,10 @@ nl: DUPLICATEDWITHCHILDREN: '''{title}'' en onderliggende items met succes gedupliceerd' EMAIL: E-mail EditTree: 'Paginastructuur aanpassen' - ListFiltered: 'Gefilterde lijst.' MENUTITLE: 'Wijzig pagina' NEWPAGE: 'Nieuwe {pagetype}' PAGENOTEXISTS: 'Deze pagina bestaat niet' - PAGES: Pagina 's PAGETYPEANYOPT: Elke - PAGETYPEOPT: 'Paginatype' PUBALLCONFIRM: 'Publiceer elke pagina van de site: dit kopieert de inhoud van de concept site naar de live site' PUBALLFUN: '"Publiceer alles" functionaliteit' PUBALLFUN2: "Op deze knop klikken heeft hetzelfde resultaat als bij elke pagina's op \"Publiceer\" te klikken. Het is bedoeld om te gebruiken wanneer er erg grote inhoudsaanpassingen gebeurd zijn, bijvoorbeeld wanneer een nieuwe site voor het eerst gebouwd wordt." @@ -112,10 +109,7 @@ nl: TabContent: Inhoud TabHistory: Geschiedenis TabSettings: Instellingen - TreeFiltered: 'Gefilterde boomstructuur.' - TreeFilteredClear: 'Filter leegmaken' CMSMain_left_ss: - APPLY_FILTER: 'Filter toepassen' RESET: Reset CMSPageAddController: MENUTITLE: 'Pagina toevoegen' @@ -147,15 +141,12 @@ nl: ListView: 'Lijstweergave' MENUTITLE: Pagina's TreeView: 'Hierarchische weergave' - CMSPagesController_ContentToolbar_ss: - MULTISELECT: Meervoudige selectie CMSPagesController_Tools_ss: FILTER: Filteren CMSSearch: FILTERDATEFROM: Van FILTERDATEHEADING: Datum FILTERDATETO: Tot - FILTERLABELTEXT: Inhoud CMSSettingsController: MENUTITLE: Instellingen CMSSiteTreeFilter_Search: diff --git a/lang/pl.yml b/lang/pl.yml index 418caccb..6b7c20c7 100644 --- a/lang/pl.yml +++ b/lang/pl.yml @@ -86,13 +86,10 @@ pl: DUPLICATEDWITHCHILDREN: 'Duplikowanie ''{title}'' oraz podstron zakończone powodzeniem' EMAIL: Email EditTree: 'Edytuj drzewko' - ListFiltered: 'Filtrowana lista.' MENUTITLE: 'Edytuj stronę' NEWPAGE: 'Nowa {pagetype}' PAGENOTEXISTS: 'Ta strona nie istnieje' - PAGES: Strony PAGETYPEANYOPT: Jakikolwiek - PAGETYPEOPT: 'Rodzaj strony' PUBALLCONFIRM: 'Opublikuj każdą stronę w witrynie' PUBALLFUN: '"Opublikuj wszystko"' PUBALLFUN2: "Naciśnięcie tego przycisku spowoduje przejście po wszystkich stronach i opublikowanie ich. Zazwyczaj używa się tego, gdy w witrynie było bardzo dużo zmian, na przykład gdy witryna została utworzona." @@ -110,10 +107,7 @@ pl: TabContent: Zawartość TabHistory: Historia TabSettings: Opcje - TreeFiltered: 'Filtruj drzewko' - TreeFilteredClear: 'Wyczyść filtr' CMSMain_left_ss: - APPLY_FILTER: 'Zastosuj filtr' RESET: Resetuj CMSPageAddController: MENUTITLE: 'Dodaj stronę' @@ -145,15 +139,12 @@ pl: ListView: 'Widok listy' MENUTITLE: Strony TreeView: 'Widok drzewa' - CMSPagesController_ContentToolbar_ss: - MULTISELECT: Multi wybór CMSPagesController_Tools_ss: FILTER: Filtr CMSSearch: FILTERDATEFROM: Od FILTERDATEHEADING: Data FILTERDATETO: Do - FILTERLABELTEXT: Zawartość CMSSettingsController: MENUTITLE: Ustawienia CMSSiteTreeFilter_Search: diff --git a/lang/pt.yml b/lang/pt.yml index e9c02ec7..eb6cae04 100644 --- a/lang/pt.yml +++ b/lang/pt.yml @@ -81,13 +81,10 @@ pt: DUPLICATED: 'Página ''{title}'' duplicada com sucesso' DUPLICATEDWITHCHILDREN: 'Página ''{title}'' e filhos duplicados com sucesso' EditTree: 'Editar árvore' - ListFiltered: 'Lista filtrada.' MENUTITLE: 'Editar página' NEWPAGE: 'Nova {pagetype}' PAGENOTEXISTS: 'Esta página não existe' - PAGES: Páginas PAGETYPEANYOPT: Qualquer - PAGETYPEOPT: 'Tipo de Página' PUBALLCONFIRM: 'Por favor, publique cada uma das páginas do site, copiando o conteúdo para a versão publicada' PUBALLFUN: 'funcionalidade "Publicar tudo"' PUBALLFUN2: "Ao pressionar este botão fará o equivalente a ir a cada página e pressionar o botão \"publicar\". É aconselhado a sua utilização quando existem muitas edições de diferentes páginas ou então quando o site se encontra disponível para ser publicado para o público em geral." @@ -104,10 +101,7 @@ pt: TabContent: Conteúdo TabHistory: Histórico TabSettings: Configurações - TreeFiltered: 'Filtrar árvore' - TreeFilteredClear: 'Remover filtro' CMSMain_left_ss: - APPLY_FILTER: 'Aplicar filtro' RESET: Redefinir CMSPageAddController: MENUTITLE: 'Adicionar página' @@ -139,15 +133,12 @@ pt: ListView: 'Vista em lista' MENUTITLE: Páginas TreeView: 'Vista em árvore' - CMSPagesController_ContentToolbar_ss: - MULTISELECT: Multi-selecção CMSPagesController_Tools_ss: FILTER: Filtrar CMSSearch: FILTERDATEFROM: De FILTERDATEHEADING: Data FILTERDATETO: Para - FILTERLABELTEXT: Conteúdo CMSSettingsController: MENUTITLE: Configurações CMSSiteTreeFilter_Search: diff --git a/lang/ro.yml b/lang/ro.yml index 6cebf132..c9a9512b 100644 --- a/lang/ro.yml +++ b/lang/ro.yml @@ -85,13 +85,10 @@ ro: DUPLICATEDWITHCHILDREN: '''{title}'' și descendenții săi duplicați cu succes' EMAIL: E-mail EditTree: 'Editare structură arbore' - ListFiltered: 'Listă filtrată' MENUTITLE: 'Editează pagina' NEWPAGE: '{pagetype} nouă' PAGENOTEXISTS: 'Această pagină nu există' - PAGES: Pagini PAGETYPEANYOPT: Oricare - PAGETYPEOPT: 'Tip pagină' PUBALLCONFIRM: 'Vă rugăm publicați toate paginile din site, copiind conținutul curent în live' PUBALLFUN: 'Funcționalitatea "Publică Tot" ' PUBALLFUN2: "Apăsând acest buton se v-a face echivalentul apăsării pe fiecare pagină a butonului \"publicare\". Este\n\t\t\t\tintenționat să fie folosit după ce s-au făcut editări masive de conținut, precum când site-ul a fost\n\t\t\t\tprima oară construit." @@ -109,10 +106,7 @@ ro: TabContent: Conținut TabHistory: Istorie TabSettings: Setări - TreeFiltered: 'Arbore filtrat' - TreeFilteredClear: 'Șterge filtru' CMSMain_left_ss: - APPLY_FILTER: 'Aplică Filtrul' RESET: Resetează CMSPageAddController: MENUTITLE: 'Adaugă pagină' @@ -144,15 +138,12 @@ ro: ListView: 'View listă' MENUTITLE: Pagini TreeView: 'View Arbore' - CMSPagesController_ContentToolbar_ss: - MULTISELECT: Selecție multiplă CMSPagesController_Tools_ss: FILTER: Filtru CMSSearch: FILTERDATEFROM: De la FILTERDATEHEADING: Data FILTERDATETO: La - FILTERLABELTEXT: Conținut CMSSettingsController: MENUTITLE: Setări CMSSiteTreeFilter_Search: diff --git a/lang/ru.yml b/lang/ru.yml index 8c98e8fa..2fc71ed4 100644 --- a/lang/ru.yml +++ b/lang/ru.yml @@ -86,13 +86,10 @@ ru: DUPLICATEDWITHCHILDREN: 'Копия ''{title}'' и дочерних элементов создана' EMAIL: Email EditTree: 'Редактировать дерево' - ListFiltered: 'Отфильтрованный список.' MENUTITLE: 'Править страницу' NEWPAGE: 'Новая {pagetype}' PAGENOTEXISTS: 'Страница не существует' - PAGES: Страницы PAGETYPEANYOPT: Любой - PAGETYPEOPT: 'Тип страницы' PUBALLCONFIRM: 'Пожалуйста, опубликуйте каждую страницу сайта, перенося содержимое из чернового режима в опубликованный' PUBALLFUN: 'Функция "Опубликовать все"' PUBALLFUN2: "Нажатие этой кнопки выполнит ту же функцию, что и нажатие кнопки \"Опубликовать\" для каждой отдельной страницы. Данная функция предназначена для использования после значительных изменений содержимого, например, в момент создания нового сайта." @@ -110,10 +107,7 @@ ru: TabContent: Содержимое TabHistory: История TabSettings: Настройки - TreeFiltered: 'Отфильтрованное дерево.' - TreeFilteredClear: 'Сбросить фильтр' CMSMain_left_ss: - APPLY_FILTER: 'Применить фильтр' RESET: Восстановить CMSPageAddController: MENUTITLE: 'Добавить страницу' @@ -145,15 +139,12 @@ ru: ListView: 'Обзор списка' MENUTITLE: Страницы TreeView: 'Обзор дерева' - CMSPagesController_ContentToolbar_ss: - MULTISELECT: Множественный выбор CMSPagesController_Tools_ss: FILTER: Фильтр CMSSearch: FILTERDATEFROM: От FILTERDATEHEADING: Дата FILTERDATETO: До - FILTERLABELTEXT: Содержимое CMSSettingsController: MENUTITLE: Настройки CMSSiteTreeFilter_Search: diff --git a/lang/sk.yml b/lang/sk.yml index f0c46050..86f310e2 100644 --- a/lang/sk.yml +++ b/lang/sk.yml @@ -71,6 +71,8 @@ sk: PUBLISH_PAGES: Zverejniť RESTORE: Obnoviť RESTORED_PAGES: 'Obnovených %d stránok' + UNPUBLISHED_PAGES: 'Nezverejnených %d stránok' + UNPUBLISH_PAGES: Nezverejniť CMSFileAddController: MENUTITLE: Súbory CMSMain: @@ -92,11 +94,11 @@ sk: DUPLICATEDWITHCHILDREN: 'Duplikované ''{title}'' a potomkovia úspešne' EMAIL: Pošli e-mailom EditTree: 'Editovať strom' - ListFiltered: 'Filtrovaný zoznam.' + ListFiltered: 'Zobrazenie výsledkov vyhľadávania.' MENUTITLE: 'Upraviť stránku' NEWPAGE: 'Nová {pagetype}' PAGENOTEXISTS: 'Táto stránka neexistuje.' - PAGES: Stránky + PAGES: 'Stav stránky' PAGETYPEANYOPT: Akákoľvek PAGETYPEOPT: 'Typ stránky' PUBALLCONFIRM: 'Prosím, zverejnite všetky stránky webu, zkopírovaním obsahu na verejné' @@ -107,6 +109,7 @@ sk: REMOVED: 'Smazané ''{title}''{description} z webu' REMOVEDPAGE: 'Smazané ''{title}'' z verejného webu' REMOVEDPAGEFROMDRAFT: 'Odstránené ''%s'' z konceptu webu' + RESTORE: 'Obnoviť koncept' RESTORED: 'Obnovené ''{title}'' úspešne' RESTORE_DESC: 'Obnoviť archivovanú verziu na koncept' RESTORE_TO_ROOT: 'Obnoviť koncept na najvyšiu úroveň' @@ -119,11 +122,11 @@ sk: TabContent: Obsah TabHistory: História TabSettings: Nastavenia - TreeFiltered: 'Filtrovaný strom.' - TreeFilteredClear: 'Vyčistiť filter' + TreeFiltered: 'Zobrazenie výsledkov vyhľadávania.' + TreeFilteredClear: Vyčistiť CMSMain_left_ss: - APPLY_FILTER: 'Použiť filter' - CLEAR_FILTER: 'Vyčistiť filter' + APPLY_FILTER: Hľadať + CLEAR_FILTER: Vyčistiť RESET: Reset CMSPageAddController: MENUTITLE: 'Pridať stránku' @@ -156,7 +159,7 @@ sk: MENUTITLE: Stránky TreeView: 'Zobraziť strom' CMSPagesController_ContentToolbar_ss: - MULTISELECT: Multi výber + MULTISELECT: 'Dávkové akcie' CMSPagesController_Tools_ss: FILTER: Filtrovať CMSSIteTreeFilter_PublishedPages: @@ -165,11 +168,20 @@ sk: FILTERDATEFROM: Od FILTERDATEHEADING: Dátum FILTERDATETO: Do - FILTERLABELTEXT: Obsah + FILTERLABELTEXT: Hľadať + PAGEFILTERDATEHEADING: 'Posledne zmenené' CMSSettingsController: MENUTITLE: Nastavenia + CMSSiteTreeFilter_ChangedPages: + Title: 'Zmenené stránky' + CMSSiteTreeFilter_DeletedPages: + Title: 'Všetky stránky, vrátane archivovaných' CMSSiteTreeFilter_Search: Title: 'Všechny stránky' + CMSSiteTreeFilter_StatusDeletedPages: + Title: 'Archivované stránky' + CMSSiteTreeFilter_StatusDraftPages: + Title: 'Konceptové stránky' CMSSiteTreeFilter_StatusRemovedFromDraftPages: Title: 'Živé, ale odstránené z konceptu' ContentControl: @@ -280,13 +292,14 @@ sk: BrokenLinksGroupTitle: 'Výkazy porušených odkazov' ContentGroupTitle: 'Výkazy obsahu' EMPTYPAGES: 'Prázdne stránky' - LAST2WEEKS: 'Stránky upravené počaas posledných 2 týždňov' + LAST2WEEKS: 'Stránky upravené počas posledných 2 týždňov' OtherGroupTitle: Ostatné ParameterLiveCheckbox: 'Skontolovať živú stránku' REPEMPTY: '{title} výkaz je prázdny.' SilverStripeNavigator: ARCHIVED: Archivované SilverStripeNavigatorLink: + ShareInstructions: 'Pre zdielanie stránky, zkopírujte a prilepte odkaz dolu.' ShareLink: 'Zdieľať odkaz' SilverStripeNavigatorLinkl: CloseLink: Zavrieť @@ -318,7 +331,7 @@ sk: ARCHIVEDPAGEHELP: 'Stránka je odstránená z konceptu a z webu' ARCHIVEDPAGESHORT: Archivované BUTTONARCHIVEDESC: 'Nezverejniť a odoslať do archívu' - BUTTONCANCELDRAFT: 'Zrušiť zmeny v konceptu' + BUTTONCANCELDRAFT: 'Zrušiť zmeny v koncepte' BUTTONCANCELDRAFTDESC: 'Vymazať návrh a vrátiť sa k aktuálne zverejnenej stránke' BUTTONPUBLISHED: Publikované BUTTONSAVED: Uložené @@ -336,11 +349,11 @@ sk: DELETEDPAGEHELP: 'Stránka už nie je viacej zverejnená' DELETEDPAGESHORT: Smazané DEPENDENT_NOTE: 'Nasledujúce stránky sú závislé na tejto stránke. To zahŕňa virtuálne stránky, presmerovacie stránky a stránky s odkazmi obsahu.' - DESCRIPTION: 'Obecný obsah stránky' + DESCRIPTION: 'Obyčajná jednoduchá stránka s vlastným obsahom.' DependtPageColumnLinkType: 'Typ odkazu' DependtPageColumnURL: URL EDITANYONE: 'Ktokoľvek kto sa môže prihlásiť do CMS' - EDITHEADER: 'Kto môže editovať túto stránnku?' + EDITHEADER: 'Kto môže editovať túto stránku?' EDITONLYTHESE: 'Iba títo ľudia (vyberte zo zoznamu)' EDITORGROUPS: 'Skupiny upravovateľov' EDIT_ALL_DESCRIPTION: 'Upraviť akúkoľvek stránku' diff --git a/lang/sl.yml b/lang/sl.yml index e9267970..37c387d3 100644 --- a/lang/sl.yml +++ b/lang/sl.yml @@ -72,8 +72,6 @@ sl: MENUTITLE: 'Uredi stran' NEWPAGE: 'Nov {pagetype}' PAGENOTEXISTS: 'Stran na tem naslovu ne obstaja' - PAGES: Strani - PAGETYPEOPT: 'Tip strani' PUBALLCONFIRM: 'Objavite vse strani spletnega mesta (vsebine bodo prekopirane v "objavljeno" različico spletnega mesta).' PUBALLFUN: 'Funkcionalnost "Objavi vse"' PUBALLFUN2: "Rezultat klika tega gumba bo enak, kot če bi kliknili \"Objavi\" na vsaki posamezni strani. Namenjen je uporabi pri večjih spremembah vsebine, kot na primer ob začetku postavljanja spletnega mesta." diff --git a/lang/sr.yml b/lang/sr.yml index c5697bd1..eabf0210 100644 --- a/lang/sr.yml +++ b/lang/sr.yml @@ -85,13 +85,10 @@ sr: DUPLICATEDWITHCHILDREN: '''{title}'' и деца успешно дуплирани' EMAIL: Е-пошта EditTree: 'Измени стабло' - ListFiltered: 'Филтрирана листа.' MENUTITLE: 'Измени страницу' NEWPAGE: 'Нова {pagetype}' PAGENOTEXISTS: 'Ова страница не постоји' - PAGES: Странице PAGETYPEANYOPT: Било која - PAGETYPEOPT: 'Тип странице' PUBALLCONFIRM: 'Објавите сваку страну на овом сајту копирањем садржај на жив сајт.' PUBALLFUN: 'Функција „Објави све“ ' PUBALLFUN2: "Притиском на ово дугме постићи ћете исто што и одласком на сваку страну и притискањем дугмета „Објави“ . Намењена је за коришћење након великих измена садржаја као када се сајт први пут објављује." @@ -109,10 +106,7 @@ sr: TabContent: Садржај TabHistory: Историја TabSettings: Подешавања - TreeFiltered: 'Филтрирано стабло' - TreeFilteredClear: 'Избриши филтер' CMSMain_left_ss: - APPLY_FILTER: 'Примени филтер' RESET: Врати у пређашње стање CMSPageAddController: MENUTITLE: 'Додај страницу' @@ -144,15 +138,12 @@ sr: ListView: 'Приказ у виду листе' MENUTITLE: Странице TreeView: 'Приказ у виду стабла' - CMSPagesController_ContentToolbar_ss: - MULTISELECT: Вишеструки избор CMSPagesController_Tools_ss: FILTER: Филтер CMSSearch: FILTERDATEFROM: Од FILTERDATEHEADING: Датум FILTERDATETO: За - FILTERLABELTEXT: Садржај CMSSettingsController: MENUTITLE: Подешавања CMSSiteTreeFilter_Search: diff --git a/lang/sr_RS@latin.yml b/lang/sr_RS@latin.yml index d70c952e..19686e9f 100644 --- a/lang/sr_RS@latin.yml +++ b/lang/sr_RS@latin.yml @@ -85,13 +85,10 @@ sr_RS@latin: DUPLICATEDWITHCHILDREN: '''{title}'' i deca uspešno duplirani' EMAIL: E-pošta EditTree: 'Izmeni stablo' - ListFiltered: 'Filtrirana lista.' MENUTITLE: 'Izmeni stranicu' NEWPAGE: 'Nova {pagetype}' PAGENOTEXISTS: 'Ova stranica ne postoji' - PAGES: Stranice PAGETYPEANYOPT: Bilo koja - PAGETYPEOPT: 'Tip stranice' PUBALLCONFIRM: 'Objavite svaku stranu na ovom sajtu kopiranjem sadržaj na živ sajt.' PUBALLFUN: 'Funkcija „Objavi sve“ ' PUBALLFUN2: "Pritiskom na ovo dugme postići ćete isto što i odlaskom na svaku stranu i pritiskanjem dugmeta „Objavi“ . Namenjena je za korišćene nakon velikih izmena sadržaja kao kada se sajt prvi put objavljuje." @@ -109,10 +106,7 @@ sr_RS@latin: TabContent: Sadržaj TabHistory: Istorija TabSettings: Podešavanja - TreeFiltered: 'Filtrirano stablo' - TreeFilteredClear: 'Izbriši filter' CMSMain_left_ss: - APPLY_FILTER: 'Primeni filter' RESET: Vrati u pređašnje stanje CMSPageAddController: MENUTITLE: 'Dodaj stranicu' @@ -144,15 +138,12 @@ sr_RS@latin: ListView: 'Prikaz u vidu liste' MENUTITLE: Stranice TreeView: 'Prikaz u vidu stabla' - CMSPagesController_ContentToolbar_ss: - MULTISELECT: Višestruki izbor CMSPagesController_Tools_ss: FILTER: Filter CMSSearch: FILTERDATEFROM: Od FILTERDATEHEADING: Datum FILTERDATETO: Za - FILTERLABELTEXT: Sadržaj CMSSettingsController: MENUTITLE: Podešavanja CMSSiteTreeFilter_Search: diff --git a/lang/sv.yml b/lang/sv.yml index 5c4c4d0b..8ebfbed4 100644 --- a/lang/sv.yml +++ b/lang/sv.yml @@ -92,13 +92,10 @@ sv: DUPLICATEDWITHCHILDREN: 'Duplicerade ''{title}'' och undersidor utan problem' EMAIL: E-post EditTree: 'Redigera trädet' - ListFiltered: 'Filtrerad lista' MENUTITLE: 'Redigera sida' NEWPAGE: 'Ny {pagetype}' PAGENOTEXISTS: 'Den här sidan finns inte' - PAGES: Sidor PAGETYPEANYOPT: Vilken som helst - PAGETYPEOPT: 'Sidtyp' PUBALLCONFIRM: 'Publicera alla sidor på sajten och kopiera dem till "live"' PUBALLFUN: '"Publicera alla"-funktion' PUBALLFUN2: "Ett klick på den här knappen är samma sak som att gå till varje sida och klicka på \"Publicera\". Tanken är att den ska användas efter stora uppdateringar av innehållet på sidan, som när den skapas." @@ -119,11 +116,7 @@ sv: TabContent: Innehåll TabHistory: Historia TabSettings: Inställningar - TreeFiltered: 'Filtrerat träd' - TreeFilteredClear: 'Rensa lista' CMSMain_left_ss: - APPLY_FILTER: 'Filtrera' - CLEAR_FILTER: 'Rensa lista' RESET: Rensa CMSPageAddController: MENUTITLE: 'Skapa sida' @@ -155,8 +148,6 @@ sv: ListView: 'Listvy' MENUTITLE: Sidor TreeView: 'Trädvy' - CMSPagesController_ContentToolbar_ss: - MULTISELECT: Flerval CMSPagesController_Tools_ss: FILTER: Filter CMSSIteTreeFilter_PublishedPages: @@ -165,7 +156,6 @@ sv: FILTERDATEFROM: Från FILTERDATEHEADING: Datum FILTERDATETO: Till - FILTERLABELTEXT: Innehåll CMSSettingsController: MENUTITLE: Inställningar CMSSiteTreeFilter_Search: diff --git a/lang/th.yml b/lang/th.yml index c55fab6a..fb63a8a9 100644 --- a/lang/th.yml +++ b/lang/th.yml @@ -81,13 +81,10 @@ th: DESCREMOVED: 'และ {count} รายการลูก' EMAIL: อีเมล EditTree: 'แก้ไขรายการแบบ Tree' - ListFiltered: 'แสดงรายการตามตัวกรองข้อมูล' MENUTITLE: 'แก้ไขหน้าเว็บ' NEWPAGE: 'ใหม่ {pagetype}' PAGENOTEXISTS: 'ไม่มีหน้านี้อยู่' - PAGES: หน้า PAGETYPEANYOPT: ประเภทใดก็ได้ - PAGETYPEOPT: 'ประเภทหน้าเว็บ' PUBALLCONFIRM: 'กรุณาเผยแพร่หน้าเว็บทุกหน้าในเว็บไซต์, คัดลอกเนื้อหาลงไปที่' PUBALLFUN: 'ฟังก์ชั่นการทำงาน "เผยแพร่ทั้งหมด"' PUBALLFUN2: "การกดปุ่มนี้จะเทียบเท่ากับการไปที่หน้าต่างๆทุกๆหน้าแล้วกด \"เผยแพร่\". It's\nปุ่มดังกล่าวมีไว้ด้วยความตั้งใจที่ต้องการให้นำไปใช้กับการแก้ไขเนื้อหาเป็นจำนวนมาก เช่น เมื่อเว็บไซต์\nถูกสร้างขึ้นเป็นครั้งแรก." @@ -101,10 +98,7 @@ th: TabContent: เนื้อหา TabHistory: ประวัติย้อนหลัง TabSettings: ตั้งค่า - TreeFiltered: 'แสดงรายการแบบ Tree ตามตัวกรองข้อมูล' - TreeFilteredClear: 'ล้างค่าตัวกรองข้อมูล' CMSMain_left_ss: - APPLY_FILTER: 'นำตัวกรองข้อมูลไปใช้งาน' RESET: รีเซ็ต CMSPageAddController: MENUTITLE: 'เพิ่มหน้า' @@ -132,8 +126,6 @@ th: MENUTITLE: 'แก้ไขหน้าเว็บ' CMSPagesController: GalleryView: 'มุมมองแบบแกลอรี่' - CMSPagesController_ContentToolbar_ss: - MULTISELECT: การเลือกพร้อมกันหลายรายการ CMSPagesController_Tools_ss: FILTER: ตัวกรองข้อมูล CMSSearch: diff --git a/lang/tr.yml b/lang/tr.yml index fe5a8956..2d763212 100644 --- a/lang/tr.yml +++ b/lang/tr.yml @@ -37,8 +37,6 @@ tr: EMAIL: Eposta MENUTITLE: 'Sayfayı düzenle' PAGENOTEXISTS: 'Sayfa bulunamadı' - PAGES: Sayfalar - PAGETYPEOPT: 'Sayfa Tipi' PUBALLCONFIRM: 'Lütfen taslak sitedeki tüm sayfaları yayınlanmakta olan siteye kopyalayıp yayınla.' PUBALLFUN: '"Hepsini Yayınla" özelliği' PUBALLFUN2: "Bu butona bastığınız zaman, tüm sayfaları tek tek açıp \"yayınla\" butonuna basmışsınız gibi işlem yapılacaktır. Bunun amacı sitede toplu miktarda içerik düzenleyip eklediyseniz (örneğin sitenin ilk yayınlanması gibi) size kolaylık sağlamaktır." @@ -50,7 +48,6 @@ tr: TabHistory: Geçmiş TabSettings: Ayarlar CMSMain_left_ss: - APPLY_FILTER: 'Filteri Uygula' RESET: Sıfırla CMSPageAddController: MENUTITLE: 'Sayfa ekle' diff --git a/lang/uk.yml b/lang/uk.yml index b50607b3..253923ba 100644 --- a/lang/uk.yml +++ b/lang/uk.yml @@ -77,9 +77,7 @@ uk: EMAIL: Електронна пошта MENUTITLE: 'Редагувати сторінку' PAGENOTEXISTS: 'Ця сторінка не існує' - PAGES: Сторінки PAGETYPEANYOPT: Будь-який - PAGETYPEOPT: 'Тип сторінки' PUBALLCONFIRM: 'Будь ласка, опублікуйте кожну сторінку. Для цього перенесіть проміжний варіант до існуючого.' PUBALLFUN: 'Дія "Опублікувати все"' PUBALLFUN2: "Натиснувши цю кнопку Ви зробите те ж саме, що й перейшовши до кожної сторінки та натиснувши \"Публікувати\". Це внесено для тих випадків, коли Ви маєте намір маштабно змінити вміст, наприклад, після першого створення сайту." @@ -92,7 +90,6 @@ uk: TabHistory: Історія TabSettings: Налаштування CMSMain_left_ss: - APPLY_FILTER: 'Застосувати фільтр' RESET: Відновити CMSPageAddController: MENUTITLE: 'Додати сторінку' @@ -118,8 +115,6 @@ uk: WHEN: Коли CMSPageSettingsController: MENUTITLE: 'Редагувати сторінку' - CMSPagesController_ContentToolbar_ss: - MULTISELECT: Множинний вибір CMSPagesController_Tools_ss: FILTER: Фільтр CMSSearch: diff --git a/lang/zh.yml b/lang/zh.yml index 9daaf464..b01be00f 100644 --- a/lang/zh.yml +++ b/lang/zh.yml @@ -85,13 +85,10 @@ zh: DUPLICATEDWITHCHILDREN: '成功复制‘{title}’及其子页面' EMAIL: 电子邮件 EditTree: '编辑树' - ListFiltered: '已过滤的列表。' MENUTITLE: '编辑页面' NEWPAGE: '新建{pagetype}' PAGENOTEXISTS: '该页面不存在' - PAGES: 页面 PAGETYPEANYOPT: 任何 - PAGETYPEOPT: '页面类型' PUBALLCONFIRM: '请发布站点上的所有页面,将内容复制到线上' PUBALLFUN: '“全部发布”功能' PUBALLFUN2: "按下此按钮将做相当于跳转到每一页,然后按下“发布”。拟用于对内容进行了大量编辑工作之时,例如站点初建时。" @@ -109,10 +106,7 @@ zh: TabContent: 内容 TabHistory: 历史记录 TabSettings: 设置 - TreeFiltered: '已过滤的树。' - TreeFilteredClear: '清除过滤器' CMSMain_left_ss: - APPLY_FILTER: '应用过滤器' RESET: 重置 CMSPageAddController: MENUTITLE: '添加页面' @@ -144,15 +138,12 @@ zh: ListView: '列表视图' MENUTITLE: 页面 TreeView: '树视图' - CMSPagesController_ContentToolbar_ss: - MULTISELECT: 多选 CMSPagesController_Tools_ss: FILTER: 过滤器 CMSSearch: FILTERDATEFROM: 从 FILTERDATEHEADING: 日期 FILTERDATETO: 到 - FILTERLABELTEXT: 内容 CMSSettingsController: MENUTITLE: 设置 CMSSiteTreeFilter_Search: From ec680d598938153d10a07361add19fd32953ba5b Mon Sep 17 00:00:00 2001 From: Damian Mooyman Date: Wed, 23 Dec 2015 14:23:17 +1300 Subject: [PATCH 15/21] Alias 3 branch as 3.4 --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 3ba23a93..2f163c64 100644 --- a/composer.json +++ b/composer.json @@ -24,7 +24,7 @@ }, "extra": { "branch-alias": { - "3.x-dev": "3.3.x-dev" + "3.x-dev": "3.4.x-dev" } }, "autoload": { From ca4752eca39c2eadbadebc3d60b68e88db528a59 Mon Sep 17 00:00:00 2001 From: Sam Minnee Date: Wed, 6 Jan 2016 12:40:10 +1300 Subject: [PATCH 16/21] MINOR: Add .editorconfig This will help ensure that tabs/spaces/trailing-space/newlines are consistent. This file is based on the one from silverstripe-framework --- .editorconfig | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..2f0465af --- /dev/null +++ b/.editorconfig @@ -0,0 +1,24 @@ +# For more information about the properties used in +# this file, please see the EditorConfig documentation: +# http://editorconfig.org/ + +[*] +charset = utf-8 +end_of_line = lf +indent_size = 4 +indent_style = tab +insert_final_newline = true +trim_trailing_whitespace = true + +[*.md] +trim_trailing_whitespace = false + +[*.yml] +indent_size = 2 +indent_style = space + +# Don't perform any clean-up on thirdparty files + +[thirdparty/**] +trim_trailing_whitespace = false +insert_final_newline = false From 54e8c71a4dc7ffe6e800ef9438d7272644cffe21 Mon Sep 17 00:00:00 2001 From: Loz Calver Date: Wed, 6 Jan 2016 15:24:17 +0000 Subject: [PATCH 17/21] Use setFailover() in ContentController (closes silverstripe/silverstripe-framework#4821) --- code/controllers/ContentController.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/controllers/ContentController.php b/code/controllers/ContentController.php index 944ce5e6..a762611e 100755 --- a/code/controllers/ContentController.php +++ b/code/controllers/ContentController.php @@ -43,8 +43,10 @@ class ContentController extends Controller { } $this->dataRecord = $dataRecord; - $this->failover = $this->dataRecord; + parent::__construct(); + + $this->setFailover($this->dataRecord); } /** From bbc3aaaf9f2c507dec25a9010eb6f31330c69549 Mon Sep 17 00:00:00 2001 From: Sam Minnee Date: Wed, 6 Jan 2016 12:42:07 +1300 Subject: [PATCH 18/21] MINOR: Remove training whitespace. The main benefit of this is so that authors who make use of .editorconfig don't end up with whitespace changes in their PRs. Spaces vs. tabs has been left alone, although that could do with a tidy-up in SS4 after the switch to PSR-1/2. The command used was this: for match in '*.ss' '*.css' '*.scss' '*.html' '*.yml' '*.php' '*.js' '*.csv' '*.inc' '*.php5'; do find . -path ./thirdparty -prune -o -type f -name "$match" -exec sed -i '' 's/[[:space:]]\+$//' {} \+ find . -path ./thirdparty -prune -o -type f -name "$match" | xargs perl -pi -e 's/ +$//' done --- .travis.yml | 2 +- _config.php | 2 +- code/batchactions/CMSBatchActions.php | 10 +- code/controllers/CMSFileAddController.php | 2 +- code/controllers/CMSPageAddController.php | 16 +- code/controllers/CMSPageHistoryController.php | 24 +-- code/controllers/CMSSiteTreeFilter.php | 34 ++--- code/controllers/ContentController.php | 10 +- .../ErrorPageControllerExtension.php | 2 +- .../LeftAndMainPageIconsExtension.php | 20 +-- code/controllers/NestedController.php | 2 +- code/controllers/SilverStripeNavigator.php | 30 ++-- code/forms/SiteTreeURLSegmentField.php | 6 +- code/model/RedirectorPage.php | 16 +- code/model/SiteTree.php | 138 +++++++++--------- code/model/SiteTreeExtension.php | 16 +- code/model/SiteTreeFileExtension.php | 14 +- code/model/SiteTreeFolderExtension.php | 4 +- code/model/VirtualPage.php | 50 +++---- code/reports/BrokenLinksReport.php | 4 +- code/search/SearchForm.php | 18 +-- css/_old/AssetAdmin.css | 4 +- css/_old/CMSMain.css | 2 +- css/_old/CommentAdmin.css | 2 +- javascript/AssetAdmin.DragDrop.js | 14 +- javascript/AssetAdmin.js | 6 +- javascript/CMSMain.AddForm.js | 6 +- javascript/CMSMain.EditForm.js | 56 +++---- javascript/CMSPageHistoryController.js | 12 +- javascript/SiteTreeURLSegmentField.js | 4 +- javascript/lang/ar.js | 2 +- javascript/lang/cs.js | 2 +- javascript/lang/de.js | 2 +- javascript/lang/el.js | 2 +- javascript/lang/en.js | 2 +- javascript/lang/eo.js | 2 +- javascript/lang/es.js | 2 +- javascript/lang/fa_IR.js | 2 +- javascript/lang/fi.js | 2 +- javascript/lang/fr.js | 2 +- javascript/lang/hu.js | 2 +- javascript/lang/id.js | 2 +- javascript/lang/is.js | 2 +- javascript/lang/it.js | 2 +- javascript/lang/ja.js | 2 +- javascript/lang/ko.js | 2 +- javascript/lang/lt.js | 2 +- javascript/lang/mi.js | 2 +- javascript/lang/nb.js | 2 +- javascript/lang/nl.js | 2 +- javascript/lang/pl.js | 2 +- javascript/lang/ro.js | 2 +- javascript/lang/ru.js | 2 +- javascript/lang/sk.js | 2 +- javascript/lang/sl.js | 2 +- javascript/lang/sr.js | 2 +- javascript/lang/sr_RS@latin.js | 2 +- javascript/lang/src/ar.js | 2 +- javascript/lang/src/cs.js | 2 +- javascript/lang/src/de.js | 2 +- javascript/lang/src/el.js | 2 +- javascript/lang/src/en.js | 2 +- javascript/lang/src/eo.js | 2 +- javascript/lang/src/es.js | 2 +- javascript/lang/src/fa_IR.js | 2 +- javascript/lang/src/fi.js | 2 +- javascript/lang/src/fr.js | 2 +- javascript/lang/src/hu.js | 2 +- javascript/lang/src/id.js | 2 +- javascript/lang/src/is.js | 2 +- javascript/lang/src/it.js | 2 +- javascript/lang/src/ja.js | 2 +- javascript/lang/src/ko.js | 2 +- javascript/lang/src/lt.js | 2 +- javascript/lang/src/mi.js | 2 +- javascript/lang/src/nb.js | 2 +- javascript/lang/src/nl.js | 2 +- javascript/lang/src/pl.js | 2 +- javascript/lang/src/ro.js | 2 +- javascript/lang/src/ru.js | 2 +- javascript/lang/src/sk.js | 2 +- javascript/lang/src/sl.js | 2 +- javascript/lang/src/sr.js | 2 +- javascript/lang/src/sr_RS@latin.js | 2 +- javascript/lang/src/sv.js | 2 +- javascript/lang/src/zh.js | 2 +- javascript/lang/sv.js | 2 +- javascript/lang/zh.js | 2 +- scss/_AssetAdmin.scss | 4 +- scss/_CMSMain.scss | 8 +- scss/screen.scss | 4 +- tasks/RemoveOrphanedPagesTask.php | 30 ++-- tasks/SiteTreeMaintenanceTask.php | 6 +- templates/BlankPage.ss | 2 +- templates/CMSMain_notice.ss | 2 +- .../CMSPageHistoryController_versions.ss | 2 +- templates/Includes/AssetAdmin_EditForm.ss | 2 +- .../Includes/AssetAdmin_UploadContent.ss | 2 +- templates/Includes/CMSMain_ListView.ss | 2 +- .../CMSPageHistoryController_Tools.ss | 2 +- .../Includes/CMSPagesController_Content.ss | 2 +- .../Includes/Install_deleteinstallfiles.ss | 2 +- templates/SSReportTableField_printable.ss | 2 +- templates/SilverStripeNavigatorLink.ss | 2 +- templates/email/ViewArchivedEmail.ss | 2 +- templates/forms/SiteTreeURLSegmentField.ss | 2 +- tests/behat/behat.yml | 2 +- .../features/bootstrap/FeatureContext.php | 2 +- .../Cms/Test/Behaviour/FixtureContext.php | 16 +- .../Cms/Test/Behaviour/ThemeContext.php | 6 +- tests/controller/CMSMainTest.php | 2 +- .../CMSPageHistoryControllerTest.php | 2 +- .../CMSPageHistoryControllerTest.yml | 2 +- tests/controller/CMSSiteTreeFilterTest.php | 12 +- tests/controller/CMSSiteTreeFilterTest.yml | 6 +- .../ContentControllerPermissionsTest.php | 2 +- .../ContentControllerSearchExtensionTest.php | 4 +- tests/controller/ContentControllerTest.php | 24 +-- tests/controller/ContentControllerTest.yml | 6 +- tests/controller/ModelAsControllerTest.php | 32 ++-- tests/controller/RootURLControllerTest.yml | 2 +- ...tentControllerTestPageWithoutController.ss | 2 +- .../ContentControllerTestPage_test.ss | 2 +- .../themes/controllertest/Controller.ss | 2 +- .../themes/controllertest/Layout/Page.ss | 2 +- .../controller/themes/controllertest/Page.ss | 2 +- tests/model/ErrorPageTest.yml | 2 +- tests/model/FileLinkTrackingTest.yml | 4 +- tests/model/RedirectorPageTest.yml | 2 +- tests/model/SiteTreeActionsTest.php | 2 +- tests/model/SiteTreeActionsTest.yml | 2 +- tests/model/SiteTreeBacklinksTest.yml | 4 +- tests/model/SiteTreeBrokenLinksTest.php | 10 +- tests/model/SiteTreeBrokenLinksTest.yml | 2 +- tests/model/SiteTreePermissionsTest.php | 4 +- tests/model/SiteTreePermissionsTest.yml | 2 +- tests/model/SiteTreeTest.php | 6 +- tests/model/VirtualPageTest.php | 32 ++-- tests/model/VirtualPageTest.yml | 2 +- tests/reports/CmsReportsTest.yml | 2 +- tests/search/SearchFormTest.php | 4 +- tests/search/SearchFormTest.yml | 2 +- .../tasks/MigrateSiteTreeLinkingTaskTest.php | 2 +- tests/tasks/RemoveOrphanedPagesTaskTest.php | 6 +- tests/tasks/RemoveOrphanedPagesTaskTest.yml | 2 +- 145 files changed, 471 insertions(+), 471 deletions(-) diff --git a/.travis.yml b/.travis.yml index 17c8f02b..4396c444 100644 --- a/.travis.yml +++ b/.travis.yml @@ -41,7 +41,7 @@ before_script: - php ~/travis-support/travis_setup_selenium.php --if-env BEHAT_TEST - php ~/travis-support/travis_setup_php54_webserver.php --if-env BEHAT_TEST -script: +script: - "if [ \"$BEHAT_TEST\" = \"\" ]; then vendor/bin/phpunit cms/tests; fi" - "if [ \"$BEHAT_TEST\" = \"1\" ]; then vendor/bin/behat @cms; fi" diff --git a/_config.php b/_config.php index 24634c9a..f7b8da81 100644 --- a/_config.php +++ b/_config.php @@ -23,4 +23,4 @@ CMSMenu::remove_menu_item('CMSPageReportsController'); CMSMenu::remove_menu_item('CMSPageAddController'); CMSMenu::remove_menu_item('CMSFileAddController'); -CMSMenu::remove_menu_item("SiteConfigLeftAndMain"); \ No newline at end of file +CMSMenu::remove_menu_item("SiteConfigLeftAndMain"); diff --git a/code/batchactions/CMSBatchActions.php b/code/batchactions/CMSBatchActions.php index df185a5d..9f10e2b6 100644 --- a/code/batchactions/CMSBatchActions.php +++ b/code/batchactions/CMSBatchActions.php @@ -1,7 +1,7 @@ canDelete()) $page->delete(); else $status['error'][$page->ID] = true; - // check to see if the record exists on the live site, + // check to see if the record exists on the live site, // if it doesn't remove the tree node $liveRecord = Versioned::get_one_by_stage( 'SiteTree', 'Live', array( '"SiteTree"."ID"' => $id @@ -166,7 +166,7 @@ class CMSBatchAction_Delete extends CMSBatchAction { /** * Unpublish (delete from live site) items batch action. - * + * * @package cms * @subpackage batchaction * @deprecated since version 4.0 diff --git a/code/controllers/CMSFileAddController.php b/code/controllers/CMSFileAddController.php index c3fb382e..59df9fc5 100644 --- a/code/controllers/CMSFileAddController.php +++ b/code/controllers/CMSFileAddController.php @@ -83,7 +83,7 @@ class CMSFileAddController extends LeftAndMain { asort($exts); $uploadField->Extensions = implode(', ', $exts); - $form = CMSForm::create( + $form = CMSForm::create( $this, 'EditForm', new FieldList( diff --git a/code/controllers/CMSPageAddController.php b/code/controllers/CMSPageAddController.php index 1beb6276..19e2441b 100644 --- a/code/controllers/CMSPageAddController.php +++ b/code/controllers/CMSPageAddController.php @@ -50,7 +50,7 @@ class CMSPageAddController extends CMSPageEditController { new SelectionGroup_Item( 'child', $parentField = new TreeDropdownField( - "ParentID", + "ParentID", "", 'SiteTree', 'ID', @@ -61,8 +61,8 @@ class CMSPageAddController extends CMSPageEditController { ) ), $typeField = new OptionsetField( - "PageType", - sprintf($numericLabelTmpl, 2, _t('CMSMain.ChoosePageType', 'Choose page type')), + "PageType", + sprintf($numericLabelTmpl, 2, _t('CMSMain.ChoosePageType', 'Choose page type')), $pageTypes, 'Page' ), @@ -71,7 +71,7 @@ class CMSPageAddController extends CMSPageEditController { sprintf( '

%s

', _t( - 'CMSMain.AddPageRestriction', + 'CMSMain.AddPageRestriction', 'Note: Some page types are not allowed for this selection' ) ) @@ -79,7 +79,7 @@ class CMSPageAddController extends CMSPageEditController { ); $parentField->setSearchFunction(function ($sourceObject, $labelField, $search) { return DataObject::get( - $sourceObject, + $sourceObject, sprintf( "\"MenuTitle\" LIKE '%%%s%%' OR \"Title\" LIKE '%%%s%%'", Convert::raw2sql($search), @@ -88,7 +88,7 @@ class CMSPageAddController extends CMSPageEditController { ); }); - // TODO Re-enable search once it allows for HTML title display, + // TODO Re-enable search once it allows for HTML title display, // see http://open.silverstripe.org/ticket/7455 // $parentField->setShowSearch(true); @@ -114,7 +114,7 @@ class CMSPageAddController extends CMSPageEditController { $this->extend('updatePageOptions', $fields); - $form = CMSForm::create( + $form = CMSForm::create( $this, "AddForm", $fields, $actions )->setHTMLID('Form_AddForm'); $form->setAttribute('data-hints', $this->SiteTreeHints()); @@ -163,7 +163,7 @@ class CMSPageAddController extends CMSPageEditController { $editController->setCurrentPageID($record->ID); Session::set( - "FormInfo.Form_EditForm.formError.message", + "FormInfo.Form_EditForm.formError.message", _t('CMSMain.PageAdded', 'Successfully created page') ); Session::set("FormInfo.Form_EditForm.formError.type", 'good'); diff --git a/code/controllers/CMSPageHistoryController.php b/code/controllers/CMSPageHistoryController.php index eb03eadc..e8a1344b 100644 --- a/code/controllers/CMSPageHistoryController.php +++ b/code/controllers/CMSPageHistoryController.php @@ -63,7 +63,7 @@ class CMSPageHistoryController extends CMSMain { */ public function compare($request) { $form = $this->CompareVersionsForm( - $request->param('VersionID'), + $request->param('VersionID'), $request->param('OtherVersionID') ); @@ -90,11 +90,11 @@ class CMSPageHistoryController extends CMSMain { } /** - * Returns the read only version of the edit form. Detaches all {@link FormAction} + * Returns the read only version of the edit form. Detaches all {@link FormAction} * instances attached since only action relates to revert. * * Permission checking is done at the {@link CMSMain::getEditForm()} level. - * + * * @param int $id ID of the record to show * @param array $fields optional * @param int $versionID @@ -156,7 +156,7 @@ class CMSPageHistoryController extends CMSMain { } } - $fields->addFieldToTab('Root.Main', + $fields->addFieldToTab('Root.Main', new LiteralField('CurrentlyViewingMessage', $this->customise(array( 'Content' => $message, 'Classes' => 'notice' @@ -181,11 +181,11 @@ class CMSPageHistoryController extends CMSMain { /** - * Version select form. Main interface between selecting versions to view + * Version select form. Main interface between selecting versions to view * and comparing multiple versions. - * + * * Because we can reload the page directly to a compare view (history/compare/1/2/3) - * this form has to adapt to those parameters as well. + * this form has to adapt to those parameters as well. * * @return Form */ @@ -246,14 +246,14 @@ class CMSPageHistoryController extends CMSMain { 'doCompare', _t('CMSPageHistoryController.COMPAREVERSIONS','Compare Versions') ), new FormAction( - 'doShowVersion', _t('CMSPageHistoryController.SHOWVERSION','Show Version') + 'doShowVersion', _t('CMSPageHistoryController.SHOWVERSION','Show Version') ) ); // Use <% if $HelpText %>

$HelpText

<% end_if %> - \ No newline at end of file + diff --git a/tests/behat/behat.yml b/tests/behat/behat.yml index 9f3f6c9a..a5f11a82 100644 --- a/tests/behat/behat.yml +++ b/tests/behat/behat.yml @@ -30,4 +30,4 @@ saucelabs: capabilities: platform: "Windows 2008" browser: "firefox" - version: "15" \ No newline at end of file + version: "15" diff --git a/tests/behat/features/bootstrap/FeatureContext.php b/tests/behat/features/bootstrap/FeatureContext.php index 41a22526..83bae940 100644 --- a/tests/behat/features/bootstrap/FeatureContext.php +++ b/tests/behat/features/bootstrap/FeatureContext.php @@ -47,7 +47,7 @@ class FeatureContext extends \SilverStripe\Framework\Test\Behaviour\FeatureConte $obj->publish('Stage', '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 bd816ae7..55c9e0cb 100644 --- a/tests/behat/features/bootstrap/SilverStripe/Cms/Test/Behaviour/FixtureContext.php +++ b/tests/behat/features/bootstrap/SilverStripe/Cms/Test/Behaviour/FixtureContext.php @@ -23,8 +23,8 @@ class FixtureContext extends \SilverStripe\BehatExtension\Context\FixtureContext /** * Find or create a redirector page and link to another existing page. - * Example: Given a "page" "My Redirect" which redirects to a "page" "Page 1" - * + * Example: Given a "page" "My Redirect" which redirects to a "page" "Page 1" + * * @Given /^(?:(an|a|the) )"(?[^"]+)" "(?[^"]+)" (:?which )?redirects to (?:(an|a|the) )"(?[^"]+)" "(?[^"]+)"$/ */ public function stepCreateRedirectorPage($type, $id, $targetType, $targetId) { @@ -46,17 +46,17 @@ class FixtureContext extends \SilverStripe\BehatExtension\Context\FixtureContext } /** - * + * * Check if the user can edit a page - * - * Example: Then pages should be editable by "Admin" + * + * Example: Then pages should be editable by "Admin" * Then pages should not be editable by "Admin" - * + * * @Then /^pages should( not? |\s*)be editable by "([^"]*)"$/ */ - public function pagesShouldBeEditableBy($negative, $member){ + public function pagesShouldBeEditableBy($negative, $member){ $page = \Page::get()->First(); - + return array( new Step\Given('I am not logged in'), new Step\Given('I am logged in with "' . $member . '" permissions'), diff --git a/tests/behat/features/bootstrap/SilverStripe/Cms/Test/Behaviour/ThemeContext.php b/tests/behat/features/bootstrap/SilverStripe/Cms/Test/Behaviour/ThemeContext.php index 004586a7..a034954e 100644 --- a/tests/behat/features/bootstrap/SilverStripe/Cms/Test/Behaviour/ThemeContext.php +++ b/tests/behat/features/bootstrap/SilverStripe/Cms/Test/Behaviour/ThemeContext.php @@ -26,7 +26,7 @@ class ThemeContext extends BehatContext { /** * Create a test theme - * + * * @Given /^a theme "(?[^"]+)"/ */ public function stepCreateTheme($theme) { @@ -39,7 +39,7 @@ class ThemeContext extends BehatContext { /** * Create a template within a test theme - * + * * @Given /^a template "(?