WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!


Pages:     | 1 | 2 || 4 |

22 portal_memberdata (Plone Memberdata Tool) portal_types (Plone Types Tool, Controls the available Content Types in your Хранит свойства пользователей и их портреты. Кстати, если вы хотите portal) посмотреть список всех портретов то зайдите по ссылке Реестр типов данных доступных на сайте. Когда посетитель создает Plone/portal_memberdata/portraits/manage_main.

папку или новость, то он создает экземпляр одного из объектов переportal_membership (Plone Membership Tool, Handles membership policies) численных в этом списке.

Занимается созданием папок участников сайта, что обычно отключаportal_undo (Plone Undo Tool, Defines actions and functionality ется на бизенс сайтах. Так же тут хранятся действия доступные участrelated to undo) никам сайта.

Так же как и portal_syndication или portal_registration инстумент с богаportal_metadata (Plone Metadata Tool, Controls metadata - like keywords, тыми внутренними возможностями в ZMI от которых виден только copyrights etc) внешний интерфейс. Этот отвечает за отмену действий на сайте.

Свойства портала и объектов в нотации Dublin Core. Инстумент так же ZODB устроена особым образом, что все изменения дописываются в известен тем, что в нем изменяется список типов событий (закладка конец файла, так что до тех пор пока вы не упаковали базу данных у Elements, группа свойств Subject). вас всегда есть возможность отменить последние действия. Конечно, есть некоторые ограничения, например если вы создали папку, а поportal_migration (Plone Migration Tool, Handles migrations to newer Plone том в ней документ, то нельзя будет отменить создание папки без отversions) мены создания документа.

Инстумент отвечает за миграцию со старых версий портала на новые.

portal_url (Plone URL Tool, Methods to anchor you to the root Внимание! Прежде чем мигрировать портал сделайте резервную копию директории var экземпляра сервера. of your Plone site) Интерфейс доступа к корню портала из шаблонов и скриптов.

portal_properties (Plone Properties Tool, Portal) Реестр сайта, тут хранятся свойства с которыми работают инструмен- portal_workflow (Plone Workflow Tool, Contains workflow definitions ты и шаблоны. Если надо поменять поведение чего-то на сайте, то for your portal) вероятно это можно сделать тут. Инстумент управляет рабочими циклами. Требует отдельного рассмотрения.

portal_quickinstaller (Plone QuickInstaller Tool) Один из немногих действительно оригинальных инструментов написанных создателями Plone (практически все остальные ограничиваютИнструменты разработчика ся изменением иконки в ZMI для инстументов CMF). Позволяет устанавливать дополнительные продукты влияющие на работу портала.

Разработка системы ведется по трем направлениям: создание диНапример: CMFBoard - продукт позволяющий создавать на сайте фозайна, проектирование различных шаблонов и написание продуктов.

румы.

Дизайн сайта можно выполнять, используя разные подходы. Воportal_registration (Plone Registration Tool, Handles registration of new users) первых, его можно создавать изменяя встроенные стили. В разделе Отвечает за регистрацию на сайте участников.

portal_skins находятся все визуальные компоненты системы. Для их portal_skins (Plone Skins Tool, Controls skin behaviour (search order etc)) изменения необходимо выбрать нужный элемент и нажать кнопку Тут и хранится весь дизайн, формочки, скрипты проверки, картинки и Customize. При этом этот элемент копируется в раздел т.д. Все темы оформления хранятся тут.

portal_skins/custom. Как только объект помещается в этот каталог, он portal_syndication (Plone Syndication Tool, Generates RSS for folders) Обеспечивает возможность синдикации, к сожалению только в фор- становится доступным для изменения. Таким образом можно изменить мате RSS.

любые изображения, стили и т.д. С помощью такого подхода можно сделать только незначительные изменения, оставляя общее расположение элементов неизменным.

Другим направлением является разработка собственных skins на 24 основе готовых каркасов DIYPloneStyle, MySkin, SimplePloneStyle. атрибут устанавливает содержимое тэга title и его значение Использование этих продуктов позволяет разрабатывать полностью "here/title" является выражением, предоставляющим текст для вставки свой дизайн, отличный от основного каркаса Plone. внутрь тэга.

Шаблоны. Шаблоны страницы являются инструментом для гене- Когда эти шаблоны сохраняются в Zope и просматриваются польрации веб страниц. Целью шаблонов страниц является естественный зователем, Zope превращает этот статический контент в динамический процесс публикации. Дизайнер, используя WYSIWYG HTML редак- и заменяет "Page Title" каким-либо найденным значением "here/title". В тор, создает шаблон, программист редактирует его и делает частью данном случае "here/title" принимает значение title объекта, который приложения. Если требуется, дизайнер может загрузить шаблон об- обращается к данному шаблону. Эта замена происходит динамически, ратно в свой редактор и продолжить изменения в его структуре и когда шаблон становиться представлением.

