วิธีแยกลำดับขั้นของอนุกรมวิธานใน pathauto ด้วยเครื่องหมายทับ


14

Pathautoดูเหมือนว่าจะมีวิธีที่แตกต่างจากลำดับชั้นของอนุกรมวิธานภาษี

จากเมนู Taxonomy :

  1. มือสอง> รถยนต์> Aston Martin> DB9 Coupe
  2. แบ่งย่อย> งาน> การบัญชี

สิ่งที่ฉันต้องการคืออะไรเช่นนี้สำหรับ url:

  • คลาสสิฟายด์ / งาน / การบัญชี (ไม่ใช่การบัญชี - งาน - คลาสสิฟายด์)

(โปรดทราบว่า Pathautho สร้างสิ่งนี้ด้วยเครื่องหมายขีดคั่นในลำดับย้อนกลับเช่นกัน)

ใน Pathauto ฉันใช้รูปแบบนี้: Default path pattern(ใช้กับคำศัพท์ทั้งหมดที่มีรูปแบบว่างเปล่าด้านล่าง)

[term:parents-all]

สับสน.

คำตอบ:


10

ด้วยการเปิดใช้งานโมดูลTokenคุณสามารถกำหนดรูปแบบดังนี้

[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 ระดับที่ลึก (รวมถึงคำศัพท์) ที่จะเป็น [คำศัพท์: คำศัพท์] / [คำศัพท์: ผู้ปกครอง: ผู้ปกครอง: ผู้ปกครอง: ชื่อ: /] คำที่: ผู้ปกครอง: ชื่อ: / ... . ใช่มั้ย ฉันต้องการโมดูลโทเค็นสามารถกำหนดค่าในลักษณะที่คุณไม่จำเป็นต้องกำหนดผู้ปกครองเด็กซ้ำ ๆ ในลักษณะนี้ จะเกิดอะไรขึ้นถ้าต้นไม้ของคุณกลายเป็น 6 ระดับโดยไม่คาดคิดคุณจะต้องลบและอัปเดตเส้นทางของคุณเพื่อรวมอีกหนึ่งระดับจากนั้นกลายเป็นความลึก 7 ระดับเป็นต้น .. ฉันหมายถึงถ้าผู้ใช้คนหนึ่งเพิ่มคำลงหนึ่งระดับ ผู้ดูแลระบบปรับปรุง pathauto!
มกราคม

1
แม้ว่านี่จะเป็นคำตอบที่ได้รับการยอมรับโปรดอ่านคำตอบของ @ NenadP สำหรับโซลูชันที่ปรับขนาดได้
พอล

16

มีวิธีที่ฉลาดในการทำสิ่งนี้โดยใช้การเข้าร่วม: /

ในกรณีของฉันฉันใช้:

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

ที่field-taxonomy-skolskiเป็นเขตการเลือกคำจากต้นไม้อนุกรมวิธาน เครื่องหมายทับซ้ายจะถูกปล้นแม้ว่าจะมีการตั้งค่าไว้ด้านล่าง

การดูแลระบบ»การกำหนดค่า»การค้นหาและข้อมูลเมตา»ชื่อแทน URL »ชื่อแทน URL - การตั้งค่า

ที่ด้านล่างของหน้าสำหรับเครื่องหมายวรรคตอนแบบเลื่อนลง ตั้งเป็นสแลช (/) "ไม่มีการกระทำ" แทนที่จะเป็น "ลบ"


บิงโก! ฉันเองเสนอวิธีแก้ไขปัญหาที่ไม่สามารถปรับขนาดได้ข้างต้น ( drupal.stackexchange.com/questions/27141/… ) และแน่นอนว่าฉันชอบสิ่งนี้ดีกว่ามาก ฉันสาบานว่าตัวเลือกโทเค็นไม่ได้อยู่ที่นั่นเมื่อฉันพยายามดิ้นรนเพื่อให้รูปแบบนั้นทำงานได้ ขอบคุณ!
อาร์เทอร์

2
[... : join: /] ไม่ได้ผลสำหรับฉัน แต่ [... : join-path] ทำ หมายเหตุ: ด้วย join-path คุณไม่สามารถเลือกตัวคั่นได้ มันใช้ / เป็นตัวคั่นเท่านั้น

หากวิธีนี้ใช้ไม่ได้ผลคุณอาจต้องติดตั้งและเปิดใช้งานโมดูล "เอนทิตี"
coderama

รูปแบบสำหรับ Drupal 8 นั้นแตกต่างกันเล็กน้อยเช่น: [term:vocabulary]/[term:parents:join:/]/[term:name]
Martin Klíma

6

อันนี้ใช้ได้กับฉันใน Drupal 7.15 กับ Token 7.x-1.3 และ Pathauto 7.x-1.2:

[สั้น: ผู้ปกครองเข้าร่วม: /] / [ระยะ: ชื่อ]

ตามที่ brunops ระบุไว้ในคำตอบที่สองเข้าร่วม:% separator% ทำเวทมนต์ มันแทนที่ขีดกลางเริ่มต้นด้วย% separator%

ขอบคุณมากสำหรับ brunops!


นี่ต้องเป็นคำตอบที่ถูกต้อง! ไม่สำคัญว่าคุณจะมีกี่ระดับมันจะได้ผล
Rantiev

3

กุญแจสำคัญในการทำงานนี้คือ:

  • ติดตั้งและเปิดใช้งาน Entity API, Entity Tokens, Path Path และโมดูล Taxonomy
  • สร้างฟิลด์ในประเภทเนื้อหาของคุณและตั้งค่าประเภทฟิลด์เป็นคำอ้างอิงและตั้งชื่อบางอย่างเช่น 'field-content-category' (ชื่อเครื่อง)
  • ตั้งค่าจำนวนค่าหรือที่รู้จักว่า 'จำนวนสูงสุดของค่าที่ผู้ใช้สามารถป้อนสำหรับฟิลด์นี้' เป็น 1 (สำคัญมากถ้าคุณต้องการใช้โทเค็นที่รวมพา ธ ซึ่งเพิ่ม / ระหว่างองค์ประกอบของเส้นทางโดยอัตโนมัติ)
  • ตั้งค่ารูปแบบ URL (admin / config / search / path / patterns) เป็นบางอย่างเช่น '[โหนด: field-content-category: parent: join-path] / [โหนด: field_content_category] / [โหนด: title]'

0

ฉันอยากจะแนะนำให้ใช้สิ่งที่ฉลาดเช่น:

[สั้น: ผู้ปกครอง: เงื่อนไข: ย้อนกลับเข้าร่วม :?]

แต่ฉันไม่สามารถใช้ชีวิตของฉันได้ ดังนั้นฉันขอแนะนำสิ่งต่อไปนี้ แต่คุณสามารถไปได้ลึกที่สุดเท่าที่ลำดับชั้นอนุญาต (สามารถเห็นได้ในรูปแบบการแทนที่) หากคุณเพิ่มคำลึกลงไปในลำดับชั้นคุณจะต้องปรับปรุงรูปแบบด้วย

[ระยะ: พ่อแม่ทั้งหมด: 3] / [ระยะ: พ่อแม่ทั้งหมด: 2] / [ระยะ: พ่อแม่ทั้งหมด: 1]

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.