경로 자동에서 분류 체계 계층을 슬래시로 분리하는 방법


14

Pathauto 는 다른 분류 체계 계층을 갖는 것처럼 보입니다.

에서 분류 메뉴 :

  1. 분류별> 자동차> 애스턴 마틴> DB9 쿠페
  2. 분류별> 채용 정보> 회계

내가 원하는 것은 URL과 같은 것입니다.

  • 분류 / 작업 / 회계 (회계-작업 분류가 아님)

Pathautho는 역순으로 대시를 사용하여이를 생성합니다.

Pathauto 에서이 패턴을 사용하고 있습니다 : Default path pattern(아래 빈 패턴이있는 모든 어휘에 적용)

[term:parents-all]

혼란스러워.

답변:


10

으로 토큰 모듈을 사용,이 같은 패턴을 설정할 수 있습니다 :

[term:vocabulary]/[term:parent:parent:name]/[term:parent:name]/[term:name]

원하는만큼이 패턴을 만드십시오. 그러면 당신의 길은 다음과 같습니다 :

vocabulary
vocabulary/category1
vocabulary/category1/subcategory1
vocabulary/category1/subcategory2
vocabulary/category1/subcategory2/subsubcategory1

등등...


많은 감사합니다! 따라서 분류 체계 계층 구조가 5 단계 깊이 (어휘 포함) 인 경우 [term : vocabulary] / [term : parent : parent : parent : parent] name] / [term : parent : parent : name] / ... 등이됩니다. ., 권리? 이런 식으로 부모-자식을 반복적으로 정의 할 필요가없는 방식으로 토큰 모듈을 구성 할 수 있기를 바랍니다. 예기치 않게 나무가 6 레벨이되면 경로를 삭제하고 업데이트하여 다른 경로를 포함시킨 다음 7 레벨 깊이 등이되는 경우 어떻게해야합니까 .. 한 사용자가 한 레벨 아래로 용어를 추가 한 경우, 그는 자신의 컨텐츠를 볼 수 없으면 관리자가 pathauto를 업데이트합니다!
jan

1
이것이 허용되는 답변이지만 확장 가능한 솔루션에 대한 @NenadP의 답변을 검토하십시오.
Paul

16

join : / 을 사용하여이를 수행하는 영리한 방법이 있습니다 .

제 경우에는 다음을 사용했습니다.

[node:field-taxonomy-skolski:parents:join:/]

field-taxonomy-skolski분류법 트리에서 용어를 선택하기위한 필드는 어디에 있습니까 ? 아래에 설정이 있지만 슬래시가 제거됩니다.

관리»구성»검색 및 메타 데이터»URL 별칭»URL 별칭 -설정

페이지 하단의 PUNCTUATION 드롭 다운 메뉴 에서 "제거"대신 슬래시 (/) "작업 없음"으로 설정하십시오.


빙고! 나는 스스로 위의 확장 불가능한 솔루션 ( drupal.stackexchange.com/questions/27141/… )을 제공했으며 물론이 솔루션을 훨씬 좋아합니다. 나는 그 패턴을 작동시키기 위해 고군분투 할 때 토큰 옵션이 없었 음을 맹세했다. 감사!
Artur

2
[... : join : /]는 나를 위해 작동하지 않았지만 [... : join-path]는 작동하지 않았습니다. 참고 : join-path를 사용하면 구분 기호를 선택할 수 없습니다. /를 구분자로 사용합니다.

그래도 문제가 해결되지 않으면 "엔티티"모듈을 설치하고 활성화해야합니다.
coderama

Drupal 8의 패턴은 약간 다릅니다. 예 : [term:vocabulary]/[term:parents:join:/]/[term:name]
Martin Klíma

6

이것은 토큰 7.x-1.3 및 Pathauto 7.x-1.2와 함께 Drupal 7.15에서 작동합니다.

[term : 부모 : 조인 : /] / [term : 이름]

두 번째 답변에서 brunops가 언급했듯이 join : % separator %는 마법을 수행합니다. 기본 대시를 % separator %로 바꿉니다.

Brunops에게 큰 감사합니다!


이것은 정답이어야합니다! 얼마나 많은 레벨을 가지고 있는지는 중요하지 않습니다.
Rantiev

3

이것을 작동시키는 열쇠는 다음과 같습니다.

  • Entity API, Entity Tokens, Path Auto 및 Taxonomy 모듈을 설치하고 활성화하십시오.
  • 컨텐츠 유형에 필드를 작성하고 필드 유형을 용어 참조로 설정하고 'field-content-category'(기계 이름)와 같은 이름을 지정하십시오.
  • 값 수, 즉 '사용자가이 필드에 입력 할 수있는 최대 값 수'를 1로 설정하십시오 (경로 요소 사이에 /를 자동으로 추가하는 결합 경로 토큰을 사용하려는 경우 매우 중요 함).
  • URL 패턴 (admin / config / search / path / patterns)을 '[node : field-content-category : parents : join-path] / [node : field_content_category] / [node : title]'과 같이 설정하십시오.

0

글쎄, 나는 다음과 같은 똑똑한 것을 사용하는 것이 좋습니다.

[term : 부모 : terms : 반전 : join :?]

그러나 나는 내 인생에서 작동하지 않습니다. 대신 다음을 권장하지만 계층 구조가 허용하는 한 깊게 만 갈 수 있습니다 (대체 패턴에서 볼 수 있음). 계층 구조에서 용어를 더 깊이 추가하면 패턴도 업데이트해야합니다.

[term : parents-all : 3] / [term : parents-all : 2] / [term : parents-all : 1]

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.