Закончил основную часть учебника.

14 views
Skip to first unread message

dem...@gmail.com

unread,
Aug 24, 2010, 9:24:36 AM8/24/10
to Russian Zope3 group
Я разобрался с большей часть своих вопросов по Zope и как обещал
написал хаутушку. Хаутушка никоим образом не покрывает все, а только
те части которые были мне как новичку не понятны.
Поэтому прошу просмотреть и если все Ок, отдаю в нужном формате тому
кто хочет её разместить. Хочу еще разобраться с пейджлетами и скинами.
Основной затык был с аутентификацией и событиями, особенно мне не
нравится как я криво логин достаю. URL: http://demmsnt.ho.ua/z_tutorial/BBtutorial_win.html

Ilshad Khabibullin

unread,
Aug 24, 2010, 10:32:15 AM8/24/10
to zope...@googlegroups.com
Прикольно, своебразный жанр получается, и написано хорошо, живо, как мне кажется. Мануал в форме приключений читать интереснее, чем сухую документацию. Я бы предложил продолжить экспериментирование с таким жанром.

24 августа 2010 г. 19:24 пользователь dem...@gmail.com <dem...@gmail.com> написал:

Я разобрался с большей часть своих вопросов по Zope и как обещал
написал хаутушку. Хаутушка никоим образом не покрывает все, а только
те части которые были мне как новичку не понятны.
Поэтому прошу просмотреть и если все Ок, отдаю в нужном формате тому
кто хочет её разместить.

Можно будет и у себя оставить, т.к. bluebream.ru ориентируем не только на хранение контента, но больше на навигацию, в том числе по внешним ресурсам.

Расследование показало, что это право определено в zope.dublincore, однако включение

<include package="zope.dublincore" />

не помогло, поэтому в site.zcml я написал:

<permission  id="zope.app.dublincore.change" title="[zope.app.dublincore.change-permission]             Change Dublin-Core Meta Data " />

Это ошибка в paster-шаблоне, которая будет исправлена в следующем релизе. Описал здесь: http://astoon.livejournal.com/100451.html

Так что лучше убрать из учебника, это будет обескураживать читателя.

1)  В общем случае 1 объект может содержаться в N контейнерах. Однако хочется получать каким-то образом контейнер в котором лежит объект. Это только с помощью аннотаций при добавлении объекта?

Аттрибут __parent__.

Речь идет об объектах, предоставляющих интерфейс zope.location.interfaces.ILocation.
Что означает "Я - протокол, описыващий имя и родителя".

Вообще, я считаю, что не следует сильно заострять внимание на реализациях (т.е. классах-объектах), но все внимание уделять интерфейсам и ориентировать себя в мыслях на интерфейсы. Так сделан ZTK/BlueBream. Такой подход сильно облегчает работу с данной платформой, как только придет привычка. Тем более что сама платформа сильно ориентирована на данный подход (если не грокать grok'ом, конечно).

2)  Не понятно в каких случаях нужно использовать пейджлеты. Вообще идея слоев и пейджлетов понятна, только не совсем понятно какие вообще в этой идее «игроки» и кто чем занят (буду читать документацию и примеры).

Альтернатива пейджелетам - обычные страницы, но шаблоны которых используют макросы.

Попробую изложить, а в мануал можно своими словами, понятнее, или просто скопировать.

  1. Во-первых, макросы это больше хак, нежели компонентный подход.
  2. Во-вторых, они усложняют и загрязняют шаблоны, так что лучше использовать их опосредованно (т.е. не писать самим вообще. Они используются в особо сложных случаях, таких как формлибы, при этом можно даже не знать об этом.)
  3. В-третьих, они не настолько гибки. Пейджелеты - это не самая важная сущность (кстати они вводились на короткое время в каких-то версиях zope3, экспериментальных, еще до z3c.pagelet. Потом, во времена рефакторинга компонентной архитектуры, когда чистили зоуп от лишних сущностей, выкинули и пейджелеты, решив что им место в комьюнити-пакетах). Пейджелеты это - лишь одна из реализаций концепций, введенных в более важном пакете - z3c.template. Эти концепции простые но мощные. Шаблон адаптируется, поэтому для одного и того же пейджелета может быть разным на разных запросах (скинах) или на разных контекстах (см. интерфейс z3c.template.zcml.ITemplateDirective). Есть и другие возможности, см. вышеупомянутый интерфейс.
  4. В-четвертых, макросы есть только в TAL-движке. А он - надо сказать, не самый быстрый и не самый понятный (хотя лично я его использую в 99%). В пейджелетах вы можете использовать любые шаблонные движки, переключать их, или просто возвращать юникод из метода render, или генерировать как-то еще (например z3c.table не использет шаблоны). Но - при этом возвращаемая страница будет не отдельно, а в layout'е.


--
Russian Zope3 group http://zope3.ru/
Для отправки сообщений zope...@googlegroups.com
Отписаться zope3-ru-u...@googlegroups.com
Архив http://groups.google.com/group/zope3-ru



--
Ilshad R. Khabibullin
http://astoon.zwiki.org
+7 922 600 56 06

RostislavDzinko

unread,
Aug 25, 2010, 2:59:30 AM8/25/10
to Russian Zope3 group
Вижу вы красным отметили PrincipalAnnotation.
Советую взглянуть по этой ссылке: http://wiki.zope.org/zope3/principalannotation.html.

