【发布时间】:2019-05-02 20:35:10
【问题描述】:
当将自定义模块链接到现有模块(例如帐户模块)时,我想知道如何更改 Vtiger 7 中字段的显示名称(在查看模式下)。它一直显示默认编号字段。 请看以下 2 张图片:我会将图片 1 中的文本“INSURANCE-21”替换为例如保险公司名称,例如图片 2 中的“Williams Insurance Group”。 请问有什么办法吗?
【问题讨论】:
当将自定义模块链接到现有模块(例如帐户模块)时,我想知道如何更改 Vtiger 7 中字段的显示名称(在查看模式下)。它一直显示默认编号字段。 请看以下 2 张图片:我会将图片 1 中的文本“INSURANCE-21”替换为例如保险公司名称,例如图片 2 中的“Williams Insurance Group”。 请问有什么办法吗?
【问题讨论】:
请在数据库中找到Insurance Company Name的字段名称。 例如,如果字段名称像 insurance_company_name 那么查询就会变成这样
UPDATE `vtiger_entityname` SET `fieldname`="insurance_company_name" WHERE `modulename` ='Accounts' and `tablename` = 'vtiger_account';
【讨论】:
经过一整天的搜索,我得出了一个解决方案。
不确定是否有任何缺点。但这是有效的修复:
我更新了此表 vtiger_entityname 并将列 fieldname 设置为我想用作相关模块的显示名称的字段名称。
希望它能帮助任何想要达到相同结果的人。
【讨论】:
您必须更改模块标识符。如果您曾经尝试找到更新模块标识符(在模块中用作链接的字段)的选项,您很可能已经注意到 vtiger 不允许从字段编辑器进行此操作。唯一的方法是使用名为 Vtlib 的 vtiger 开发库。
使用以下代码:
// Turn on debugging level
$Vtiger_Utils_Log = true;
$targetmodule = 'InsuranceCompanies';
$targetfield = 'insurance_company_name';
include_once('vtlib/Vtiger/Module.php');
include_once('vtlib/Vtiger/Field.php');
$module = Vtiger_Module::getInstance($targetmodule);
$field = Vtiger_Field::getInstance($targetfield, $module);
$module->unsetEntityIdentifier();
$module->setEntityIdentifier($field);
如果您需要将其还原或进行备份,则需要备份表 vtiger_entityname
【讨论】: