mirror of
https://github.com/silverstripe/silverstripe-cms
synced 2024-10-22 08:05:56 +02:00
Merge branch 'master' of github.com:silverstripe/silverstripe-cms
This commit is contained in:
commit
2039aaeb26
@ -63,62 +63,64 @@ class ErrorPage extends Page {
|
|||||||
function requireDefaultRecords() {
|
function requireDefaultRecords() {
|
||||||
parent::requireDefaultRecords();
|
parent::requireDefaultRecords();
|
||||||
|
|
||||||
// Ensure that an assets path exists before we do any error page creation
|
if ($this->class == 'ErrorPage' && SiteTree::get_create_default_pages()) {
|
||||||
if(!file_exists(ASSETS_PATH)) {
|
// Ensure that an assets path exists before we do any error page creation
|
||||||
mkdir(ASSETS_PATH);
|
if(!file_exists(ASSETS_PATH)) {
|
||||||
}
|
mkdir(ASSETS_PATH);
|
||||||
|
|
||||||
$pageNotFoundErrorPage = DataObject::get_one('ErrorPage', "\"ErrorCode\" = '404'");
|
|
||||||
$pageNotFoundErrorPageExists = ($pageNotFoundErrorPage && $pageNotFoundErrorPage->exists()) ? true : false;
|
|
||||||
$pageNotFoundErrorPagePath = self::get_filepath_for_errorcode(404);
|
|
||||||
if(!($pageNotFoundErrorPageExists && file_exists($pageNotFoundErrorPagePath))) {
|
|
||||||
if(!$pageNotFoundErrorPageExists) {
|
|
||||||
$pageNotFoundErrorPage = new ErrorPage();
|
|
||||||
$pageNotFoundErrorPage->ErrorCode = 404;
|
|
||||||
$pageNotFoundErrorPage->Title = _t('ErrorPage.DEFAULTERRORPAGETITLE', 'Page not found');
|
|
||||||
$pageNotFoundErrorPage->Content = _t('ErrorPage.DEFAULTERRORPAGECONTENT', '<p>Sorry, it seems you were trying to access a page that doesn\'t exist.</p><p>Please check the spelling of the URL you were trying to access and try again.</p>');
|
|
||||||
$pageNotFoundErrorPage->write();
|
|
||||||
$pageNotFoundErrorPage->publish('Stage', 'Live');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ensure a static error page is created from latest error page content
|
$pageNotFoundErrorPage = DataObject::get_one('ErrorPage', "\"ErrorCode\" = '404'");
|
||||||
$response = Director::test(Director::makeRelative($pageNotFoundErrorPage->Link()));
|
$pageNotFoundErrorPageExists = ($pageNotFoundErrorPage && $pageNotFoundErrorPage->exists()) ? true : false;
|
||||||
if($fh = fopen($pageNotFoundErrorPagePath, 'w')) {
|
$pageNotFoundErrorPagePath = self::get_filepath_for_errorcode(404);
|
||||||
$written = fwrite($fh, $response->getBody());
|
if(!($pageNotFoundErrorPageExists && file_exists($pageNotFoundErrorPagePath))) {
|
||||||
fclose($fh);
|
if(!$pageNotFoundErrorPageExists) {
|
||||||
|
$pageNotFoundErrorPage = new ErrorPage();
|
||||||
|
$pageNotFoundErrorPage->ErrorCode = 404;
|
||||||
|
$pageNotFoundErrorPage->Title = _t('ErrorPage.DEFAULTERRORPAGETITLE', 'Page not found');
|
||||||
|
$pageNotFoundErrorPage->Content = _t('ErrorPage.DEFAULTERRORPAGECONTENT', '<p>Sorry, it seems you were trying to access a page that doesn\'t exist.</p><p>Please check the spelling of the URL you were trying to access and try again.</p>');
|
||||||
|
$pageNotFoundErrorPage->write();
|
||||||
|
$pageNotFoundErrorPage->publish('Stage', 'Live');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ensure a static error page is created from latest error page content
|
||||||
|
$response = Director::test(Director::makeRelative($pageNotFoundErrorPage->Link()));
|
||||||
|
if($fh = fopen($pageNotFoundErrorPagePath, 'w')) {
|
||||||
|
$written = fwrite($fh, $response->getBody());
|
||||||
|
fclose($fh);
|
||||||
|
}
|
||||||
|
|
||||||
|
if($written) {
|
||||||
|
DB::alteration_message('404 error page created', 'created');
|
||||||
|
} else {
|
||||||
|
DB::alteration_message(sprintf('404 error page could not be created at %s. Please check permissions', $pageNotFoundErrorPagePath), 'error');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$serverErrorPage = DataObject::get_one('ErrorPage', "\"ErrorCode\" = '500'");
|
||||||
|
$serverErrorPageExists = ($serverErrorPage && $serverErrorPage->exists()) ? true : false;
|
||||||
|
$serverErrorPagePath = self::get_filepath_for_errorcode(500);
|
||||||
|
if(!($serverErrorPageExists && file_exists($serverErrorPagePath))) {
|
||||||
|
if(!$serverErrorPageExists) {
|
||||||
|
$serverErrorPage = new ErrorPage();
|
||||||
|
$serverErrorPage->ErrorCode = 500;
|
||||||
|
$serverErrorPage->Title = _t('ErrorPage.DEFAULTSERVERERRORPAGETITLE', 'Server error');
|
||||||
|
$serverErrorPage->Content = _t('ErrorPage.DEFAULTSERVERERRORPAGECONTENT', '<p>Sorry, there was a problem with handling your request.</p>');
|
||||||
|
$serverErrorPage->write();
|
||||||
|
$serverErrorPage->publish('Stage', 'Live');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ensure a static error page is created from latest error page content
|
||||||
|
$response = Director::test(Director::makeRelative($serverErrorPage->Link()));
|
||||||
|
if($fh = fopen($serverErrorPagePath, 'w')) {
|
||||||
|
$written = fwrite($fh, $response->getBody());
|
||||||
|
fclose($fh);
|
||||||
|
}
|
||||||
|
|
||||||
if($written) {
|
if($written) {
|
||||||
DB::alteration_message('404 error page created', 'created');
|
DB::alteration_message('500 error page created', 'created');
|
||||||
} else {
|
} else {
|
||||||
DB::alteration_message(sprintf('404 error page could not be created at %s. Please check permissions', $pageNotFoundErrorPagePath), 'error');
|
DB::alteration_message(sprintf('500 error page could not be created at %s. Please check permissions', $serverErrorPagePath), 'error');
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
$serverErrorPage = DataObject::get_one('ErrorPage', "\"ErrorCode\" = '500'");
|
|
||||||
$serverErrorPageExists = ($serverErrorPage && $serverErrorPage->exists()) ? true : false;
|
|
||||||
$serverErrorPagePath = self::get_filepath_for_errorcode(500);
|
|
||||||
if(!($serverErrorPageExists && file_exists($serverErrorPagePath))) {
|
|
||||||
if(!$serverErrorPageExists) {
|
|
||||||
$serverErrorPage = new ErrorPage();
|
|
||||||
$serverErrorPage->ErrorCode = 500;
|
|
||||||
$serverErrorPage->Title = _t('ErrorPage.DEFAULTSERVERERRORPAGETITLE', 'Server error');
|
|
||||||
$serverErrorPage->Content = _t('ErrorPage.DEFAULTSERVERERRORPAGECONTENT', '<p>Sorry, there was a problem with handling your request.</p>');
|
|
||||||
$serverErrorPage->write();
|
|
||||||
$serverErrorPage->publish('Stage', 'Live');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Ensure a static error page is created from latest error page content
|
|
||||||
$response = Director::test(Director::makeRelative($serverErrorPage->Link()));
|
|
||||||
if($fh = fopen($serverErrorPagePath, 'w')) {
|
|
||||||
$written = fwrite($fh, $response->getBody());
|
|
||||||
fclose($fh);
|
|
||||||
}
|
|
||||||
|
|
||||||
if($written) {
|
|
||||||
DB::alteration_message('500 error page created', 'created');
|
|
||||||
} else {
|
|
||||||
DB::alteration_message(sprintf('500 error page could not be created at %s. Please check permissions', $serverErrorPagePath), 'error');
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -227,6 +227,15 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
|||||||
public static function set_create_default_pages($option = true) {
|
public static function set_create_default_pages($option = true) {
|
||||||
self::$create_default_pages = $option;
|
self::$create_default_pages = $option;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return true if default pages should be created on /dev/build.
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public static function get_create_default_pages() {
|
||||||
|
return self::$create_default_pages;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fetches the {@link SiteTree} object that maps to a link.
|
* Fetches the {@link SiteTree} object that maps to a link.
|
||||||
@ -1291,7 +1300,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
|
|||||||
parent::requireDefaultRecords();
|
parent::requireDefaultRecords();
|
||||||
|
|
||||||
// default pages
|
// default pages
|
||||||
if($this->class == 'SiteTree' && self::$create_default_pages) {
|
if($this->class == 'SiteTree' && self::get_create_default_pages()) {
|
||||||
if(!SiteTree::get_by_link('home')) {
|
if(!SiteTree::get_by_link('home')) {
|
||||||
$homepage = new Page();
|
$homepage = new Page();
|
||||||
$homepage->Title = _t('SiteTree.DEFAULTHOMETITLE', 'Home');
|
$homepage->Title = _t('SiteTree.DEFAULTHOMETITLE', 'Home');
|
||||||
|
Loading…
Reference in New Issue
Block a user