Score:1

ฉันจะใช้กล่องโต้ตอบอื่นสำหรับการลบแฟล็กที่แตกต่างจากการตั้งค่าแฟล็กได้อย่างไร

ธง pe

โครงการของฉันมีแฟล็กพิเศษพร้อมช่องอ้างอิงเอนทิตีในโหนดของประเภทเนื้อหา ฉันจะเรียกที่นี่ว่า "บัคเก็ต"

มันทำงานอย่างไร:

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

ทั้งหมดนี้ใช้งานได้ดี (มุมมองช่วยให้ผู้ใช้สามารถดูบทความในแต่ละที่เก็บข้อมูล)

ปัญหาเกิดขึ้นเมื่อผู้ใช้ตัดสินใจที่จะลบ การแฟล็กจากโหนด

โมดูลแฟล็กใช้ไดอะล็อกเดียวกัน โดยเพิ่มปุ่ม 'ลบ' เข้าไปเท่านั้น เนื่องจากเป็นไดอะล็อกเดียวกับที่ใช้ในการเพิ่มแฟล็ก จึงมีช่องอ้างอิงเอนทิตีพร้อมรายการที่ฝากข้อมูล... แต่สิ่งนี้ไม่มีความหมาย การคลิก 'ลบ' จะลบการตั้งค่าสถานะโดยไม่คำนึงว่า 'ที่เก็บข้อมูล' นั้นเกี่ยวข้องกับอะไร

กล่องโต้ตอบยังมีปุ่ม "บันทึก" ซึ่งไม่สมเหตุสมผลในบริบทนั้น

ฉันต้องการให้ผู้ใช้ไม่เห็นฟิลด์อ้างอิงเอนทิตีเมื่อลบแฟล็ก... และไม่เห็นปุ่มบันทึกด้วย

ตัวเลือกที่ 1: อาจจะมีการตั้งค่าในการตั้งค่าสถานะสำหรับสิ่งนี้ และฉันจะไป facepalm . . แต่ฉันไม่เห็นการตั้งค่า ถ้ามีอยู่ (ความเหนื่อยล้าตาบอด? ฉันเคยทำมาก่อน!)

ตัวเลือก 2: ใช้ CSS เพื่อซ่อนองค์ประกอบทั้งสองนั้น ปัญหา: ดูเหมือนจะไม่มีคลาสที่จะแยกแยะบริบทการลบออกจากบริบทการเพิ่ม บางทีฉันอาจพลาดอะไรไปหรือเปล่า ฉันเห็นว่าในธีมของฉัน form.html.twig กำลังจัดการองค์ประกอบฟอร์มแต่ละรายการ แต่ฉันไม่เห็นว่าเทมเพลตใดกำลังสร้างกล่องโต้ตอบด้วยข้อมูลนั้น ตรรกะบางอย่างอาจเข้าไปในเทมเพลตเพื่อสร้างคลาสบางคลาสสำหรับการยกเลิกการแฟล็ก

ตัวเลือก 3: ให้ใช้แบบฟอร์มอื่นสำหรับการปลดแฟล็ก ...ทำอย่างนั้นได้อย่างไร?

อาจมีโมดูลที่สามารถทำได้หรือใช้ร่วมกัน ฉันไม่พบหนึ่ง

หากฉันต้องการเขียนโค้ดโมดูล มีคำแนะนำเกี่ยวกับแนวทางทั่วไปหรือไม่ (หมายเหตุ: ฉันเคยเขียนโมดูลเล็กๆ สองโมดูลมาก่อน ส่วนใหญ่จะตัดและวาง ดังนั้น... ระดับทักษะสำหรับสิ่งนั้นอาจ "ต่ำกว่ามือใหม่" ดังนั้นใช้คำสั้นๆ ฮ่าๆ)

Score:0
ธง cn

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

อย่างไรก็ตาม การตั้งค่าฟิลด์สำหรับการปลดการตั้งค่าสถานะนั้นไม่สมเหตุสมผล ดังนั้นฉันจึงต้องการลิงก์การยกเลิกการตั้งค่าสถานะโดยตรง

ติดตั้ง

  1. ไปที่หน้าแก้ไขของผู้ดูแลระบบสำหรับการตั้งค่าสถานะของคุณที่ /admin/structure/flags/manage/.
  2. สำหรับ ประเภทลิงค์, ใช้ แบบฟอร์มการสมัครภาคสนาม.

วิธีนี้จะช่วยให้ผู้ใช้แก้ไขฟิลด์ได้เมื่อตั้งค่าสถานะ แต่ไม่แสดงฟิลด์เมื่อยกเลิกการตั้งค่าสถานะ

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

pe flag
ขอบคุณ แต่เปิดใช้งานกล่องนั้นแล้ว คุณได้เลือกอะไรภายใต้ 'พฤติกรรมของแบบฟอร์ม' นอกจากนี้ ในกรณีที่เกิดข้อผิดพลาด คุณใช้โมดูล Flag เวอร์ชันใด และ Drupal เวอร์ชันใด (ฉันใช้ 8.x-4.0-beta3 และ D 9.3.12 ในขณะนี้)
cn flag
ลักษณะการทำงานของแบบฟอร์มถูกตั้งค่าเป็น "หน้าใหม่" ยังรัน 4.0-beta3 + 9.3.12

โพสต์คำตอบ

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