внешнем обличие. Не трогая изменений сделанных программистом, он Этот пример также демонстрирует второй принцип. Когда вы видине сможет нарушить работу приложения. те шаблон в редакторе, текст заголовка работает как заменитель динаШаблоны страниц должны удовлетворять трем основным прави- мического текста заголовка. Этот шаблон представляет собой пример лам: генерации документов.

1. Хорошее согласование с инструментами редактирования.



2. Что вы видите, то вы и получаете.

3. Хранение кода отдельно от шаблона, за исключением структурной логики.

Zope поставляется с двумя системами шаблонов DTML и ZPT (Zope Page Templates). DTML считается устаревающей и в дальнейшем поддерживаться не будет.

Шаблоны страниц используют Template Attribute Language (TAL) - язык описания атрибутов, заключающийся в добавлении специальных атрибутов в тэг.

Для примера, заголовок динамической странице выглядит подобно этому:

3 Санкт-Петербургский государственный университет Факультет филологии и искусств Кафедра информационных систем в искусстве и гуманитарных науках И.А. МБОГО Разработка Здесь tal:content атрибут является оператором TAL. Он имеет XML пространство имен (часть tal:), большинство инструментов редактирования не считают его ошибочным потому что не знают его, и соответственно не удаляют этот атрибут. Этот атрибут не изменяет структуру или внешний вид шаблона при загрузке его в WYSIWYG Рисунок 14. Создание шаблона.

редактор или в веб браузер. Имя content указывает на то что данный 26 Есть команды шаблона для замены всего тэга, его содержимого или Элементы TAL некоторых его атрибутов. Вы можете повторить тэг несколько раз или Вставка текста полностью опустить его. Вы можете соединять часть нескольких шабДля того чтобы разместить динамический текста внутри другого лонов вместе и определить простую обработку ошибок. Все эти осотекста, используйте tal:replace оператор в тэге span. Добавьте бенности используются для генерации структурированных докуменследующие строки в ваш шаблон:

тов. Вы не можете создавать подпрограммы или классы, писать циклы
The URL is URL.

или множественные проверки условий, или просто вычислять сложные Тэг span является структурным и не отображается визуально, в реалгоритмы. Для этих задач, вы должны использовать Python.

зультате вы видите нечто подобное "The URL is URL.", когда просматЭтот язык шаблонов не является самостоятельным языком прориваете представление вашего исходника редакторе или в браузере.

граммирования. Он основывается на использовании внутри каркасов Когда вы просматриваете визуализированную (обработанную) версию программирования (framework)(таких как Zope), в которых другие шаблона, он выглядит подобно следующему:

объекты обрабатывают бизнес логику и задачи, не имеющие отноше
ния к разметке страницы.

The URL is http://localhost:8080/TestTemplate.

Для создания действующего шаблона, его желательно, поместить в Помните, что когда вы размещаете tal:replace не в тэг span а в custom и вставить объект Page Template.

тэги форматирования такие как b или font, эти тэги также заменяются После создания объекта Вы получите почти пустую страницу.

на результат вычисления оператора, т.е. они будут отсутствовать в тексте конечной страницы.

Если вы хотите поместить текст внутрь тэга, оставив сам тэг нетронутым, вы должны использовать оператор tal:content. Для установки заголовка вашей страницы примера в тэг title, добавьте следующие строки:

3 Санкт-Петербургский государственный университет Факультет филологии и искусств Кафедра информационных систем в искусстве и гуманитарных науках И.А. МБОГО Разработка Если вы откроете вкладку Test в новом окне, в заголовке страницы появится «Тестируем шаблон».

Повторяющиеся структуры Оператор tal:repeat "повторить эту строку для каждого элемента содержащую список свойств объекта". Ниже представлена таблица, которая имеет номер строки для каждого объекта, и столбцы с id, meta-type и title.

Рисунок 15. Стандартная страница шаблона.

28 Оператор tal:condition ничего не делает если его выражение имеет значение true и просто удаляет весь тэг, включая его содержи мое, если значение выражения false. Свойства odd и even переменной repeat/item возвращают ноль или единицу. Число ноль, пустая строка, пустой список и встроенная переменная nothing все они
#IdMeta-TypeTitle
#Id Meta-TypeTitle
имеют значения false. Противоположное значение true, включающее Оператор повторения поочередно помещает объекты из списка в не нулевое число и строки с любыми символами (даже пробелы).

переменную item, и делает копию строки, используя эту переменную.

Значение item/id в каждой строке представляет Id объекта, для ко- Определение переменных торого создается строка.

Оператор tal:define создает переменную items и его можно использовать ее где-нибудь в тэге table.

Условные элементы Условия можно вставлять используя выражение tal:condition

tal:define="items container/objectValues" tal:condition="items"> Обратите также на то что вы можете иметь два TAL атрибута в од ном и том же тэге table. В первом определяется переменная items, во втором items используется в условии, определяющем, какое из двух значений она имеет false(пустая последовательность) или true.

На использование TAL накладываются следующие ограничения:

