================= Layout Management ================= ($Id$) >>> from zope import component >>> from zope.interface import Interface >>> from cybertools.composer.layout.base import LayoutManager >>> manager = LayoutManager() >>> component.provideUtility(manager) >>> from zope.traversing.adapters import DefaultTraversable >>> component.provideAdapter(DefaultTraversable, (Interface,)) Browser Views ============= >>> from zope.app.pagetemplate import ViewPageTemplateFile >>> standardRenderers = ViewPageTemplateFile('browser/standard.pt').macros >>> from cybertools.composer.layout.base import Layout >>> from cybertools.composer.layout.interfaces import ILayout >>> #css = Layout('page.css', renderer=standardRenderers['css']) >>> # css = ResourceCollection('css', resourceRenderers['css']) >>> #component.provideUtility(css, ILayout, name='css') >>> from cybertools.composer.layout.browser.liquid.default import BodyLayout >>> bodyLayout = BodyLayout() >>> component.provideUtility(bodyLayout, ILayout, name='body.liquid') >>> footerLayout = Layout('body.footer', renderer=standardRenderers['footer']) >>> component.provideUtility(footerLayout, ILayout, name='footer.default') >>> from cybertools.composer.layout.browser.view import Page >>> from zope.publisher.browser import TestRequest >>> page = Page(None, TestRequest()) >>> page() u'.........'