TinyMCE
ติดตั้งเครื่องมือที่เรียกว่า "Text Editor" (หรือ WYSIWYG Editor) ลงในหน้า Admin
เพื่อให้คุณสามารถพิมพ์ตัวหนา จัดรายการ (List) หรือใส่คำคม (Blockquote) ได้เหมือน Microsoft Word โดยไม่ต้องพิมพ์โค้ด HTML เอง เราจำเป็นต้องติดตั้งเครื่องมือที่เรียกว่า "Text Editor" (หรือ WYSIWYG Editor) ลงในหน้า Admin ครับ
ผมขอแนะนำให้ใช้ TinyMCE เพราะติดตั้งง่ายที่สุด (ใช้ CDN ไม่ต้องโหลดไฟล์) และเป็นที่นิยมมากครับ
นี่คือขั้นตอนการปรับปรุงโค้ดทั้ง 3 ส่วนครับ:
1. แก้ไขหน้า admin_add_news.php (เพิ่มตัว Editor)
เราจะฝัง Script ของ TinyMCE ลงไป และเปลี่ยน ธรรมดาให้กลายเป็นเครื่องมือเขียนบทความครับ
สิ่งที่ต้องทำ:
เพิ่ม ของ TinyMCE ใน
เพิ่ม id="newsContent" ให้กับ Textarea
เพิ่ม Script ตั้งค่าที่ด้านล่างสุดของ
2. แก้ไขหน้า save_news.php (อนุญาตให้บันทึก HTML)
ปกติเรามักจะใช้ htmlspecialchars() หรือฟังก์ชันทำความสะอาดข้อมูลเพื่อความปลอดภัย แต่ในกรณีนี้เรา ต้องการ HTML Tag (
ผมขอแนะนำให้ใช้ TinyMCE เพราะติดตั้งง่ายที่สุด (ใช้ CDN ไม่ต้องโหลดไฟล์) และเป็นที่นิยมมากครับ
นี่คือขั้นตอนการปรับปรุงโค้ดทั้ง 3 ส่วนครับ:
1. แก้ไขหน้า admin_add_news.php (เพิ่มตัว Editor)
เราจะฝัง Script ของ TinyMCE ลงไป และเปลี่ยน ธรรมดาให้กลายเป็นเครื่องมือเขียนบทความครับ
สิ่งที่ต้องทำ:
เพิ่ม ของ TinyMCE ใน
เพิ่ม id="newsContent" ให้กับ Textarea
เพิ่ม Script ตั้งค่าที่ด้านล่างสุดของ
2. แก้ไขหน้า save_news.php (อนุญาตให้บันทึก HTML)
ปกติเรามักจะใช้ htmlspecialchars() หรือฟังก์ชันทำความสะอาดข้อมูลเพื่อความปลอดภัย แต่ในกรณีนี้เรา ต้องการ HTML Tag (
- ,
- , ) ลงไปใน Database
ข้อควรระวัง: เพื่อความปลอดภัย (ป้องกันคนยิง Script ขโมยข้อมูล) เราควรใช้ strip_tags เพื่ออนุญาตเฉพาะ Tag ที่เราต้องการเท่านั้น
3. แก้ไขหน้า news_detail.php (แสดงผลให้สวยงาม)
เมื่อข้อมูลใน Database เป็น HTML แล้ว (เช่นมี,
- ) เรา ไม่ต้องใช้ nl2br() แล้วครับ เพราะตัว Editor จัดการย่อหน้า (
) มาให้แล้ว
แก้จุดที่ 1: การแสดงผล PHP
สรุปการทำงาน:
Admin: เห็นกล่องข้อความเหมือน Word กดปุ่มตัวหนา หรือปุ่ม Quote ได้เลย
Save: ระบบจะบันทึกเป็นโค้ด HTML เช่น...
ลงฐานข้อมูล
Detail: หน้าเว็บจะดึง HTML มาแสดง และ CSS จะเข้าไปจับ Tag เหล่านั้นเพื่อแต่งให้สวยงามโดยอัตโนมัติครับ