วิธีกรองมุมมองโดยการเปรียบเทียบ 2 ฟิลด์ ถ้า field-a <field-b


18

ฉันมีประเภทเนื้อหาผลิตภัณฑ์ที่มี 2 ฟิลด์ราคา

ฉันต้องการสร้างมุมมองที่แสดงผลิตภัณฑ์ทั้งหมดที่ราคา A ต่ำกว่าราคา B

ฉันหวังว่าฉันจะเพิ่มตัวกรองและเลือกราคา - จากนั้นเลือกดำเนินการน้อยกว่าและตั้งค่าเป็นราคา -B แต่คุณไม่สามารถทำได้

ฉันได้ลองใช้ตะขอของวิวเป็นส่วนใหญ่ hook_views_query_alter แต่ไม่มีโชคใด ๆ

ฉันได้ลองใช้โมดูล Views PHP และไม่สามารถใช้งานได้

ไม่มีใครรู้วิธีที่ดีที่สุดในการบรรลุเป้าหมายนี้?

คำตอบ:


10

สิ่งที่คุณต้องการคือเกณฑ์การกรองGlobal: Fields comparison:)


3
นี่ควรเป็นคำตอบที่ยอมรับได้
joe_flash

4

ยินดีต้อนรับสู่ Drupal Answers Stack Exchange! ไม่มีทางตรงไปข้างหน้าเพื่อให้บรรลุสิ่งนี้ในมุมมอง Drupal ณ ตอนนี้และเท่าที่ฉันรู้

คุณสามารถทำได้โดยใช้โมดูลViews PHP เปิดใช้งานโมดูลนี้และเพิ่มตัวกรอง PHP ซึ่งคุณสามารถเลือกได้จากตัวกรองมุมมองหมวดหมู่ทั่วโลกเมื่อคุณติดตั้งโมดูลด้านบน

เพิ่มรหัส PHP บางอย่างเช่นด้านล่างในส่วนรหัส PHP ของตัวกรอง

$node = node_load($data->nid);

$field_a = field_get_items('node', $node, 'field_price_a');
$price_a = field_view_value('node', $node, 'field_price_a', $field_a[0]);

$field_b = field_get_items('node', $node, 'field_price_b');
$price_b = field_view_value('node', $node, 'field_price_b', $field_b[0]);

if ($price_a >= $price_b) {
  return TRUE;
}

เปลี่ยน field_price_a ด้วยชื่อฟิลด์ราคา A และฟิลด์ _price_b ด้วยชื่อฟิลด์ราคา B ของคุณ

ฉันทดสอบแล้วและก็ใช้ได้กับฉัน! หวังว่าคุณจะถอดรหัสได้เช่นกัน :-)


ขอบคุณสำหรับคำแนะนำ ฉันยังคงไม่สามารถทำงานกับโค้ดนี้ได้และใช้ฟิลด์ที่แสดงเมื่อทำ dsm ($ data); ฉันคิดว่าฉันอาจเพิ่มในช่องทำเครื่องหมายเช่นกันและกรองหากทำเครื่องหมายที่ช่องทำเครื่องหมาย ขอบคุณสำหรับความช่วยเหลือของคุณ.
Fadzy

ในขณะเดียวกันก็เป็นไปได้ด้วยมุมมองโดยไม่ต้องมีการเข้ารหัสที่กำหนดเองใด ๆ โมดูลส่วนร่วมใด ๆ ที่จำเป็น
ЕлинЙ


-1

http://drupal.org/project/views_depend_filtersมีประโยชน์มาก ...

ปุ่มเพิ่มของ "เกณฑ์ตัวกรอง" มีเมนูย่อยใหม่ Selfexplaning เมื่อคุณลอง ...

แก้ไข: ขออภัย แต่ไม่ใช่สำหรับ> หรือ <แต่สำหรับกลุ่มตัวกรองซึ่งสามารถแยกโดย OR


-2

หากราคาเป็นเขตข้อมูลในประเภทเนื้อหาของคุณในมุมมอง Drupal 7 คุณสามารถทำได้โดยอัตโนมัติและเลือกช่อง com-parer ฉันเดาว่ามันน่าจะใช้ได้นะ

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