dem...@gmail.com

unread,
Aug 25, 2010, 3:21:15 AM8/25/10
to Russian Zope3 group

On 24 авг, 18:32, Ilshad Khabibullin <astoon....@gmail.com> wrote:
> Прикольно, своебразный жанр получается, и написано хорошо, живо, как мне
> кажется. Мануал в форме приключений читать интереснее, чем сухую
> документацию. Я бы предложил продолжить экспериментирование с таким жанром.

Продолжу :-)


> Расследование показало, что это право определено в zope.dublincore, однако> включение
>
> > <include package="zope.dublincore" />
>
> > не помогло, поэтому в site.zcml я написал:
>
> > <permission  id="zope.app.dublincore.change"
> > title="[zope.app.dublincore.change-permission]             Change
> > Dublin-Core Meta Data " />
>
> Это ошибка в paster-шаблоне, которая будет исправлена в следующем релизе.
> Описал здесь:http://astoon.livejournal.com/100451.html
>
> Так что лучше убрать из учебника, это будет обескураживать читателя.

Если у читателя не будет работать учебник, я его еще сильнее
обескуражу. Поэтому напишу, что это ошибка и что её исправят.


>
> 1)  В общем случае 1 объект может содержаться в N контейнерах. Однако> хочется получать каким-то образом контейнер в котором лежит объект. Это
> > только с помощью аннотаций при добавлении объекта?
>
> Аттрибут __parent__.
>
> Речь идет об объектах, предоставляющих интерфейс
> zope.location.interfaces.ILocation.
> Что означает "Я - протокол, описыващий имя и родителя".

Тут я скучаю про Acclusion

dem...@gmail.com

unread,
Aug 25, 2010, 7:15:48 AM8/25/10
to Russian Zope3 group
>
> Аттрибут __parent__.
>
В BB FAQ вот так:
To get the parent of an object use zope.traversing.api.getParent(obj).
To get a list of the parents above an object use
zope.traversing.api.getParents(obj).

Думаю это будет правильно.

Anatoly Bubenkov

unread,
Aug 25, 2010, 7:24:32 AM8/25/10
to zope...@googlegroups.com

вряд ли, это не COA подход
ILocation(obj).__parent__ намного лучше, имхо

--
Anatoly Bubenkov
+380(66)6358527
Zojax inc (http://zojax.com/)


Ilshad Khabibullin

unread,
Aug 25, 2010, 10:55:18 AM8/25/10
to zope...@googlegroups.com


25 августа 2010 г. 13:21 пользователь dem...@gmail.com <dem...@gmail.com> написал:



On 24 авг, 18:32, Ilshad Khabibullin <astoon....@gmail.com> wrote:
> Прикольно, своебразный жанр получается, и написано хорошо, живо, как мне
> кажется. Мануал в форме приключений читать интереснее, чем сухую
> документацию. Я бы предложил продолжить экспериментирование с таким жанром.
Продолжу :-)
> Расследование показало, что это право определено в zope.dublincore, однако> включение
>
> > <include package="zope.dublincore" />
>
> > не помогло, поэтому в site.zcml я написал:
>
> > <permission  id="zope.app.dublincore.change"
> > title="[zope.app.dublincore.change-permission]             Change
> > Dublin-Core Meta Data " />
>
> Это ошибка в paster-шаблоне, которая будет исправлена в следующем релизе.
> Описал здесь:http://astoon.livejournal.com/100451.html
>
> Так что лучше убрать из учебника, это будет обескураживать читателя.
Если у читателя не будет работать учебник, я его еще сильнее
обескуражу. Поэтому напишу, что это ошибка и что её исправят.

если не добавлять versions = versions , то вообще может ничего не подняться. Я об этом написал. Будут ошибки за ошибкой валиться, какие - предугадать нельзя, потому что новые версии пакетов выходят постоянно. Всегда должен использоваться KGS. В туториале KGS не использован, поэтому нужно начать с начала, к сожалению. Иначе результат у читателя будет совершенно случайный при этой версии bluebream,  и не случайный, но другой, на следующей версии. Т.е., нужно добавить versions = versions и проделать заново все операции в учебнике. Некоторых ошибок при этом не будет.
 
>
> 1)  В общем случае 1 объект может содержаться в N контейнерах. Однако> хочется получать каким-то образом контейнер в котором лежит объект. Это
> > только с помощью аннотаций при добавлении объекта?
>
> Аттрибут __parent__.
>
> Речь идет об объектах, предоставляющих интерфейс
> zope.location.interfaces.ILocation.
> Что означает "Я - протокол, описыващий имя и родителя".

Тут я скучаю про Acclusion

--
Russian Zope3 group http://zope3.ru/
Для отправки сообщений zope...@googlegroups.com
Отписаться zope3-ru-u...@googlegroups.com
Архив http://groups.google.com/group/zope3-ru

dem...@gmail.com

unread,
Aug 25, 2010, 11:44:07 AM8/25/10
to Russian Zope3 group
> Т.е., нужно добавить versions = versions и проделать заново все операции в
> учебнике. Некоторых ошибок при этом не будет.

Чуть чуть по подробнее. это в билдаут кфг?

Как использовать KGS не пытаясь писать все вручную?

Reply all
Reply to author
Forward
0 new messages