提供一种方法来创建treeish类别结构,然后将内容实例的关联限制到树的特定部分。
Products.PortalTaxonom的Python项目详细描述
序言
自从编写portaltaxonomy以来,出现了一些产品来满足对更高级分类管理的需求,而不是plone提供的现成产品。我认为,pt的利基是很容易集成到一个plone站点中,该站点希望将其分类法作为导航元素公开。此外,我发现categoryWidget和attributeWidget接口有助于为客户提供输入分类信息的简单界面。
可与内容类型组关联的分类结构。当前的plone关键字系统只允许关键字列表到类型的1到1映射。关键字也是一个简单的列表,我需要一些
treeish.
portaltaxonomy
portaltaxonomy提供了两种新的主要内容类型:类别和属性。类别是继承的分类法节点。创建类别树,然后将树的部分(或全部)与各种内容类型相关联。通过将类别树的部分与类型关联,CategoryField类型将在其小部件中呈现类别树的该部分,并允许用户在树中选择与内容关联的节点。
属性分组在名为AttributeCollection的内容类型中。AttributeCollection与一个或多个内容类型关联。与attributeCollection关联的内容类型将在其attributeField中的选择选项中使用集合中的属性。您可以指定attributewidget如何呈现选择选项:作为复选框、单选按钮或选择列表。每个attributeCollection都包装在用户自己的分组中,用户可以从中进行选择。
categories
categories允许网站规划人员创建一个树型分类结构,然后将内容类型与树的部分相关联。使用提供的CategoryField的内容类型可能与树中的类别相关联。
若要在部分类别树和内容类型之间创建关联,请选择要关联的类别。您将看到一个名为"类型关联"的字段,其中列出了架构中具有categoryField的所有内容类型。选择要与树的此部分关联的字段。关联的类别和所有子类别都可以在"类型"字段中进行选择。
在
内容类型模式中。属性字段位于portaltaxonomy附带的字段模块中。
attributewidget有几个选项可用于呈现属性集合:作为复选框;作为单选按钮;以及作为选择列表。
复选框允许用户从所有关联属性中选择任意多个属性。选择列表执行相同的操作,但为与字段关联的每个属性集合提供一个多重选择列表。单选框允许用户从所有可用属性中选择一个属性。
将attributeWidget的format属性设置为checkbox,将box-type属性设置为radio:将attrivutewidget的format属性设置为"select":
format="select"
installation
将portaltaxonomy文件夹放在zope的products目录中,然后重新启动zope。创建一个plone站点。转到plone setup->;添加/删除产品。从列表中选择portaltaxonomy并单击install按钮。
注释
行:
使用这些字段的原型将出现在类别或属性中。如果没有原型使用这些
字段,则"类型重新生成"选择框将为空。要添加一个
示例类型,请取消注释@import example行,重新启动zope
,然后重新安装portaltaxonomy(或者通过
portal types工具手动安装分类类型)。这将为您提供一个快速类型以开始使用。
category manager
创建一个使用portaltaxonomy.fields.category field字段的原型。根据需要在门户中添加类别和子类别,至少将其中一些类别和子类别与新原型相关联。发布类别。添加原型的新实例。应提供类别字段选择器。单击类别以树状显示子类别。类别选择器使用由christian heilman(http://icant.co.uk)设计的修改的嵌套选择列表。
创建使用portaltaxonomy.fields.attributefield的原型。将属性集合添加到AttributeManager,并将其中至少一些集合与新的原型相关联。发布你的属性集合和属性。添加新原型的实例并检查所需的属性。
catalog index
在attribute和category manager中都有一个名为getcontent
的helper方法。它被硬编码到
分别称为"categories"和"attribs"的索引。您可以在这些字段之后命名
字段,修改方法,或者在
页面模板中使用目录查询,而不是帮助器方法。
查看skins目录中的一些页面模板示例,
specificaly:category_listing.pt,category_recursive.pt,list_view.pt、
category_content.pt和category_content_recursive.pt。还要看
脚本getcategorizedcontent.py和getsubcategoryuids.py。
将类别与站点集成
我添加了两个模板,作为获取与类别相关联的内容的示例:
category_content.pt
category_content_recursive.pt
模板还使用了两个脚本作为执行实际查询的示例:
getcategorizedcontent.py
getsubcategoryuids.py
请记住您需要CategoryFields的目录索引。例如,如果您有一个名为"foobar"的categoryfield,请添加"getfoobar"作为关键字索引类型的门户目录索引。
请联系我
如果您对此产品有任何意见,请给我发电子邮件:jeremy@deximer.com。感谢:)
changelog
==
>0.5.0-未发布
自从编写portaltaxonomy以来,出现了一些产品来满足对更高级分类管理的需求,而不是plone提供的现成产品。我认为,pt的利基是很容易集成到一个plone站点中,该站点希望将其分类法作为导航元素公开。此外,我发现categoryWidget和attributeWidget接口有助于为客户提供输入分类信息的简单界面。
可与内容类型组关联的分类结构。当前的plone关键字系统只允许关键字列表到类型的1到1映射。关键字也是一个简单的列表,我需要一些
treeish.
portaltaxonomy
portaltaxonomy提供了两种新的主要内容类型:类别和属性。类别是继承的分类法节点。创建类别树,然后将树的部分(或全部)与各种内容类型相关联。通过将类别树的部分与类型关联,CategoryField类型将在其小部件中呈现类别树的该部分,并允许用户在树中选择与内容关联的节点。
属性分组在名为AttributeCollection的内容类型中。AttributeCollection与一个或多个内容类型关联。与attributeCollection关联的内容类型将在其attributeField中的选择选项中使用集合中的属性。您可以指定attributewidget如何呈现选择选项:作为复选框、单选按钮或选择列表。每个attributeCollection都包装在用户自己的分组中,用户可以从中进行选择。
categories
categories允许网站规划人员创建一个树型分类结构,然后将内容类型与树的部分相关联。使用提供的CategoryField的内容类型可能与树中的类别相关联。
若要在部分类别树和内容类型之间创建关联,请选择要关联的类别。您将看到一个名为"类型关联"的字段,其中列出了架构中具有categoryField的所有内容类型。选择要与树的此部分关联的字段。关联的类别和所有子类别都可以在"类型"字段中进行选择。
在
内容类型模式中。属性字段位于portaltaxonomy附带的字段模块中。
attributewidget有几个选项可用于呈现属性集合:作为复选框;作为单选按钮;以及作为选择列表。
复选框允许用户从所有关联属性中选择任意多个属性。选择列表执行相同的操作,但为与字段关联的每个属性集合提供一个多重选择列表。单选框允许用户从所有可用属性中选择一个属性。
将attributeWidget的format属性设置为checkbox,将box-type属性设置为radio:将attrivutewidget的format属性设置为"select":
format="select"
installation
将portaltaxonomy文件夹放在zope的products目录中,然后重新启动zope。创建一个plone站点。转到plone setup->;添加/删除产品。从列表中选择portaltaxonomy并单击install按钮。
注释
行:
使用这些字段的原型将出现在类别或属性中。如果没有原型使用这些
字段,则"类型重新生成"选择框将为空。要添加一个
示例类型,请取消注释@import example行,重新启动zope
,然后重新安装portaltaxonomy(或者通过
portal types工具手动安装分类类型)。这将为您提供一个快速类型以开始使用。
category manager
创建一个使用portaltaxonomy.fields.category field字段的原型。根据需要在门户中添加类别和子类别,至少将其中一些类别和子类别与新原型相关联。发布类别。添加原型的新实例。应提供类别字段选择器。单击类别以树状显示子类别。类别选择器使用由christian heilman(http://icant.co.uk)设计的修改的嵌套选择列表。
创建使用portaltaxonomy.fields.attributefield的原型。将属性集合添加到AttributeManager,并将其中至少一些集合与新的原型相关联。发布你的属性集合和属性。添加新原型的实例并检查所需的属性。
catalog index
在attribute和category manager中都有一个名为getcontent
的helper方法。它被硬编码到
分别称为"categories"和"attribs"的索引。您可以在这些字段之后命名
字段,修改方法,或者在
页面模板中使用目录查询,而不是帮助器方法。
查看skins目录中的一些页面模板示例,
specificaly:category_listing.pt,category_recursive.pt,list_view.pt、
category_content.pt和category_content_recursive.pt。还要看
脚本getcategorizedcontent.py和getsubcategoryuids.py。
将类别与站点集成
我添加了两个模板,作为获取与类别相关联的内容的示例:
category_content.pt
category_content_recursive.pt
模板还使用了两个脚本作为执行实际查询的示例:
getcategorizedcontent.py
getsubcategoryuids.py
请记住您需要CategoryFields的目录索引。例如,如果您有一个名为"foobar"的categoryfield,请添加"getfoobar"作为关键字索引类型的门户目录索引。
请联系我
如果您对此产品有任何意见,请给我发电子邮件:jeremy@deximer.com。感谢:)
changelog
==
>0.5.0-未发布