Advertisement
Guest User

Untitled

a guest
Jul 17th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.47 KB | None | 0 0
  1. public function commit()
  2. {
  3. global $DB;
  4. CModule::IncludeModule("highloadblock");
  5.  
  6. $arResultData = array('type' => 'CRM_CONTACT');
  7.  
  8. $oUserTypeEntity = new CUserTypeEntity();
  9.  
  10. $arDataFields = array(
  11. array(
  12. "FIELD_NAME" => "UF_IS_INVALID_SINCE",
  13. "LABEL" => "Когда паспорт был найден в списке недействительных",
  14. "TYPE" => "datetime",
  15. "SORT" => 500,
  16. "MANDATORY" => "N"
  17. ),
  18. );
  19.  
  20. foreach ($arDataFields as $arFieldParams) {
  21. $arSettings = array(
  22. /* Значение по умолчанию */
  23. 'DEFAULT_VALUE' => '',
  24. /* Размер поля ввода для отображения */
  25. 'SIZE' => '50',
  26. /* Количество строчек поля ввода */
  27. 'ROWS' => '1',
  28. /* Минимальная длина строки (0 - не проверять) */
  29. 'MIN_LENGTH' => '0',
  30. /* Максимальная длина строки (0 - не проверять) */
  31. 'MAX_LENGTH' => '0',
  32. /* Регулярное выражение для проверки */
  33. 'REGEXP' => '',
  34. );
  35.  
  36. if ($arFieldParams["TYPE"] == "employee") {
  37. $arSettings = array();
  38. }
  39.  
  40. if ($arFieldParams["TYPE"] == "enumeration") {
  41. $arSettings = array(
  42. 'LIST_HEIGHT' => 1,
  43. 'DISPLAY' => 'LIST',
  44. 'CAPTION_NO_VALUE' => ''
  45. );
  46. }
  47.  
  48. if ($arFieldParams["TYPE"] == "boolean") {
  49. $arSettings = array(
  50. 'DEFAULT_VALUE' => 0,
  51. 'DISPLAY' => 'CHECKBOX',
  52. );
  53. }
  54.  
  55.  
  56. $aUserFields = array(
  57. 'ENTITY_ID' => 'CRM_CONTACT',
  58. 'FIELD_NAME' => $arFieldParams["FIELD_NAME"],
  59. 'USER_TYPE_ID' => $arFieldParams["TYPE"],
  60. 'XML_ID' => '',
  61. 'SORT' => $arFieldParams["SORT"],
  62. /* Является поле множественным или нет */
  63. 'MULTIPLE' => 'N',
  64. /* Обязательное или нет свойство */
  65. 'MANDATORY' => $arFieldParams["MANDATORY"],
  66. /*
  67. * Показывать в фильтре списка. Возможные значения:
  68. * не показывать = N, точное совпадение = I,
  69. * поиск по маске = E, поиск по подстроке = S
  70. */
  71. 'SHOW_FILTER' => 'N',
  72. /*
  73. * Не показывать в списке. Если передать какое-либо значение,
  74. * то будет считаться, что флаг выставлен.
  75. */
  76. 'SHOW_IN_LIST' => 'N',
  77. /*
  78. * Не разрешать редактирование пользователем.
  79. * Если передать какое-либо значение, то будет считаться,
  80. * что флаг выставлен.
  81. */
  82. 'EDIT_IN_LIST' => '',
  83. /* Значения поля участвуют в поиске */
  84. 'IS_SEARCHABLE' => 'N',
  85. 'SETTINGS' => $arSettings,
  86. /* Подпись в форме редактирования */
  87. 'EDIT_FORM_LABEL' => array(
  88. 'ru' => $arFieldParams["LABEL"],
  89. 'en' => $arFieldParams["LABEL"],
  90. ),
  91. /* Заголовок в списке */
  92. 'LIST_COLUMN_LABEL' => array(
  93. 'ru' => $arFieldParams["LABEL"],
  94. 'en' => $arFieldParams["LABEL"],
  95. ),
  96. /* Подпись фильтра в списке */
  97. 'LIST_FILTER_LABEL' => array(
  98. 'ru' => $arFieldParams["LABEL"],
  99. 'en' => $arFieldParams["LABEL"],
  100. ),
  101. /* Сообщение об ошибке (не обязательное) */
  102. 'ERROR_MESSAGE' => array(
  103. 'ru' => '',
  104. ),
  105. /* Помощь */
  106. 'HELP_MESSAGE' => array(
  107. 'ru' => '',
  108. ),
  109. );
  110.  
  111. $iUserFieldId = $oUserTypeEntity->Add($aUserFields);
  112. $arResultData["fieldsList"][$iUserFieldId] = $aUserFields;
  113.  
  114. if (is_array($arFieldParams["ENUM"])) {
  115. if (count($arFieldParams["ENUM"]) > 0) {
  116. $arDataValue = $arFieldParams["ENUM"];
  117.  
  118. $arAddEnum = array();
  119. $i = 1;
  120. foreach ($arDataValue as $key => $value) {
  121. //мы передаем массив, который состоит из таких элементов (наличие n в ключе обязательно)
  122. $arAddEnum['n' . $i] = array(
  123. 'VALUE' => $value,
  124. 'DEF' => 'N',
  125. 'SORT' => $i * 100
  126. );
  127. $i++;
  128. }
  129.  
  130. $obEnum = new CUserFieldEnum();
  131. $obEnum->SetEnumValues($iUserFieldId, $arAddEnum);
  132.  
  133. $arResultData["fieldsList"][$iUserFieldId]['values'] = $arAddEnum;
  134. }
  135. }
  136. }
  137.  
  138. $this->setData($arResultData);
  139. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement