我目前正在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并删除了与我的自定义模块相关的事件处理程序,现在它工作正常。我不明白为什么会发生这种情况,因为我之前已经使用相同的脚本注册了事件处理程序,这些脚本也在此表中。
有什么想法吗?
答案 0 :(得分:0)
请使用vtiger Package Structure。此外,如果您在模块中使用事件处理程序。您必须创建事件处理程序文件并使用Vtiger Module Event Structure
答案 1 :(得分:0)
已注册的事件处理程序将对所有模块执行。您的脚本可能有一些错误,这就是为什么您无法保存到任何模块的原因。在您的处理程序脚本中,您可以检查当前模块,并跳过执行类似的进一步代码
$moduleName = $entityData->getModuleName();
if ($moduleName != 'Invoice') {
return;
}