1. Только один оператор каждого типа может использоваться в пределах.одного тэга. Дело в том, что HTML не позволяет не
#IdMeta-TypeTitle
#IdMeta-TypeTitle
#Id Meta-TypeTitle
# IdMeta-Type Title
скольким атрибутам иметь одно и тоже имя, вы не можете иметь два оператора tal:define в пределах одного тэга.

Посмотрите на шаблон и вы увидите две строки. Если не добавлять 2. Оба оператора tal:content и tal:replace не могут исоператор tal:condition в эти строки, то шаблон генерировал бы обе пользоваться в одном и том же тэге одновременно, так как эти строки для каждого элемента, это не совсем то что вы хотели бы. Опефункции, в таком случае, конфликтуют между собой.

ратор tal:condition в первой строке гарантирует что эта строка 3. Последовательность в которой вы записываете TAL атрибуты в включает только четные повторения, в то время как условие во второй тэге не совпадает с последовательностью их выполнения. В кастроке указывает на нечетные повторения.

ком бы порядке вы их не написали, выполняются они всегда в следующей последовательности: define, condition, repeat, content / replace, attributes.

30 встроенные переменные Сила Archetypes заключается, во первых, в автоматической генерации форм; во вторых, в предоставлении библиотеки из основных тиМы уже использовали некоторые встроенные переменные пов полей, виджетов форм, и кода проверки поля (валидаторов); в template, user, repeat и request. Здесь представлен полный спитретьих, в простой интеграции собственных полей, виджетов, и кода сок других встроенных переменных и информация для их использовапроверки; и в четвертых, в автоматическом преобразовании форматиния:

рованного (rich) контента.

nothing: фальшивое значение, аналогичное пустой строке, которое вы При создании своего типа необходимо создать определенную можете использовать в tal:replace или tal:content для очистки тэга или его содержимого. Если вы установите атрибут в nothing, этот атрибут будет структуру файлов.

удален из тэга (или не вставлен), в отличие от пустой строки.

Products default: специальное значение ничего не изменяющее при использовании | в tal:replace, tal:content или tal:attributes. Оно оставляет текст шаблона в \- MyArticle том месте где записан.

| \- init.py options: the keyword arguments, if any, that were passed to the template.

| attrs: словарь из атрибутов текущего тэга в шаблоне. Ключами являются \- Article.py | имена атрибутов, а значениями конкретные значения определенные в \- config.py шаблоне.

| root: корневой объект Zope. Используется для получения Zope объектов с \Skins \Article.pt фиксированным местоположением, не зависящим от того где расположен | ваш шаблон и как он вызывается.

\- Extensions | here: объект который вызывает шаблон. Часто это тоже самое что и кон \- init.py тейнер, за исключением того что может изменяться если вы используете | заимствование. Используйте его для получения объектов Zope которые \- Install.py могут быть найдены в различных местах в зависимости от того как шаблон был вызван.

init.py – этот файл стартует, когда Zope загружает продукт container: контейнер (обычно папка) в которой хранится шаблон. Исполь(тип). Файл содержит описательную информацию для Zope сервера, зуйте ее для получения объектов Zope располагающихся относительно установка имени объекта, скинов,… места где храниться шаблон.

Article.py – основной файл, содержащий класс и основную схему;

modules: коллекция модулей Python доступных из шаблона. Смотрите написание Python выражений.

config.py – файл конфигурации, содержит кофигурационные константы, имя продукта, описание разрешений;

Extensions - каталог, в котором находится инсталлятор Архетипы (Archetypes) Install.py. Install.py считывается QuickInstaller. Методы install() и Archetypes является каркасом (framework) для разработчиков новых unistall() внутри этого файла выполняются во время инсталляции типов контента для Plone. В базовой поставке пользователь имеет или деинсталляции продукта.

небольшой набор типов объектов – документ, новость, событие, изоSkins – каталог для хранения шаблонов бражение. Если Вам требуется создать дополнительный тип (т.е. новый объект, который формируется при помощи заполнения полей), то Archetypes – это именно тот инструмент, которым нужно пользоваться.

32 Файл init.py - инициализация продукта Более подробную информацию об архетипах можно получить по from Products.CMFCore.CMFCorePermissions import AddPortalContent адресу:

from Products.CMFPlone.PloneUtilities import ToolInit http://plone.org/documentation/manual/archetypes-developer-manual.

from Products.Archetypes import listTypes from Products.Archetypes.utils import capitalize В качестве небольшого примера приведем создание объекта на основе архетипов, который называется tender. from Products.Archetypes.public import * from config import * Постановка задачи:

from Products.tenders.config import PROJECTNAME, \ ADD_CONTENT_PERMISSION Требуется создать дополнительный объект Plone, который бы имел возможность публиковать информацию об объявленных конкурсах.

skin_globals=globals() Каждый конкурс имеет сроки объявления, срок принятия решения, def initialize(context):

Pages:     | 1 | 2 || 4 |










© 2011 www.dissers.ru - «Бесплатная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.