获取Zope 3浏览器界面的界面只知道它的名称

时间:2014-07-14 13:51:59

标签: plone zope zope3

将Plone皮肤界面注册如下:

  <interface
      interface=".interfaces.IThemeSpecific"
      type="zope.publisher.interfaces.browser.IBrowserSkinType"
      name="My Theme Name"
      />

获取界面(my.app.browser.interfaces.IThemeSpecific)知道名称(“My Theme Name”)的最简单方法是什么?

2 个答案:

答案 0 :(得分:3)

可能这个:

>>> from zope.component import getUtility 
>>> from zope.publisher.interfaces.browser import IBrowserSkinType
>>> getUtility(IBrowserSkinType, name="Old Plone 3 Custom Theme")
<InterfaceClass plonetheme.classic.browser.interfaces.IThemeSpecific>

答案 1 :(得分:0)

如果你有一个安装这个plone皮肤的buildout,添加collective.recipe.omelette将有助于你以后能够为你的所有包上grep。

所以这样的事情会起作用:

grep -R --include=*.zcml 'My Theme Name' parts/omelette