Areadrm သည် furning functions များနှင့်စိတ်ဓာတ်မြင့်မားခြင်းနှင့်စိတ်ဓာတ်မြင့်မားခြင်း, ၎င်း၏ပြောင်းလွယ်ပြင်လွယ်သောဗိသုကာမှတစ်ဆင့် developer များကတိကျသောလိုအပ်ချက်များနှင့်အညီအလယ်တန်းဖွံ့ဖြိုးတိုးတက်မှုနှင့် module တိုးချဲ့မှုကိုပြုလုပ်နိုင်သည်။
Module Development မတိုင်မှီသင်နှင့်သင့်လျော်စွာပတ် 0 န်းကျင်ကိုတည်ဆောက်ပြီးသက်ဆိုင်ရာစနစ်လက်လှမ်းမီမှုနှင့်ဖွံ့ဖြိုးရေးခွင့်ပြုချက်များရှိကြောင်းသေချာပါစေ။ တစ်ချိန်တည်းမှာပင်, အခြေခံ PHP ပရိုဂရမ်ဗဟုသုတသည်သက်ဆိုင်ရာစာရွက်စာတမ်းများကိုနားလည်ရန်နှင့်လျှောက်ထားရန်လိုအပ်သည်။
စိတ်ကြိုက် module တစ်ခုဖန်တီးရန် custom/modules
လမ်းညွှန်အောက်တွင် module directory အသစ်တစ်ခုကိုဖန်တီးရန်လိုအပ်သည်။ ဥပမာအားဖြင့်ကျွန်ုပ်တို့သည်ကုဒ်နံပါတ်ကို module ၏ root directory အဖြစ် CustomModule
အမည်ရှိဖိုင်တွဲတစ်ခုကိုဖန်တီးနိုင်သည်။
CustomModule
ဖိုင်တွဲတွင်အောက်ပါဖွဲ့စည်းပုံကိုများသောအားဖြင့်ပါ 0 င်သည်။
CustomModule.php
: အခြေခံအပြုအမူကိုသတ်မှတ်သည့် module ၏အဓိကလူတန်းစား။language
ဖိုင်တွဲ - ဘာသာစကားအထုပ်ဖိုင်, ပံ့ပိုးမှုလမ်းညွှန်။metadata
ဖိုင်တွဲ - Field Definition, Database ဖွဲ့စည်းပုံစသဖြင့်အချက်အလက်များပါ 0 င်သည်။ CustomModule.php
တွင်ကျွန်ုပ်တို့သည် module ၏အဓိကစာသင်ခန်းကိုသတ်မှတ်ပြီး SugarBean
အတန်းကိုအမြှောက်ဖြင့်ပေးအပ်သည်။ နမူနာကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
<?php
if (!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');
class CustomModule extends SugarBean
{
// အပိုင်း
public $module_name = 'CustomModule';
// ဒေတာဇယားအမည်
public $table_name = 'custom_module';
// module အရာဝတ်ထု alias ကို
public $object_name = 'CustomModule';
// မူလတန်းအဓိကလယ်ပြင်
public $object_field = 'id';
/**
* လမ်းဆောက်လုပ်ရေး
*/
public function __construct()
{
parent::__construct();
}
/**
* အကောင်အထည်ဖော်ရေးကိုအကောင်ကောက်
*/
public function bean_implements($interface)
{
switch ($interface) {
case 'ACL': return true;
}
return false;
}
}
အပိုင်းနှင့်အဓိပ္ပါယ်ဖွင့်ဆိုချက်ကိုများသောအားဖြင့် metadata
ဖိုင်ကိုဖန်တီးခြင်းကဲ့သို့သော custom_module.php
file တစ်ခုဖန်တီးရန်အောက်ပါအကြောင်းအရာများပါ 0 င်သည်။
<?php
$dictionary['CustomModule'] = array(
'table' => 'custom_module',
'fields' => array(
array(
'name' => 'id',
'type' => 'id',
'required' => true,
'len' => 36,
),
array(
'name' => 'name',
'type' => 'varchar',
'len' => 255,
'required' => true,
),
// နောက်ထပ်ကွက်လပ်အဓိပ္ပာယ်ဖွင့်ဆိုချက်များကိုထပ်ထည့်နိုင်သည်
),
'indices' => array(
array(
'name' => 'custom_module_pk',
'type' => 'primary',
'fields' => array('id'),
),
),
);
SugarQuery
နှင့် BeanFactory
ကို အသုံးပြု. ဖြည့်စွက်ခြင်း, အောက်ပါတို့သည်ဘုံလုပ်ငန်းများဥပမာများဖြစ်သည်။
$query = new SugarQuery();
$query->from(BeanFactory::getBean('CustomModule'));
$query->select(array('id', 'name'));
$query->where()->equals('name', 'John Doe');
$result = $query->execute();
$customModule = BeanFactory::newBean('CustomModule');
$customModule->name = 'John Doe';
$customModule->save();
$customModule = BeanFactory::getBean('CustomModule', '12345678-1234-1234-1234-1234567890ab');
$customModule->name = 'Jane Doe';
$customModule->save();
$customModule = BeanFactory::getBean('CustomModule', '12345678-1234-1234-1234-1234567890ab');
$customModule->mark_deleted('12345678-1234-1234-1234-1234567890ab');
ဤဆောင်းပါးသည် Module ဖန်တီးခြင်း, အတန်းအစားအဓိပ္ပါယ်, ကွင်းဆင်းပုံစံ settings များအပါအ 0 င် PHP ကို အသုံးပြု. PHP တွင် Custom Module များတီထွင်ရာတွင်အဓိကသော့ချက်ကိုမိတ်ဆက်ပေးသည်။ ဤအခြေခံဖြစ်စဉ်များကိုကျွမ်းကျင်စေခြင်းအားဖြင့် developer များက CRM ၏လုပ်ဆောင်မှုများကိုအမှန်တကယ်လိုအပ်ချက်များနှင့်အညီပြောင်းလွယ်ပြင်လွယ်များချဲ့ထွင်နိုင်ပြီးစီးပွားရေးလုပ်ငန်းစဉ်များကိုလိုက်နာသောစီမံခန့်ခွဲမှုစနစ်ကိုတည်ဆောက်နိုင်သည်။