sitegeist / taxonomy
将词汇表和分类作为独立的节点层次进行管理。
Requires
- neos/content-repository: *
- neos/fusion-form: >=2.1.0
- neos/neos: ^7.1 || ^8.0 || dev-master
- neos/neos-ui: ^7.1 || ^8.0 || dev-master
- dev-main
- v1.4.0
- v1.3.9
- v1.3.8
- v1.3.7
- v1.3.6
- v1.3.5
- v1.3.4
- v1.3.3
- v1.3.2
- v1.3.1
- v1.3.0
- v1.2.3
- v1.2.2
- v1.2.1
- v1.2.0
- v1.1.4
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.1
- v1.0.0
- dev-neos9-beta11
- dev-neos-9
- dev-tetheredNodes
- dev-feature/fusionRendering
- dev-dependabot/npm_and_yarn/Resources/Private/Scripts/TaxonomyEditor/url-parse-1.5.10
- dev-dependabot/npm_and_yarn/Resources/Private/Scripts/TaxonomyEditor/tar-4.4.19
- dev-dependabot/npm_and_yarn/Resources/Private/Scripts/TaxonomyEditor/elliptic-6.5.4
- dev-dependabot/npm_and_yarn/Resources/Private/Scripts/TaxonomyEditor/lodash-4.17.21
- dev-dependabot/npm_and_yarn/Resources/Private/Scripts/TaxonomyEditor/ini-1.3.8
- dev-bugfix/neos82support
- dev-dependabot/npm_and_yarn/Resources/Private/Scripts/TaxonomyEditor/decode-uri-component-0.2.2
- dev-task/neos-9
- dev-sorting
- dev-task/adjustmentsForNeos7
- dev-mficzel-patch-1
- dev-dependabot/npm_and_yarn/Resources/Private/Scripts/TaxonomyEditor/websocket-extensions-0.1.4
- dev-dependabot/npm_and_yarn/Resources/Private/Scripts/TaxonomyEditor/mixin-deep-1.3.2
- dev-supportNewerNeosVersions
- dev-bugfix/taxonomyToggleInsideSummary
- dev-bugfix/emptyTagSelection
- dev-task/43786/optimizeTaxonomySelection
This package is auto-updated.
Last update: 2024-09-21 14:59:30 UTC
README
在Neos中将词汇表和分类作为独立的子树
/taxonomies
进行管理,与/sites
区分开来
作者和赞助商
- Martin Ficzel - ficzel@sitegeist.de
本包的开发和公共发布得到了我们的雇主 http://www.sitegeist.de 的慷慨赞助。
关于
如果将分类定义为Neos内容存储库中 /sites
子树的文档,事情往往会变得复杂。
- 如果一个项目的意义由其在层次结构中的位置决定,添加多个关系或不同上下文的关系会很复杂。
- 将分类(意义)与内容(展示)混合会导致复杂的结构,这对编辑来说往往难以理解。
- 很难在多个网站间共享分类。
- 由于这也影响网站结构,很难确保分类存在于所有需要的维度中。
- 限制对站点内分类的读写访问是可能的,但并不简单。
Sitegeist.Taxonomies将词汇表和分类作为内容存储库中 /sites
层次结构之外的节点存储。这样,可以更好地表达分类关系的意义,可以在多个网站中使用分类,并且可以在不干扰分类意义的情况下定义分类文档。
它还提供了一个单独的后端模块来管理词汇表和分类。
安装
Sitegeist.Taxonomy可以通过packagist获取 composer require sitegeist/taxonomy
。我们使用语义版本控制,所以每次重大更改都会增加主版本号。
在内容存储库中存储词汇表和分类
Sitegeist.Taxonomy定义了三种基本节点类型
Sitegeist.Taxonomy:Root
- 路径为/taxonomies
的根节点,仅允许词汇节点作为子节点Sitegeist.Taxonomy:Vocabulary
- 意义层次结构的根,仅允许分类节点作为子节点Sitegeist.Taxonomy:Taxonomy
- 代表特定意义的层次结构中的项,仅允许分类节点作为子节点
如果您必须强制存在特定的词汇或分类,您可以使用派生节点类型
Vendor.Site:Taxonomy.Root: superTypes: Sitegeist.Taxonomy:Root: TRUE childNodes: animals: type: 'Sitegeist.Taxonomy:Vocabulary'
并配置分类包使用此根节点类型而不是默认类型
Sitegeist: Taxonomy: contentRepository: rootNodeType: 'Vendor.Site:Taxonomy.Root' vocabularyNodeType: 'Sitegeist.Taxonomy:Vocabulary' taxonomyNodeType: 'Sitegeist.Taxonomy:Taxonomy'
引用分类
由于分类是节点,因此可以通过 reference
或 references
属性简单地引用
taxonomyReferences: type: references ui: label: 'Taxonomy References' inspector: group: taxonomy editorOptions: nodeTypes: ['Sitegeist.Taxonomy:Taxonomy'] startingPoint: '/taxonomies' placeholder: 'assign Taxonomies'
如果您想将可选择的分类限制为词汇或甚至分类,那么您可以配置更具体的起始点
taxonomyReferences: ui: inspector: editorOptions: startingPoint: '/taxonomies/animals/mammals'
内容维度
词汇表和分类将始终在所有基本维度中创建。这样,可以确保它们始终可以被引用。分类和词汇的标题和描述可以像项目所需的那样进行翻译。
CLI命令
分类包包括一些CLI命令用于管理分类。
taxonomy:list
列出所有分类词汇taxonomy:import
导入分类内容,需要文件名 + 词汇名称(支持通配符)taxonomy:export
导出分类内容,需要文件名 + 词汇名称(支持通配符)taxonomy:prune
修剪分类内容,需要词汇名称(支持通配符)
权限
Sitegeist.Taxonomy提供了以下权限目标,以允许您限制对分类的读取访问、管理和编辑
Sitegeist.Taxonomy:Module.Show
显示后端模块并默认允许编辑器探索现有的分类法。Sitegeist.Taxonomy:Module.ManageVocabularyActions
添加、编辑和删除词汇表。默认允许管理员操作。Sitegeist.Taxonomy:Module.ManageTaxonomyActions
添加、编辑和删除分类。默认允许管理员操作。
目前从其他节点读取和引用分类法没有限制。
可扩展性
软件包可以为分类法和词汇表表单添加额外字段。为此,需要执行以下步骤。
- 在您的软件包中扩展节点类型
Sitegeist.Taxonomy:Taxonomy
或Sitegeist.Taxonomy:Vocabulary
。 - 将您的额外
Root.fusion
路径添加到设置路径Sitegeist.Taxonomy.backendModule.additionalFusionIncludePathes
中。 - 在融合代码中,将每个字段定义为原型,该原型接受
name
以及taxon
&defaultTaxon
或vocabulary
&defaultVocabulary
属性。 - 通过将它们添加到设置
Sitegeist.Taxonomy.backendModule.additionalVocabularyFieldPrototypes
或Sitegeist.Taxonomy.backendModule.additionalTaxonomyFieldPrototypes
,注册额外的原型名称。
贡献
我们乐意接受贡献。请发送给我们 pull requests。
许可证
请参阅 LICENSE