Хотел вывести в заголовок "Zope3 сообщество поражает меня каждый день". Действительно это так.
Я сейчас делаю тестовый проект, одна из стандартных задач - стили и шаблоны. С шаблонами вроде все понятно Page Templates дают огромную свободу верстальщику и дизайнеру позволяя редактировать шаблоны в любимом визуальном редакторе. А вот с CSS все обстоит немного иначе. Если вспомнить (что не так уж и сложно) дни Zope2, то на ум приходят DTML шаблоны.... эээ, наверно я забыл рассказать в чем проблема :)
Итак, рабочий процесс выглядит таким образом:
1. Дизайнер делает дизайн.
2. Верстальщик его режет, и подгоняет в любимом Dreamweaver'е + TopStylePro (если хватает понимания, что в нем стили удобнее редактировать).
3. Программист-верстальщик прикручивает в качестве шаблона порезанный дизайн к стилям продукта.
4. Вся комманда собирается у большого монитора и смотрит что получилось.
5. Все с грустным видом расходятся по своим рабочим местам.
Верстальщик переделывает все заново, потом программист-верстальщик прикручивает еще раз.... короче как в интермедии про сумочку, кошолочку и кошелечек... Пипец! Хочется кого-то убить.
А потом приходит заказчик и говорит: "Передвиньте-этот-элемент ∞ (водит пальцем) сюда -> ●". И хочется убить еще кого-то.
В Zope были придуман язык аттрибутов TAL, который позволяет удобным образом распараллелить работу верстальщика и программиста-верстальщика. Шаблон прикручивается к продукту один раз.
Но в Zope3 пошли дальше. Эти великие люди придумали как упростить работу с CSS'ами. Впрочем, замечу им это пришлось сделать :)
Итак, есть продукт z3c.zrtresource который позволяет ввести в комментариях к CSS специальные директивы замены. Как это выглядит.
В ZCML:<browser:zrt-resource
name="style.css"
file="style/style.css"
layer="bloglayer"
/>
В самом ресурсе:/* This is my new shining zope3 aware css file */
/* zrt-replace: "../images" "++resource++images" */
body
{
font-family: "Lucida Grande", Arial, sans-serif;
font-size: 9pt;
color: #222;
margin: 0;
background: #25364C top url('../images/background_pattern.png') !important;
background: #ccc;
}
В результате получим:
/* This is my new shining zope3 aware css file */
body
{
font-family: "Lucida Grande", Arial, sans-serif;
font-size: 9pt;
color: #222;
margin: 0;
background: #25364C top url('++resource++images/background_patte
background: #ccc;
}
Теперь верстальщик может спокойно пилить свой стиль и не влиять на работу других. (обратили внимание, что строчка с zrt-replace убралась полностью?).
Тем кто любит задачки со звездочкой можно посмотреть на KSS.
P.S. Сам CSS можно не комментировать, я взял тестовый с одного сайта.
