跳转到主要内容

Zope 2的布局系统

项目描述

infrae.layout定义了一种在Zope 2中重用现有定义布局的方法。它与megrok.layout类似,并且以相同的方式工作,有一些补充。

API

您可以定义一个将用于页面布局。一个页面是一个视图,并且表现方式相同。页面将在布局内渲染。

页面布局都可以通过render方法或关联的模板进行渲染,就像Grok视图一样。

通过适配请求和内容来查找布局:您可以为您的皮肤注册布局,然后为特定内容注册。

如果这还不够,页面可以使用Grok指令layout直接指定其使用的布局类型。在定义您的布局时,您可以使用相同的指令声明类型所属的布局。例如,如果您有一个皮肤ICorpSkin

from infae.layout import layout, Layout, ILayout, Page
from five import grok

from corp.skin import ICorpSkin

grok.skin(ICorpSkin)


class ViewLayout(Layout):

   def render(self):
       return u'View %s' % self.view.content()

class Index(Page):

   def render(self):
       return self.context.title()

现在如果在同一内容上您想要一个版式布局,例如

class IEditionLayout(ILayout)
    """Layout to edit content
    """

class EditionLayout(Layout):
    layout(IEditionLayout)

    def render(self):
        return u'Edit %s' % self.view.content()

class Edit(Page):
   layout(IEditionLayout)

   def render(self):
        return self.context.title()

如果上述机制对您的应用程序来说不够灵活,您可以在请求和内容上编写一个适配器,该适配器提供 ILayoutFactory。适配器将允许您编写选择任何布局所需的逻辑。

变更

1.0 (2010/07/16)

  • 初始发布。

项目详情


下载文件

下载适用于您的平台文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分布

infrae.layout-1.0.tar.gz (4.7 kB 查看散列)

上传时间

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面