วิธีรวมมุมมองที่กรองกับการค้นหาเข้าด้วยกัน?


18

ไคลเอนต์ของฉันถามฉันสำหรับเขตข้อมูลเดียวที่จะทำงาน 2 วิธี:

  • ตัวกรองการเติมข้อความอัตโนมัติขึ้นอยู่กับอนุกรมวิธาน
  • หากผู้เข้าชมไซต์ป้อนสิ่งที่ไม่อยู่ในอนุกรมวิธานการค้นหาข้อความแบบเต็มควรดำเนินการในเนื้อหาของเนื้อหาและแสดงข้อความข้อมูลที่เหมาะสม

ด้วยวิธีนี้หากผู้ใช้ป้อนชื่อหมวดหมู่เขาจะได้รับโหนดที่เลือกด้วยมือในรายการและถ้าอย่างอื่นเขาจะได้รับเนื้อหาอย่างน้อย

แยกเป็นเรื่องง่าย แต่จะรวมพฤติกรรมเหล่านี้ในฟิลด์เดียวได้อย่างไร


1
แยกเป็นเรื่องง่ายโมดูลใดที่คุณทำงานด้วยเพื่อให้การทำให้สมบูรณ์อัตโนมัติตาม taxonomy สำหรับฉันเคล็ดลับจะเป็นรหัสจาวาสคริปต์เล็ก ๆ ที่จะตรวจสอบว่าไม่มีผลลัพธ์เปลี่ยนการกระทำของปุ่มส่งหรือไม่ดังนั้นมันจะเปลี่ยนเส้นทางไปยัง / search /
yourkeywordsearch

คำตอบ:


17

โมดูลตัวค้นหาจะทำตามความต้องการของคุณอย่างแน่นอนคุณสามารถเลือกคำศัพท์อนุกรมวิธานเช่นเดียวกับชื่อโหนด, เนื้อหา, ฟิลด์, .. ฯลฯ เพื่อทำการค้นหา

มีหลายวิธีในการรวบรวมฟังก์ชั่นของผู้ค้นหาเพื่อให้ได้รูปแบบการค้นหาที่คุณต้องการ นอกจากนี้ยังมีฟังก์ชั่น hooks และ theme มากมายที่ช่วยให้สามารถปรับแต่งเอาท์พุทของ finders ได้อย่างเต็มที่

มันถูกใช้เพื่อวัตถุประสงค์เหล่านี้:

As a search tool to find a group of nodes or users.
As a way to navigate to a specific node or user page that matches criteria.
As an alternative to exposed filters for a Views module display.

ดูภาพหน้าจอด้านล่างในช่องค้นหาคุณสามารถเลือกคำศัพท์อนุกรมวิธานเช่นเดียวกับเนื้อหาของโหนดเพื่อทำการค้นหาในฟิลด์ที่เปิดเผยโดยอัตโนมัติแม้ว่าคุณสามารถทำการค้นหาคำหลักหลาย ๆ คำคั่นด้วยเครื่องหมายจุลภาค อ่านเอกสาร Finderสำหรับข้อมูลเพิ่มเติม ..

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

เมื่อคุณเพิ่มองค์ประกอบแล้วคุณสามารถเลือกช่องค้นหาจากรายการกดปุ่มค้างไว้

ปุ่ม Ctrl เพื่อเลือกคำศัพท์อนุกรมวิธานเช่นเดียวกับโหนด: ร่างกาย


มันค่อนข้างเก่าและต้องการผู้ดูแลร่วมกัน แต่ดูเหมือนว่ามันจะเติมเต็มทุกความต้องการของฉัน จะต้องทำการทดสอบ แต่จนถึงตอนนี้ดูเหมือนจะเป็นคำตอบที่สมบูรณ์แบบสำหรับกรณีการใช้งานของฉัน
Mołot

ดูเหมือนว่ามันใช้งานได้ ฉันจะต้องปรับมันเล็กน้อย แต่ก็สามารถทำงานได้
Mołot

3

ฉันเขียนโดยไม่ต้องทดสอบ แต่ฉันมีความรู้สึกว่าคุณสามารถใช้อย่างน้อยก็เป็นจุดเริ่มต้น

