webandco / neos-taxonomy
web&co neos 分类包
5.0.1
2020-09-18 13:44 UTC
Requires
- neos/neos: ^3.0 || ^4.0 || ^5.0
README
本包为 Neos CMS 提供分类功能。
结构
文档节点类型
-
DocumentTaxonomyStorage: 分类根节点(入口点)
-
DocumentTaxonomyVocabulary: 您可以指定一个或多个具有单独访问权限或行为的词汇表。
例如,“Taxonomy”用于自由标记
例如,“Location”提供如国家、州、城市等结构化分类
-
DocumentTaxonomy: 创建新节点并将其立即用作分类。
-
DocumentTaxonomyAbstract(用于扩展自定义节点类型)扩展自定义节点类型以实现更具体的 FlowQuery 表达式。
内容节点类型
- TaxonomyList: 您可以使用此简单视图来显示匹配“intersect”FlowQuery操作符所使用的分类的节点列表。
抽象节点类型
- Webandco.Taxonomy:Taxonomy: 继承自 Webandco.Taxonomy:Taxonomy 的每个节点类型都将在检查器中可用 - 例如,在 TaxonomyList yaml 定义中使用。
Intersect FlowQuery 操作
为了找到节点,请使用提供的 intersect() FlowQuery 操作符。与所有 FlowQuery 操作符一样,可以链式使用。在 List.ts2 文件中,您可以找到一个有效示例。
参数
- type: 'property' | 'node' - 注意:如果您选择节点,目前仅支持节点类型属性 (待办事项)
- property: 例如,'taxonomies'
- taxonomies: 例如,'top10, city,...'
getTaxonomies FlowQuery 操作
为了获取与节点相关的所有分类,您可以使用 getTaxonomies 操作。
参数
- vocabulary: 将列表限制为特定词汇(uriPathSegment)
debug = Neos.Fusion:Debug {
value = ${q(node).getTaxonomies())}
}
Eel Helper
有一个 Eel Helper 可用,可以将分类节点数组转换为字符串。为此,Helper 将 uriPathSegment 提取为逗号分隔的列表。如果您定义了默认维度预设,它将从一个指定的维度获取 uriPathSegment。
debug = Neos.Fusion:Debug {
value = ${Webandco.Taxonomy.toString(q(node).getTaxonomies().get())}
}
设置
-
通过 composer 下载包
-
创建基本结构
- 存储
- 词汇表
- 分类
- (分类)
- 分类
- 词汇表
- 存储
-
创建一个 TaxonomyList 内容节点,您就可以开始了。
示例
List.ts2 实现
${q(site).find('[instanceof Neos.Neos:Document]').filter('[taxonomies]').intersect('property', 'taxonomies', node.properties.taxonomies)}
链式实现
${q(site).find('[instanceof Neos.Neos:Document]').filter('[taxonomies]').intersect('property', 'taxonomies', node.properties.taxonomies).intersect('node', 'nodeType', node.properties.locations)}
待办事项
- 路线图
- 性能
- 测试