คุณสามารถมองเห็น ตัวอย่าง Module จำนวนมากในพื้นฐาน Joomla เช่น Menu , ข่าว , Login Form และอื่นๆ
ในการแนะนำนี้ จะอธิบายวิธีการเกี่ยวกับการสร้างตัวอย่าง Hello World Module ตลอดการแนะนำนี้คุณจะได้เรียนรู้เรื่อง พื้นฐานของ โครงสร้างไฟล์ ของ Module . ในโครงสร้างพื้นฐานนี้สามารถขยายจนถึงการสร้าง Module ที่ซับซ้อนมากกว่านี้ได้
โครงสร้างไฟล์
นี้คือ 4 พื้นฐานของไฟล์ที่ใช้ในพื้นฐานการออกแบบของการพัฒนา Module
• Mod_helloworld.php : ไฟล์นี้เป็นจุดเริ่มต้นหลักของ Module มันจะทำการปฏิบัติการขั้นตอนการเริ่มต้นใดๆที่จำเป็น เรียกตัวช่วยในการเก็บข้อมูลที่จำเป็น รวมไปถึงการเลือก Template ที่จะแสดงผลลัพธ์ของ Module ออกมา
• Mod_helloworld.xml : ไฟล์นี้ประกอบด้วยข้อมูล เกี่ยว Module. มันกำหนดให้ไฟล์จะต้องมีการติดตั้งโดย Joomla Installer และ ระบุการกำหนดค่าพารามิเตอร์สำหรับ Module
• Helper.php : ไฟล์นี้ประกอบด้วย ตัวช่วย Class ว่าใช้อันไหนในขณะกำลังใช้งานในการเรียกข้อมูลมากแสดงใน Module (โดยปรกติมาจาก Database หรือ แหล่งข้อมูลอื่นๆ)
• Tmpl/default.php : มันคือ Module Template. ไฟล์นี้จะทำการเก็บรวบรวมข้อมูล โดย Mod_helloworld.php และมันจะแปลงให้เป็น HTML เพื่อใช้ในการแสดงผลในเว็บเพจ
วิธีการสร้าง Mod_helloworld.php
ไฟล์ Mod_helloworld จะมีการพัฒนาออกเป็น 3 ส่วน
• ประกอบด้วยไฟล์ helper.php ซึ่งประกอบจากClass ที่ใช้ในการรวบรวมข้อมูลที่จำเป็น
• ร้องขอ Method Classช่วยเหลือเพื่อดึงข้อมูล
• ประกอบด้วย Template ที่ไว้ใช้แสดงผลลัทธ์
Helper Class ถูกกำหนดในไฟล์ helper.php. ในไฟล์นี้จะประกอบด้วยคำสั่ง require_once
โค้ด: เลือกทั้งหมด
require_once dirname(__FILE__) . '/helper.php';
พวก Hepler Class ไม่สามารถกำหนดได้ แต่เมื่อเป็นมัน มันจะเพิ่มหนึ่ง Method : GetHello() มันไม่ได้มีความจำเป็นที่จะทำข้อความ “Hello , World” นั้น ใน Method ส่งกลับได้ในตัวอย่างได้อย่างง่ายดายประกอบด้วย Template . พวกเราใช้ helper Classที่นี้เพื่อแสดงให้เห็นเทคนิคพื้นฐานนี้
Module ของเราในขณะนี้ ยังไม่ได้ใช้ พารามิเตอร์ ใดๆ แต่พวกเราจะไปยัง helper Method ต่อไป เพื่อที่จะนำมาใช้ในภายหลัง ถ้าพวกเราตัดสินในที่ขยายการทำงานของ Module
Helper Class Method ถูกร้องขอตามวิธีดังต่อไปนี้
โค้ด: เลือกทั้งหมด
$hello = modHelloWorldHelper::getHello($params);
เมื่อไฟล์ mod_helloworld.php เสร็จสิ้นจะเป็นดังนี้
โค้ด: เลือกทั้งหมด
<?php
/**
* Hello World! Module Entry Point
*
* @package Joomla.Tutorials
* @subpackage Modules
* @license GNU/GPL, see LICENSE.php
* @link http://docs.joomla.org/J3.x:Creating_a_simple_module/Developing_a_Basic_Module
* mod_helloworld is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
*/
// No direct access
defined('_JEXEC') or die;
// Include the syndicate functions only once
require_once dirname(__FILE__) . '/helper.php';
$hello = modHelloWorldHelper::getHello($params);
require JModuleHelper::getLayoutPath('mod_helloworld');
สร้าง helper.php
ไฟล์ helper.php ประกอบด้วย helper Class มันถูกใช้ในการดึงข้อมูลขึ้นมาเพื่อที่จะแสดง ใน Method output . ตามที่ระบุไว้ก่อนหน้านี้ . พวก helper class จะมี 1 method : getHello(). Method นี้จะส่งข้อความ “Hello world” มา
นี้คือโค้ดไฟล์ helper.php
โค้ด: เลือกทั้งหมด
<?php
/**
* Helper class for Hello World! module
*
* @package Joomla.Tutorials
* @subpackage Modules
* @link http://docs.joomla.org/J3.x:Creating_a_simple_module/Developing_a_Basic_Module
* @license GNU/GPL, see LICENSE.php
* mod_helloworld is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
*/
class ModHelloWorldHelper
{
/**
* Retrieves the hello message
*
* @param array $params An object containing the module parameters
*
* @access public
*/
public static function getHello($params)
{
return 'Hello, World!';
}
}
มันไม่มีกฎในการเริ่มต้น ดังนั้นพวกมันจะมีชื่อ helper class ของเราที่มี แต่ มันก็เป็นประโยชน์ที่จะทำแบบนี้ ดังนั้นมันก็ง่ายต่อการพิสูจน์และ Locatable
Note : มันจะต้องได้อยู่ในรูปแบบ ถ้าคุณวางแผนให้มันใช้ com_ajax Plugin
Module ระดับสูงขึ้นอื่นๆ อาจจะรวมถึงการประกอบด้วยการร้องขอ Database หรือ การทำงานอื่นๆใน helper class method
สร้าง tmpl/default.php
ไฟล์ default.php คือไฟล์ที่ไว้แสดง Template ว่าจะให้แสดงผลลัทธ์ของ Module
นี้คือ Code default.php มีดังต่อไปนี้
โค้ด: เลือกทั้งหมด
<?php
// No direct access
defined('_JEXEC') or die; ?>
<?php echo $hello; ?>
จุดที่สำคัญของที่ควรทราบก็คือ Template ไฟล์นั้นมีขอบเขตเดียวกันกับไฟล์ mod_helloworld.php สิ่งนี้มีความหมายว่าตัวแปร $hello สามารถกำหนดได้ใน mod_helloworld.php และเมื่อนำไปใช้ใน Template ไม่จำเป็นต้องประกาศหรือมี Function การเรียกอื่นๆ
การสร้าง mod_helloworld.xml
ในไฟล์ mod_helloworld.xml ถูกใช้เพื่อระบุว่าไฟล์ที่จะติดตั้งจะต้องมีการคัดลอกและใช้โดย Module การจัดการเพื่อตรวจสอบว่า พารามิเตอร์ ถูกใช้เพื่อกำหนดค่าของ Module . ข้อมูลอื่นๆเกี่ยวกับ Module นอกจากนี้ยังมีการระบุในแฟ้มนี้
นี้คือโค้ด mod_helloworld.xml มีดังต่อไปนี้
โค้ด: เลือกทั้งหมด
<?xml version="1.0" encoding="utf-8"?>
<extension type="module" version="3.1.0" client="site" method="upgrade">
<name>Hello, World!</name>
<author>John Doe</author>
<version>1.0.0</version>
<description>A simple Hello, World! module.</description>
<files>
<filename>mod_helloworld.xml</filename>
<filename module="mod_helloworld">mod_helloworld.php</filename>
<filename>index.html</filename>
<filename>helper.php</filename>
<filename>tmpl/default.php</filename>
<filename>tmpl/index.html</filename>
</files>
<config>
</config>
</extension>
คุณจะสังเกตเห็นว่ามี 2 ไฟล์เพิ่มเติมที่เรายังไมได้กล่าวถึง : index.html และ tmpl/index.html. ไฟล์เหล่านี้จะถูกรวมเพื่อให้ไดเรกเทอรีเหล่านี้ไม่สามารถเรียกดูได้ ถ้าผู้ใช้พยายามจะชี้ให้ browser ของพวกเขาไปยัง Folder : index.html ไฟล์จะปรากฏ ไฟล์สามารถถูกทิ้งไว้ว่างเปล่าหรือสามารถมีเส้นที่เรียบง่าย
สร้าง ไฟล์ index.html โดยมีโค้ดดังนี้
โค้ด: เลือกทั้งหมด
<html><body bgcolor="#FFFFFF"></body></html>
มันจะแสดงหน้าเพจเปล่าๆ
ตั้งแต่ Module ของเราไม่ได้ใช้จาก form fields , ส่วนการตั้งค่าที่ว่างเปล่า
ข้อสรุป
การพัฒนา Module สำหรับ Joomla ค่อนข้างง่าย กระบวนการตรงไปตรงมา โดยใช้เทคนิคที่อธิบายไว้ในการแนะนำนี้ ไม่มีที่สิ้นสุด Module สามารถที่จะพัฒนาให้มีความยุ่งยากน้อย
วิธีการติดตั้ง
หลังจากการเตรียมไฟล์เสร็จสิ้นให้ไปที่
ส่วนเสริม > จัดการส่วนเสริม
คลิกที่ ค้นหาส่วนเสริม ตามภาพ
จะได้ตามภาพ ให้คลิกเลือก แล้วกด ติดตั้ง
เรียกใช้งานไปที่ ส่วนเสริม > จัดการโมดูล แล้วคลิก สร้างใหม่
มันจะมี Hello world เข้ามาให้เลือก
- ถ้าไม่มีให้ไปทำตามภาพ แล้วกด เปิด
เมื่อคลิกเข้ามาที่ Hello World ให้ทำการตั้งชื่อ และกำหนดตำแหน่งในการแสดงผล พร้อมกับกดบักทึก
เมื่อเสร็จสินออกไปดูที่ด้านหน้าเว็บไซต์จะได้ผลลัพท์ตามนี้
เป็นอันเสร็จสิ้นขั้นตอนการ สร้าง Module และวิธีการติดตั้งเบื้องต้น นะครับ
สามารถ Download ไฟล์ได้ที่นี้ครับ ต้นฉบับ Website https://docs.joomla.org/J3.x:Creating_a ... sic_Module