跳转到主要内容

重定向工具

项目描述

简介

由 Martin Aspeli <optilude@gmx.net> 编写,基于 Helge Tesdal (RedirectionTool) 和 Whit Morriss (topp.rose) 的作品。

让死链复活!plone.app.redirector 知道内容曾经所在的位置,并在内容移动时将您带到其新位置。

该组件期望您将 storage.RedirectionStorage 注册为提供 IRedirectionStorage 的本地实用工具(CMFPlone 会这样做)。完成此操作后,subscribers.py 中的订阅者将监听对象移动和对象删除事件。

当对象被移动(重命名或剪切/粘贴到不同位置)时,重定向存储将记住旧路径。它足够智能,可以处理传递引用(如果我们有一个 -> b,然后添加 b -> c,它将替换为 a -> c 的引用)和循环引用(尝试添加 a -> a 不会产生任何效果)。

当对象被删除时,所有指向它的引用也将被删除。

browser.py 中的视图包含以下方法(在 Plone 的默认_error_message.pt 接收到 NotFound 错误时使用):

  • 尝试从假设的意图路径重定向到对象的新的路径,如果重定向存储包含从旧路径的引用。

  • 如果没有,查找假设的意图路径的第一个有效父项,并将其作为选项呈现给用户

  • 进一步,使用假设的意图路径的最后 id 并尝试在目录中搜索包含此 id 的对象,将选项呈现给用户

变更日志

3.0.3 (2024-06-13)

内部

  • 更新配置文件。[plone 开发者] (6e36bcc4)

