ชื่อเทอมอนุกรมวิธานเป็นตัวกรองเชิงบริบทสำหรับการดู


18

ใน D7 ฉันสามารถกรองมุมมองตามชื่อคำศัพท์อนุกรมวิธานที่นำมาจาก URL ตัวอย่างจะเป็น URL นี้

http://www.gbyte.co/tags/drupal-planet/rss.xml

"drupal-planet" จะถูกแปลงเป็นรหัสประจำตัวอนุกรมวิธานซึ่งจะกรองผลลัพธ์การดูตามลำดับ

ตอนนี้ฉันได้ตั้งค่ามุมมอง D8 ที่สอดคล้องกันด้วยตัวกรองตามบริบท "เนื้อหา: แท็ก (field_tags)", field_tags เป็นเขตข้อมูล taxonomy อย่างไรก็ตามมุมมอง D8 จะแสดงผลลัพธ์เมื่อฉันส่งรหัสคำที่แท้จริงลงใน URL ดังนี้:

http://www.gbyte.co/tags/9/rss.xml

ฉันต้องการให้ทำงานกับชื่อคำศัพท์เช่นเดียวกับ D7 ฟังก์ชั่นขาดหายไปหรือฉันต้องกำหนดค่ามุมมองต่างกันหรือไม่?


มีข่าวเกี่ยวกับเรื่องนี้ไหม? ฉันมีปัญหาเดียวกัน
Jeroen

คำตอบ:


20

ชื่อระยะแปลงเป็นระยะ IDกรองรูปลักษณ์ที่จะหายไปสำหรับ D8 ชม

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


12
ข้อผิดพลาดของผู้สร้างไซต์ใน D8 เพิ่ม UI ตัวกรองเชิงบริบท: ชื่อของตัวกรองตามบริบทคือ 'ชื่อ' และหมวดหมู่คือ 'คำศัพท์อนุกรมวิธาน' การค้นหา 'taxonomy' จะล้มเหลวในการแสดงรายการตัวกรองนี้เนื่องจากมีการค้นหาชื่อเรื่องและคำอธิบายเท่านั้นไม่ใช่หมวดหมู่
keithm

1
นอกจากนี้คุณสามารถเขียนทับหัวเรื่องด้วย{{ arguments.name }}ในการตั้งค่าของตัวกรองเชิงบริบท
cptstarling


3

ในขณะที่เขียนคำถามที่ฉันจัดการเพื่อแก้ไขปัญหานี้โดยการแปลงชื่อคำศัพท์อนุกรมวิธานจาก URL เป็นรหัสประจำตัวใน views_hook_pre_view () จากนั้นใช้เป็นอินพุตสำหรับตัวกรองเชิงบริบท ซึ่งยอมรับ taxonomy IDs

นี่คือรหัสสำหรับ hook การดู:

/**
 * Implements hook_views_pre_view().
 */
function my_module_views_pre_view(\Drupal\views\ViewExecutable $view, $display_id, array &$args) {
  if ($view->id() == 'blog' && $display_id == 'feed') {
    if (isset($args[0])) {
      $term = taxonomy_term_load_multiple_by_name($args[0], 'tags');
      if (empty($term)) {
        $term = taxonomy_term_load_multiple_by_name(str_replace("-", " ", $args[0]), 'tags');
      }
      if (!empty($term)) {
        $tid = key($term);
        $args[0] = $tid;
      }
    }
  }
}

2

หากต้องการขยายคำตอบของ Shawn Conn:

  • ภายในการกำหนดค่ามุมมองภายใต้ขั้นสูง -> ความสัมพันธ์คลิก 'เพิ่ม'
  • ตอนนี้เลือก 'เงื่อนไขอนุกรมวิธานบนโหนด'
  • ในหน้าจอถัดไปเลือกคำศัพท์ 'แท็ก' และต้องการความสัมพันธ์
  • ตอนนี้ภายใต้ขั้นสูง -> ตัวกรองตามบริบทคลิก 'เพิ่ม'
  • ใต้ 'เมื่อตัวกรองไม่พร้อมใช้งาน' ให้เลือก 'ระบุค่าเริ่มต้น', 'ค่าวัตถุดิบจาก URL' เลือกตัวเลือกอื่น ๆ ที่เหมาะสมกับความต้องการของคุณ
  • ภายใต้ 'เมื่อตัวกรองพร้อมใช้งานหรือมีค่าเริ่มต้น' ให้เลือก 'ระบุเกณฑ์การตรวจสอบความถูกต้อง' และเลือก 'ชื่อคำศัพท์ทางภาษี' สำหรับผู้ตรวจสอบความถูกต้อง เลือกคำศัพท์ 'แท็ก' จากนั้นคลิกใช้

