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 :)


Zope3-dev mailing list
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com

Reply via email to