Нейросети и Интернет :: Продукты :: Сервер приложений Zope

Главная

   Новости

   Публикации

   Продукты

   О нас

   Задайте ваш вопрос

Продукты

   Python Policy

   rPAS

   Zope

   Zope

   IIGFS

Ссылки

   Личные сервисы

   Поисковые сервисы

   Скачать!

   Баги

   Демо IIGFS

   Разработка rPAS

 

<< FAQ | ^Zope^ | Описание пакета Zope>>

Новое в Zope-2.6.0

  печать |  2002-11-21 22:02:16  | mcray

В Zope 2.6.0 появились некоторые нововведения, которые к сожалению кривовато реализованы. Поэтому пакет приходится основательно патчить. Я не планирую его включать до середины декабря в основной дистрибутив, а возможно не буду включать и далее - как показывает практика Zope версий 2.*.0 - это постоянный глюкодром, а эта версия особенно хороша.

Обработка unicode

В Zope 2.6.0 появилась обработка unicode через ZMI, что выразилось в появлении новых типов свойств : ustring, utext, ulines и utokens. К сожалению, правка введенная в связи с этим (видимо) в ZMI приятно разочарует русских пользователей.

Подробности в исходном коде, если кратко:

  1. Для всех страниц ZMI явно устанавливается кодировка ISO8859-1 - через HTTP-заголовок и через тег , бороться с этим можно создав в корне Zope свойство management_page_charset типа string и со значением, равным предпочитаемой кодировке, но проблемы пункта 2 это не решит;
  2. Страница управления свойствами (manage_propertiesForm), отдается в кодировке UTF8 - отчасти это логично, в связи с появлением свойств типа ustring, ulist, utext, utoken, но не логично то, как это сделано. И вообще-то я не считаю хорошим стилем лишать пользователя выбора без достаточной на то необходимости;
  3. При обработке REQUEST в ZPublisher в нескольких местах в качестве умолчания для кодировки строк жестко прописано latin-1. Вообще-то стоит брать это значение из установок локали. В результате в некоторых случаях обращение к серверу может приводить к исключениям в обработке UNICODE, в частности, в довольно печальной ситуации оказываются люди, ранее державшие свойства в KOI8-R / string и запускавшие сервер, соответственно с -L ru_RU.KOI8-R : через страницу свойств они сохранить эти свойства более не могут. Учитывая то, что в число этих свойств попало свойство title я вообще не знаю что они будут делать.

Для решения этих проблем я написал патч к Zope, который проверен исключительно в комбинации python2.2 + Zope 2.6.0, и в любом случае является лишь предварительным и не до конца проверенным решением. Подробности опять же в исходном коде, если кратко :

  1. Все умолчания для кодировки теперь берутся исходя из локали с которой стартован сервер. Соответственно для локали ru_RU.KOI8-R для ZMI  будут устанавливаться заголовки кодировке koi8-r, это по-прежнему можно перекрыть установкой переменной management_page_charset.
  2. Страница manage_propertiesForm теперь отображается в той же кодировке что и остальной сервер, а не в UTF8, что абсолютно не мешает вводить свойства ustring, utext, ulist, utokens - проблема будет только в том случае, если вы хотите работать с многоязычными свойствами (немецкий+русский, например), тогда запускаете сервер в локали ru_RU.UTF-8 - и работаете с utf не-по-детски ;)
  3. ZPublisher и разбор REQUEST - с этим патчем накопленный запас данных не придется срочно переписывать и перекодировать, при старте с той-же локалью что и раньше вы даже не заметите что что-то произошло (разумеется, локаль должна соответствовать языку, товарищам, работавшим в локали en_US и писавшим свойства, тексты и что-либо еще по-русски я искренне сочувствую, кстати, подавляющее большинство жалоб пользователей на неработоспособность ZCatalog & StructuredText объясняются именно этим);

Конструктивные отзывы и предложения по предлагаемому пачу крайне приветствуются, неконструктивные (типа "переходите все на UTF8" прочитаны и отвечены не будут (тем более что такой переход не решит проблему)).

Примечание
Если кто-то использует CrayFIX - снесите его прежде чем ставить Zope-2.6.0 и тем более этот патч : последствия плохо предсказуемы, ничего страшного не произойдет но работать не будет ни то, ни другое. Тем более что та часть вводимой им функциональности, ради которой его обычно ставят, теперь вошла в основной код Zope ;(  То же самое относится ко всем иным продуктам, перекрывающим manage_page_header.

Вход для пользователей

логин:

пароль:

ZOPE Powered by IIG FS Info Industries Group mosgird