อาทิตย์, กุมภาพันธ์ 05, 2555
   
Text Size
ป้ายโฆษณา

ทำความรู้จักกับ Mambots หรือ Plugins

( 3 Votes )
ดัชนีบทความ
ทำความรู้จักกับ Mambots หรือ Plugins
หน้า 2
ทุกหน้า

ImageMambots ตามที่เรียกใน Joomla! 1.0 หรือ Plugins ใน Joomla! 1.5 เป็นส่วนของ function เล็กๆ ที่จะทำให้สามารถเปลี่ยนแปลง function ของระบบ โดยที่ไม่ต้องแก้ใข code ในส่วนของ core หรือ อาจจะใช้ในการเพิ่มความสามารถให้กับ function เดิมของระบบก็ได้ เช่นการทำการ Search ปกติของ site จะทำการค้นหาจาก Articles จากส่วนของชื่อและเนื้อหาของบทความ แต่ใน DOCMAN ได้มีการเพิ่ม Search ในการค้นหาจากชื่อและคำอธิบายเอกสารเข้าไป โดยในแง่ของผู้ใช้จะใช้แค่การค้นหาในส่วนของ site เท่านั้นเอง

Plugins หรือ Mambots จะใช้ Observer pattern เพื่อคอยการทำงานตามเหตุการณ์ที่จะเกิดขึ้น โดยการคอยทำงานตามเหตุการณ์ที่ระบบอนุญาติให้เราทำการเปลี่ยนแปลงได้ ใน Joomla! 1.0 เราจะมี Event ไม่มากนัก แต่ใน Joomla! 1.5 นั้น Event จะมีมากขึ้น และเรายังสามารถเพื่ม Event ของเราใน Component ได้อีกด้วย 

Events

เหตุการณ์หรือ Events ใน Joomla! 1.0 มีอยู่ทั้งหมด 5 กลุ่มเหตุการณ์คือ system, content, search, editor, editor-xtd ซึ่งเป็น folder ใน /mambots นั่นเอง

  • onStart                                  เป็น mambot ในกลุ่ม system จะถูก trigger ก่อน initialize ระบบ
  • onAfterStart                          เป็นกลุ่มของ system จะถูก trigger เป็นชุดที่สอง 
  • onPrepareContent                 ใช้ในกรณีที่ต้องการแก้หรือเปลี่ยนแปลง content เช่น mosimage เป็นต้น
  • onSearch                              ใช้ในการค้นหา โดยสามารถเพิ่ม function ได้เพื่อ customize ตัว search function ได้
  • onGetEditorContents              ใช้ในตอน copy เนื้อหาจาก field ใน form
  • onInitEditor                           ใช้ในช่วงของการ initialize ตัว Editor โดยปกติจะเป็นการ load javascript ของ Editor
  • onEditorArea                         ใช้ในช่วงของการแสดงพื้นที่ของ Editor ซึ่งเป็นการเพิ่มปุ่มของ Editor
  • โดยในกลุ่ม Editor ก็คือ สามตัวหลังซึ่งจะมีการเรียกใช้โดย WYSIWYG editor

    ใน Joomla! 1.0 จะใช้วิธีการง่ายๆ คือในตัวของ Mambot จะมีการ register ตัว function ของ Mambot เข้าไป โดยการเรียกใช้จากตัวแปรชื่อ $_MAMBOTS ดูตัวอย่าง

    /* Register the Plugin in Joomla */
    if (_BF_PLATFORM=='JOOMLA1.0'){
             $_MAMBOTS->registerFunction( 'onAfterStart', '_LOAD_XAJAX' );
    } else {
            $mainframe->registerEvent( 'onAfterInitialise', '_LOAD_XAJAX' );
    }

    จากตัวอย่างด้านบนจะเป็น Plugin หรือ Mambot ที่ใช้ได้ทั้ง Joomla! 1.0 และ Joomla! 1.5 ซึ่งการ register ตัวฟังก์ชันจะแตกต่างกัน คือใน 1.0 จะ register โดยเรียก method ของ $_MAMBOTS ส่วนใน 1.5 จะเรียกใช้ method ของตัวแปร global ชื่อ $mainframe 

    ใน Joomla! 1.5 ได้มีการเพิ่ม Event หรือ เหตุการณ์ที่อนุญาติให้เราทำการแก้ไขได้อีกหลายเหตุการณ์โดยสามารถแบ่งเป็นกลุ่มได้ดังนี้ คือ

    • authentication
    • content
    • editors
    • editor-xtd
    • search
    • system
    • user
    • xmlrpc


    JoomlaWatch Stats 1.2.8b_12-dev by Matej Koval
    Restore Default Settings