【问题标题】:Automation tool for Plone editionPlone 版的自动化工具
【发布时间】:2015-02-17 12:44:01
【问题描述】:

我在编辑器配置文件中注册了一个用 Plone 编写的门户。我收到了将多个链接(超过 1000 个)更改为新地址的任务。

做了以下事情:

  1. 我将所有需要更正的页面保存到一个文件夹中(通过复制和粘贴);
  2. 编写了一个 C 程序来查找所有要替换的 URL;
  3. 将旧 URL 及其替代 URL 放在一个文本文件中(一行下面:旧 URL、新 URL、旧 URL、新 URL、旧 URL……);
  4. 然后另一个程序进行了适当的替换。
  5. 之后,只需重置页面(复制和粘贴)。 碰巧在第 1 步和第 5 步中花费了很多时间。 我想知道是否有任何方法可以自动执行此过程?换句话说:是否有任何 Plone 工具可以自动将门户的所有页面保存在计算机文件夹中,然后执行相反的操作(从计算机到服务器)?找了好多都没找到。

【问题讨论】:

标签: plone


【解决方案1】:

如果这些链接指向同一站点中的旧位置,您可以使用plone.app.redirector 将它们重定向到新位置:

from plone.app.redirector.interfaces import IRedirectionStorage
from zope.component import getUtility

storage = getUtility(IRedirectionStorage)
paths = [('old/path/1', 'new/path/1'), ('old/path/2', 'new/path/2'), ]

for old_path, new_path in paths:
    storage.add(old_path, new_path)

这样,您不必编辑包含旧链接的每个页面。

更多信息:https://pypi.python.org/pypi/plone.app.redirector/

【讨论】:

  • 别忘了 Products.RedirectionTool
  • 谢谢,tcurvelo!链接是外部链接,从 www 更改为其他初始字符。
【解决方案2】:

如果新网址的格式与新网址的格式之间存在某种关系,使用rt.bulkmodify 可能会有很大帮助。

【讨论】:

  • 在这种特殊情况下,新链接与旧链接完全不同。那是因为我必须将它们成对地(旧、新、旧、新...)放在一个文件中。
【解决方案3】:

所有自动化解决方案都需要管理员,因为它们涉及安装插件。

将其作为先决条件,如果您出于某种原因需要以编程方式更改这些链接而不创建完整的包来执行此操作(或者如果此处给出的建议无法解决您的问题)具体问题),您可以使用一个简单的 Python 脚本与您的 ZODB in command line 进行交互。

始终在执行这些操作之前备份您的 ZODB。

【讨论】:

  • 虽然我现在还不是管理员,但也许这个建议可以解决其他有同样问题的用户。谢谢!
猜你喜欢
  • 2019-02-04
  • 2011-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-14
  • 2011-12-29
  • 2012-10-20
相关资源
最近更新 更多