govtnz / silverstripe-externallinks
在不修改数据库内容的情况下,为 SilverStripe CMS 添加跟踪外部断链的功能
Requires
- silverstripe/cms: ~3.1
- silverstripe/framework: ~3.1
Requires (Dev)
- hafriedlander/silverstripe-phockito: *
- phpunit/phpunit: ~3.7@stable
Suggests
- silverstripe/queuedjobs: Speeds up running the job for Content Editors fropm the report
This package is auto-updated.
Last update: 2024-09-21 19:32:11 UTC
README
介绍
核心模块
外部链接模块是一个任务和 ModelAdmin,用于跟踪和报告断开的外部链接。它由 Silverstripe 的 Kirk Mayo 维护。
此分支
这是一个移除了模块核心功能的分支。安装此分支后,模块将不再将 ss-broken
css 类写入断开链接的 URL。进行此更改的原因是,将修改后的记录保存到数据库中会更改版本化内容的发布日期,将其推回 RSS 源和最近编辑的页面顶部。
新的 config.yml
文件包含一个布尔值,可以用来开启和关闭“添加类”功能。
除了下一节中的“维护者联系”外,本 README 的其余部分是 Kirk Mayo 的原始文档。
维护者联系
* Leigh Harrison: leigh (dot) harrison (at) dia (dot) govt (dot) nz
要求
* SilverStripe 3.1 +
功能
- 将外部链接添加到断链报告
- 添加任务以跟踪外部断链
安装
- 如果您有 composer,可以使用
composer require silverstripe/externallinks:*
。否则,从 GitHub 下载模块并将其提取到 'externallinks' 文件夹中。将此目录放在您的网站根目录中。这是包含框架和 cms 的目录。 - 在浏览器中运行 -
/dev/build
以重建数据库。 - 运行以下任务 http://path.to.silverstripe/dev/tasks/CheckExternalLinks 以检查断开的外部链接
报告
添加了一个名为“外部断链报告”的新报告。在查看此报告时,用户可以点击“创建新报告”按钮,这将触发一个 AJAX 请求以启动报告运行。
在此初始 AJAX 请求中,此模块将根据包含的模块执行以下一项操作
- 如果已安装 queuedjobs 模块,则将启动一个新的排队作业。queuedjobs 模块然后将管理任务的进度。
- 如果queuedjobs 模块不存在,则控制器将回退到在后台运行 buildtask。这不太稳健,因为在此过程中出现故障或错误将终止运行。
在两种情况下,后台任务将遍历系统中的每个页面,检查所有外部 URL 并检查请求每个 URL 返回的状态码。如果 URL 返回被认为是“断开”的响应代码(定义为 < 200 或 > 302),则将 ss-broken
css 类分配给该 URL,并在报告中添加一项内容。如果之前断开的链接已修复或修正,则将删除此类。
在实际生成的报告中,用户可以点击任何断开链接项来在浏览器中查看链接,或在 CMS 中编辑包含的页面。
报告正在运行时,当前状态将在报告详细信息页面上显示,包括状态。用户可以离开此页面,稍后再返回以查看报告的持续状态。
在先前的报告完成之前,可能不会生成后续报告。
开发任务
运行以下任务以检查您的网站外部断链:http://path.to.silverstripe/dev/tasks/CheckExternalLinks
队列作业
如果您已安装队列作业模块,可以设置任务定时运行。在mysite/_config中的config.yml文件中添加以下配置,可以让任务每天运行一次(86400秒):
CheckExternalLinks:
Delay: 86400
白名单代码
如果您想忽略或添加某些HTTP状态码的白名单,可以通过在mysite/_config的config.yml文件中的IgnoreCodes进行设置。
CheckExternalLinks:
Delay: 60
IgnoreCodes:
- 401
- 403
- 501