如何从vtiger的相关列表中获取cutom模块数据

时间:2017-03-02 09:46:06

标签: vtiger vtigercrm

我正在研究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的这种行为。

由于

2 个答案:

答案 0 :(得分:0)

会迟到但是你可以使用默认功能和自定义功能获取插件数据。要使其正常工作,只需转到vtiger_relatedlists表,然后使用模块选项卡ID查找您的条目。只需在代码中遗漏您的功能名称即可更新该行。您可以根据模块结构将函数名称设置为get_dependents_listget_related_list。这里是脚本以及设置的位置和内容。希望这会对你有所帮助。

http://prntscr.com/emny6v

答案 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');

}