Your IP : 3.22.70.111


Current Path : /var/www/u0635749/data/www/hobbyclick.ru/vendor/arrilot/bitrix-migrations/templates/
Upload File :
Current File : /var/www/u0635749/data/www/hobbyclick.ru/vendor/arrilot/bitrix-migrations/templates/add_uf.template

<?php

use Arrilot\BitrixMigrations\BaseMigrations\BitrixMigration;
use Arrilot\BitrixMigrations\Exceptions\MigrationException;

class __className__ extends BitrixMigration
{
    /**
     * Run the migration.
     *
     * @return mixed
     * @throws MigrationException
     */
    public function up()
    {
        $propId = $this->addUF([
            /*
            * Идентификатор сущности, к которой будет привязано свойство.
            * Для секция формат следующий - IBLOCK_{IBLOCK_ID}_SECTION
            */
            'ENTITY_ID' => 'USER',
            /* Код поля. Всегда должно начинаться с UF_ */
            'FIELD_NAME' => '__',
            /* Указываем, что тип нового пользовательского свойства строка */
            'USER_TYPE_ID' => 'string',
            /*
            * XML_ID пользовательского свойства.
            * Используется при выгрузке в качестве названия поля
            */
            'XML_ID' => '',
            /* Сортировка */
            'SORT' => 500,
            /* Является поле множественным или нет */
            'MULTIPLE' => 'N',
            /* Обязательное или нет свойство */
            'MANDATORY' => 'N',
            /*
            * Показывать в фильтре списка. Возможные значения:
            * не показывать = N, точное совпадение = I,
            * поиск по маске = E, поиск по подстроке = S
            */
            'SHOW_FILTER' => 'N',
            /*
            * Не показывать в списке. Если передать какое-либо значение,
            * то будет считаться, что флаг выставлен (недоработка разработчиков битрикс).
            */
            'SHOW_IN_LIST' => '',
            /*
            * Не разрешать редактирование пользователем.
            * Если передать какое-либо значение, то будет считаться,
            * что флаг выставлен (недоработка разработчиков битрикс).
            */
            'EDIT_IN_LIST' => '',
            /* Значения поля участвуют в поиске */
            'IS_SEARCHABLE' => 'N',
            /*
            * Дополнительные настройки поля (зависят от типа).
            * В нашем случае для типа string
            */
            'SETTINGS' => array(
                /* Значение по умолчанию */
                'DEFAULT_VALUE' => '',
                /* Размер поля ввода для отображения */
                'SIZE' => '20',
                /* Количество строчек поля ввода */
                'ROWS' => '1',
                /* Минимальная длина строки (0 - не проверять) */
                'MIN_LENGTH' => '0',
                /* Максимальная длина строки (0 - не проверять) */
                'MAX_LENGTH' => '0',
                /* Регулярное выражение для проверки */
                'REGEXP' => '',
            ),
            /* Подпись в форме редактирования */
            'EDIT_FORM_LABEL' => array(
                'ru' => 'Пользовательское свойство',
                'en' => 'User field',
            ),
            /* Заголовок в списке */
            'LIST_COLUMN_LABEL' => array(
                'ru' => 'Пользовательское свойство',
                'en' => 'User field',
            ),
            /* Подпись фильтра в списке */
            'LIST_FILTER_LABEL' => array(
                'ru' => 'Пользовательское свойство',
                'en' => 'User field',
            ),
            /* Сообщение об ошибке (не обязательное) */
            'ERROR_MESSAGE' => array(
                'ru' => 'Ошибка при заполнении пользовательского свойства',
                'en' => 'An error in completing the user field',
            ),
            /* Помощь */
            'HELP_MESSAGE' => [
                'ru' => '',
                'en' => '',
            ],
        ]);
    }

    /**
     * Reverse the migration.
     *
     * @return mixed
     * @throws MigrationException
     */
    public function down()
    {
        $code = '__';

        $id = $this->getUFIdByCode('USER', $code);
        if (!$id) {
            throw new MigrationException('Не найдено пользовательское свойство для удаления');
        }

        (new CUserTypeEntity())->delete($id);
    }
}