1

我通过复制此文件夹,使用 vtlib/moduledir/5.4 在 vtigercrm 5.4 中添加了一个自定义模块。

一切正常,除了一件事,我在数据库中添加了硬编码数据(我为我的自定义模块创建表并将其链接到 vtiger_field、vtiger_blocks、vtiger_crmentity 等......),但是当我打开我的模块时,这些数据没有显示。我在 module.php 中更改了表名和列名,但一切都失败了。谁能告诉我如何在此列表中显示我的数据。

图片

得到了一些东西。我在 vtiger_relatedlists 表中添加了 get_related_list 函数。并在 module.php 中创建此函数。在函数中我添加了这段代码:


global $adb; 
$header = array("RabateName");
$data = "SELECT  RabateName FROM vtiger_OrganisationRabate where vtiger_OrganisationRabate.OrganisationRabate_id = ?";
$result = $adb->pquery($data,array(495));
$accountname = array(array());
while($resultrow = $adb->fetchByAssoc($result)) 
{
    $accountname[]=$resultrow;
}
$return_value = array('header'=>$header,'entries'=>$accountname);
return $return_value;

但再次失败,仍然没有显示。

4

1 回答 1

1

您正在添加在数据库详细信息中硬编码的模块。你错过了一些表。所以我的建议是使用脚本添加模块。

这是脚本。

<?php 

// Turn on debugging level
$Vtiger_Utils_Log = true;
include_once('vtlib/Vtiger/Menu.php');
include_once('vtlib/Vtiger/Module.php');

$module = new Vtiger_Module();
$module->name = 'Store';
$module->save();

$module->initTables();
$module->initWebservice();

$menu = Vtiger_Menu::getInstance('Support');
$menu->addModule($module);

$block1 = new Vtiger_Block();
$block1->label = 'Organization Information';
$module->addBlock($block1); //to create a new block

$field0 = new Vtiger_Field();
$field0->name = 'organization_name';
$field0->label = 'Organization Name';
$field0->table = $module->basetable; 
$field0->column = 'organization_name';
$field0->columntype = 'VARCHAR(100)';
$field0->uitype = 2;
$field0->typeofdata = 'V~M';
$module->setEntityIdentifier($field0); //to insert values in entity folder
$block1->addField($field0); //to add field in block


$field1 = new Vtiger_Field();
$field1->name = 'store_id_auto';
$field1->label = 'Store ID';
$field1->table = $module->basetable; 
$field1->column = 'store_id_auto';
$field1->columntype = 'VARCHAR(100)';
$field1->uitype = 4;
$field1->typeofdata = 'V~O';
$block1->addField($field1);

//Do not change any value for filed2.
$field2 = new Vtiger_Field();
$field2->name = 'assigned_user_id';
$field2->label = 'Assigned To';
$field2->table = 'vtiger_crmentity'; 
$field2->column = 'smownerid';
$field2->columntype = 'int(19)';
$field2->uitype = 53;
$field2->typeofdata = 'V~M';
$block1->addField($field2);

$filter1 = new Vtiger_Filter();
$filter1->name = 'All';
$filter1->isdefault = true;
$module->addFilter($filter1);

// Add fields to the filter created
$filter1->addField($field0, 1);
$filter1->addField($field1, 2);
$filter1->addField($field2, 3);


/** Set sharing access of this module */
$module->setDefaultSharing('Private'); 
/** Enable and Disable available tools */
$module->enableTools(Array('Import', 'Export'));
$module->disableTools('Merge');

 ?>

首先在modules中创建一个module文件夹,将vtlib/ModuleDir/5.4.0文件中的文件复制到modules/newmodule中创建的文件夹中

用您的模块名称更改 ModuleFile.js、ModuleFile.php、ModuleFileAjax.php 的名称(没有空格)。

请记住,在更改 ModuleFileAjax.php 的名称期间,只需将 ModuleFile 替换为模块的名称。

去modulename.php更改类名,$table_name(6个值更改),$table_index(4个值更改)。

表索引不过是模块创建后自动生成的模块标识(例如任务标识)。

于 2013-11-21T04:49:04.440 回答