ดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

สำหรับการพัฒนาส่วนเสริมที่เป็น Plugin ใน MooZiiCart หลังจากที่ศึกษาแนวทางและโครงสร้างของไฟล์จากบทความ แนวทางการพัฒนาส่วนเสริมของ MooZiiCart ไปแล้วนั้น น่าจะพอเข้าใจเรื่องการทำงานของ Plugin ว่ามันจะทำงานโดยอาศัย Event ต่างๆ ที่ถูกสร้างขึ้นมาเตรียมไว้ในส่วนการทำงานที่สำคัญ เช่น การดึงข้อมูล การบันทึกข้อมูล การลบข้อมูล หรืออื่นๆ อีกมากมาย เพราะฉะนั้นเมื่อเราต้องการที่จะพัฒนาส่วนเสริมเข้าไปทำงานก็จำเป็นต้องทราบว่ามีชื่อ Event อะไรบ้าง ในบทความนี้จะขอแนะนำวิธีการหาชื่อ Event ของ MooZiiCart ด้วยตัวเองกันครับ

 

ก่อนที่จะเริ่มเข้าไปเปิดไฟล์ของ MooZiiCart แล้วค้นหา Event จะขออธิบายเพิ่มเติมเกี่ยวกับโครงสร้างไฟล์ของ MooZiiCart ก่อน โดย MooZiiCart เป็น Component ที่พัฒนาบน Joomla Framework โดยการเขียนจะเป็นรูปแบบ MVC เพราะฉะนั้นแน่นอนว่าจะต้องมีโฟลเดอร์ controllers models และ views เป็นโฟลเดอร์ที่เก็บไฟล์ส่วนที่ทำงานหลักๆ ซึ่ง Event ส่วนใหญ่ก็จะถูกประกาศไว้ในไฟล์เหล่านี้

 

วิธีการหาชื่อ Events ของ MooZiiCart

สามารถเปิดไฟล์ในโฟลเดอร์ controllers กับ models ของส่วนที่ต้องการขึ้นมาหาชื่อ Event ได้ แต่หากไม่แน่ใจว่าต้องเปิดไฟล์ชื่ออะไรในโฟลเดอร์ ให้ลองสังเกตุ URL ในหน้าที่ต้องการหา Event เช่น ในหน้าหมวดหมู่สินค้า ตรง URL จะมี controller=categories ซึ่งชื่อไฟล์ในโฟลเดอร์ controllers ก็คือ categories.php นั่นเอง

 

การดูชื่อไฟล์จาก URL
การดูชื่อไฟล์จาก URL

 

เปิดไฟล์ administrator/components/com_mooziicart/controllers/categories.php ขึ้นมา และค้นหาคำว่า "trigger" (ในตัวอย่างใช้ IDE เป็น Netbeans)

 

ค้นหา trigger ในไฟล์ categories.php
ค้นหา trigger ในไฟล์ categories.php

 

ในไฟล์ categories.php นี้จะมี Event อยู่ 2 ตัว ที่เราสามารถเรียกใช้ได้ คือ onBeforeDisplayListCategoryView เป็นการทำงานก่อนแสดงรายการหมวดหมู่สินค้า กับ onBeforeEditCategories เป็นการทำงานก่อนแสดงฟอร์มหมวดหมู่สินค้า หากต้องการเรียกใช้ก็สามารถนำชื่อ Event ทั้งสองไปใช้สร้างเป็นชื่อ function ใน Plugin ได้ ส่วน Parameters ที่ต้องใส่ใน function ก็ดูจากค่าที่อยู่ใน array

 

ตัวอย่างการสร้าง function

ตัวอย่างที่ 1

$dispatcher->trigger('onBeforeEditCategories', array (&$view));

จะได้เป็น

public function onBeforeDisplayListCategoryView(&$view)
{
	// coding...
}

 

ตัวอย่างที่ 2

$dispatcher->trigger('onAfterSaveCategoryImage', array(&$post, &$category_image, &$path_full, &$path_thumb));

จะได้เป็น

public function onAfterSaveCategoryImage(&$post, &$category_image, &$path_full, &$path_thumb)
{
	// coding...
}

 

สำหรับทั้ง 2 ตัวอย่าง น่าจะพอทำให้เห็นภาพและเข้าใจวิธีการสร้าง function ของ Event ต่างๆ ได้มากขึ้น ในส่วนของ Parameters จำเป็นต้องประกาศให้เท่ากันไม่ว่าจะได้ใช้หรือไม่ได้ใช้ก็ตาม และสังเกตว่าตัวแปรส่วนใหญ่จะเป็นตัวแปรแบบ Passing by Reference เนื่องจาก Event จะไม่ได้กำหนดให้รับค่ากลับออกไป แต่จะใช้วิธีการปรับเปลี่ยนค่าของตัวแปรโดยตรงแทน เพราะฉะนั้นในส่วนนี้อาจจะต้องระมัดระวังการใช้งานหรือเอาค่าทับตัวแปรต่างๆ เพราะตัวแปรเหล่านี้อาจจะยังต้องนำไปใช้ในส่วนถัดไปอีก ซึ่งถ้ามีการทับค่าที่สำคัญอาจจะทำให้เกิด Error ตามมาได้ สำหรับเรื่องวิธีการหาชื่อ Events ของ MooZiiCart สำหรับเรียกใช้ในส่วนเสริมก็จะประมาณนี้ สามารถติดตามวิธีพัฒนาเพิ่มเติมได้จากบทความต่อไป

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
โปรแกรมทางการบัญชี โปรแกรม Express
โดย Duanghathai Termtem อ 01 ธ.ค. 2020 6:56 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
22
อ 01 ธ.ค. 2020 6:56 pm โดย Duanghathai Termtem
Flow Account คืออะไร
โดย Duanghathai Termtem อ 01 ธ.ค. 2020 5:06 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
21
อ 01 ธ.ค. 2020 5:06 pm โดย Duanghathai Termtem
การประยุกต์ใช้โปรแกรม ACL และ Microsoft Excel ช่วยในการตรวจสอบ
โดย Duanghathai Termtem อ 01 ธ.ค. 2020 3:20 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
32
อ 01 ธ.ค. 2020 3:20 pm โดย Duanghathai Termtem
แนวทางแก้ปัญหา php error Uncaught Error: Call to undefined function mysql_real_escape_string() in...
โดย mindphp อ 01 ธ.ค. 2020 2:13 am บอร์ด PHP Knowledge
0
20
อ 01 ธ.ค. 2020 2:13 am โดย mindphp
วิธีการเดินทางจากกระบี่มากรุงเทพมหานคร
โดย Duanghathai Termtem จ 30 พ.ย. 2020 3:46 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
21
จ 30 พ.ย. 2020 3:46 pm โดย Duanghathai Termtem
การใช้ Canva ช่วยการนำเสนอ
โดย Duanghathai Termtem จ 30 พ.ย. 2020 3:13 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
38
จ 30 พ.ย. 2020 3:13 pm โดย Duanghathai Termtem
ภาษี หัก ณ ที่จ่าย บน ERP
โดย milk2533 ส 28 พ.ย. 2020 4:17 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
24
ส 28 พ.ย. 2020 4:17 pm โดย milk2533
ประโยชน์ของการใช้ปุ่ม Sendmail บน ERP
โดย milk2533 ส 28 พ.ย. 2020 1:40 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
15
ส 28 พ.ย. 2020 1:40 pm โดย milk2533