Skip to main content

Joomla! Template Overrides แก้รูปแบบการแสดงผล ของส่วนเสริมได้โดยไม่ต้องแก้ Core จูมล่า

Joomla Template Overrides

หลายครั้งที่ผมรับงานแก้ไขเว็บต่อจากงานคนอื่นหลายครั้งก็จะเจอ การแก้ไข 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!  โดยตรง ดังรูป ด้านล่าง

Create Template Overrides 12

มาเริ่มกันเลย จากคำถาม มีคนถามว่าสามารถ ลบ เขียนโดย และ  ฮิต ออกไปจากตารางได้หรือไม่ 

Language Overrides 1

คำตอบคือมี  2 วิธี 

วิธีแรกก่อน ที่ Language Manager ใช้ Language Overrides เขียนไว้ที่ การใช้งาน Language Overrides เพื่อเปลี่ยน ข้อความ คำ จากระบบ Joomla

แต่บางทีเราแก้ภาษา ก็จะกระทบ ทั้งเว็บ


วิธีที่ สองคือ แก้ code ที่ core แต่ จะไม่แก้โดยตรง จะใช้ Template Overrides แทน เมื่อมีการอัพเดต joomla จะไม่ต้องกลับมาแก้ใหม่

 


 

เริ่ม จากไปที่ Template Manager

Create Template Overrides 1

คิลกที่ เมนู Template ซ้ายมือ (1) จากนั้น คลิกลือกเทมเพลตที่เราใช้งานอยู่ (2)ในที่นี้ผมใช้ Protostar

Create Template Overrides 2

จะเจอ หน้า Editor ใน โฟลเดอร์ html จะบรรจุ ไฟล์ที่ เทมเพลตได้ Overrides ไว้ หากเป็นเทมเพลต สวยๆ จะมีโฟลเดอร์ในนี้เยอะมาก อาจมีไฟล์ที่เราต้องการแก้อยู่ในนี้แล้ว ลองหาดูก่อน

Create Template Overrides 3

จากนั้นคลิกไปที่แท๊บ Create Overrides  เลือกว่าเราจะ Overrides อะไร ในทีนี่ผมจะแก้ไข รูปแบบการแสดงผลของ หน้า Category ของ com_content ก็เลือก com_content >> category

Create Template Overrides 4

 

ระบบจะขึ้นข้อความ ว่าได้ Overrides เสร็จแล้ว

Create Template Overrides 5

จากนั้นกลับมาที่ แท๊บ Editor จะเจอโฟลเดอร์ /com_content/category คลิกแก้ไขไฟล์ที่เราต้องการเลย ในที่นี้คือ default_articles.php หาบันทัดที่ต้องการแก้ไข

Create Template Overrides 6

ใรูปผมแก้ไขแล้ว โดบลบ 'COM_CONTENT_WRITTEN_BY', แแกไป

Create Template Overrides 7

 

จะเห็นว่าคำว่า เขียนโดย หายไปแล้ว

Create Template Overrides 8

ต่อมาเราจะแก้ไขตรงคำว่าฮิต 

Create Template Overrides 9

โดยลบ 'JGLOBAL_HITS_COUNT',  ออกไป

Create Template Overrides 10

ผลที่ได้คือ

Create Template Overrides 11

 

เห็นไหมครับ เราแก้ไขการสดงผลได้ แล้ว โดยไม่ต้องไปแก้ Core Joomla! อีกต่อไป อัพเดตได้โดยไม่มีปัญหาอีกแล้วครับ asdasdasasojoksdl;askdkla;sd

 

  • Hits: 16287