Выборочное включение шаблонов страниц Chameleon на Plone

Чтение https://pypi.python.org/pypi/five.pt/2.2.1

  To enable Chameleon, configure the package using ZCML:

   <include package="five.pt" />

Включены ли шаблоны Chameleon для каждого пакета или глобально? Инструкции немного скудны.

Если я хочу включить Chameleon только для определенного пакета, возможно ли это? (облегчая переход на Хамелеон)

1 ответ

Решение

Чтобы цитировать прямо со страницы PyPI для пакета:

Он работает с использованием "обезьяньих патчей" на существующем API (в частности, TALInterpreter а также PageTemplate классы). Проще говоря, исправление используется для замены класса интерпретатора TAL и обеспечения того, чтобы в так называемой процедуре "кулинария" использовались парсер и компилятор Chameleon вместо zope.* эталонная реализация.

Итак, когда вы загружаете five.pt В пакете обычный код шаблонов страниц исправлен для использования шаблонов Chameleon вместо того, чтобы готовить шаблоны (компилировать).

Это действительно исключает включение Chameleon и отключение Chameleon для каждого пакета отдельно. Как только любой пакет использует <include package="five.pt" /> директива, five.ptconfigure.zcml Файл загружен и патч применен.

Тем не менее, теоретически должна быть возможность добавить для пакета включение или отключение обратно в патч; __call__ а также cook методы five.ptProgram утилиту нужно научить определять, к какому пакету относится шаблон, и принимать решение о том, что RepeatDict класс и объект шаблона страницы для использования.

Другие вопросы по тегам