我想添加一个新的字段来引导表单。
有可能做到吗?
arra('name' => 'PROJECT',
'title' => Loc::getMessage('CRM_LEAD_FIELD_PROJECT'),
'type' => 'list',
'editable' => true,
// 'entityTypeName' => CCrmOwnerType::project,
'data' => array(
'items'=>\CCrmInstantEditorHelper::PrepareListOptions(
CallProject::GetListCrm('PROJECT'),
array('NOT_SELECTED' => Loc::getMessage('CRM_LEAD_PROJECT_NOT_SELECTED')))
)
),
发布于 2020-03-02 23:46:40
您可以通过使用XDebug并在界面中执行操作来查找大多数Bitrix进程。在向销售线索表单添加字段的情况下,这发生在crm.config.fields.edit
组件的ajax.php
中。
这是我的版本:
global $USER_FIELD_MANAGER;
CModule::IncludeModule('crm');
$entityID = "CRM_LEAD";
$crmFields = new CCrmFields($USER_FIELD_MANAGER, $entityID);
$fieldName = $crmFields->GetNextFieldId();
$label = "nameOfTheNewField";
$languageCodes = ["de", "en", "la", "br", "lt"];
$editFormLabel = [];
$listColumnLabel = [];
$listFilterLabel = [];
foreach($languageCodes as $languageCode) {
$editFormLabel[$languageCode] = $label;
$listColumnLabel[$languageCode] = $label;
$listFilterLabel[$languageCode] = $label;
}
// can be 'string', 'integer', 'double', 'boolean', 'datetime', according to the ajax.php
$dataType = "string";
$fields = [
"USER_TYPE_ID"=> $dataType,
"ENTITY_ID"=> $entityID,
"SORT"=> 100,
"MULTIPLE"=> "N", // Declares that you can add more, e.g. a list of strings
"MANDATORY"=> "N", // Declares whether the form can be submitted without this value
"SHOW_FILTER"=> "E", // Not sure
"SHOW_IN_LIST"=> "Y", // Not sure, maybe the list at the lead overview?
"SETTINGS"=> [],
"EDIT_FORM_LABEL"=> $editFormLabel,
"LIST_COLUMN_LABEL"=> $listColumnLabel,
"LIST_FILTER_LABEL"=> $listFilterLabel,
"FIELD_NAME"=> $fieldName
];
$fieldID = (new CUserTypeEntity())->Add($fields);
该函数可以采用该ajax.php
中建议的其他类型-您可以通过检查$USER_FIELD_MANAGER->GetUserType();
的输出来检查哪些类型应该是有效的。
虽然我不确定leads表单和列表是否可以使用列出的数据类型以外的其他数据类型,因此您可能需要调整组件模板。
https://stackoverflow.com/questions/60465091
复制相似问题