跳转到主要内容

一个提供在安装通用设置配置文件时执行代码的钩子的Plone插件。

项目描述

ftw.profilehook

ftw.profilehook 提供了一个在通用设置配置文件安装后执行自定义代码的钩子。

动机

我们经常在导入通用设置配置文件后执行导入步骤。注册大量设置处理器是不好的,因为它延长了每个配置文件的导入时间,并且通用设置中的导入步骤数量有限,当超过时会产生不良影响。导入步骤的目的是从任何配置文件中导入事物,而不是在导入特定配置文件后执行代码。正因为如此,存在 ftw.profilehook 并提供了一种简单的解决此问题的方法。

用法

ftw.profilehook 添加为您的 setup.py 的依赖项

setup(...
      install_requires=['ftw.profilehook'])

在 ZCML(configure.zcml)中注册您的钩子函数

<configure
    xmlns="http://namespaces.zope.org/zope"
    xmlns:genericsetup="http://namespaces.zope.org/genericsetup"
    xmlns:i18n="http://namespaces.zope.org/i18n"
    xmlns:profilehook="http://namespaces.zope.org/profilehook"
    i18n_domain="my.package">

  <include package="ftw.profilehook" />

  <genericsetup:registerProfile
      name="default"
      title="my.package"
      directory="profiles/default"
      provides="Products.GenericSetup.interfaces.EXTENSION"
      />

  <profilehook:hook
      profile="my.package:default"
      handler=".hooks.default_profile_installed"
      />

</configure>

在您的钩子(hooks.py)中执行操作

from my.package.interfaces import IMyRoot
from zope.component import alsoProvides


def default_profile_installed(site):
  mark_site_as_my_root(site)


def mark_site_as_my_root(site)
  if not IMyRoot.providedBy(site):
    alsoProvides(site, IMyRoot)

在您的配置文件(my.package:default)安装后,您的钩子将被执行。

导入前钩子

标准钩子(profilehook:hook)在导入配置文件后执行。通过使用 profilehook:before_import_hook 指令,您可以注册在导入配置文件之前执行的钩子。

<profilehook:before_import_hook
    profile="my.package:default"
    handler=".hooks.before_installing_default_profile"
    />

变更日志

1.3.0 (2018-09-28)

  • 修复 portal_setup 中上传 tarball 的错误。[jone]

  • 添加 plone 5.1.x 测试配置。[mathias.leimgruber]

1.2.1 (2016-05-12)

  • 修复与 ftw.inflator 的兼容性。[jone]

1.2.0 (2016-05-11)

  • 支持导入前钩子。[jone]

1.0.0 (2014-08-15)

  • 初始实现。[jone]

项目详情


下载文件

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

源分发

ftw.profilehook-1.3.0.tar.gz (13.9 kB 查看哈希值)

上传时间

由以下支持