let layouts register themselves automatically as utilities upon creation
git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@3063 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
parent
ff0078630a
commit
16d43f6f81
5 changed files with 21 additions and 84 deletions
|
@ -26,34 +26,11 @@ manager.
|
|||
>>> manager = LayoutManager()
|
||||
>>> component.provideUtility(manager)
|
||||
|
||||
The layouts themselves are also specified as utilities.
|
||||
The layouts themselves are also specified as utilities that are automatically
|
||||
registered when we import the modules they are defined in.
|
||||
|
||||
>>> from cybertools.composer.layout.browser.default import page
|
||||
>>> component.provideUtility(page, ILayout, name='page')
|
||||
|
||||
>>> from cybertools.composer.layout.browser.liquid.default import css
|
||||
>>> component.provideUtility(css, ILayout, name='css.liquid')
|
||||
|
||||
>>> from cybertools.composer.layout.browser.liquid.default import body
|
||||
>>> component.provideUtility(body, ILayout, name='body.liquid')
|
||||
|
||||
>>> from cybertools.composer.layout.browser.default import logo
|
||||
>>> component.provideUtility(logo, ILayout, name='logo.default')
|
||||
|
||||
>>> from cybertools.composer.layout.browser.default import top_actions
|
||||
>>> component.provideUtility(top_actions, ILayout, name='top_actions.default')
|
||||
|
||||
>>> from cybertools.composer.layout.browser.default import column1
|
||||
>>> component.provideUtility(column1, ILayout, name='column1.default')
|
||||
|
||||
>>> from cybertools.composer.layout.browser.default import content
|
||||
>>> component.provideUtility(content, ILayout, name='content.default')
|
||||
|
||||
>>> from cybertools.composer.layout.browser.default import column2
|
||||
>>> component.provideUtility(column2, ILayout, name='column2.default')
|
||||
|
||||
>>> from cybertools.composer.layout.browser.default import footer
|
||||
>>> component.provideUtility(footer, ILayout, name='footer.default')
|
||||
>>> from cybertools.composer.layout.browser import default
|
||||
>>> from cybertools.composer.layout.browser.liquid import default
|
||||
|
||||
In addition we have to provide at least one layout instance adapter that
|
||||
connects a layout with the client object.
|
||||
|
|
|
@ -70,12 +70,12 @@ class Layout(Template):
|
|||
self.regionName = regionName
|
||||
for k, v in kw.items():
|
||||
setattr(self, k, v)
|
||||
#self.register()
|
||||
self.register()
|
||||
|
||||
def register(self):
|
||||
existing = component.queryUtility(ILayout, name=self.name)
|
||||
if existing:
|
||||
raise ValueError('Layout %s has already been registered.' % self.name)
|
||||
raise ValueError("Layout '%s' has already been registered." % self.name)
|
||||
component.provideUtility(self, provides=ILayout, name=self.name)
|
||||
|
||||
|
||||
|
|
|
@ -7,42 +7,11 @@
|
|||
|
||||
<browser:resourceDirectory name="default" directory="resources" />
|
||||
|
||||
<!-- main layouts -->
|
||||
<!-- layouts -->
|
||||
|
||||
<zope:utility
|
||||
component="cybertools.composer.layout.browser.default.page"
|
||||
provides="cybertools.composer.layout.interfaces.ILayout"
|
||||
name="page" />
|
||||
<zope:module module="cybertools.composer.layout.browser.default" />
|
||||
|
||||
<zope:utility
|
||||
component="cybertools.composer.layout.browser.default.logo"
|
||||
provides="cybertools.composer.layout.interfaces.ILayout"
|
||||
name="logo.default" />
|
||||
|
||||
<zope:utility
|
||||
component="cybertools.composer.layout.browser.default.top_actions"
|
||||
provides="cybertools.composer.layout.interfaces.ILayout"
|
||||
name="column2.top_actions" />
|
||||
|
||||
<zope:utility
|
||||
component="cybertools.composer.layout.browser.default.column1"
|
||||
provides="cybertools.composer.layout.interfaces.ILayout"
|
||||
name="column1.default" />
|
||||
|
||||
<zope:utility
|
||||
component="cybertools.composer.layout.browser.default.content"
|
||||
provides="cybertools.composer.layout.interfaces.ILayout"
|
||||
name="content.default" />
|
||||
|
||||
<zope:utility
|
||||
component="cybertools.composer.layout.browser.default.column2"
|
||||
provides="cybertools.composer.layout.interfaces.ILayout"
|
||||
name="column2.default" />
|
||||
|
||||
<zope:utility
|
||||
component="cybertools.composer.layout.browser.default.footer"
|
||||
provides="cybertools.composer.layout.interfaces.ILayout"
|
||||
name="footer.default" />
|
||||
<!-- skin-specific layouts -->
|
||||
|
||||
<include package=".liquid" />
|
||||
|
||||
|
|
|
@ -32,22 +32,19 @@ from cybertools.composer.layout.browser.standard import standardRenderers
|
|||
defaultRenderers = RendererFactory(ViewPageTemplateFile('default.pt'))
|
||||
|
||||
|
||||
page = Layout('page', 'page', renderer=standardRenderers['page'],
|
||||
Layout('page', 'page', renderer=standardRenderers['page'],
|
||||
sublayouts=set(['css.liquid', 'body.liquid']),
|
||||
favicon='default/favicon.png')
|
||||
|
||||
logo = Layout('logo.default', 'body.logo', renderer=defaultRenderers.logo)
|
||||
Layout('logo.default', 'body.logo', renderer=defaultRenderers.logo)
|
||||
|
||||
top_actions = Layout('top_actions.default', 'body.top_actions',
|
||||
Layout('top_actions.default', 'body.top_actions',
|
||||
renderer=defaultRenderers.top_actions)
|
||||
|
||||
column1 = Layout('column1.default', 'body.column1',
|
||||
renderer=defaultRenderers.column1)
|
||||
Layout('column1.default', 'body.column1', renderer=defaultRenderers.column1)
|
||||
|
||||
content = Layout('content.default', 'body.content',
|
||||
renderer=defaultRenderers.content)
|
||||
Layout('content.default', 'body.content', renderer=defaultRenderers.content)
|
||||
|
||||
column2 = Layout('column2.default', 'body.column2',
|
||||
renderer=defaultRenderers.column2)
|
||||
Layout('column2.default', 'body.column2', renderer=defaultRenderers.column2)
|
||||
|
||||
footer = Layout('footer.default', 'body.footer', renderer=defaultRenderers.footer)
|
||||
Layout('footer.default', 'body.footer', renderer=defaultRenderers.footer)
|
||||
|
|
|
@ -8,14 +8,8 @@
|
|||
<browser:resource
|
||||
name="liquid.css" file="base.css" />
|
||||
|
||||
<zope:utility
|
||||
component="cybertools.composer.layout.browser.liquid.default.css"
|
||||
provides="cybertools.composer.layout.interfaces.ILayout"
|
||||
name="css.liquid" />
|
||||
<!-- layouts -->
|
||||
|
||||
<zope:utility
|
||||
component="cybertools.composer.layout.browser.liquid.default.body"
|
||||
provides="cybertools.composer.layout.interfaces.ILayout"
|
||||
name="body.liquid" />
|
||||
<zope:module module="cybertools.composer.layout.browser.liquid.default" />
|
||||
|
||||
</configure>
|
||||
|
|
Loading…
Add table
Reference in a new issue