หวังว่าจะช่วย!


1

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


2
ฉันมีปัญหาเดียวกันกับที่อธิบายไว้ในคำถามนี้คุณชัดเจนขึ้นหรือไม่ ฉันได้ตั้งค่าความสัมพันธ์แล้ว แต่ตัวกรองเชิงบริบทจะทำงานกับ tid แทนชื่อคำเท่านั้น แน่นอนเรากำลังพูดถึง D8 ขอบคุณล่วงหน้า.
Vagner

1

@kiethm ได้จัดให้มีวิธีที่ถูกต้องวิธีนี้ - ภายใต้บริบทกรองคุณต้องเลือก'ชื่อ'ไม่'อนุกรมวิธานระยะ ID'จากนั้นตั้งค่าเกณฑ์การตรวจสอบของคุณเพื่อการใช้งาน'อนุกรมวิธานระยะชื่อ'


1

เฮ้ฉันกำลังมองหาคำตอบนี้อยู่พักหนึ่ง สำหรับคนอื่น ๆ เช่นฉันที่กำลังมองหาวิธีการทำให้มันทำงานฉัน Gumped วิธีของฉันไปสู่ความสำเร็จส่วนหนึ่งจากที่นี่และผลลัพธ์ของ drupal.org และจากต่อไปนี้: http://redcrackle.com/blog/adding-contextual-filter -View-Drupal-8

ฉันใช้ Drupal 8 และ Zircon ฉันเป็นแบรนด์ใหม่ดังนั้นฉันจึงอาจใช้คำผิด ฉันต้องการสร้างลิงก์รูปภาพตามบริบทใน "แผงแรกคอลัมน์ 1" ตามหมวดหมู่ของหน้าเว็บที่มีคนอยู่ สิ่งที่ฉันทำคือไปที่โครงสร้าง> มุมมอง> ม้าหมุน (มุมมองที่มีรูปภาพในภูมิภาคบล็อกนั้น)> ขั้นสูง> เพิ่มโดยตัวกรองตามบริบท> มีรหัสประจำตัวของอนุกรมวิธาน> เลือกในระบุค่าเริ่มต้น: รหัสประจำตัวผู้ Taxonomy จาก URL ไม่มีเหตุผลกับฉัน แต่อย่างใด)> จากนั้นฉันตรวจสอบกล่องทั้งสาม: โหลดตัวกรองเริ่มต้นจากหน้าคำศัพท์, โหลดตัวกรองเริ่มต้นจากหน้าโหนดซึ่งเป็นสิ่งที่ดีสำหรับบล็อกอนุกรมวิธานที่เกี่ยวข้อง จากนั้นสำหรับคำศัพท์ฉันตรวจสอบหมวดหมู่

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


1

ฉันเขียนโมดูลเล็ก ๆ เพื่อเรียกคืนการทำงานที่หายไปและทำให้มันทำงานได้อย่างถูกต้องอีกครั้ง:

https://www.drupal.org/project/views_taxonomy_term_name_into_id

มันเพิ่มตัวตรวจสอบความถูกต้อง 'แปลงชื่อคำเป็น ID' สำหรับคำศัพท์อนุกรมวิธานที่ใช้ใน 'ตัวกรองเชิงบริบท' ใน Views ดูหน้าโครงการสำหรับข้อมูลเพิ่มเติมและคำแนะนำ

เพลิดเพลินไปกับ - ดีเร็ก (dww)


0

คุณสามารถทำได้โดยการเพิ่มเนื้อหา: มี ID เทอม taxonomyในตัวกรองเชิงบริบทจากนั้นคุณสามารถใช้ taxonomy ในบริบทโดยปรับเกณฑ์ตัวกรอง

ป้อนคำอธิบายรูปภาพที่นี่


คุณได้จับภาพหน้าจอจากการติดตั้ง D7 ใน D8 ไม่มีตัวตรวจสอบ "Taxonomy Term" แต่มี "รหัสระยะเวลา Taxonomy" หรือ "ชื่อคำศัพท์ Taxonomy" ซึ่งทั้งสองอย่างนี้ไม่ยอมรับชื่อ taxonomy จาก URL พวกเขายอมรับ ID เท่านั้น
gbyte.co

0

ฉันได้รับสิ่งนี้ใน Drupal-8 โดยการกรองตามบริบท: ของ "คำศัพท์อนุกรมวิธาน: ชื่อ"

จากนั้นระบุค่าเริ่มต้นพิมพ์ Taxonomy Term ID จาก Url

จากนั้นระบุเกณฑ์การตรวจสอบต่อไปนี้:

ป้อนคำอธิบายรูปภาพที่นี่

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