我正在开发一个 VTiger 6.4.0 扩展模块,用于在帐户模块中输入公司名称时获取公司数据。
该模块快完成了,我从 API 检索数据并使用 JQuery 在输入字段中输入它们。
但问题是我有一些与帐户信息中的现有字段无关的数据,所以我正在尝试创建一些新的自定义字段。
只有我似乎无法弄清楚如何从我的扩展模块中为帐户模块创建自定义字段。
我用谷歌搜索并观看了一些关于 stackoverflow 的帖子。
我想出了以下代码部分,但这似乎不起作用。
public function addKvkfield(){
$module = new Vtiger_Module();
$module->name = 'Accounts';
$module = $module->getInstance('Accounts');
$blockInstance = new Vtiger_Block();
$blockInstance->label = 'LBL_ACCOUNT_INFORMATION';
$blockInstance = $blockInstance->getInstance($blockInstance->label,$module);
$fieldInstance = new Vtiger_Field();
$fieldInstance->name = 'KvKNummer';
$fieldInstance->table = $module->basetable;
$fieldInstance->column = 'kvknummer';
$fieldInstance->columntype = 'VARCHAR(100)';
$fieldInstance->uitype = 2;
$fieldInstance->typeofdata = 'V~M';
$blockInstance->addField($fieldInstance);
}
在 vtlib_handler module.postinstall 中调用了 addKvkfield 函数(如果这是在扩展模块中执行此操作的正确方法,则找不到任何信息)
vtlib 处理程序:
function vtlib_handler($modulename, $event_type) {
global $log;
if($event_type == 'module.postinstall') {
$this->addJSLinks();
$this->createConfigTable();
$this->addSettingsMenu();
$this->addKvkfield();
$this->updateLabels();
// TODO Handle post installation actions
} else if($event_type == 'module.disabled') {
// TODO Handle actions when this module is disabled.
} else if($event_type == 'module.enabled') {
// TODO Handle actions when this module is enabled.
} else if($event_type == 'module.preuninstall') {
// TODO Handle actions when this module is about to be deleted.
} else if($event_type == 'module.preupdate') {
// TODO Handle actions before this module is updated.
} else if($event_type == 'module.postupdate') {
$this->updateLabels();
// TODO Handle actions after this module is updated.
}
}
希望有人可以推动我朝着正确的方向前进。
提前致谢 :)