Plone的内容模板
项目描述
概述
PloneTemplates是一个产品,允许您创建类似于其他应用程序(如Word或Excel)的模板(不要与zope页面模板混淆,它们之间完全无关!)。
使用非常简单。假设您需要多次创建一个页面,每次都包含相同的基本内容。您不需要手动复制和粘贴用作模板的另一个页面,该产品通过易于使用的用户界面为您完成所有操作。
首先,在您的门户中创建一个模板对象。就像使用添加新菜单的任何其他对象一样。这个模板对象实际上是一个文件夹,可以包含任何其他门户对象(一个或多个!)。在我们的示例中,我们在模板内部创建一个页面。我们编辑这个页面,并编写其模板正文(以及您希望预设的任何其他内容)然后保存页面。然后您可以在模板对象本身(编辑选项卡)中编写可选的使用说明。这就是定义模板所需的所有操作。当然,您也可以在模板内部复制/粘贴任何现有对象。
现在,最后一步是进入门户(通常是文件夹)中我们希望启用此新模板的地方,以便用户可以实例化它。因此,我们编辑文件夹,并在编辑表单的顶部点击模板链接(schemata/fieldset)。在那里,我们可以使用浏览按钮在门户中定位新创建的模板。在这里,我们还可以选择是否将此模板添加到文件夹层次结构中更高层级的已注册模板中。
因此,我们选择我们刚刚创建的模板并点击保存。从那时起,一个名为“模板”的新下拉菜单出现在此文件夹和其任何子文件夹的“添加新”菜单旁边。此菜单包含用户可以从中选择的模板。
所以,让我们花几秒钟时间来消化一下……
总结一下,您可以创建一个模板对象,里面放什么都可以,在门户中任何文件夹样式的对象中注册此模板,然后您可以将此模板(实际上是其内容)视为一个新的可添加对象(或对象集合)。是的,就这么简单!
可能性是无限的。您可以为问题跟踪器预先定义所有想要在问题跟踪器中可用的各种问题,您可以为每个新项目预先定义整个文件夹结构并将其放入模板,就像您想要的每个新项目的项目文件夹一样。创建一个包含客户描述等结构的页面等等。
附加说明,请仔细阅读!
用户在某个位置实例化模板后,焦点将设置到将创建的第一个对象上。此外,模板下拉菜单中显示的图标来自模板对象内部的第一包含对象。
由于当前版本的Archetypes处理引用的方式,您不能将模板注册到另一个模板内部的文件夹中。PloneTemplates使用引用将模板注册到文件夹中,并且在复制粘贴内容时引用会丢失。我知道,这很糟糕,我们已知道这个问题很久了。
您可以通过模板编辑表单中的开关来控制用户在选择菜单中的模板时是否能看到包含使用信息的中间页面。
当模板被实例化时,工作流状态将重置为其默认值。(这适用于所有复制粘贴的内容,这并没有不同)。
此产品附带一个工具,它还允许您从脚本中实例化模板(使用源代码,卢克!)并且您甚至可以添加一个后处理函数,可以对实例化对象进行一些操作。我使用了这个来创建包含大量内容(如子文件夹、个人博客等)的成员区域。
有一个混合类可以使您的产品也具有模板意识,这样您就可以注册模板并获得模板菜单。将其添加到您的产品类中
from Products.PloneTemplates.TemplateSchema import PloneTemplatesMixinSchema
并使用您的模式执行此操作
schema = schema + PloneTemplateMixinSchema
此外,此产品对ATFolder进行monkeypatch,使其具有模板意识(在模式中添加一些字段)。在config.py中,您可以看到这是如何完成的,并且您可以以类似的方式添加其他类型。或者,您可以将typesToPatch列表清空,以不修补文件夹类型。因此,默认情况下,此产品将只允许文件夹具有模板下拉菜单。换句话说,如果您有一个问题跟踪器产品也需要使用模板,您必须修补它(注入一些字段)或使用混合模式。
更改日志
1.0.3 (2011-10-07)
更新元数据,在Subversion中重新组织代码。[hannosch]
Plone 4.1兼容性。[mj]
1.0.2 (2011-08-08)
修复了Chameleon兼容性的无效XHTML。[hannosch]
1.0.1 (2011-08-03)
将项目名称修正为以Products.开头,以便找到内容类型。[hannosch]
1.0 (2011-08-03)
为registerType调用提供包参数。[hannosch]
1.0.0b4 (2009/05/15)
修复了包装问题
1.0.0b3 (2009/05/04)
eggified(ajung)
项目详细信息
Products.PloneTemplates-1.0.3.zip的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 1f9ede287589da93c78b388b716e4af52faac1b113b21d3552a3409e5b02ead1 |
|
MD5 | 87e847c39c624df8bc98fbb69a83da08 |
|
BLAKE2b-256 | d94b3cb0c501efdb43d026965d42485e7a57220c54af10b7508a143e733b321b |