我正在研究vtiger CRM,对于这个CRM我需要开发一个插件,安装后可以通过组织或潜在客户详细信息视图访问。
我已经成功达到了这个级别的插件。为了链接我的模块,我使用了setRelatedList API,我的代码是
include_once('vtlib/Vtiger/Module.php');
$moduleInstance = Vtiger_Module::getInstance('Payslip');
$accountsModule = Vtiger_Module::getInstance('Accounts');
$relationLabel = 'Accounts';
$moduleInstance->setRelatedList(
$accountsModule, $relationLabel, Array('ADD','SELECT')
);
我的插件名称是mailAddon,它显示在内置详细信息模块的侧栏上,而不是任务,如果点击我的插件,它应该根据我的要求从我定义的表中获取数据。我只是想知道如何扩展vtiger的这种行为。
由于
答案 0 :(得分:0)
会迟到但是你可以使用默认功能和自定义功能获取插件数据。要使其正常工作,只需转到vtiger_relatedlists
表,然后使用模块选项卡ID查找您的条目。只需在代码中遗漏您的功能名称即可更新该行。您可以根据模块结构将函数名称设置为get_dependents_list
或get_related_list
。这里是脚本以及设置的位置和内容。希望这会对你有所帮助。
答案 1 :(得分:0)
您需要在模块文件中创建一个函数(DIR = modules / YourModuleFolder / YourModuleName.php)。 在这里
function vtlib_handler($modulename, $event_type) {
if ($event_type == 'module.postinstall') {
$this->setModuleRelatedDependencies();
} else if ($event_type == 'module.disabled') {
$this->unsetModuleRelatedDependencies();
} else if ($event_type == 'module.enabled') {
$this->setModuleRelatedDependencies();
} else if ($event_type == 'module.preuninstall') {
$this->unsetModuleRelatedDependencies();
} else if ($event_type == 'module.preupdate') {
// TODO Handle actions before this module is updated.
} else if ($event_type == 'module.postupdate') {
// TODO Handle actions before this module is updated.
}
}
然后在文件 setModuleRelatedDependencies 或 unsetModuleRelatedDependencies
中创建这些函数喜欢
function setModuleRelatedDependencies(){
global $log;
$moduleName = Vtiger_Module::getInstance('YourModule');
foreach ($this->dependentModules as $module) { //Defind How many module you want in dependent
$moduleInstance = Vtiger_Module::getInstance($module);
$moduleInstance->setRelatedList($moduleName, 'YourModule', array(),'get_dependents_list' );
}
$log->fatal('Successfully added Module Related lists');
}
这是为了卸载插件
function unsetModuleRelatedDependencies(){
global $log;
$moduleName = Vtiger_Module::getInstance('YourModule');
foreach ($this->dependentModules as $module) {//Defind How many module you want in dependent
$moduleInstance = Vtiger_Module::getInstance($module);
$moduleInstance->unsetRelatedList($moduleName, 'YourModule', 'get_dependents_list');
}
$log->fatal('Successfully removed Module Related lists');
}