【问题标题】:how to get cutom module data from related list in vtiger如何从 vtiger 的相关列表中获取自定义模块数据
【发布时间】:2017-03-02 09:46:06
【问题描述】:

我从事 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 的这种行为。

谢谢

【问题讨论】:

  • 我能得到任何帮助吗?

标签: vtiger vtigercrm


【解决方案1】:

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

http://prntscr.com/emny6v

【讨论】:

    【解决方案2】:

    您需要在模块文件中创建一个函数 (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.
       }
    }
    

    然后在您的文件中创建这些函数 setModuleRelatedDependenciesunsetModuleRelatedDependencies

    这样

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

    }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多