NewPage 宏

NewPage 宏

提供一个创建页面的对话框,方便用户创建(子)页面, 使用 PageTemplate 作为新页面的模板, NameTemplate 用于名字模板和用户输入的页面名组合形成新页面的名称。

用法:

  • <<NewPage(PageTemplate,ButtonLabel,ParentPage[,NameTemplate])>>

  • <<NewPage(PageTemplate,ButtonLabel,parentPage[, NameTemplate] [, type="select"] [, layout=""] [, category=""] [, validate="")]>>

参数:

  • PageTemplate

    创建新页面的模板。
    PageTemplate 为一个字符串,该字符串指定模板名称。新页面以该模板页面为原型创建。或者
    PageTemplate 为 python 的 dict 类型,支持根据多个模板创建新页面。Dict 的索引为模板名称(或者逗号分隔的模板名称以及页面归属的分类),键值为显示在下拉列表或者radio 中的名称。示例:

    • 单一模板文件

    • 代码:

      • <<NewPage(缺省权限页面模板)>>

    • 示例输出:

    • 多模板: 用户从下拉框中选择模板 AbcTemplate 还是 XyzTemplate。新页面创建在 Meetings 下面。新页面名称为 "年-月-日_用户输入的页面名称"。新页面被自动加入分类 CategoryX 和 CategoryY。

    • 代码:

      • <<NewPage({"AbcTemplate":u"模板一","XyzTemplate":u"模板二"}, "创建新页面",会议,%Y-%m-%d_%s, category="会议纪要类,CategoryMeeting")>>

    • 示例输出:

      • Input title:
        Select template:
    • 多模板: 用户从下拉框中选择模板。新页面创建在 "会议" 下面。新页面名称为 "年-月-日_用户输入的页面名称"。新页面根据模板的选择自动加入不同分类。

    • 代码:

      • <<NewPage({"公司会议模板,公司会议纪要类":u"公司会议纪要","部门会议模板,部门会议纪要类":u"部门会议纪要"}, 创建新页面, @PAGE, %Y-%m-%d_%s, type=radio)>>

    • 示例输出:

      • Input title:
        Select template: 公司会议纪要 部门会议纪要
    ButtonLabel

    对话框的提交按钮名称。

    ParentPage

    指定父页面名称,即在此页面下创建新页面。可以使用参数 @SELF 或者 @PAGE。

    • @SELF : 当前页面(包含该 NewPage 宏的页面)名称。

    • @PAGE : 请求的页面名称。当包含 NewPage 宏的页面被"页面A"包含,访问“页面A” 时, @PAGE 设定为“页面A”。

    NameTemplate

    页面名称。如果 NameTemplate 中包含 %s,则显示表单,用户可以自定义页面名称,页面名称会替换 NameTemplate 中的 %s 而组成页面名称。

    type

    多分类模式下,分类选择的方式,缺省为 "select"

    • type=select : 下拉菜单选择模板

    • type=radio : radio 风格选择模板

    layout=

    用于定制 HTML 提交表单,缺省为空,即使用预定义格式的表单。缺省表单如下:

    • <table class="borderless">
        <tr>
          <td>""" + _("Input title: ") + """</td><td>%(input)s</td></tr>
        <tr>
          <td>""" + _("Select template: ") + """</td><td>%(select)s</td></tr>
        <tr><td colspan="2" align="right">%(button)s</td></tr>
      </table>
    category

    逗号分隔的分类名称,该分类被自动添加到新页面中

    validate

    根据参数确定验证用户输入的合法性。

    • validate=category : 页面名称必须是合法的分类名称

    • validate=nocategory : 页面名称不能是分类名

    • validate=template: 页面名是模板

    • validate=notemplate: 页面名不能是模板

    • validate=group: 页面名是组名

    • validate=nogroup: 页面名不能是组名

    • validate=dict: 页面名是词典

    • validate=nodict: 页面名不能是词典

示例:


相关页面: