Tonico Strasser wrote:
Jim Fulton schrieb:


I've put doesn some thoughs for discussion on making the publication APIs
more explicit and for supporting post processing tasks like adding
standard look and feel or adding missing page components.


as a UI designer I would like to have a page Object (not the context object) that I can adapt to IPublicationResult.

I would like contracts for HTML pages, e.g something like:

class IHTMLPage(zope.interface.Interface):
    """Provides information for a generic HTML Page"""
    title = ''
    description = ''

class IZMIPage(IHTMLPage):
    "Provides information for a basic ZMI page"""
    scripts = [] # ordererd List of IZMIScriptFiles
    styles = [] # ordered List of IZMIStylesheetFiles
    class_names = IZMICSSNames # class names mapping  with standard keys
    id_names = IZMIIdNames # id names mapping with standard keys
    actions = [] # IZMIActions
    views = [] # IZMIViews
    # ... anything needed by a IZMIPageRenderer

class IHTMLPageRenderer(IPublicationResult):
    def render(obj, request, html_page):
        """Renders a HTML page"""

class IZMIPageRenderer(IHTMLPageRenderer)
    def render(obj, request, zmi_page):
        """Renders a ZMI page"""

A renderer should be able to use any template language to do its job, e.g. ZPT, DTML, PHP, XSLT ... IMHO.

Disclaimer: I guess the code above is garbage, this is just for discussion, I'm still learning the basics :)

This is an excellent thought experiment.

I think that, ultimately, we'll have to try some things out (prototype,
in other words) to see what works.  My short term (before Nov 1)
goal is to see what sort of hooks we can put in the publisher that allows
these kinds of experiments wilthout making too many commitments.


Jim Fulton           mailto:[EMAIL PROTECTED]       Python Powered!
CTO                  (540) 361-1714  
Zope Corporation
Zope3-dev mailing list

Reply via email to