Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public function commit()
- {
- global $DB;
- CModule::IncludeModule("highloadblock");
- $arResultData = array('type' => 'CRM_CONTACT');
- $oUserTypeEntity = new CUserTypeEntity();
- $arDataFields = array(
- array(
- "FIELD_NAME" => "UF_IS_INVALID_SINCE",
- "LABEL" => "Когда паспорт был найден в списке недействительных",
- "TYPE" => "datetime",
- "SORT" => 500,
- "MANDATORY" => "N"
- ),
- );
- foreach ($arDataFields as $arFieldParams) {
- $arSettings = array(
- /* Значение по умолчанию */
- 'DEFAULT_VALUE' => '',
- /* Размер поля ввода для отображения */
- 'SIZE' => '50',
- /* Количество строчек поля ввода */
- 'ROWS' => '1',
- /* Минимальная длина строки (0 - не проверять) */
- 'MIN_LENGTH' => '0',
- /* Максимальная длина строки (0 - не проверять) */
- 'MAX_LENGTH' => '0',
- /* Регулярное выражение для проверки */
- 'REGEXP' => '',
- );
- if ($arFieldParams["TYPE"] == "employee") {
- $arSettings = array();
- }
- if ($arFieldParams["TYPE"] == "enumeration") {
- $arSettings = array(
- 'LIST_HEIGHT' => 1,
- 'DISPLAY' => 'LIST',
- 'CAPTION_NO_VALUE' => ''
- );
- }
- if ($arFieldParams["TYPE"] == "boolean") {
- $arSettings = array(
- 'DEFAULT_VALUE' => 0,
- 'DISPLAY' => 'CHECKBOX',
- );
- }
- $aUserFields = array(
- 'ENTITY_ID' => 'CRM_CONTACT',
- 'FIELD_NAME' => $arFieldParams["FIELD_NAME"],
- 'USER_TYPE_ID' => $arFieldParams["TYPE"],
- 'XML_ID' => '',
- 'SORT' => $arFieldParams["SORT"],
- /* Является поле множественным или нет */
- 'MULTIPLE' => 'N',
- /* Обязательное или нет свойство */
- 'MANDATORY' => $arFieldParams["MANDATORY"],
- /*
- * Показывать в фильтре списка. Возможные значения:
- * не показывать = N, точное совпадение = I,
- * поиск по маске = E, поиск по подстроке = S
- */
- 'SHOW_FILTER' => 'N',
- /*
- * Не показывать в списке. Если передать какое-либо значение,
- * то будет считаться, что флаг выставлен.
- */
- 'SHOW_IN_LIST' => 'N',
- /*
- * Не разрешать редактирование пользователем.
- * Если передать какое-либо значение, то будет считаться,
- * что флаг выставлен.
- */
- 'EDIT_IN_LIST' => '',
- /* Значения поля участвуют в поиске */
- 'IS_SEARCHABLE' => 'N',
- 'SETTINGS' => $arSettings,
- /* Подпись в форме редактирования */
- 'EDIT_FORM_LABEL' => array(
- 'ru' => $arFieldParams["LABEL"],
- 'en' => $arFieldParams["LABEL"],
- ),
- /* Заголовок в списке */
- 'LIST_COLUMN_LABEL' => array(
- 'ru' => $arFieldParams["LABEL"],
- 'en' => $arFieldParams["LABEL"],
- ),
- /* Подпись фильтра в списке */
- 'LIST_FILTER_LABEL' => array(
- 'ru' => $arFieldParams["LABEL"],
- 'en' => $arFieldParams["LABEL"],
- ),
- /* Сообщение об ошибке (не обязательное) */
- 'ERROR_MESSAGE' => array(
- 'ru' => '',
- ),
- /* Помощь */
- 'HELP_MESSAGE' => array(
- 'ru' => '',
- ),
- );
- $iUserFieldId = $oUserTypeEntity->Add($aUserFields);
- $arResultData["fieldsList"][$iUserFieldId] = $aUserFields;
- if (is_array($arFieldParams["ENUM"])) {
- if (count($arFieldParams["ENUM"]) > 0) {
- $arDataValue = $arFieldParams["ENUM"];
- $arAddEnum = array();
- $i = 1;
- foreach ($arDataValue as $key => $value) {
- //мы передаем массив, который состоит из таких элементов (наличие n в ключе обязательно)
- $arAddEnum['n' . $i] = array(
- 'VALUE' => $value,
- 'DEF' => 'N',
- 'SORT' => $i * 100
- );
- $i++;
- }
- $obEnum = new CUserFieldEnum();
- $obEnum->SetEnumValues($iUserFieldId, $arAddEnum);
- $arResultData["fieldsList"][$iUserFieldId]['values'] = $arAddEnum;
- }
- }
- }
- $this->setData($arResultData);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement