Выборочное включение шаблонов страниц 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.pt
configure.zcml
Файл загружен и патч применен.
Тем не менее, теоретически должна быть возможность добавить для пакета включение или отключение обратно в патч; __call__
а также cook
методы five.pt
Program
утилиту нужно научить определять, к какому пакету относится шаблон, и принимать решение о том, что RepeatDict
класс и объект шаблона страницы для использования.