Làm thế nào để phân chia thứ bậc phân loại trong pathauto bằng dấu gạch chéo


14

Pathauto dường như có một cách khác biệt trong phân cấp phân loại phân loại.

Từ Menu Phân loại :

  1. Rao vặt> Ô tô> Aston Martin> DB9 Coupe
  2. Rao vặt> Công việc> Kế toán

Những gì tôi muốn là một cái gì đó như thế này cho url:

  • Rao vặt / công việc / kế toán (không kế toán-công việc-Rao vặt)

(Lưu ý rằng Pathautho cũng tạo ra điều này với dấu gạch ngang theo thứ tự ngược lại.)

Trong Pathauto, tôi đang sử dụng mẫu này: Default path pattern(áp dụng cho tất cả các từ vựng có mẫu trống bên dưới)

[term:parents-all]

Bối rối.

Câu trả lời:


10

Với mô-đun Token được bật, bạn có thể đặt một mẫu như thế này:

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

Làm cho mô hình này miễn là bạn muốn. Con đường của bạn sau đó sẽ trở thành:

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

và như thế...


Cảm ơn bạn nhiều! Vì vậy, nếu tôi có một hệ thống phân cấp phân loại sâu 5 cấp độ (bao gồm cả vocab) sẽ là [thuật ngữ: từ vựng] / [hạn: cha mẹ: cha mẹ: tên: /] thuật ngữ: cha mẹ: tên: tên] / ... vv ., đúng? Tôi muốn mô-đun mã thông báo có thể được cấu hình theo cách mà bạn không cần phải xác định cha mẹ và con theo cách này. Điều gì sẽ xảy ra nếu cây của bạn bất ngờ trở thành 6 cấp thì bạn sẽ phải xóa và cập nhật các đường dẫn của mình để bao gồm một cấp khác và sau đó trở thành 7 cấp độ sâu, v.v. ý tôi là, nếu một người dùng thêm thuật ngữ xuống một cấp, anh ta không thể thấy nội dung của mình trừ khi một quản trị viên cập nhật pathauto!
Tháng Một

1
Mặc dù đây là câu trả lời được chấp nhận, vui lòng xem lại câu trả lời của @ NenadP để biết giải pháp mở rộng.
Paul

16

Có một cách thông minh để làm điều này bằng cách sử dụng tham gia: /

Trong trường hợp của tôi, tôi đã sử dụng:

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

đâu field-taxonomy-skolskilà lĩnh vực để chọn thuật ngữ từ cây phân loại. Dấu gạch chéo sẽ bị tước, mặc dù có một cài đặt bên dưới

Quản trị »Cấu hình» Tìm kiếm và siêu dữ liệu »Bí danh URL» Bí danh URL - cài đặt

ở dưới cùng của trang để thả xuống PUNCTUATION . Đặt thành dấu gạch chéo (/) "không hành động" thay vì "xóa".


Chơi lô tô! Bản thân tôi đã cung cấp giải pháp không thể mở rộng ở trên ( drupal.stackexchange.com/questions/27141/ mẹo ) và tất nhiên tôi thích giải pháp này tốt hơn nhiều. Tôi thề rằng tùy chọn mã thông báo đã không ở đó khi tôi đang vật lộn để mô hình đó hoạt động. Cảm ơn!
Artur

2
[...: Tham gia: /] không hoạt động với tôi nhưng [...: tham gia đường dẫn] đã làm. Ghi chú: với đường dẫn tham gia, bạn không thể chọn dấu phân cách. Nó chỉ sử dụng / như dấu phân cách.

Nếu điều này không phù hợp với bạn, có lẽ bạn cần phải cài đặt và kích hoạt mô-đun "thực thể".
coderama

Mô hình cho Drupal 8 có một chút khác biệt, ví dụ: [term:vocabulary]/[term:parents:join:/]/[term:name]
Martin Klíma

6

Cái này hoạt động với tôi trên Drupal 7.15 với Token 7.x-1.3 và Pathauto 7.x-1.2:

[hạn: cha mẹ: tham gia: /] / [hạn: tên]

Như các brunops đã nêu trong câu trả lời thứ hai, hãy tham gia:% separator% thực hiện phép thuật. Nó thay thế dấu gạch ngang mặc định bằng% separator%.

Một lời cảm ơn lớn đến những cậu bé tóc nâu!


Điều này phải được trả lời đúng! Không quan trọng bạn có bao nhiêu cấp độ, điều này sẽ hoạt động.
Rantiev

3

Chìa khóa để làm việc này là:

  • cài đặt và kích hoạt các thực thể API, thực thể mã thông báo, mô đun tự động đường dẫn và phân loại.
  • tạo một trường trên loại nội dung của bạn và đặt Loại trường thành Tham chiếu thuật ngữ và đặt tên cho nó là 'loại trường nội dung' (tên máy)
  • Đặt Số lượng giá trị, còn gọi là 'Số lượng giá trị tối đa mà người dùng có thể nhập cho trường này' thành 1 (rất quan trọng nếu bạn muốn sử dụng mã thông báo đường dẫn đã tự động thêm / giữa các thành phần đường dẫn).
  • đặt các mẫu URL (admin / config / search / path / samples) thành một cái gì đó như '[node: field-content-category: Parent: jo-path] / [node: field_content_carget] / [node: title]'

0

Vâng, tôi sẽ khuyên bạn nên sử dụng một cái gì đó thông minh như:

[hạn: cha mẹ: điều khoản: đảo ngược: tham gia :?]

Nhưng tôi không thể cho cuộc sống của tôi làm cho nó làm việc cả. Vì vậy, thay vào đó tôi khuyên bạn nên làm theo nhưng bạn chỉ có thể đi sâu như phân cấp cho phép (có thể được nhìn thấy trong các mẫu thay thế). Nếu bạn thêm các thuật ngữ sâu hơn trong hệ thống phân cấp, bạn cũng sẽ phải cập nhật mẫu.

[hạn: cha mẹ-tất cả: 3] / [hạn: cha mẹ-tất cả: 2] / [hạn: cha mẹ-tất cả: 1]

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.