[сервер веб-приложений Zope]материал подготовил: Константин Бажуков 03.12.2003
Для создания своего сайта часто используются различные системы управления контентом, которые снимают многие проблемы для владельца сайта, если он хочет сделать его быстро и получить удобные инструменты по его администрированию. Но часто сайты, созданные подобным образом, однотипны, да и задачи, которые они призваны решать, достаточно стандартны. Что же делать в случае, если надо создать собственную, нетиповую систему управления контентом? Создавать ее с нуля? Совсем не обязательно — есть определенный класс серверных приложений, которые не предоставляют вам сразу готовые модули для вашего сайта, но дают удобные инструменты и кирпичики для конструирования этих самых модулей. Примером такого приложения и является Zope.
Zope — сервер веб-приложений, написанный языке программирования Python и предназначенный для создания систем управления контентом, интранет-приложений, порталов и прочих проектов. Так, по крайней мере поясняют сами разработчики Zope, но такое описание весьма расплывчато. Положение отягощает также и то, что русскоязычной документации по Zope практически нет, а та, которая есть, оставляет тяжелое впечатление. Тем не менее в России есть провайдеры, которые уже предоставляют услуги хостинга с Zope (например, square.spb.ru) или ставят его для клиента по договоренности. Так как Zope относится к классу продуктов с открытым кодом, то получить и установить его на вашей машине не составляет трудности. Он есть во всех дистрибутивах UNIX-подобных систем (Linux, семейство BSD), а для Windows его можно взять на сайте разработчиков — www.zope.org.
Самая большая ценность Zope заключается в том, что он существенно ускоряет построение даже простых сайтов, не говоря уже о задачах с повышенной сложностью. Автоматически снимается проблема создания пользователей и делегирования им прав по редактированию контента, а инструменты, с помощью которых создается сайт, могут служить, после делегирования соответствующих прав пользователям, и как система управления контентом.
Zope — сервер веб-приложений на языке Python
Основная смысловая единица Zope — контейнер. С одной стороны — это директория, в которой хранятся объекты, но свойства этого контейнера и методы управления им позволяют весьма гибко пользоваться этой единицей хранения информации. Как создать, например, новостную колонку? Создаем контейнер, в котором будут создаваться текстовые файлы для каждой новости, а в родителе (контейнере более высокого уровня) этого контейнера пишем небольшой скрипт (даже не скрипт; пользуемся языками разметки Zope — 2-3 строчки), позволяющий вывести ссылки на файлы или содержание этих файлов на веб-страницу, сортируя их по дате создания файла. Можно создать специальные свойства для этих файлов, помимо типовых, и производить сортировку по ним. После этого создаем пользователя, наделенного правами редактировать только этот контейнер, создавая файлы с новостями, и отдаем наполнение колонки в его руки. Он заходит на страницу вида http://127.0.0.1:8080/texts/manage (manage — это страница с интерфейсом управления, предоставляемой Zope) и создает там тексты. Можно, естественно, запретить создание новых объектов в контейнере, а разрешить только редактирование существующих.
Контейнер — основа концепции Zope
Zope предоставляет хороший инструментарий и для программиста. Есть два языка для использования совместно с тегами HTML — DTML и ZPT. Язык тегов DTML (Document Template Markup Language) позволит о