跳转到主要内容

定义下拉列表配置字符串的ZCML指令

项目描述

Tau SelectorStrings

简介

此组件分发的目的是双重的;一方面是为了提供一种配置字符串集群以便在下拉列表中展示的有用方式,另一方面是教授其他人如何创建新的ZCML指令。代码已被精心文档化,以便清楚地说明其工作原理。

我对selectorstrings的需求来自我正在设计的另一个组件,该组件用于将各种文件集合作为Zope文件夹展示。我想允许使用ZMI(Zope管理界面)添加此文档文件夹实例的开发人员从一个目录列表中进行选择。我不想让他们能够输入任意目录,部分是出于安全考虑,部分是为了防止输入错误。

这导致了以下ZCML指令

<selectorstring cluster="sitedocs"
    label="Public Documents"
    value="/usr/share/public/"
    />

<selectorstring cluster="sitedocs"
    label="Family Photos"
    value="/home/jeff/photos/"
    />

并且您可以使用相同的或不同的集群名称添加更多,字符串将在该集群名称下作为Zope词汇表可用。

一个缺点是每个这样的简单指令都会重复多次集群名称。因此,接下来我创建了一个复杂(嵌套)指令来提取集群名称

<selectorcluster name="sitedocs">

    <selectorstring
        label="Public Documents"
        value="/usr/share/public/"
        />

    <selectorstring
        label="Family Photos"
        value="/home/jeff/photos/"
        />

</selectorcluster>

创建新ZCML指令的步骤

ZCML指令分为两种类型:简单和复杂。简单指令独立存在,而复杂指令通过包含一个或多个其他ZCML指令来支持分组。

一个新的ZCML指令(无论是简单还是复杂)由以下四个部分组成:

  1. 它的名称

  2. 它所属的命名空间

  3. 它的架构

  4. 它的指令处理器

将这些部分联系在一起的是在meta.zcml文件中声明(简单类型的)指令

<meta:directive
    name="selectorstring"
    schema=".interfaces.ISelectorStringDirective"
    handler=".zcml_directives.selectorstring_SimpleDirectiveHandler"
    />

这负责声明新指令的名称并将该名称放入“zope”命名空间。它也可以将其放入“browser”命名空间或其他有组织意义的空间。

要声明一个复杂类型的指令

<meta:complexDirective
    name="selectorcluster"
    schema=".interfaces.ISelectorClusterDirective"
    handler=".zcml_directives.selectorcluster_ComplexDirectiveHandler"
    >

    <meta:subdirective
        name="selectorstring"
        schema=".interfaces.ISelectorStringSubdirective"
        />

</meta:complexDirective>

使用您的ZCML指令

与任何ZCML指令一样,您将其放置在configure.zcml文件或其他由顶层site.zcml配置文件包含的文件中

<configure
    xmlns="http://namespaces.zope.org/zope">

    <selectorstring cluster="sitedocs"
        label="Public Documents"
        value="/usr/share/public/"
        />

</configure>

变更记录

版本 0.1dev(2010-12-21)

  • 初始发布

项目详情


下载文件

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

源分发

tau.selectorstrings-0.1dev.tar.gz (16.2 KB 查看散列

上传时间: 源代码

构建分发

tau.selectorstrings-0.1dev-py2.6.egg (15.8 KB 查看散列

上传时间: 源代码

由以下机构支持

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