Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Drupal 7 Drupal 7:Pathauto层次分类术语模式_Drupal 7_Design Patterns_Hierarchy_Taxonomy - Fatal编程技术网

Drupal 7 Drupal 7:Pathauto层次分类术语模式

Drupal 7 Drupal 7:Pathauto层次分类术语模式,drupal-7,design-patterns,hierarchy,taxonomy,Drupal 7,Design Patterns,Hierarchy,Taxonomy,根据以下方案,我有一个Drupal 7.9分类词汇表: category-1 category-1 > subcategory-1-1 category-1 > subcategory-1-2 category-1 > subcategory-1-3 category-2 category-2 > subcategory-2-1 我想在我的页面url路径中反映这种分类层次结构,如 category-1/subcategory-1-1/pa

根据以下方案,我有一个Drupal 7.9分类词汇表:

category-1
    category-1 > subcategory-1-1
    category-1 > subcategory-1-2
    category-1 > subcategory-1-3
category-2
    category-2 > subcategory-2-1
我想在我的页面url路径中反映这种分类层次结构,如

category-1/subcategory-1-1/page-123
为了实现这一点,我使用ModulPathAuto版本7.x-1.0。但我不知道 我必须使用哪种模式。


目前我使用的是
[node:%field\u taxonomy%]/[node:title]
,但在这种模式下,url路径只是
子类别-1-1/page-123
,因此无法反映完整的层次结构是否有分类树模式?我找不到任何关于此的更新信息,有效模式似乎在每个版本的Pathauto中都会发生变化。

据我所知,基本Drupal+Token+Pathauto无法创建路径,就像您希望的那样。

在您的特定情况下,您可以对分类项目使用以下模式:

[术语:词汇表:名称]/[术语:父项:父项]/[术语:父项]/[术语:名称]

对于节点模式:

[节点:%field\u taxonomy%:url:path]/[节点:标题]

在这种情况下,短期模式将处理多达三个级别的问题。所以你不能用这种方法使它无限。(我相信您可以添加术语:parent:parent:…任意数量)


虽然,它可以处理不到3个级别的问题(只是测试以确保)。

经过一些尝试和错误后,我找到了一种方法,在使用分类术语创建自定义URL路径时,它对我非常有用。您只需安装一个名为EntityAPI的附加模块。你可以在这里找到它。安装后,应同时启用实体API和实体令牌模块。实体令牌为所有没有令牌且实体API已知的属性提供令牌替换

首先,创建一个新的分类词汇表。让我们称之为“类别”,并添加一些术语。然后,对于想要拥有自定义URL路径的内容类型,需要创建一个新的术语引用字段。我不知道为什么,但它与standart field_标签不兼容。所以,一定要创建一个新的。我们也将其称为category,并使用之前创建的词汇“category”作为源。还有一件事你需要考虑:你必须用一个小字母来标记这个字段;否则我不知道为什么它不起作用;)。您将得到一个字段\类别字段

转到URL别名管理页面->模式。展开内容路径的替换模式->展开节点->您将在底部看到类别,展开它。好了,现在您已经准备好使用分类术语标记了

使用类似于[node:field category:name]/[node:title]的内容,其中[node:field category:name]是分类术语的名称,您将拥有类似mysite.com/term/title的路径

顺便说一下,我使用了Pathauto 7.x-1.0-beta1、Token 7.x-1.0-beta2和实体API 7.x-1.0-beta8

祝你好运!)

您可以使用以下模式创建url:
[节点:字段类别:词汇表:名称]/[节点:字段类别:家长:加入:/]/[节点:字段类别:名称]/[节点:标题]

检查我的答案。您可以使用分类实体索引模块来实现这种行为。

谢谢Pavel。但节点模式似乎无效。%field\u taxonomy%(也未在模式下列出)测试模式:[node:field\u category:url:path]/[node:title]Pathauto版本:7.x-1.0令牌版本:7.x-1.0-beta7您使用哪个模块版本?这对我很有效。希望有一个更智能的令牌,你可以使用,而不是必须指定最大深度。真棒,我花了一个小时的尝试和错误。很接近,但没有成功,然后我决定谷歌它,并找到了这个答案。非常感谢您的详细解决方案。现在,我得到了
[节点:字段类别:父节点:加入:/]/[节点:字段类别:名称]/[节点:标题]
。很好!