โครงการของฉันมีแฟล็กพิเศษพร้อมช่องอ้างอิงเอนทิตีในโหนดของประเภทเนื้อหา ฉันจะเรียกที่นี่ว่า "บัคเก็ต"
มันทำงานอย่างไร:
- ค่าสถานะ "เพิ่มในถัง" ปรากฏบนโหนดประเภทบทความ
- หากผู้ใช้ต้องการบัคเก็ตโหนด ให้คลิกแฟล็ก 'เพิ่มลงในบัคเก็ต'
- แฟล็ก 'เพิ่มในที่ฝากข้อมูล' ได้รับการกำหนดค่าให้แสดงกล่องโต้ตอบ (ในขณะนี้ ไม่ใช่โมดอล)
- กล่องโต้ตอบช่วยให้พวกเขาเลือกบัคเก็ตได้ เมื่อส่งไดอะล็อก แฟล็กจะถูกสร้างขึ้นโดยสัมพันธ์กับบัคเก็ตที่เลือก
ทั้งหมดนี้ใช้งานได้ดี (มุมมองช่วยให้ผู้ใช้สามารถดูบทความในแต่ละที่เก็บข้อมูล)
ปัญหาเกิดขึ้นเมื่อผู้ใช้ตัดสินใจที่จะลบ การแฟล็กจากโหนด
โมดูลแฟล็กใช้ไดอะล็อกเดียวกัน โดยเพิ่มปุ่ม 'ลบ' เข้าไปเท่านั้น เนื่องจากเป็นไดอะล็อกเดียวกับที่ใช้ในการเพิ่มแฟล็ก จึงมีช่องอ้างอิงเอนทิตีพร้อมรายการที่ฝากข้อมูล... แต่สิ่งนี้ไม่มีความหมาย การคลิก 'ลบ' จะลบการตั้งค่าสถานะโดยไม่คำนึงว่า 'ที่เก็บข้อมูล' นั้นเกี่ยวข้องกับอะไร
กล่องโต้ตอบยังมีปุ่ม "บันทึก" ซึ่งไม่สมเหตุสมผลในบริบทนั้น
ฉันต้องการให้ผู้ใช้ไม่เห็นฟิลด์อ้างอิงเอนทิตีเมื่อลบแฟล็ก... และไม่เห็นปุ่มบันทึกด้วย
ตัวเลือกที่ 1: อาจจะมีการตั้งค่าในการตั้งค่าสถานะสำหรับสิ่งนี้ และฉันจะไป facepalm . . แต่ฉันไม่เห็นการตั้งค่า ถ้ามีอยู่ (ความเหนื่อยล้าตาบอด? ฉันเคยทำมาก่อน!)
ตัวเลือก 2: ใช้ CSS เพื่อซ่อนองค์ประกอบทั้งสองนั้น ปัญหา: ดูเหมือนจะไม่มีคลาสที่จะแยกแยะบริบทการลบออกจากบริบทการเพิ่ม บางทีฉันอาจพลาดอะไรไปหรือเปล่า ฉันเห็นว่าในธีมของฉัน form.html.twig กำลังจัดการองค์ประกอบฟอร์มแต่ละรายการ แต่ฉันไม่เห็นว่าเทมเพลตใดกำลังสร้างกล่องโต้ตอบด้วยข้อมูลนั้น ตรรกะบางอย่างอาจเข้าไปในเทมเพลตเพื่อสร้างคลาสบางคลาสสำหรับการยกเลิกการแฟล็ก
ตัวเลือก 3: ให้ใช้แบบฟอร์มอื่นสำหรับการปลดแฟล็ก ...ทำอย่างนั้นได้อย่างไร?
อาจมีโมดูลที่สามารถทำได้หรือใช้ร่วมกัน ฉันไม่พบหนึ่ง
หากฉันต้องการเขียนโค้ดโมดูล มีคำแนะนำเกี่ยวกับแนวทางทั่วไปหรือไม่ (หมายเหตุ: ฉันเคยเขียนโมดูลเล็กๆ สองโมดูลมาก่อน ส่วนใหญ่จะตัดและวาง ดังนั้น... ระดับทักษะสำหรับสิ่งนั้นอาจ "ต่ำกว่ามือใหม่" ดังนั้นใช้คำสั้นๆ ฮ่าๆ)