silverstripe/errorpage

SilverStripe CMS 的 ErrorPage 组件

安装量: 1,747,022

依赖关系: 9

建议者: 0

安全性: 0

星级: 2

关注者: 9

分支: 17

开放问题: 7

类型:silverstripe-vendormodule


README

CI Silverstripe supported module

概述

为 Silverstripe CMS 提供了一个 ErrorPage 页面类型,允许 CMS 作者通过错误代码设置错误页面的自定义内容。错误页面响应完全支持主题化。

安装

composer require silverstripe/errorpage

限制

此模块中的功能已从 Silverstripe CMS 模块中分离出来,并保留了一些现有问题。一个值得注意的问题是,生成了静态错误页面,但这些页面很少被提供,也很少重新生成。这可能导致在发生 500 服务器错误时,网站访客看到陈旧或损坏的页面。欢迎贡献力量,如果您想添加功能或修复问题,请提交一个 pull request。

文档

待办事项

主题化

要应用自定义模板,您需要创建一个 ErrorPage.ss 文件,位于 templates/SilverStripe/ErrorPage/ErrorPage.sstemplates/SilverStripe/ErrorPage/Layout/ErrorPage.ss 之一。

详细错误信息

如果您在代码库中使用 $this->httpError($code, $message) 并希望包含传递给该方法的消息,您可以将 $ResponseErrorMessage 添加到您的 ErrorPage 模板中。在包含此信息时请谨慎,因为这些消息通常是为开发者而不是最终用户设计的。

例如,您的某个控制器可能由于某些特定原因抛出 401 状态码。非常广泛地说,401 表示请求未经授权;如果您的控制器抛出 401,还可以添加一个特定的原因。

return $this->httpError(401, 'This is only accessible on Sunday before 10AM.');```

```YourErrorPage.ss
<h1>$Title</h1>
<% if ResponseErrorMessage %>
<p class="lead">
$ResponseErrorMessage
</p>
<% end_if %>
</div>

这些消息将在站点处于开发模式时自动附加到 ErrorPage 模板中。您可以使用 Config API 禁用此功能。将此设置为 false 也将从您的模板中删除 $ResponseErrorMessage 变量。

SilverStripe\ErrorPage\ErrorPage:
  dev_append_error_message: false

限制 CMS 中的选项

默认情况下,所有可用的错误代码都存在于 CMS 的下拉列表中。这可能会让人不知所措,并且有一些(例如 418)可能会令人困惑。为此,您可以使用配置值 allowed_error_codes 限制下拉列表中的代码,如下所示

SilverStripe\ErrorPage\ErrorPage:
  allowed_error_codes:
    - 400
    - 403
    - 404
    - 500

报告问题

请为任何您找到的错误或您缺少的功能 创建一个问题