尝试保存任何实体

时间:2017-04-11 19:48:17

标签: php vtiger vtigercrm

我目前正在vTiger 6.5上创建新模块。目前我一直在使用vTlib创建模块,注册处理程序等等。一切都运行良好,直到我突然无法保存任何模块甚至标准模块的任何信息。

我开始全新安装并完成了安装我的模块的步骤,我创建了一个模块,但是当我在下面注册处理程序时,我无法保存任何内容而只是导致index.php

    <?php
require_once('include/database/PearDatabase.php');
include_once('include/events/include.inc');

$adb = PearDatabase::getInstance();
$em = new VTEventsManager($adb);

$module = 'AddIsa'; 

$em->registerHandler('vtiger.entity.beforesave', 'modules/'.$module.'/'.$module.'Handler.php', $module.'Handler'); 
$em->registerHandler('vtiger.entity.beforesave.modifiable', 'modules/'.$module.'/'.$module.'Handler.php', $module.'Handler'); 
$em->registerHandler('vtiger.entity.beforesave.final', 'modules/'.$module.'/'.$module.'Handler.php', $module.'Handler'); 
$em->registerHandler('vtiger.entity.aftersave', 'modules/'.$module.'/'.$module.'Handler.php', $module.'Handler'); 

echo 'Events Added Successfully.';

?>
  

更新

我去了表vtiger_eventhandlers并删除了与我的自定义模块相关的事件处理程序,现在它工作正常。我不明白为什么会发生这种情况,因为我之前已经使用相同的脚本注册了事件处理程序,这些脚本也在此表中。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

请使用vtiger Package Structure。此外,如果您在模块中使用事件处理程序。您必须创建事件处理程序文件并使用Vtiger Module Event Structure

答案 1 :(得分:0)

已注册的事件处理程序将对所有模块执行。您的脚本可能有一些错误,这就是为什么您无法保存到任何模块的原因。在您的处理程序脚本中,您可以检查当前模块,并跳过执行类似的进一步代码

    $moduleName = $entityData->getModuleName();

    if ($moduleName != 'Invoice') {
        return;
    }