[Zope3-dev] Zope 3 Web Content Management

Janko Hauser jh@comunit.de
Thu, 19 Sep 2002 18:56:49 +0200


Max M wrote:
> Janko Hauser wrote:
> 
>> But the structure you declare in your skin mechanism will not solve 
>> all the different design needs different customers have. Nesting 
>> should not be allowed?
> 
> 
> No! if you have a mehod called emp() it should not be nested with other 
> methods. The code that emp() generates can easily generate nested markup 
> though.
> 
> def emp(content):
>     return '<font size="-1" face="verdana"><i><emp>%s</emp></i></font>' 
> % content
> 
> etc.
You have said, stylesheets could not be used for this, I do not 
understand why.

> 
>> I do not like the approach to introduce another programmatic layer for 
>> the generation of layout. PageTemplates are useful to generate views 
>> for the components.
> 
> 
> 
> Perhaps Pagetemplates can be used to implement the ideas. It isn't 
> mutually exclusive.
> 
>> In a CMS are at least three different areas of Layout. First there is 
>> the layout of the content-objects. Here we have found it is important 
>> to connect different layouts to objects of the same content-type. For 
>> example we have articles with pictures, without, one or two columns, etc.
>> This can be changed during the lifetime of an object. With modern 
>> WYSIWIG approaches it's perhaps possible to neglect the next area of 
>> layout, namely the input of content in the different content-areas of 
>> an actual document. We call it mask in contrast to the template, which 
>> presents the content.
> 
> 
> 
> But this is exactly the problem. It should not be nessecary to change 
> anything with wisywig tools. Ideally we should have a system that can be 
> skinned just like KDE & Gnome. Those implementing a site should not have 
> to change layout themself. They should be able to select from a list of 
> possible skins.
>
Sorry I wasn't clear. I didn't mean a wysiwyg layout creator. But people 
  do not like to fill out forms, without any context to the layout. So 
if one want's to set an image, there should be visible, where they put 
the image.

Here I see the use of WYSIWYG tools, albeit I see the difficulty of 
proper distinction between presentation and content.

> And those implementing products should not have to think about the look 
> of the site.
> 
So, here we are speaking about managment screens for products. Yes I 
think it would be good to have an abstract API which implements common 
managment layout, like the current tabs. And this API can be implemented 
at a central place.

> 
>> So what I see, that before we discuss the actual implementation of a 
>> template system, we need to define a way, how views can be connected 
>> to objects. The current way in Z3 is path based, but this will 
>> probably not work for a CMS, as the knowledge of the view needs to be 
>> present in the content-object, at least for pure layouts.
> 
> 
> 
> I don't understand what you mean...
> 
In Z3 the content and application objects do know nothing about layout. 
There are special view classes which are between the ZPT and the 
application object. I meant, that in some way, the contents objects need 
to have a link to the layout. They should not need to know whats going 
on in the layout layer, but they need to know which view classes they 
should be used with. And this is dynamic for pure layout skins in 
contrast to functional skins.

> 
>  From browsing the code it seems to me that the cmf have this big 
> massive block of intertangled layout/skins and if you want to add 
> another component to the cmf you have to create custom views for it, 
> giving it it's own stylesheets etc. This does not scale well at all.
> 
> My suggestion is that if we really want 10x usage of Zope we need to 
> make it possible to skin products on a global level using a solid api. 
> Or else we will simply have this situation where there will be big 
> implementation issues every time a new product is added to the system.
> 
Same opinion here :-).

> If you have to change the skin because a new product is added you are 
> doing it wrong!
> 
> If you have to change your product when a new skin is used you are doing 
> it wrong!
> 
> If KDE or Gnome worked Zope does now, they would have to write a new 
> skin every time a new application was written for them ...
> 
They have basic widgets, the layout in HTML or the next ML thing is 
probably more dynamic and flexible. But for managment screens the widget 
or better skinned widget approach might be appropiate.

looking further to the discussion

__Janko