[Zope3-dev] Siesia: A new UI for Zope 3

Martijn Faassen faassen at infrae.com
Wed May 5 10:34:19 EDT 2004


Stephan Richter wrote:
> On Wednesday 05 May 2004 01:44, Jim Fulton wrote:
> 
>>>The issue at hand, really, is that Zope's skinning mechanism sucks.
>>
>>Hm, I think we still need to work on communication. :(
>>Aside from being inflamatory, this statement has no content.
> 
> 
> Sorry, I guess I over-summarized. But I distinctly remember Paul criticizing 
> this approach about a year ago. Skins +Layers use a hierarchical tree or 
> inheritance, but most other UI generation system use a pipe. This makes it 
> really hard for designers to use well-established patterns.

An advantage of a pipe based system is that designers who develop a UI 
are not bothered by calling a Zope 3 API. They don't need to know it. 
Instead, you can create a well-defined output structure that is produced 
for each object. This structure (which could be a bunch of python 
datastructures or an XML structure) can be very well specified. The UI 
people then use this structure and transform it into what is needed, in 
one or more steps.

This way, a UI designer has a much decreased chance of having to handle 
bugs somewhere deep in Zope, as many such bugs will be found already by 
the developer lower down when producing the right data from the content 
(as the first input into the pipeline).

The whole design with a pipeline system can be more modular, at least 
this is the hope.

A very trivial pipeline can be done right now:

   * one method on content object (or view?) that produces a structure 
of dictionaries and lists with data in there. This data is sufficient to 
produce the HTML view needed.

   * a page template that takes this structure (and only this structure, 
no other API calls) and produces the HTML page.

A Zope 3 way of doing pipelines could probably exploit the adapter 
infrastructure to associate steps with each other.

Regards,

Martijn





More information about the Zope3-dev mailing list