2011-11-29 37 views
5

Tôi có một Drupal 7,9 phân loại từ vựng theo sơ đồ sau:Drupal 7: Pathauto về phân loại theo cấp bậc mẫu

category-1 
    category-1 > subcategory-1-1 
    category-1 > subcategory-1-2 
    category-1 > subcategory-1-3 
category-2 
    category-2 > subcategory-2-1 

Tôi muốn phản ánh thứ bậc phân loại này trong đường dẫn url trang web của tôi như

category-1/subcategory-1-1/page-123 

Để đạt được điều này, tôi đang sử dụng phiên bản Pathauto modul 7.x-1.0. nhưng tôi không biết mẫu nào tôi phải sử dụng.

Hiện tại tôi đang sử dụng [node:%field_taxonomy%]/[node:title] nhưng với mẫu này, đường dẫn url chỉ là subcategory-1-1/page-123, do đó, hệ thống phân cấp hoàn chỉnh không được phản ánh. Có mẫu cây phân loại không? Tôi không thể tìm thấy bất kỳ thông tin cập nhật nào về mẫu này và các mẫu hợp lệ dường như thay đổi trong mọi phiên bản của Pathauto.

Trả lời

9

Sau một số lần thử và lỗi, tôi đã tìm ra cách hoạt động khá tốt đối với tôi trong khi tạo đường dẫn URL tùy chỉnh bằng các thuật ngữ phân loại. Tất cả những gì bạn cần làm là cài đặt một mô-đun bổ sung có tên Entity API. Bạn có thể tìm thấy nó ở đây http://drupal.org/project/entity. Sau khi cài đặt, bạn nên kích hoạt cả hai mô-đun Entity API và Entity tokens. Mã thông báo thực thể cung cấp các thay thế mã thông báo cho tất cả các thuộc tính không có mã thông báo và được biết đến với API thực thể.

Trước tiên, hãy tạo và tạo một từ vựng phân loại mới. Hãy gọi nó là "Danh mục" và thêm một số thuật ngữ. Sau đó, đối với loại nội dung bạn muốn có đường dẫn URL tùy chỉnh, bạn cần tạo trường tham chiếu cụm từ mới. Tôi không biết tại sao nhưng nó không hoạt động với field_tags standart. Vì vậy, hãy chắc chắn tạo một cái mới. Chúng ta hãy gọi nó là thể loại và sử dụng từ vựng đã tạo trước đây của chúng ta "Danh mục" làm nguồn. Và đây là một điều khác mà bạn cần phải tính đến: bạn phải gắn nhãn trường này bằng một chữ cái nhỏ; nếu không nó không làm việc cho một lý do không rõ cho tôi;). Bạn sẽ kết thúc với một trường field_category.

Truy cập trang quản trị bí danh URL -> Mẫu. Mở rộng các mẫu thay thế cho Đường dẫn nội dung -> mở rộng Nút -> bạn sẽ thấy danh mục ở dưới cùng, mở rộng nó. Ok, bây giờ bạn đã sẵn sàng sử dụng các thẻ điều khoản phân loại.

Sử dụng một cái gì đó như [node: field-category: name]/[node: title] trong đó [node: field-category: name] là tên của thuật ngữ phân loại và bạn sẽ có một đường dẫn như mysite.com/term/title.

Nhân tiện, tôi sử dụng Pathauto 7.x-1.0-beta1, Mã 7.x-1.0-beta2 và API thực thể 7.x-1.0-beta8.

Chúc may mắn!))

http://drupal.org/node/1044980#comment-4562844

Bạn có thể tạo url với mô hình này: [nút: lĩnh vực thể loại: từ vựng: name]/[node: lĩnh vực thể loại: cha mẹ: tham gia: /]/[node: lĩnh vực -category: name]/[node: title]

+1

Cảm ơn bạn rất nhiều vì giải pháp chi tiết của bạn. Bây giờ tôi đã kết thúc với '[node: field-category: cha mẹ: join: /]/[node: field-category: name]/[node: title]'. Hoạt động tốt! –

0

Theo tôi biết, Drupal + Token + PathAuto cơ bản không thể tạo đường dẫn, như bạn muốn.

+0

Bạn có biết một mô-đun khác để giải quyết vấn đề này không? –

+0

API thực thể hoạt động –

2

Trong tình hình cụ thể của bạn, bạn có thể đi xa với việc sử dụng mô hình sau cho các mục phân loại:

[hạn: từ vựng: name]/[hạn: Phụ huynh: Phụ huynh]/[hạn: cha]/[hạn: tên ]

Và đối với nút mẫu:

[nút:% field_taxonomy%: url: path]/[node: title]

có nhược điểm tho - hạn mẫu sẽ xử lý lên đến ba cấp độ trong này trường hợp. Vì vậy, bạn không thể làm cho nó không giới hạn với cách tiếp cận này. (Tôi tin rằng bạn có thể thêm thuật ngữ: parent: parent: ... bao nhiêu tùy thích).

Mặc dù, nó sẽ xử lý LESS hơn 3 mức phạt (chỉ cần kiểm tra để đảm bảo).

+1

Cảm ơn bạn Pavel. Nhưng mẫu nút có vẻ không hợp lệ. Không có mã thông báo url cho% field_taxonomy% (không được liệt kê theo mẫu) Mẫu thử nghiệm: [nút: field_category: url: path]/[node: title] Pathauto phiên bản: 7.x-1.0 Mã phiên bản: 7 .x-1.0-beta7 Bạn sử dụng phiên bản mô-đun nào? –

+0

Điều này làm việc cho tôi. Muốn có một mã thông minh hơn bạn có thể sử dụng mặc dù thay vì phải xác định chiều sâu tối đa. – Evans

+0

Tuyệt vời, tôi đã dành một giờ để thử và báo lỗi. Đã gần nhưng không thành công, sau đó tôi quyết định google nó và tìm thấy câu trả lời này. –

0

Kiểm tra câu trả lời của tôi here. Bạn có thể sử dụng mô-đun chỉ mục thực thể phân loại để đạt được hành vi như vậy.

Các vấn đề liên quan