Score:0

วิธีสร้างมุมมองที่แสดงผู้ใช้ที่ตั้งค่าสถานะ AND ถูกตั้งค่าสถานะโดยผู้ใช้ปัจจุบัน

ธง nl

ฉันกำลังพยายามแสดงรายชื่อผู้ใช้ที่ตั้งค่าสถานะผู้ใช้ปัจจุบัน และถูกตั้งค่าสถานะโดยผู้ใช้ปัจจุบัน ดังนั้นการตั้งค่าสถานะสองทาง

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

นี่คือมุมมองของฉัน config จากคำแนะนำของ @pkros ตามที่ร้องขอ

ดูภาพรวม

ดูความสัมพันธ์

ดูตัวกรองบริบท

นอกจากนี้ นี่คือ screencast ด่วนที่แสดงปัญหาที่กำลังดำเนินการ... https://drive.google.com/file/d/1MOXKZSq_cjPRv6moim1a5ikKeeD8mjY9/view?usp=sharing

Score:0
ธง mx

นี่คือวิธีที่คุณสามารถทำได้ด้วย Views:

  1. สร้าง User Views โดยปกติแล้วช่องชื่อผู้ใช้จะมีอยู่แล้ว คุณสามารถเก็บไว้ได้ในตอนนี้

  2. เพิ่มความสัมพันธ์ค่าสถานะและตั้งค่าเป็น รวมเฉพาะเนื้อหาที่ถูกตั้งค่าสถานะชื่อธงเฉพาะของคุณ และ ผู้ใช้คนใด

  3. เพิ่มฟิลด์ รหัสผู้ใช้ จาก การตั้งค่าสถานะ หมวดหมู่ (ไม่ใช่หมวดหมู่ผู้ใช้)

    ตอนนี้คุณควรเห็นรายการของการตั้งค่าสถานะ "การเชื่อมต่อ" ทั้งหมด ช่องชื่อผู้ใช้กำลังแสดงผู้ใช้ที่ถูกตั้งค่าสถานะ และฟิลด์ชื่อผู้ใช้ที่ตั้งค่าสถานะกำลังแสดงว่าใครเป็นผู้ตั้งค่าสถานะ

  4. ตอนนี้เพิ่ม รหัสผู้ใช้ ตัวกรองบริบทจาก ผู้ใช้ หมวดหมู่ และกำหนดค่า:
    เมื่อไม่มีค่าตัวกรอง
    ให้ค่าเริ่มต้น
    ID ผู้ใช้จากผู้ใช้ที่เข้าสู่ระบบ
    เมื่อค่าตัวกรองพร้อมใช้งานหรือมีการระบุค่าเริ่มต้น
    ระบุเกณฑ์การตรวจสอบ
    รหัสผู้ใช้
    รหัสเดียว
    ปรับตัวเลือกอื่นๆ ทั้งหมดตามความต้องการของคุณ

    นี่แสดงเฉพาะ "การเชื่อมต่อ" ที่ทำกับผู้ใช้ปัจจุบัน

  5. ลบฟิลด์ชื่อผู้ใช้ออก เนื่องจากคุณไม่ต้องการฟิลด์นี้อีกต่อไป เนื่องจากฟิลด์นี้จะแสดงผู้ใช้ปัจจุบันเสมอ

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

