Joomla! Template Overrides แก้รูปแบบการแสดงผล ของส่วนเสริมได้โดยไม่ต้องแก้ Core จูมล่า
หลายครั้งที่ผมรับงานแก้ไขเว็บต่อจากงานคนอื่นหลายครั้งก็จะเจอ การแก้ไข Core ไฟล์ของ joomla! ทำให้เจ้าของเว็บไม่สามารถ อัพเดตไปเป็น Joomla! รุ่นใหม่ๆ ได้ เพราะหาก อัพเดต เว็บก็จะมีปัญหาทันที ส่งผลทำให้เมื่อ Joomla! ออก รุ่นใหม่เพื่อแก้ไขปัญหาความปลอดภัย ทำให้เว็บเหล่านั้นตกอยู่ในความเสี่ยงที่จะถูก แฮกทันที ซึ่งหากต้องการแก้ไข การแสดงผลของ Joomla! ที่ถูกต้องคือ ใช้ Joomla! Template Overrides
Joomla! Template Overrides คืออะไร
Joomla! เขียนตามหลักการออกแบบ MVC โดย MVC นี้จะแบ่งแอพพลิเคชันตามบทบาทหน้าที่ โดยแบ่งออกเป็น 3 บทบาทด้วยกันคือ
- Model (M) คือออบเจกต์ที่ทำหน้าเป็นตัวแทนของข้อมูล
- View (V) คือออบเจกต์ที่ทำหน้าที่ในการแสดงผล
- Controller (C) คือออบเจกต์ที่ทำหน้าที่รับคำสั่ง เช่น คำสั่งค้นหา, คำสั่งลบข้อมูล
เพราะฉนั้น หากเราต้องการแก้ไข เรื่องการแสดงผล ข้อข้อมูล เราแก้ ส่วนเดียวคือ View ซึ่ง Joomla มีระบบ เทมเพลต และในระบบ Template ของ joomla! นั้น สามารถ ทำ Template Overrides ได้ คือ คัดลองเอาไฟล์ View ของ คอมโพเน้น โมดูล มาแก้ไขได้ที่ เทมเพลต ไม่ต้องไปแก้ที่ Core ของ Joomla! โดยตรง ดังรูป ด้านล่าง
มาเริ่มกันเลย จากคำถาม มีคนถามว่าสามารถ ลบ เขียนโดย และ ฮิต ออกไปจากตารางได้หรือไม่
คำตอบคือมี 2 วิธี
วิธีแรกก่อน ที่ Language Manager ใช้ Language Overrides เขียนไว้ที่ การใช้งาน Language Overrides เพื่อเปลี่ยน ข้อความ คำ จากระบบ Joomla
แต่บางทีเราแก้ภาษา ก็จะกระทบ ทั้งเว็บ
วิธีที่ สองคือ แก้ code ที่ core แต่ จะไม่แก้โดยตรง จะใช้ Template Overrides แทน เมื่อมีการอัพเดต joomla จะไม่ต้องกลับมาแก้ใหม่
เริ่ม จากไปที่ Template Manager
คิลกที่ เมนู Template ซ้ายมือ (1) จากนั้น คลิกลือกเทมเพลตที่เราใช้งานอยู่ (2)ในที่นี้ผมใช้ Protostar
จะเจอ หน้า Editor ใน โฟลเดอร์ html จะบรรจุ ไฟล์ที่ เทมเพลตได้ Overrides ไว้ หากเป็นเทมเพลต สวยๆ จะมีโฟลเดอร์ในนี้เยอะมาก อาจมีไฟล์ที่เราต้องการแก้อยู่ในนี้แล้ว ลองหาดูก่อน
จากนั้นคลิกไปที่แท๊บ Create Overrides เลือกว่าเราจะ Overrides อะไร ในทีนี่ผมจะแก้ไข รูปแบบการแสดงผลของ หน้า Category ของ com_content ก็เลือก com_content >> category
ระบบจะขึ้นข้อความ ว่าได้ Overrides เสร็จแล้ว
จากนั้นกลับมาที่ แท๊บ Editor จะเจอโฟลเดอร์ /com_content/category คลิกแก้ไขไฟล์ที่เราต้องการเลย ในที่นี้คือ default_articles.php หาบันทัดที่ต้องการแก้ไข
ใรูปผมแก้ไขแล้ว โดบลบ 'COM_CONTENT_WRITTEN_BY', แแกไป
จะเห็นว่าคำว่า เขียนโดย หายไปแล้ว
ต่อมาเราจะแก้ไขตรงคำว่าฮิต
โดยลบ 'JGLOBAL_HITS_COUNT', ออกไป
ผลที่ได้คือ
เห็นไหมครับ เราแก้ไขการสดงผลได้ แล้ว โดยไม่ต้องไปแก้ Core Joomla! อีกต่อไป อัพเดตได้โดยไม่มีปัญหาอีกแล้วครับ asdasdasasojoksdl;askdkla;sd
- Hits: 16287