测试

  • 删除测试 test_find_first_parent_not_viewable,该测试在 Plone 6 中丢失了其环境。[jensens] (#42)

3.0.2 (2024-01-19)

内部

  • 更新配置文件。[plone 开发者] (7723aeaf)

3.0.1 (2023-04-15)

内部

  • 更新配置文件。[plone 开发者] (93e1ab65)

3.0.0 (2022-11-30)

错误修复

  • 最终发布。[gforcada] (#600)

3.0.0a1 (2022-04-08)

破坏性更改

  • 仅限 Plone 6,删除 Archetypes 特定代码。同时进行代码现代化(black,isort,pyupgrade)。[jensens] (现代化)

2.2.1 (2020-04-20)

错误修复

  • 小型的打包更新。[#1]

2.2.0 (2020-03-13)

新功能

  • 对于 GET 请求,将响应的 http 状态从 301(永久移动)更改为 302(找到),对于其他请求方法更改为 307(临时重定向),因为没有阻止 URL 在未来被重复使用。[ale-rt] (#8)

2.1.1 (2019-12-10)

错误修复

  • 允许性能测试运行更长的时间。这似乎在 Plone Jenkins 测试服务器上运行并行作业时是必需的。[maurits] (#20)

2.1.0 (2019-04-29)

新功能

  • 在路径中存储日期信息。可以用作删除所有例如一年以上的重定向的基础。[maurits] (#17)

  • 跟踪重定向是手动添加的还是自动添加的。[maurits] (#18)

2.0.1 (2019-03-03)

新功能

  • 支持使用‘in’运算符进行路径操作。支持使用storage[old_path]获取新路径,可能会引发KeyError。支持使用storage[old_path]设置或删除新路径。支持使用len(storage)获取路径数量。支持storage.clear()清除所有数据。支持storage.update()进行批量更新。已添加性能测试。调用时使用export PLONE_APP_REDIRECTOR_PERFORMANCE_NUMBER=100000启用。[maurits] (#13)

错误修复

  • 将doctests转换为unittests。移除了不再需要的test_suite函数。[maurits] (#12)

2.0.0 (2019-02-13)

破坏性更改

  • 不再尝试检查portal_redirection的允许类型。这来自Products.RedirectionTool,该工具计划合并到CMFPlone 5.2。仅允许特定类型重定向的功能将被删除或更改。[maurits] (#1486)

1.3.7 (2018-11-21)

错误修复

  • 清理项目级别文件(setup.py,pyproject.toml)[maurits] [gforcada] (#2524)

1.3.6 (2018-02-02)

错误修复

  • 添加Python 2/3兼容性[vincero]

1.3.5 (2017-06-20)

错误修复

  • 移除unittest2依赖[kakshay21]

1.3.4 (2017-01-12)

错误修复

  • 不要测试树迭代器的repr。[davisagli]

1.3.3 (2016-11-10)

错误修复

  • 在Python文件上添加编码头。[gforcada]

1.3.2 (2016-08-18)

修复

  • 使用zope.interface装饰器。[gforcada]

1.3.1 (2015-09-09)

  • 修复测试以使用注册表进行值查找。[esteele]

1.3 (2015-08-14)

  • 重新发布1.2.1为1.3以提高清晰度。这仅适用于Plone 5。[maurits]

1.2.2 (2015-08-14)

  • 重新发布与1.2相同的代码。1.2.1的变化仅适用于Plone 5。[maurits]

1.2.1 (2014-02-26)

  • 不使用folder_contents重命名。[davisagli]

  • 使用p.a.contenttypes测试固定装置,并适配/修复由于Plone 5中ATContentTypes删除而失败的测试。[timo]

1.2 (2013-05-26)

  • 支持重定向到外部URL。[rpatterson]

1.2a1 (2012-07-02)

  • 从zope.lifecycleevent导入对象事件。[davisagli]

  • 将测试从PloneTestCase移动到plone.app.testing。[timo]

1.1.3 (2012-05-07)

  • 支持视图的部分,例如mypage/@@myview/somepart [anthonygerrard]

  • #12354将基于存储的查询字符串以及路径进行重定向。[djay]

  • #9967在重定向后附加相同的查询字符串,以提高跟踪友好性。[djay]

  • #12858对未找到页面的第一个建议可能不合适[anthonygerrard]

1.1.2 - 2011-07-05

  • 在objectMoved处理程序中,如果请求没有ACTUAL_URL,则不要中断,以方便测试。[davisagli]

  • 添加MANIFEST.in。[WouterVH]

1.1.1 - 2011-03-02

  • 优雅地处理404视图上解析SearchableText查询时的错误。[davisagli]

1.1 - 2010-07-18

  • 将许可更新为仅适用于GPL版本2。[hannosch]

1.0.13 - 2010-01-25

  • 为Products.RedirectionTool的getRedirectionAllowedForTypes方法添加可选支持。[hannosch]

1.0.12 - 2009-06-17

  • 修复IFourOhFourView定义中的错误调用约定。[wichert]

  • 将事件订阅者移动到单独的zcml文件,以便可以轻松排除。[wichert]

  • 更新浏览器视图,以处理存储实用工具不可用的环境。[wichert]

1.0.11 - 2009-04-05

  • 修复了多个步骤循环引用#8840 [gotcha]

  • 修复了由于重定向而导致的带有%-转义序列的URL增长额外%25s的bug。[erikrose]

1.0.10 - 2009-03-07

  • 修复测试以使其不依赖于任何默认内容。[hannosch]

  • 修复了一个测试,使其对页面渲染的依赖性更小。[hannosch]

  • 在括号周围添加引号。这解决了http://dev.plone.org/plone/ticket/8588的问题。[MatthewWilkes]

1.0.9 - 2008-07-07

  • 修复了关于新创建的对象不必要创建重定向条目的修复。[witsch]

1.0.8 - 2008-07-07

  • 通过确保我们有一个“晚”版本号来解决发布混淆。在某个地方,有人创建了一个1.0.7。:-) [optilude]

1.0.6 - 2008-07-07

  • 修复了新创建的对象不必要创建重定向条目的bug。[witsch]

1.0.5 - 2008-01-03

  • 从导航根而不是站点根开始搜索缺失的项目。[wichert]

1.0.2 - 2007-10-08

  • 也忽略视图的id。[ldr]

  • 在storage中添加了__iter__函数,该函数遍历所有路径。[fschulze]

1.0 - 2007-08-17

  • 初始发布。[optilude]

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪一个,请了解更多关于 安装包 的信息。

源代码分发

plone_app_redirector-3.0.3.tar.gz (30.7 kB 查看哈希值)

上传时间 源代码

构建分发

plone.app.redirector-3.0.3-py3-none-any.whl (23.6 kB 查看哈希值)

上传时间 Python 3

支持者

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页面