nl flag
ฉันทำตามขั้นตอนของคุณแล้ว แต่ผลลัพธ์ของรายการแสดงเฉพาะผู้ใช้ที่ตั้งค่าสถานะผู้ใช้ปัจจุบัน (แม้ว่าผู้ใช้ปัจจุบันจะไม่ได้ตั้งค่าสถานะก็ตาม) สงสัยว่ามีขั้นตอนอื่นที่เราขาดหายไปหรือไม่?
mx flag
คุณแน่ใจหรือไม่ว่าคุณตั้งค่าความสัมพันธ์ถูกต้อง ด้วย "ผู้ใช้ใด ๆ "?
nl flag
ใช่ มันตั้งค่าแบบนั้น หากฉันมีผู้ใช้ปัจจุบัน ยกเลิกการตั้งค่าสถานะผู้ใช้ที่ได้ตั้งค่าสถานะผู้ใช้ปัจจุบันแล้ว... ผู้ใช้นั้นยังคงแสดงในผลลัพธ์มุมมองด้านบน คุณทดสอบมัน?
mx flag
ใช่ ฉันมีตัวอย่างที่ใช้ได้ผล ฉันเขียนคำตอบตามตัวอย่างนั้น
mx flag
คุณเพิ่มการกำหนดค่าในคำถามได้ไหม เพื่อให้ฉันเห็นความแตกต่าง
nl flag
สวัสดี @pkros ฉันได้รวมการกำหนดค่ามุมมองไว้ในคำถามแล้ว ฉันได้ลองติดตั้ง Drupal ใหม่ทั้งหมดด้วยคำแนะนำของคุณ ยังคงพบปัญหาดังกล่าวข้างต้น แสดงเฉพาะผู้ใช้ที่ตั้งค่าสถานะผู้ใช้ปัจจุบัน ไม่สำคัญว่าผู้ใช้ปัจจุบันจะตั้งค่าสถานะใคร เคล็ดลับเพิ่มเติม? ขอบคุณ!
mx flag
คุณสามารถรวมภาพหน้าจอของการกำหนดค่า Views ของคุณได้หรือไม่ การส่งออกข้อมูลดิบไม่สามารถอ่านได้มากนัก และฉันไม่สามารถนำเข้าได้ เนื่องจากขึ้นอยู่กับโครงสร้างเฉพาะของคุณนอก Views ลดหน้าต่างและเพิ่มแบบอักษรหากจำเป็นเมื่อถ่ายภาพหน้าจอเพื่อให้อ่านง่ายขึ้นและหลีกเลี่ยงพื้นที่ว่างจำนวนมาก
nl flag
โอเค เพิ่มภาพหน้าจอแล้ว รวมวิดีโอสั้น ๆ เพื่อแสดงผู้ใช้ปัจจุบันยกเลิกการตั้งค่าสถานะผู้ใช้ที่เกี่ยวข้อง และผลลัพธ์ไม่เปลี่ยนแปลง ขอบคุณ!
nl flag
@pkros มีข้อเสนอแนะเพิ่มเติมหรือไม่? ขอบคุณที่คุณช่วย.
mx flag
อา มันหล่นลงมาจากรอยแตก ฉันจะพยายามบีบมันให้ได้ภายในอาทิตย์นี้
nl flag
@pkros แค่อยากติดตาม หากคุณมีคำแนะนำเพิ่มเติม ช่างเป็นปัญหาที่น่าผิดหวังในตอนท้ายของฉัน :) ขอบคุณ!
mx flag
ฉันได้ทำการอัปเกรดเป็น D9 และยังมีทางที่ต้องดำเนินการ จากนั้นฉันจำเป็นต้องขุดตัวอย่างออกมาเพื่อที่ฉันจะได้เปรียบเทียบกับของคุณ ฉันหาตู้ ATM ไม่เจอ ต้องอยู่ในเครื่องสำรอง ฉันจะมองหามันในวันพรุ่งนี้
nl flag
ขอให้โชคดีในการอัปเดต D9 ขอบคุณอีกครั้ง!
mx flag
ฉันพบตัวอย่างของฉัน และดูเหมือนว่ามันจะไม่ทำงานอย่างที่ฉันคาดไว้ บางทีฉันอาจมีการรวมกันของการติดตามร่วมกันผ่านการตั้งค่าสถานะที่ทำให้ฉันคิดว่ามันแสดงอย่างถูกต้อง เมื่อฉันคิดถึงมัน มันเป็นเรื่องแปลกที่ฉันคิดว่ามันใช้งานได้ ไม่มีที่ใดที่จะเปรียบเทียบ/จับคู่ทิศทางการตั้งค่าสถานะสองทิศทาง ฉันคิดว่ามันอาจแก้ไขได้ด้วยความช่วยเหลือของ Views Field View เนื่องจากโมดูลนี้อนุญาตการสืบค้นแบบซ้อน แต่ฉันยังไม่ได้ลอง ฉันทำเว็บไซต์พังขณะพยายามอัปเกรดผู้แต่ง...
mx flag
คุณใช้มุมมองที่มีอยู่เป็นฐาน คุณสร้างจอแสดงผลใหม่เพื่อใช้เป็นช่องมุมมอง สร้างเหมือนกับมุมมองที่มีอยู่ เฉพาะตัวกรองบริบทเท่านั้นที่อาจจำเป็นต้องปรับเปลี่ยน ฉันคิดว่าคุณอาจควบคุมแถวที่ปรากฏด้วยตัวกรองตามบริบทภายในฟิลด์ที่ฝัง เพื่อแยกผู้ที่ไม่มีธงไปในทิศทางตรงกันข้าม หรือคุณอาจต้องเขียนฟิลด์ใหม่ในมุมมองพื้นฐานเพื่อแยกฟิลด์เหล่านั้นออกหากฟิลด์ที่ฝังไว้ว่างเปล่า ซึ่งเป็นข้อมูลประเภทนั้น หากฉันแก้ไขไซต์ได้ในเร็วๆ นี้ ฉันจะลองใช้งานและโพสต์คำตอบใหม่
Score:0
ธง cn

แฟล็กเป็นแบบทางเดียว คุณจึงไม่สามารถ "แฟล็กแบบสองทาง" ได้

ใน Drupal 8/9 การตั้งค่าสถานะจะมีเอนทิตีเป้าหมายเสมอ

ดังนั้น ถ้าผู้ใช้ A แฟล็กผู้ใช้ B และผู้ใช้ B แฟล็กผู้ใช้ A คุณมีสองแฟล็ก:

  • ค่าสถานะของผู้ใช้ A ของผู้ใช้ B
  • ค่าสถานะของผู้ใช้ B ของผู้ใช้ A

ฉันคิดวิธีที่ดีในการทำเช่นนี้ใน Views โดยไม่มีรหัสที่กำหนดเองไม่ได้

ทางเลือกอื่นจะเป็นเช่น ธงเพื่อน โมดูลซึ่งใช้ฟังก์ชัน "การเป็นเพื่อน" (หรือฟังก์ชันการปัดเพื่อจับคู่ร่วมกันของ Tinder)

การใช้ฟังก์ชันแบบนี้มาก่อนใน Drupal 7 ใน Drupal 8/9 ฉันจะลองเขียนโค้ดใน _flagging_insert() hook ที่ตรวจสอบเมื่อผู้ใช้แฟล็กผู้ใช้รายอื่น และกำหนดว่าผู้ใช้แฟล็กได้แฟล็กผู้ใช้แฟล็กหรือไม่ ถ้าเป็นเช่นนั้น ให้สร้างเอนทิตี (อาจเป็นโหนดที่มีการอ้างอิงเอนทิตีไปยังผู้ใช้ทั้งสองหรือเอนทิตีแบบกำหนดเอง หากคุณต้องการดูหรูหรา) ประเภท เพื่อน หรือ จับคู่ หรืออะไรก็ตาม แล้วจัดเรียงรายการที่ตรงกันใน Views แน่นอนว่าหากผู้ใช้สามารถปลดธงซึ่งกันและกันและทำลายแมตช์ได้ คุณต้องเพิ่มโค้ดเพื่อรองรับกรณีนั้นด้วย

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา