Membuat Module

Untuk membuat module pada framework esoftplay, anda harus membuat sebuah folder di dalam directory "modules/" dengan persyaratan nama sebagai berikut
  1. nama module minimal 3 karakter atau lebih, jika nama module hanya menggunakan 2 karakter maka akan membuat rancu jika website menggunakan multi language
  2. nama module tidak boleh sama dengan nama folder yang ada di doc root, berikut adalah nama nama yang tidak boleh digunakan untuk penamaan module:
    • admin
    • blocks
    • images
    • includes
    • modules
    • repair
    • templates
  3. module bisa diakses melalui browser apabila memiliki file dengan nama "_switch.php" dan sudah ter-register kedalam table database `bbc_module` dengan status active=1
  4. _switch.php adalah file yang wajib jika ingin membuat module yang bisa diakses melalui browser, sedangkan admin/_switch.php hanya perlu dibuat jika anda ingin membuat admin panel untuk module tersebut
  5. contoh pembuatan file _switch bisa anda copas dari file lain seperti modules/user/_switch.php dan berikut adalah contoh sederhana pembuatan file _switch.php
    <?php	if ( ! defined('_VALID_BBC')) exit('No direct script access allowed');
    
    // Text yang akan muncul ketika ingin menambah menu public dan memilih module ini di admin panel "Control Panel / Menu Manager"
    switch($Bbc--->mod['task'])
    {
        case 'main': // Ini adalah task utama ketika user mengakses BaseURL/{namamodule}/ 
            # script di sini
            break;
        case 'list': // Ini akan diakses jika user mengkakses BaseURL/{namamodule}/list/
            # script di sini
            break;
        case 'list_edit':
            # script di sini (karena tidak ada comment setelah case maka opsi tidak akan muncul ketika create/edit menu di "Control Panel / Menu Manager")
            break;
    
        default:
            echo 'Invalid action '.$Bbc->mod['task'].' has been received...';
            break;
    }

Nama nama file tambahan dalam module

saya asumsikan anda membuat module dengan nama "coba" maka anda harus membuat semua file dalam module tersebut di dalam folder "modules/coba/", jika anda membuat file-file dengan nama di bawah maka framework akan memperlakukan berbeda:

Membuat module sebagai library baru dalam project

Jika anda ingin membuat module yang hanya berisi kumpulan function yang akan digunakan oleh module lain, maka anda hanya cukup membuat folder di dalam directory modules/, Semisal module yang kita buat adalah "coba" maka kita hanya perlu membuat file modules/coba/_function.php jd kita tidak perlu membuat file modules/coba/_switch.php karena kita tidak perlu meregistrasikan halaman baru pada module tersebut. Berikut adalah contoh apabila kita membuat function dengan nama "ok":
<?php if (!defined('_VALID_BBC')) exit('No direct script access allowed');

function coba_ok($value='')
{
    echo $value;
};
dengan membuat file modules/coba/_function.php dengan isi content di atas, maka semua module yang ada pada framework bisa memanggil function tersebut dengan cara:
_func('coba'); coba_ok('nama saya');
kode _func('coba'); diatas berfungsi untuk meng-include modules/coba/_function.php jika file tersedia atau jika tidak, maka akan meng-inlclude file includes/function/coba.php (hanya jika file tersedia). silahkan baca _func untuk keterangan lebih lanjut. Anda juga bisa meng-include sekaligus meng-eksekusi function coba_ok dengan cara
_func('coba', 'ok', 'nama saya');
dengan output dan proses yang sama seperti script sebelumnya diatas

Merubah function atau class utama pada framework

apabila anda ingin merubah fungsi utama dalam framework contoh function "sendmail" pada contoh script di bawah:
_func('sendmail');
sendmail($destinations, '[subject]', '[content]', $from);
maka anda harus membuat module dengan nama "sendmail" lalu membuat file "_function.php" yang berisi function "sendmail" itu sendiri untuk menggantikan function utama

Hook Function (menambahkan script tambahan pada proses utama framework)

ini adalah fitur dimana anda bisa membuat function dengan nama tertentu yang telah ditentukan oleh framework dan akan menambahkan proses utama pada framework, adapun penempatan function sendiri bisa anda tempatkan di module mana saja selama masih menggunakan pola penamaan {namamodule}_{namafunction} dan ditaruh pada file modules/{namamodule}/_function.php. Jadi function hook ini tidak seperti di framework lain yang menggantikan function utama, melainkan hanya menambahkan proses yang ada pada proses utama framework.

berikut adalah function function yang akan dipanggil ketika function utama pada framework di panggil, ini berlaku untuk semua module, meskipun module tersebut tidak ada di table database `bbc_module`. Contoh penggunaan function hook, semisal anda ingin menghapus semua data dari user di dalam module anda ketika user tersebut dihapus:
function {namamodule}_user_delete($user_ids)
{
    ids($user_ids); // ini akan meng implode dengan koma "," hanya jika variable adalah array
    if (!empty($user_ids))
    {
        global $db;
        $db->Execute("DELETE FROM `{namamodule}` WHERE `user_id` IN ($user_ids)");
    }
}

selamat mencoba! wink

Tags : Module

0 Komentar

Berikan komentar anda