Как создать настраиваемое поле в модуле контактов в vtiger CRM
Я сделал этот код через Интернет, но он не работает. Я сохраняю этот файл в корневом каталоге. Мне нужно создать обязательное поле и раскрывающееся поле в модуле контактов.
<?php
$Vtiger_Utils_Log = true;
ini_set('error_reporting', E_ALL);
ini_set('display_errors', '1');
include_once('../../config.inc.php');
set_include_path($root_directory); //for include root path
include_once('vtlib/vtiger/menu.php');
include_once('vtlib/Vtiger/Module.php');
include_once('vtlib/Vtiger/Block.php');
$moduleInstance = Vtiger_Module::getInstance('Contacts');//Module Name
$blockInstance = Vtiger_Block::getInstance('LBL_CONTACT_INFORMATION', $moduleInstance);//Block Name
$fieldInstance = new Vtiger_Field();
$fieldInstance->name = 'whatsapp';
$fieldInstance->label = 'LBL_WHATSAPP';
$fieldInstance->table = 'vtiger_contactdetails';
$fieldInstance->column = 'whatsapp';
$fieldInstance->columntype = 'varchar(11)';
$fieldInstance->uitype = 1;
$fieldInstance->typeofdata = 'V~O';
$blockInstance->addField($fieldInstance);
$fieldInstance->setRelatedModules(array('Accounts'));
?>
2 ответа
Ваш код кажется прекрасным, я бы порекомендовал вам проверить модуль и заблокировать существование перед созданием поля. Вы уверены, что ваша база данных подключается нормально? В папке журналов ошибок нет?
Вот как я бы сделал, чтобы добавить поле.
<?php
$Vtiger_Utils_Log = true;
ini_set('error_reporting', E_ALL);
ini_set('display_errors', '1');
include_once('../../config.inc.php');
set_include_path($root_directory); //for include root path
include_once('vtlib/vtiger/menu.php');
include_once('vtlib/Vtiger/Module.php');
include_once('vtlib/Vtiger/Block.php');
$moduleInstance = Vtiger_Module::getInstance('Contacts');//Module Name
if($moduleInstance){
$blockInstance = Vtiger_Block::getInstance('LBL_CONTACT_INFORMATION', $moduleInstance);//Block Name
if($blockInstance){
$fieldInstance = Vtiger_Field::getInstance('whatsapp', $moduleInstance);
if(!$fieldInstance){
$fieldInstance = new Vtiger_Field();
$fieldInstance->name = 'whatsapp';
$fieldInstance->label = 'LBL_WHATSAPP';
$fieldInstance->table = 'vtiger_contactdetails';
$fieldInstance->column = 'whatsapp';
$fieldInstance->columntype = 'varchar(11)';
$fieldInstance->uitype = 1;
$fieldInstance->typeofdata = 'V~O';
$blockInstance->addField($fieldInstance);
$fieldInstance->setRelatedModules(array('Accounts'));
}
else{
echo "field already present";
}
}
else{
echo "no block";
}
}
else{
echo "no module";
}
?>
Если вам нужна онлайн-помощь по платформе VTiger с открытым исходным кодом, я рекомендую вам посетить форум Telegram. https://t.me/vtiger7crm