Skip to content
Permalink

Comparing changes

This is a direct comparison between two commits made in this repository or its related repositories. View the default comparison for this range or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: silverstripe/silverstripe-errorpage
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: de1e6d0a4d2410d2b5dc1e76298834745d9b3c5d
Choose a base ref
..
head repository: silverstripe/silverstripe-errorpage
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: d72193f379d1d45ecd0a3e64649e124581bbc0b6
Choose a head ref
Showing with 0 additions and 47 deletions.
  1. +0 −47 README.md
47 changes: 0 additions & 47 deletions README.md
Original file line number Diff line number Diff line change
@@ -19,53 +19,6 @@ The functionally in this module was separated out from the Silverstripe CMS modu
An issue of note is that static error pages are generated but are rarely served up, and rarely re-generated. This can lead to website visitors seeing a stale or broken page in the event of a 500 server error.
Contributions are welcome, please open a pull request if you want to add a feature or fix a problem.

### API changes

* `ErrorPage.static_filepath` config has been removed.
* `ErrorPage::get_filepath_for_errorcode` has been removed
* `ErrorPage::alternateFilepathForErrorcode` extension point has been removed

### Upgrade code that modifies the behaviour of ErrorPage

ErrorPage has been updated to use a configurable asset backend, similar to the `AssetStore` described above.
This replaces the `ErrorPage.static_filepath` config that was used to write local files.

As a result, error pages may be cached either to a local filesystem, or an external Flysystem store
(which is configured via setting a new Flysystem backend with YAML).

`ErrorPage::get_filepath_for_errorcode()` has been removed, because the local path for a specific code is
no longer assumed. Instead you should use `ErrorPage::get_content_for_errorcode` which retrieves the
appropriate content for that error using one of the methods above.

In order to retrieve the actual filename (which is used to identify an error page regardless of base
path), you can use `ErrorPage::get_error_filename()` instead. Unlike the old `get_filepath_for_errorcode`
method, there is no $locale parameter.

In case that user code must customise this filename, such as for extensions which provide a locale value
for any error page, the extension point `updateErrorFilename` can be used. This extension point should
also be used to replace any `alternateFilepathForErrorcode` used.

```php
class MyErrorPageExtension extends SiteTreeExtension
{
public function updateErrorFilename(&$name, &$statuscode)
{
if ($this->owner->exists()) {
$locale = $this->Locale;
} else {
$locale = Translatable::get_current_locale();
}
$name = "error-{$statusCode}-{$locale}.html";
}
}
```

```yml
ErrorPage:
extensions:
- MyErrorPageExtension
```
## Documentation

To Do