Skip to content

Plone.org.ru

Sections
Personal tools
You are here: Home » Документация » Руководства » UsingPlone
Поддержка
Для общения можно использовать списки рассылки: Zope3 и Plone
Дружественный сайт Zope3.ru
 
Views

UsingPlone

last edited 5 years ago by xen

Изучение Plone

Автор: "Кашкин Михаил":[xen]? (Ключевые Решения)

Архитектура Plone

Plone - это система публикаций написанная, на языке программирования python и использующая в основе сервер приложений Zope. Если быть точным, то иерархия взаимосвязи будет выглядеть так:

            ---------------
            |    Plone    |
            ---------------
                   |
            ---------------
            |    CMF      |
            ---------------
                   |
            ---------------
            |    Zope     |
            ---------------

  1. Есть язык программирования python, на котором написан сервер приложений Zope.
  2. Для Zope был написан набор библиотек Content Management Framework (CMF, система управления контентом).
  3. Plone является красивым и удобным расширением для CMF. Хотя кроме него есть еще несколько подобных проектов.

Таким образом, все преимущества Plone растут из CMF/Zope, которые, в свою очередь, используют потенциал python.

hint: На python написано несколько прекрасных серверов приложений. Собственно почти все проекты, которые пишутся на python "отличаются умом". Причина, наверное, в том, что этот язык заставляет думать.

В Zope 2.x все данные хранятся в ZODB - объектно-ориентированная база данных Zope.

Внутреннее устройство Plone

Очень грубо можно разделить на 3 части:

  • Логика. За логику отвечают специальные наборы инструментов (не уверен, что это правильный перевод Portal Tools).
  • Дизайн. То как выглядит сайт и его элементы.
  • Контент. Структура сайта и его данные, все тексты, папки, файлы которые видит посетитель или с которыми работают пользователи сайта.

Теперь рассмотрим подробнее, что ставится по умолчанию и как это согласуется с этими частями.

Инструменты сайта

По умолчанию ставится определенный набор инструментов. Зайдите в ZMI, и вы увидите такой список:

