我定义了一个灵巧内容类型myaddon.subscriber(订阅者=事件的参与者(。
我添加了一个内容规则,以便在订阅者获得批准时发送电子邮件(工作流状态对此规则更改为此规则(。
每个订阅者都有一个电子邮件地址(电子邮件 - 字段(。
在编辑邮件操作表单中,我看到我可以在Email recipients (Required)
The email where you want to send this message. To send it to different email addresses, just separate them with ,
中使用${user_email}
等变量
这是有效的。就我而言,user_email
是登录用户的电子邮件 - 批准参与者的人。消息在状态更改时发送。完善。
我需要定义一个具有 myaddon.subscriber.email 值的变量${subscriber_email}
。我该怎么做?我试图找到一个例子。那么,如何在此邮件操作中使用当前更改的对象(订阅者(的字段(电子邮件(作为变量?
您可以使用 plone.stringinterp 1.0.14+ 中的IContextWrapper
:
>>> new_context = IContextWrapper(context)(
... email=u"subscriber@example.com"
... )
>>> class SubscriberEmailSubstitution(BaseSubstitution):
... def safe_call(self):
... return self.wrapper.email
>>> sm = getGlobalSiteManager()
>>> sm.registerAdapter(SubscriberEmailSubstitution, (Interface, ), IStringSubstitution, name=u"subscriber_email")
>>> getAdapter(new_context, IStringSubstitution, 'subscriber_email')()
u'subscriber@example.com'
进口:
>>> from zope.interface import Interface
>>> from plone.stringinterp.interfaces import IStringSubstitution
>>> from plone.stringinterp.interfaces import IStringSubstitutionInfo
>>> from zope.component import getGlobalSiteManager, getAdapter
>>> from plone.stringinterp.adapters import BaseSubstitution
>>> from plone.stringinterp.interfaces import IContextWrapper
查看更多 stringinterp 文档测试。
另请参阅EEA.pdf附加组件中的完整工作示例。