เมื่อใช้โมดูลมุมมองฟิลด์มุมมองคุณสามารถฝังมุมมองลงในมุมมองอื่นและยังช่วยให้คุณสามารถส่งตัวกรองเชิงบริบทไปยังมุมมองแบบฝังได้

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

ต้องบอกว่าถ้าคุณสามารถทำตามขั้นตอนแรกได้ส่วนที่เหลือก็ค่อนข้างง่าย

ในมุมมองดั้งเดิมของคุณคุณเพิ่ม 'ไม่มีผลพฤติกรรม' ภายใต้ส่วนตัวเลือกขั้นสูงและเพิ่ม 'ทั่วโลก: มุมมอง (มุมมองฟิลด์มุมมอง)' และเลือกมุมมองที่คุณสร้างไว้ก่อนหน้านี้และส่งโทเค็นสำหรับตัวกรองที่เปิดเผย ตัวกรองเชิงบริบทไปยังมุมมองที่ฝังตัว (คุณสามารถค้นหาโทเค็นในรายการสำหรับรูปแบบการแทนที่)


1
แนวคิดที่น่าสนใจ แต่ฉันไม่สามารถทำงานได้ การกำหนดค่ามากมายจากนั้น Bala ก็โพสต์โมดูลสำเร็จรูปและฉันก็เสียหัวใจ
Mołot

ใช่ฉันไม่รู้เกี่ยวกับโมดูลFinder ฉันคิดว่าฉันจะใช้มันในโครงการของฉันเช่นกัน ฉันจะดีใจถ้าคุณแจ้งให้เราทราบด้วยความคิดเห็นหาก Finder ทำในสิ่งที่คุณคาดหวัง
ЕлинЙ

3

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

  1. พิจารณาที่ url http://www.seedandspark.com/studio
  2. ที่นี่ทางด้านซ้ายมือคุณมีแบบฟอร์มการค้นหา นี่คือรูปแบบที่กำหนดเอง ( form_id = 'sns_studio_form_filter')
  3. ในพื้นที่เนื้อหาเรามีบล็อกการดูประมาณ 7-8 รายการและสร้างข้อมูลแบบไดนามิกทั้งหมด (สำหรับผู้ใช้ที่ไม่ระบุชื่อ 3 บล็อกเท่านั้น)
  4. ขณะนี้เราได้เปิดใช้งานตัวกรองแบบเปิดเผยกับแต่ละบล็อกการดูแล้ว
  5. เราได้ซ่อนตัวกรองที่เปิดเผยเหล่านั้นไว้จากมุมมอง
  6. เราได้เก็บบันทึกโครงสร้าง url ไว้เมื่อเราใช้ตัวกรองที่เปิดเผย
  7. ในตัวจัดการการส่งแบบฟอร์มที่กำหนดเองของเราเราใช้ข้อมูลจากฟิลด์ของแบบฟอร์มที่กำหนดเองและสร้าง URL ที่คล้ายกันดังที่เราได้จดไว้ในขั้นตอนที่ 6 และในที่สุดเราก็เปลี่ยนเส้นทางไปยัง URL นั้น มันจะเป็นเช่นนี้ในตัวจัดการการส่ง ::

    $form_state ['redirect'] = array(
      $path, 
      array(
        'query' => $params // $params is the url
      )
    );
    drupal_redirect_form( $form_state );

ดังนั้นเมื่อดำเนินการตามขั้นตอนที่ 7 แล้วบล็อกการดูทั้งหมดจะได้รับการกรองตามเกณฑ์ตัวกรองที่คุณตั้งไว้

หวังว่ามันจะช่วย


3

นอกจากนี้ยังมีอีกวิธีหนึ่งในการดำเนินการ: คุณสามารถลองใช้โมดูลConcat Field โดยทั่วไปคุณเพิ่มเขตข้อมูลลงในชนิดเนื้อหาแล้วคุณสามารถใช้ตัวกรองตามเขตข้อมูลนี้เป็นการค้นหา

มันค่อนข้างคล้ายกับ Finder ฉันเห็นด้วย แต่ฉันคิดว่ามันยังคุ้มค่าที่จะกล่าวถึง

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