caching_policy_manager (CMF Caching Policy Manager)
Менеджер, который отвечает за кэширование. XXX! Честно говоря, я им ни разу не пользовался. Так что хотел бы узнать о нем поподробнее.
content_type_registry (Content Type Registry)
Инструмент, который привязывает MIME-типы к типам данных портала. Zope позволяет работать с сервером не только по HTTP протоколу, но и FTP и WebDAV. Если вы собираетесь предоставлять доступ к данным по этим протоколам, то, вероятно, вам стоит настроить какие файлы, при загрузке на сервер, будут преобразовываться в какие документы портала. Если вы собираетесь использовать Archetypes, то там есть аналогичный инструмент.
cookie_authentication (Cookie Crumbler)
Этот инструмент позволяет авторизовывать пользователей используя жетоны (cookie). Протокол HTTP имеет возможности авторизовывать, и когда вы заходили в ZMI пришлось пройти через окошко ввода логина и пароля. Но к сожалению HTTP не имеет возможности "отлогинить" пользователя. Дабы не вдаваться в детали, скажу, что на данный момент существует только одна законная и удобная схема, через жетоны (cookie). Когда вы входите на сайт вам выдается жетон (cookie), когда нажимаете кнопку "Выйти" - удаляется. Этот продукт позволяет связать информацию получаемую, из жетонов с внутренним механизмом распределения прав Zope.
error_log (Site Error Log)
Вообще-то это не инструмент CMF или Plone, а стандартный продукт Zope. Коллектор ошибок и исключений. Принцип работы прост: информация об ошибках возникающих ниже по иерархии дерева записывается в список ошибок. Внимание! Ошибки хранятся в памяти и после перезапуска сервера список очищается.
plone_utils (Various Plone Utility methods)
Что-то вроде моста между шаблонами сайта и набором маленьких утилит. Внутренняя система безопасности разрешает скриптам добавляемым в ZMI выполнять только определенные действия и работу с ограниченным числом библиотек. Поэтому приходится размещать часть функционала во внешних продуктах. plone_utils и есть этот внешний набор небольших скриптов, которые и выкинуть жалко, и привязать не к чему.
portal_actionicons (Plone Action Icons Tool)
"Очень важный продукт", занимается только тем, что сопоставляет картинки разным действиям на сайте. Причина его возникновения для меня загадка.
portal_actions (Plone Actions Tool)
Сердце CMF сайта. Будет рассказано подробнее отдельно.
portal_calendar (Plone Calendar Tool)
Продукт по идее должен заниматься отображением календарика с событиями. Работает очень медленно, смысл его существования не ясен, но календарики очень любят заказчики и слабые духом разработчики.
portal_catalog (Plone Catalog Tool, Indexes all content in the site)
Важный компонент сайта, поисковый каталог. Все документы при добавлении/изменени/удалении/изменении статуса/etc регистрируются тут. Каталог совмещенный с системой прав как раз и являются тем граммом урана которые делают Zope бесценным.
portal_controlpanel (Plone Control Panel Tool)
Список элементов панели управления Plone.
portal_discussion (Plone Discussion Tool, Controls how discussions are stored by default on content)
Инструмент отвечает за обсуждения доступные на сайте. Как, разве вы еще не знаете, что на Plone-сайтах можно обсуждать практически все? Так вот на Plone-сайтах можно обсуждать практически все.
portal_factory (Plone Factory Tool, Responsible for the creation of content objects)
Специальный инструмент который позволяет не создавать физически в ZODB объекты каждый раз когда пользователи нажимают кнопку "Создать". Объект временно размещается в памяти и пока вы его не сохраните будет оставаться там. Удивительное рядом. По умолчанию отключен. Включать имеет смысл только когда используете Workspace.
portal_form
не используется Устаревший инструмент, использовался для проверки форм, а сейчас лежит для совместимости и выдачи Deprecation Warning. Вместо него используется portal_form_controller.
portal_form_controller (Form Controller Tool, Manage form validation and post-validation actions)
Инстумент который так же заслуживает отдельного обсуждения. Если кратко, то отвечает за проверку заполнения форм.
portal_groupdata (Plone Group Data Tool)
Инстумент хранит информацию о группах пользователей.
portal_groups (Plone Groups Tool)
Инстумент отвечает за создание папок групп.
portal_interface (Portal Interface Tool)
Так же как и plone_utils служебный инструмент, позволяет получить доступ к программынм интерфейсам.
portal_memberdata (Plone Memberdata Tool)
Хранит свойства пользователей и их портреты. Кстати, если вы хотите посмотреть список всех портретов то зайдите по ссылке Plone/portal_memberdata/portraits/manage_main.
portal_membership (Plone Membership Tool, Handles membership policies)
Занимается созданием папок участников сайта, что обычно отключается на бизенс сайтах. Так же тут хранятся действия доступные участникам сайта.
portal_metadata (Plone Metadata Tool, Controls metadata - like keywords, copyrights etc)
Свойства портала и объектов в нотации Dublin Core. Инстумент так же известен тем, что в нем изменяется список типов событий (закладка Elements, группа свойств Subject).
portal_migration (Plone Migration Tool, Handles migrations to newer Plone versions)
Внебрачный ребенок проектов разрабатываемых большой группой людей. Инстумент отвечает за миграцию со старых версий портала на новые. Внимание! Прежде чем мигрировать портал сделайте резервную копию директории var экземпляра сервера.
portal_properties (Plone Properties Tool, Portal)
Реестр сайта, тут хранятся свойства с которыми работают инструменты и шаблоны. Если надо поменять поведение чего-то на сайте, то вероятно это можно сделать тут.
portal_quickinstaller (Plone QuickInstaller Tool)
Один из немногих действительно оригинальных инструментов написанных создателями Plone (практически все остальные ограничиваются изменением иконки в ZMI для инстументов CMF). Позволяет устанавливать дополнительные продукты влияющие на работу портала. Например: CMFBoard - продукт позволяющий создавать на сайте форумы.
portal_registration (Plone Registration Tool, Handles registration of new users)
Отвечает за регистрацию на сайте участников.
portal_skins (Plone Skins Tool, Controls skin behaviour (search order etc))
Тут и хранится весь дизайн, формочки, скрипты проверки, картинки и т.д. Все темы оформления хранятся тут.
portal_syndication (Plone Syndication Tool, Generates RSS for folders)
Обеспечивает возможность синдикации, к сожалению только в формате RSS.
portal_types (Plone Types Tool, Controls the available Content Types in your portal)
Реестр типов данных доступных на сайте. Когда посетитель создает папку или новость, то он создает экземпляр одного из объектов перечисленных в этом списке.
portal_undo (Plone Undo Tool, Defines actions and functionality related to undo)
Так же как и portal_syndication или portal_registration инстумент с богатыми внутренними возможностями в ZMI от которых виден только внешний интерфейс. Этот отвечает за отмену действий на сайте. ZODB устроена особым образом, что все изменения дописываются в конец файла, так что до тех пор пока вы не упаковали базу данных у вас всегда есть возможность отменить последние действия. Конечно, есть некоторые ограничения, например если вы создали папку, а потом в ней документ, то нельзя будет отменить создание папки без отмены создания документа.

hint: некоторые действия (например установка продуктов) затрагивают не только Plone портал, но и весь Zope. Для того чтобы отменить подобные действия придется подняться в корень Zope (http://localhost:8080/manage) и там выполнить отмену.

portal_url (Plone URL Tool, Methods to anchor you to the root of your Plone site)
Интерфейс доступа к корню портала из шаблонов и скриптов.
portal_workflow (Plone Workflow Tool, Contains workflow definitions for your portal)
Инстумент управляет рабочими циклами. Требует отдельного рассмотрения.


comments:

Archetypes --bmc, Sat, 10 Jul 2004 15:08:09 +0400 reply
Довольно кратко - если бы описывался подробнее каждый tool (и коротенькие примеры его использования - не путать с интерфейсом), то цены бы такой доке не было. Ещё лучше - описал бы кто-нибудь Archetypes (только не перевод доки с plone.org, а сокращённую и упрощённую версию).

 

liveinternet.ru: показано число посетителей за сегодня