Получение интерфейса слоя браузера Zope 3, зная только его имя
Зарегистрировать интерфейс скина Plone следующим образом:
<interface
interface=".interfaces.IThemeSpecific"
type="zope.publisher.interfaces.browser.IBrowserSkinType"
name="My Theme Name"
/>
Какой самый простой способ получить интерфейс (my.app.browser.interfaces.IThemeSpecific
) зная имя ("My Theme Name
")?
2 ответа
Решение
Вероятно, это:
>>> 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>
Если у вас есть buildout, где установлен этот скин, добавьте collective.recipe.omelette
это поможет вам позже быть в состоянии grep на все ваши пакеты для него.
Так что-то вроде этого будет работать:
grep -R --include=*.zcml 'My Theme Name' parts/omelette