Data Flow: ระบบอวยพรวันเกิด (ONCBlog)

Spread the love
👁️ เข้าชมหน้านี้แล้ว: 422 ครั้ง

1. ส่วนการเข้าถึงและตรวจสอบสิทธิ์ (Access & Validation Flow)

  • User Action: ผู้ใช้คลิกไอคอน “เค้ก 🎂” บนปฏิทินหน้าเว็บไซต์
  • Data Input: ระบบรับค่า user_id ของเจ้าของวันเกิดผ่าน URL (Method: GET)
  • System Validation (Gatekeeper):
    • Check 1 (Time Gate): ตรวจสอบว่า วันเกิด อยู่ในช่วง หน้า 3 วัน / หลัง 3 วัน จากปัจจุบันหรือไม่?
    • Check 2 (Auth Gate): ตรวจสอบว่าผู้จะอวยพร Login เข้าระบบแล้วหรือยัง?
  • Result:
    • ✅ ถ้าผ่าน: แสดงฟอร์มให้กรอกคำอวยพร
    • ❌ ถ้าไม่ผ่าน: แสดงข้อความแจ้งเตือน (หมดเวลา หรือ กรุณา Login)

2. ส่วนการส่งข้อมูล (Submission Flow via Stealth AJAX)

  • User Input: ผู้ใช้กรอกข้อความ, เลือก Sticker, แนบรูปภาพ, หรือแนบวิดีโอ (จำกัด 30-256MB)
  • AJAX Transmission:
    • Web Browser แพ็คข้อมูลทั้งหมดเป็น FormData
    • ส่งข้อมูลแบบเงียบ (Background) ไปที่ admin-ajax.php (เพื่อหลบเลี่ยง Firewall กองทัพเรือที่บล็อก wp-comments-post.php)
  • Server Processing (High Performance):
    • ระบบ PHP ปลดล็อค set_time_limit(0) และเพิ่ม memory_limit ชั่วคราว เพื่อรองรับการอัปโหลดไฟล์ใหญ่

3. ส่วนการจัดเก็บข้อมูล (Storage & Media Handling)

  • Comment Storage: บันทึก “ข้อความ” ลงในตาราง wp_comments
  • Media Upload (Crucial Step):
    • Images: อัปโหลดลง Media Library -> ได้รับ attachment_id
    • Video: อัปโหลดลง Media Library -> ได้รับ attachment_id (จุดที่มักมีปัญหาเรื่อง Server Config)
  • Data Linking (Meta Mapping):
    • ระบบนำ attachment_id ของรูปและวิดีโอ มาผูกติดกับคอมเมนต์ผ่านตาราง wp_commentmeta
    • Keys ที่ใช้: wish_image_ids, wish_video_id, wish_sticker, target_wish_user_id

4. ส่วนการแสดงผล (Display Flow – V.Link Only)

  • Query Data: หน้าเว็บดึงข้อมูลคอมเมนต์ทั้งหมดที่มี target_wish_user_id ตรงกับเจ้าของวันเกิด
  • Rendering:
    • ข้อความ & Sticker: แสดงผลทันที
    • รูปภาพ: แสดงเป็น Gallery ย่อขนาด
    • วิดีโอ (Clips): ระบบตรวจสอบว่ามี wish_video_id หรือไม่?
      • 👉 ถ้ามี: แสดงเป็น ปุ่มลิงก์สีฟ้า (“🎥 มีคลิปวิดีโอแนบมา คลิกเพื่อเปิดดู”)
      • 👉 การทำงาน: เมื่อคลิก จะเปิดแท็บใหม่ (target="_blank") เพื่อเล่นไฟล์วิดีโอโดยตรง (ลดภาระหน้าเว็บ)

5. ส่วนการโต้ตอบ (Interaction Flow)

  • Reply Action: เจ้าของวันเกิดกดปุ่ม “↩️ ตอบกลับ”
  • Process: ข้อมูลจะถูกบันทึกเป็น Comment ใหม่ โดยมี comment_parent เชื่อมโยงกับคำอวยพรต้นทาง
  • Hierarchy: แสดงผลแบบย่อหน้าเยื้อง (Indented) ต่อจากคำอวยพรหลัก

6. ส่วนการจัดการโดยผู้ดูแล (Admin Override Flow)

  • Scenario: กรณีไฟล์วิดีโออัปโหลดสำเร็จ (มีไฟล์ใน Server) แต่ระบบไม่ผูก ID ให้อัตโนมัติ (Database Error/Timeout)
  • Admin Action: Admin เข้าสู่ระบบหลังบ้าน -> ไปที่เมนู Comments -> Edit Comment
  • Manual Fix: Admin ค้นหา ID ไฟล์จาก Media Library แล้วนำมากรอกใส่ช่อง “🎥 Video Attachment ID” (Admin Tool Box)
  • Result: หน้าเว็บจะแสดงปุ่มลิงก์วิดีโอขึ้นมาทันที เหมือนระบบออโต้ปกติ

Facebook Comments Box
Visited 167 times, 1 visit(s) today