เรียนรู้การพัฒนาโมดูล Joomla
วิธีที่ฉันเรียนรู้คือการศึกษาและปรับแต่งแก่นหรือโมดูลอื่น ๆ ของบุคคลที่สาม
โมดูลตามแนวคิดนั้นง่ายกว่าส่วนประกอบ (ซึ่งเราสามารถพูดได้ว่าเป็น 2 แอพพลิเคชั่นส่วนหน้า / ส่วนหลัง) และได้รับการออกแบบมาเพื่อแสดงชิ้นส่วนของข้อมูล
ดังนั้นหากคุณเปิดโฟลเดอร์ / ไฟล์ของโมดูลและเริ่มอ่านโค้ดคุณอาจจะเข้าไปเร็ว
Joomla Module Anatomy ตามตัวอย่าง
ตัวอย่างเช่นคุณสามารถเปิดโมดูลบทความล่าสุดใน Joomla 3.2 และตรวจสอบรหัสของมันในขณะที่อ่านบรรทัดด้านล่าง ในโฟลเดอร์ของโมดูลเราจะพบไฟล์พื้นฐาน 4 ไฟล์:
1. mod_articles_latest.php
2. helper.php
3. tmpl/default.php
4.mod_articles_latest.xml
mod_articles_latest.php
เป็นไฟล์หลักของโมดูลหนึ่งที่ถูกนำมาใช้เป็นครั้งแรกเมื่อโมดูลที่เรียกว่า มันเริ่มต้นโมดูลและรวมถึงการhelper.php
เรียกวิธีการเรียนของผู้ช่วยในการดึงข้อมูลและในที่สุดก็รวมถึงแม่แบบของโมดูล ( default.php
) เพื่อแสดงข้อมูล
helper.php
ไฟล์คือ "เครื่องจักร" ของโมดูล (ถ้าเราสามารถตั้งชื่อมันว่าอย่างนั้น) ในผู้ช่วยเราสร้างคลาสของโมดูลและวิธีการเพื่อดึงข้อมูล นี่คือสถานที่ที่เราสามารถมีโมดูล "พูดคุย" กับฐานข้อมูล การอ่านรหัสในไฟล์ helper ของโมดูลนี้คุณจะเห็นว่ามันมีModArticlesLatestHelper
ชั้นซึ่งมีหนึ่งวิธีการ: getList(&$params)
ภายในวิธีนี้โมดูลกำลังตรวจสอบการตั้งค่าแบ็คเอนด์ของโมดูลและในที่สุดก็สร้างรายการบทความที่จะส่งคืนโดยขึ้นอยู่กับเงื่อนไขเหล่านี้ โปรดทราบว่าโมดูลนี้จะใช้JModelLegacy::getInstance
วิธีการที่จะกลับเนื้อหารูปแบบวัตถุ
default.php
เป็นแม่แบบหลักของโมดูลและมีความรับผิดชอบในการแสดงเนื้อหาของโมดูล - ที่นี่เราสร้างเอาท์พุท html โดยใช้ข้อมูลที่คุณดึงมาก่อนหน้านี้ในmod_articles_latest.php
โดยการเรียกชั้นเรียนของโมดูล มันตั้งอยู่ภายในโฟลเดอร์tmpl * โปรดสังเกตว่าไฟล์ของโมดูลหลักรวมถึงไฟล์เทมเพลตด้วยJModuleHelper::getLayoutPath
วิธีการซึ่งก่อนจะตรวจสอบการแทนที่แม่แบบใด ๆ
ในที่สุดmod_articles_latest.xml
ฉันจะเรียกมันว่า "ทูต" ของโมดูล เป็นไฟล์ที่ "แนะนำ" โมดูลให้กับ Joomla ในระหว่างการติดตั้งระบุไฟล์ที่จะถูกคัดลอกโดยตัวติดตั้งและยังมีข้อมูลเกี่ยวกับพารามิเตอร์ของโมดูลที่ใช้โดยตัวจัดการโมดูลเช่นข้อมูลเพิ่มเติม เกี่ยวกับโมดูล
เหล่านี้เป็นส่วนสำคัญของโมดูลพื้นฐาน อีกแง่มุมที่คุณอาจต้องการพิจารณาคือการสนับสนุนหลายภาษา นี้สามารถทำได้โดยใช้ไฟล์ภาษา Strings และการแปลภาษา หากคุณประสบความสำเร็จในการสร้างโมดูลพื้นฐานการเพิ่มภาษารองรับควรเป็นเรื่องง่าย