首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Bitrix 24 -将自定义字段添加到销售线索

Bitrix 24 -将自定义字段添加到销售线索
EN

Stack Overflow用户
提问于 2020-02-29 20:21:36
回答 1查看 206关注 0票数 0

我想添加一个新的字段来引导表单。

有可能做到吗?

代码语言:javascript
运行
复制
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')))
    )

),
EN

回答 1

Stack Overflow用户

发布于 2020-03-02 23:46:40

您可以通过使用XDebug并在界面中执行操作来查找大多数Bitrix进程。在向销售线索表单添加字段的情况下,这发生在crm.config.fields.edit组件的ajax.php中。

这是我的版本:

代码语言:javascript
运行
复制
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表单和列表是否可以使用列出的数据类型以外的其他数据类型,因此您可能需要调整组件模板。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60465091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档