用于定义下拉列表配置字符串的zcml指令

tau.selectorstrings的Python项目详细描述


τ选择器字符串

简介

此组件分布的目的是双重的;提供有用的 配置要在下拉列表中显示的字符串集群的方法,以及 教别人如何创建新的zcml指令。代码已经 仔细记录以明确其工作原理。

我对选择器字符串的需求来自于我正在设计的另一个组件 将各种文件的集合显示为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>

获取开发版本

除了pypi下载之外,这个 组件通过其project on Github可用。

创建新zcml指令的步骤

zcml指令有两种类型,简单和复杂。简单的指令 独立的,但复杂的支持通过包含一个或多个 其他zcml指令。

一个新的zcml指令,不管是简单的还是复杂的,由四个 件数:

  1. its name
  2. the namespace it belongs to
  3. the schema
  4. its directive handler

把这些联系在一起的部分是 of)在meta.zcml文件中的指令:

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

它负责声明新指令的名称并放置 在“zope”名称空间中命名。它本可以把它放进“浏览器” 命名空间或其他有组织意义的空间。

声明复杂类型的指令:

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

将新指令连接到zope2

在识别指令之前,必须确保其定义 在其meta.zcml中,包含在顶级site.zcml文件中。 这是通过将 zope2\u实例部分如下:

zcml += tau.selectorstrings-meta

这会导致plone.recipe.zope2instance配方创建一个“slug”文件 在你的parts/Zope2_instance/etc/package-includes/下什么都不做 但是包括你的tau/selectorstrings/meta.zcml文件。这包括 由于以下指令自动放入 etc/site.zcml配方文件:

<include files="package-includes/*-meta.zcml" />

更改

版本0.1dev(2010-12-21)

  • 初始版本

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何从thymeleaf表单保存地址对象和用户对象的列表?   序列化java。时间使用Jackson将localdate转换为json   java删除LinearLayout和子级之间的空间   具有内存大小限制的Java队列   java尝试在freemarker中创建min(a,b)函数失败   askQuestion()方法中的Java逻辑问题   在Java客户端中接受服务器的自签名ssl证书   java如何正确更新字符串数组?   java如何使多个方法调用充当一个事务性工作单元   swing如何创建可滚动的Java框?   java如何使用SearchView在多个单词之间搜索?   初始化启动层java时出错。lang.module。FindException:模块javafx。找不到图形   java struts对隐藏字段的转义形式验证   用于构建FEM 3D解算器的java JOGL与JAVA3D   java mvn安装忽略hibernate映射文件   在C++和java之间使用JNI通信时,我在哪里保存“这个”?   java无法使用计时器重新绘制窗口   java我遇到一个找不到符号的错误,我无法解决   IntelliJIdea生成实体时java面临的问题   java在动态文本的末尾添加三个点