การแปลงชื่อคำศัพท์ด้วยอักขระพิเศษเป็นรหัสประจำตัวในมุมมอง


11

ฉันมีมุมมองที่ฉันต้องการใช้หลาย termID เป็นข้อโต้แย้ง ฉันต้องการใช้ชื่อคำศัพท์จาก url และแปลงเป็น termID ฉันจัดการให้ทำได้ง่ายพอและทำงานได้กับ 1 คำศัพท์ง่าย ๆ หรือแม้กระทั่งหลายคำโดยการตรวจสอบ 'เปลี่ยนเครื่องหมายขีดคั่นใน URL เป็นช่องว่างในชื่ออาร์กิวเมนต์ของคำว่า'

ฉันมีคำศัพท์ไม่กี่คำที่มีตัวละครพิเศษเช่น: "ข่าวและการเมือง"

มีวิธีใดที่จะมี URL ที่ดี (ข่าวการเมือง) และรับมุมมองเพื่อรับรู้คำที่ถูกต้องและแปลงเป็น termID ที่ถูกต้อง? ฉันจะต้องใช้เครื่องหมายแอมเปอร์แซนด์? มันจะใช้ได้หรือไม่

แก้ไข: คุณสามารถตั้งชื่อแทนพา ธ สำหรับคำศัพท์อนุกรมวิธานเดี่ยว แต่เป็นปัญหาเมื่อคุณต้องการใช้ชื่อคำว่าเป็นอาร์กิวเมนต์ที่สองในเส้นทางที่มีอาร์กิวเมนต์หลายตัวเช่น:

สมมติว่าฉันต้องการกรองผลลัพธ์การดูด้วยคำศัพท์% 1 ตามด้วย% 2 ข่าว & การเมือง

/ ข่าว / ข่าวการเมือง

ระยะที่สองจะไม่ได้รับการยอมรับ


ทำไมคุณไม่ใช้ชื่อคำว่าเป็นอาร์กิวเมนต์?
dobeerman

ปัญหาเดียวกัน เครื่องหมายแอมเปอร์แซนด์หายไปดังนั้น drupal จึงไม่สามารถค้นหาคำศัพท์ได้ ฉันคิดว่าตัวเลือกเดียวคือ url เข้ารหัส ampersand ที่ SEO ไม่กระตือรือร้นหรืออาจเก็บชื่อแทนเส้นทางสำหรับแต่ละคำใน db เพิ่งสงสัยว่าใครเคยเจอสิ่งนี้มาก่อนและมีกลยุทธ์ที่ดี
nickwshaw

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

คำตอบ:


2

คุณสามารถใช้pathautoเพื่อตั้งค่านามแฝงอัตโนมัติสำหรับเงื่อนไข taxonomy ของคุณ Pathauto จะดูแลอักขระ URL ที่ไม่ถูกต้องให้กับคุณเมื่อสร้างนามแฝงอัตโนมัติ จากนั้นในมุมมองของคุณให้ใช้คำว่า id เป็นอาร์กิวเมนต์ เส้นทางของมุมมองของคุณอาจเป็น taxonomy / term /% หรือ autoalias ที่คุณตั้งค่า /%


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

ตรวจสอบนี้: ดูอาร์กิวเมนต์การจัดการรหัส - การใช้หลายชื่อ Taxnomy ระยะเวลาเป็นข้อโต้แย้ง
Jepedo

2

เนื่องจากข้อบกพร่องอันยาวนานในโมดูล Views ที่รายงานในฉบับที่ # 672606: เครื่องหมายบวกขีดกลางและเครื่องหมายทับ (+ - /) ตัวแบ่งการขัดแย้งบน Drupal.org จึงไม่สามารถใช้เป็นอาร์กิวเมนต์ (หรือ "ตัวกรองเชิงบริบท) "ในคำล่าสุด) ชื่อคำที่มีอักขระพิเศษบางตัว มีวิธีแก้ไขสองสามข้อที่เสนอ :

  1. ใช้บางอย่างเช่นโมดูลฟิลด์ที่คำนวณ (computed_field) เพื่อสร้างค่าฟิลด์ที่เป็นมิตรกับ URL บนเอนทิตีคำที่สามารถใช้เป็นอาร์กิวเมนต์ เพียงแค่ระวังโอกาสที่แคบ (บาง?) ของคำที่คล้ายกันมากที่จะปิดบังซึ่งกันและกันหากคุณไม่ระวังเรื่องความเป็นเอกลักษณ์
  2. เพียงใช้คำว่า ID สำหรับอาร์กิวเมนต์และสร้างสมนามพา ธ ให้กับพวกเขาโดยใช้โมดูลView Alias (view_alias)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.