2014-01-07 2 views
2

Как проблема в этом вопросе (How can I override an already overriden template by jbot?) Я использую базовый скин, который содержит jbot переопределяет файлы шаблонов, которые я хочу снова переопределить.Как подклассифицировать слой, чтобы переопределить уже обработанный шаблон страницы jbot?

Мой продукт основан на теме, называемой отзывчивой темой. Эта тема содержит переопределения, которые я хочу изменить.

skins.xml:

<skin-path name="buyspoke-theme" based-on="Responsive Theme"> 

configure.zcml

<browser:jbot 
    directory="templates" 
    layer=".browser.interfaces.IThemeSpecific" /> 

jbot переопределяет в 'отзывчивым теме' принимают приоритет. Я понимаю из вопроса выше решение заключается в «подклассе слоя», я полагаю, что мой вопрос: как? Идиот-гид был бы высоко оценен.

ответ

2

Вы должны предоставить другую регистрацию jbot в другом продукте:

<browser:jbot 
     directory="templates" 
     layer=".your.product.CustomInterface" /> 

Тогда ваш интерфейс должен быть чем-то вроде этого:

from .... import IThemeSpecific 

class CustomInterface(IThemeSpecific): 
    pass 

И вы должны зарегистрировать browser layer для вас продукт.

Итак: ваш новый интерфейс подклассифицирует интерфейс из темы.

Другим способом является использование z3c.unconfigure.

Примечание: Я боюсь, что оба способа заменит все шаблоны внутри исходной папки (поэтому я думаю, что вы не можете просто настроить один шаблон).

+0

Спасибо за ваше решение keul, отлично выполнил работу. zc3.unconfigure поддерживает только zope 3.8, поэтому для меня это не вариант. – ecolema