mirror of
https://github.com/silverstripe/silverstripe-cms
synced 2024-10-22 08:05:56 +02:00
FIX Use RequestHandler::httpError() for all HTTP errors.
https://github.com/silverstripe/sapphire/pull/827 adds some extension points for catching HTTP errors such as 404. This change fixes some issues where httpError() isn't used all the time. Note that the aforementioned pull request will be necessary to ensure that it works properly.
This commit is contained in:
parent
686f70330b
commit
39792debb8
@ -205,11 +205,10 @@ class ContentController extends Controller {
|
|||||||
* @uses ErrorPage::response_for()
|
* @uses ErrorPage::response_for()
|
||||||
*/
|
*/
|
||||||
public function httpError($code, $message = null) {
|
public function httpError($code, $message = null) {
|
||||||
if($this->request->isMedia() || !$response = ErrorPage::response_for($code)) {
|
// Don't use the HTML response for media requests
|
||||||
parent::httpError($code, $message);
|
$response = $this->request->isMedia() ? null : ErrorPage::response_for($code);
|
||||||
} else {
|
// Failover to $message if the HTML response is unavailable / inappropriate
|
||||||
throw new SS_HTTPResponse_Exception($response);
|
parent::httpError($code, $response ? $response : $message);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -126,11 +126,8 @@ class ModelAsController extends Controller implements NestedController {
|
|||||||
return $this->response;
|
return $this->response;
|
||||||
}
|
}
|
||||||
|
|
||||||
if($response = ErrorPage::response_for(404)) {
|
$response = ErrorPage::response_for(404);
|
||||||
return $response;
|
$this->httpError(404, $response ? $response : 'The requested page could not be found.');
|
||||||
} else {
|
|
||||||
$this->httpError(404, 'The requested page could not be found.');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Enforce current locale setting to the loaded SiteTree object
|
// Enforce current locale setting to the loaded SiteTree object
|
||||||
|
Loading…
Reference in New Issue
Block a user